This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Метод правильной загрузки статуса сломанных фар

PercyBerkeley

Участник портала
16 Ноя 2024
56
12
18
Здравствуйте, доброе утро. Я не спал всю ночь, пытаясь найти правильный метод применения статуса фар при загрузке модели автомобиля из базы данных. Я пробовал несколько методов:

vehicle.setLightMultiplier(multiplier); (Это сработало бы для меня, если бы применялось к каждому маяку по отдельности)


0x92B35082E0B42F66
void SET_VEHICLE_BRAKE_LIGHTS(Vehicle vehicle, BOOL toggle)

0x34E710FF01247C5A
void SET_VEHICLE_LIGHTS(Vehicle vehicle, int state)


0x92B35082E0B42F66
void SET_VEHICLE_BRAKE_LIGHTS


Vehicle.getIsLeftHeadlightDamaged
Vehicle.getIsRightHeadlightDamaged


Ни один из них не сработал для меня, и я не нашел много информации по этой теме. Они для получения статуса фар, но есть ли один, чтобы обнулить повреждения? Предположим, я хочу разбить фары, нажав F9.



JavaScript:
//debug key
mp.keys.bind(0x78, false, () => { // F9
    const vehicle = mp.players.local.vehicle;
    if (vehicle) {
        vehicle.setLightMultiplier(0.0);  //В настоящее время я тестирую этот вариант, который устраняет блики от фар.
       
        mp.gui.chat.push("fine");
    } else {
        mp.gui.chat.push("bad");
    }
});

mp.events.add('entityStreamIn', (entity) => {
    if (!entity || entity.type !== 'vehicle') return;


    setTimeout(() => {
        if (!mp.vehicles.exists(entity)) return;
       
        applyVisualDamageWithRetry(entity, 0);
       
        // Aplicar suciedad
        const dirtLevel = entity.getVariable('dirtLevel');
        if (dirtLevel !== undefined && dirtLevel > 0) {
            try {
                mp.game.invoke('0x79D3B596FE44EE8B', entity.handle, parseFloat(dirtLevel));
            } catch (e) {
                mp.gui.chat.push(`Error al aplicar suciedad en stream: ${e}`);
            }
        }
       
        const visualDamage = entity.getVariable('visualDamage');
        if (visualDamage && typeof visualDamage === 'string' && visualDamage !== 'undefined') {
            try {
                const damageObj = JSON.parse(visualDamage);
                if (damageObj.lights) {
                    setTimeout(() => {
                        if (!mp.vehicles.exists(entity)) return;
                       
                        for (const [lightId, damaged] of Object.entries(damageObj.lights)) {
                            const shouldBeDamaged = damaged === 1 || damaged === true;
                            if (shouldBeDamaged) {
                                const lightIndex = parseInt(lightId);
                                mp.game.invoke('0x92B35082E0B42F66', entity.handle, lightIndex, true);
                            }
                        }
                    }, 1500);
                }
            } catch (e) {
                mp.gui.chat.push(`Error al procesar faros en stream: ${e}`);
            }
        }
    }, 1200);
});



заранее спасибо
 

Jerry (ChatGPT)

AI-powered language model
VIP
helper
17 Окт 2023
2,414
238
100
Привет! Для обнуления повреждений фар можно воспользоваться методом SET_VEHICLE_LIGHTS, устанавливая состояние фар в исходное значение. Например, SET_VEHICLE_LIGHTS(vehicle, 1); для включения фар. Надеюсь, это поможет решить вашу проблему!
 

PercyBerkeley

Участник портала
16 Ноя 2024
56
12
18
Для того, кто ему служит: единственный способ, которым я обнаружил, что повреждение фаров было с mp.game.vehicle.setehicledamage и большого терпения, играющего с ценностями


Easy