GTA Builder Форум

GTA Vice City => Скриптинг => Тема начата: mike43842 от Декабрь 07, 2013, 05:05:12 pm

Название: проблема с условием
Отправлено: mike43842 от Декабрь 07, 2013, 05:05:12 pm
Всем привет, у меня возникла проблема с условием в скрипте, хочу сделать такую проверку: если игрок в машине то убрать мигающий маркер над ней, а если не в машине вернуть маркер над ней. Вот код:

Проблема у меня в том что если первый раз я сажусь в машину то маркер пропадает, но если я из нее вылезаю он не появляется, не могу понять в чем проблема.
:marker
wait 100
0186: $111 = create_marker_above_car $11

:MIS_1_113
wait 250


:MIS_1_114
wait 100
00D6: if
0442:   player $PLAYER_CHAR in_car $11
004D: jump_if_false @MIS_1_113
0164: disable_marker $111

:MIS_1_115
00D6: if
8442:   not player $PLAYER_CHAR in_car $11
004D: jump_if_false @MIS_1_114
0002: jump @MIS_1_116

:MIS_1_116
wait 100
0186: $112 = create_marker_above_car $11
Название: Re: проблема с условием
Отправлено: Sektor от Декабрь 07, 2013, 05:11:00 pm
Это в потоке?
Название: Re: проблема с условием
Отправлено: mike43842 от Декабрь 07, 2013, 05:12:26 pm
Да. Это миссия.
Название: Re: проблема с условием
Отправлено: Sektor от Декабрь 07, 2013, 06:21:05 pm
По пробуй так, я конечно давненько не скриптел, лет 7 назад помойму, последний раз.

Код: ASM
  1. :marker
  2. wait 100
  3.  
  4. 0186: $111 = create_marker_above_car $11
  5.  
  6.  
  7. :MIS_1_114
  8. wait 0
  9. 00D6: if
  10. 0442:   player $PLAYER_CHAR in_car $11
  11. 004D: jump_if_false @MIS_1_114
  12. 0164: disable_marker $111
  13.  
  14.  
  15. :MIS_1_115
  16. wait 0
  17. 00D6: if
  18. 0442:   player $PLAYER_CHAR in_car $11
  19. 004D: jump_if_false @MIS_1_113
  20. 0002: jump @marker
  21.  

Название: Re: проблема с условием
Отправлено: mike43842 от Декабрь 07, 2013, 07:01:07 pm
Нет, не работает, если игрок в машине маркер мигает, он т.е. исчезает и появляется, а если не в машине то он нормально горит... не могу додуматься как тут нормально записать( мне нужно чтобы все время работала проверка
Название: Re: проблема с условием
Отправлено: Sektor от Декабрь 07, 2013, 07:04:01 pm
Цитировать
Нет, не работает, если игрок в машине маркер мигает, он т.е. исчезает и появляется, а если не в машине то он нормально горит... не могу додуматься как тут нормально записать( мне нужно чтобы все время работала проверка

Мне надо потом пробовать тогда это в редакторе и проверять. Так я врядли что вспомню как да что там в scm.
Все я сделал, это я сегодня допустил пару ошибок, сейчас  предоставлю рабочий код:


Код: ASM
  1. :marker
  2. wait 100
  3. 0186: $111 = create_marker_above_car $11
  4.  
  5.  
  6. :MIS_1_114
  7. wait 0
  8. 00D6: if
  9. 0442:   player $PLAYER_CHAR in_car $11
  10. 004D: jump_if_false @MIS_1_114
  11. 0164: disable_marker $111
  12.  
  13.  
  14. :MIS_1_115
  15. wait 0
  16. 00D6: if
  17. 8442: not  player $PLAYER_CHAR in_car $11
  18. 004D: jump_if_false @MIS_1_115
  19. 0002: jump @marker
Название: Re: проблема с условием
Отправлено: mfisto от Февраль 16, 2014, 12:55:37 am
Привожу свою логику:
$marker = -1
while true
    wait 0
    if
        not Player.Defined($Player_Char)
    then
        Marker.Disable($marker)
        continue
    end
    if
        Actor.Driving($Player_Actor)
    then
        03C0: 14@ = actor $Player_Actor car
        if
            15@ <> 1
        then
            15@ = 1
            Marker.TieToCar($marker, 14@, 0, 1)
        end
    else
        if
            15@ <> 2
        then
            15@ = 2
            Marker.Disable($marker)
        end
    end
end