Состояние двигателей и фар

Статус
В этой теме нельзя размещать новые ответы.

Tatsuki

Известный
Автор темы
5
0
Как можно сделать что-бы состояние двигателя и фар сохранялось в переменую?
 

Tatsuki

Известный
Автор темы
5
0
[
{$CLEO}
{$NOSOURCE}
0000:


:Vehicle
wait 0
if and
00DF: actor $PLAYER_ACTOR driving
0AB0: key_pressed 17
jf @Vehicle
0A8D: 0@ = read_memory 0x428 size 4 virtual_protect 1
then
0039: 0@ == 16
0AF9: samp say_msg "/me повернул ключ зажигания в правую сторону"
wait 1000
0AF9: samp say_msg "/do Машина завелась, из выхлопной трубы пошёл легкий дым."
else
0AF9: samp say_msg "/me повернулю ключ зажигания в левую сторону"
wait 1000
0AF9: samp say_msg "/do Двигатель машины заглох."
jump @Vehicle

/SPOILER]
Пишет then неизвестная команда..
 

#saniwe

глаза пофикси
218
107
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
[
{$CLEO}
{$NOSOURCE}
0000:


:Vehicle
wait 0
if and
00DF: actor $PLAYER_ACTOR driving
0AB0: key_pressed 17
jf @Vehicle
0A8D: 0@ = read_memory 0x428 size 4 virtual_protect 1
then
0039: 0@ == 16
0AF9: samp say_msg "/me повернул ключ зажигания в правую сторону"
wait 1000
0AF9: samp say_msg "/do Машина завелась, из выхлопной трубы пошёл легкий дым."
else
0AF9: samp say_msg "/me повернулю ключ зажигания в левую сторону"
wait 1000
0AF9: samp say_msg "/do Двигатель машины заглох."
jump @Vehicle

/SPOILER]
Пишет then неизвестная команда..
не проще в ahk сделать?
 

01EG

Известный
Проверенный
631
345
[
{$CLEO}
{$NOSOURCE}
0000:


:Vehicle
wait 0
if and
00DF: actor $PLAYER_ACTOR driving
0AB0: key_pressed 17
jf @Vehicle
0A8D: 0@ = read_memory 0x428 size 4 virtual_protect 1
then
0039: 0@ == 16
0AF9: samp say_msg "/me повернул ключ зажигания в правую сторону"
wait 1000
0AF9: samp say_msg "/do Машина завелась, из выхлопной трубы пошёл легкий дым."
else
0AF9: samp say_msg "/me повернулю ключ зажигания в левую сторону"
wait 1000
0AF9: samp say_msg "/do Двигатель машины заглох."
jump @Vehicle

/SPOILER]
Пишет then неизвестная команда..
CLEO:
{$CLEO}
0000: NOP
repeat
wait 500
until Samp.Available()

while true
wait 0
    if and  // ïðîâåðêà íà âûïîëíåíèå äâóõ óñëîâèé, ÏÅÄ â ìàøèíå è íàæàòà êëàâèøà "17"
    00DF:   actor $PLAYER_ACTOR driving
    0AB0:   key_pressed 17
    then
    0@ = Actor.CurrentCar($PLAYER_ACTOR) // ïîëó÷àåì óêàçàòåëü íà ìàøèíó èãðîêà
    0A97: 1@ = car 0@ struct             // ïîëó÷àåì óêàçàòåëü íà ñòðóêòóðó ìàøèíû èãðîêà
    0A8E: 2@ = 1@ + 0x428 // int         // ïðèáàâëÿåì ñìåùåíèåè ê ñòðóêòóðå CVEH ê óêàçàòåëþ íà ñòðóêòóðó CVEH è ïîëó÷àåì àäðåññ ïî êîòîðîìó ìû ñìîæåì ñ÷èòàòü ôëàã
    0A8D: 3@ = read_memory 2@ size 1 virtual_protect 1    // ñ÷èòûâàåì ôëàã â ïåðåìåííóþ 3@ ïî àäðåññó 2@
        if
        0039:   3@ == 16 // ïðîâåðÿåì ðàâíÿåòñÿ ôëàã 16(âêëþ÷åí äâèãàòåëü)    
        then             // åñëè äâèãàòåëü áóäåò âêëþ÷¸í, òîãäà
        0AF9: samp say_msg "/me ïîâåðíóë êëþ÷ çàæèãàíèÿ â ïðàâóþ ñòîðîíó"
        wait 1250
        0AF9: samp say_msg "/do Ìàøèíà çàâåëàñü, èç âûõëîïíîé òðóáû ïîø¸ë ëåãêèé äûì."
      
        else   // åñëè óñëîâèå ëîæíî, òîãäà áóäåò âûïîëíÿòüñÿ ýòîò êîä
        0AF9: samp say_msg "/me ïîâåðíóëþ êëþ÷ çàæèãàíèÿ â ëåâóþ ñòîðîíó"
        wait 1000
        0AF9: samp say_msg "/do Äâèãàòåëü ìàøèíû çàãëîõ."
        end
    end
end
Пишет then неизвестная команда..
1) код не работоспособный, а именно циклы
2) алгоритм считывания нужного значения в структурах гта, неправильный, даже если бы правильно написал циклы, то нихуя бы не работало
79b569b8694d6500942ad4a20fb48111.png

Если я сделал всё правильно сам) То должно работать.
Решил помочь, потому что сам когда-то интересовался работой с состояниями машины.
Сам думаю о том: 1) правильно ли я прочитал флаги ? 2) если твой veh будет полицейской или скорой, будет происходить хуйня, потому что во флагах(заданному смещению, того адресса с которыми мы в итоге работаем) есть разные значение у флагов и если будет полицейская машина, то никак не будет значения 16, который будет отвечать за включенный двигатель.
3) можно еще работать с этим
+0x584 = [dword] Статус фар:
  • 1 - передняя правая включена
  • 2 - передняя левая включена
  • 4 - задняя правая включена
  • 8 - задняя левая включена
Типо приравнить работу двигатель с состоянием фар, ну например: на самп-рп при включении двигателя автоматов врубаются фары, но не каждом серваке так и в итоге тоже способ будет не стопроцентно действительным. В общем я хз) Сделал всё что мог.
 

Вложения

  • IfEngineStateThen.cs
    18.8 KB · Просмотры: 8
Последнее редактирование модератором:
  • Нравится
Реакции: Tatsuki

SAMP.ASI

Известный
223
53
В юдф же есть это

Код:
1::
if on = 1
{
    Sleep 300
    if (isPlayerDriver() = 1)  {
        if (!isInChat() and !isDialogOpen()) {
            if (getVehicleLightState() = 1) {
                SendChat("/ми включил фары")
                Return
            }
            else if (getVehicleLightState() = 0) {
                SendChat("/me выключил фары")
                Return
            }
        }
    }
}

Код:
2::
if (isPlayerDriver())
{
    if (getVehicleEngineState() == 1 and EngineState = false) {
        SendChat("/me  завел" getVehicleModelName())
        EngineState := true
        return
    }
    else if (getVehicleEngineState() == 0 and EngineState = true) {
        SendChat("/me заглушил")
        EngineState := false
        return
    }
}
return
 
  • Нравится
Реакции: Tatsuki
Статус
В этой теме нельзя размещать новые ответы.