SB не позволяет задать в цикле более одного условия. Но...
есть одна хитрость, позволяющая обойти это ограничение и задать циклу больше одного условия для его работы. Это возможно благодаря условному gosub, который нужно использовать вместо условия цикла.
/* Made by Vital */
//$PLAYER_ACTOR $PLAYER_GROUP $ONMISSION
{$CLEO}
0000:
while true
wait 0
if
player.Defined(0)
then
if and
not actor.Driving($PLAYER_ACTOR)
0ADC: test_cheat "TEST"
then
0ADF: add_dynamic_GXT_entry "LOOP" text "Loop Counter: ~y~~1~"
0@ = 0
while gosub @Check //Main
wait 0
32@ = 0
while gosub @Check
wait 0
if
32@ > 999
then
03E6: remove_text_box
0@ ++
player.Money(0) += 5
0513: show_text_box_1number 'LOOP' number 0@
break
end
end
end //Main
03E6: remove_text_box
0AE0: remove_dynamic_GXT_entry "LOOP"
end
end
end
:Check //Is everything OK?
if or
0@ > 999
not player.Defined(0)
actor.Driving($PLAYER_ACTOR)
00E1: player 0 pressed_key 11
then
018C: play_sound 1054 at 0.0 0.0 0.0
059A: return_false
else
0485: return_true
end
return
В этом скрипте игроку после введения чита "TEST" просто выдаются деньги - $5 каждую секунду. Чтобы выйти из цикла и прекратить выдачу денег, нужно нажать "Ответ Да" или сесть в транспорт. Также скрипт завершит цикл в случае смерти/ареста игрока.
Внутри самого условного gosub можно использовать множество проверок, таким образом, ограничения больше нет!
есть одна хитрость, позволяющая обойти это ограничение и задать циклу больше одного условия для его работы. Это возможно благодаря условному gosub, который нужно использовать вместо условия цикла.
/* Made by Vital */
//$PLAYER_ACTOR $PLAYER_GROUP $ONMISSION
{$CLEO}
0000:
while true
wait 0
if
player.Defined(0)
then
if and
not actor.Driving($PLAYER_ACTOR)
0ADC: test_cheat "TEST"
then
0ADF: add_dynamic_GXT_entry "LOOP" text "Loop Counter: ~y~~1~"
0@ = 0
while gosub @Check //Main
wait 0
32@ = 0
while gosub @Check
wait 0
if
32@ > 999
then
03E6: remove_text_box
0@ ++
player.Money(0) += 5
0513: show_text_box_1number 'LOOP' number 0@
break
end
end
end //Main
03E6: remove_text_box
0AE0: remove_dynamic_GXT_entry "LOOP"
end
end
end
:Check //Is everything OK?
if or
0@ > 999
not player.Defined(0)
actor.Driving($PLAYER_ACTOR)
00E1: player 0 pressed_key 11
then
018C: play_sound 1054 at 0.0 0.0 0.0
059A: return_false
else
0485: return_true
end
return
В этом скрипте игроку после введения чита "TEST" просто выдаются деньги - $5 каждую секунду. Чтобы выйти из цикла и прекратить выдачу денег, нужно нажать "Ответ Да" или сесть в транспорт. Также скрипт завершит цикл в случае смерти/ареста игрока.
Внутри самого условного gosub можно использовать множество проверок, таким образом, ограничения больше нет!
Комментариев нет:
Отправить комментарий