You are not logged in.
Таймер с обратным отсчётом времени можно сделать так:
{$CLEO} wait 0 while true wait 0 if 32@ > 10000 then 32@ = 0 end 0A8F: 0@ = 10000 - 32@ // int 0@ /= 1000 03F0: enable_text_draw 1 045A: draw_text_1number 200.0 200.0 GXT 'NUMBER' number 0@ // ~1~ end
Код отображает на экране таймер обратного отсчёта - от 10 секунд до 0. При очередном обнулении отсчёт начинается заново.
32@ - переменная-таймер. Её значение (как и значение переменной 33@) увеличивается с каждой секундой игрового времени на 1000.
Offline
в начале нужно добавить проверку
0202: actor 1@ near_car 0@ radius 20.0 20.0 sphere 0
0@ - имя трейлера
Offline
в начале нужно добавить проверку
0202: actor 1@ near_car 0@ radius 20.0 20.0 sphere 00@ - имя трейлера
А как добавить все трейлеры какие есть? Через запятую писать или как?
И полный вид клео такой будет?
{$VERSION 3.1.0027} {$CLEO .cs} //-------------MAIN--------------- wait 0 :NONAME_4 wait 0 0202: actor 1@ near_car 0@ radius 20.0 20.0 flag 0 if 32@ > 10000 else_jump @NONAME_54 32@ = 0 :NONAME_54 0A8F: 0@ = 10000 - 32@ // int 0@ /= 1000 03F0: enable_text_draw 1 045A: draw_text_1number 200.0 200.0 GXT 'NUMBER' number 0@ // ~1~ jump @NONAME_4
Offline
@eek -
{$CLEO} 0000: while true wait 250 if and 056D: actor 0@ defined 056E: car 1@ defined then if 0202: actor 0@ near_car 1@ radius 20.0 20.0 sphere 0 then 32@ = 0 while true 0A8F: 3@ = 10000 - 32@ // int 3@ /= 1000 03F0: enable_text_draw 1 045A: draw_text_1number 200.0 200.0 GXT 'NUMBER' number 3@ // ~1~ if 32@ > 10000 then 0A93: end_custom_thread end end end else 0A93: end_custom_thread end end
в скрипте, который создает трейлер, нужно добавить команду
0A92: create_custom_thread "TrailerCheck.cs" ACTOR@ TRAILER@
"TrailerCheck.cs" - имя CLEO-скрипта, который указан выше
ACTOR@ - имя актера, для которого вести проверку
TRAILER@ - имя созданного трейлера
Offline
Там на сервер несколько видов трейлеров, я в самп-вики "Vehicle Model ID List", нашел только два
ID - 450
ID - 584
Но там есть ещё два кажется, но я что то их там найти не могу. Можно сделать чтобы просто когда спаунился трейлер начинался отсчет времени?
Offline
@eek -
0A92: create_custom_thread "TrailerCheck.cs" ACTOR@ TRAILER@"TrailerCheck.cs" - имя CLEO-скрипта, который указан выше
ACTOR@ - имя актера, для которого вести проверку
TRAILER@ - имя созданного трейлера
и я немного не понял этого этапа, можно поподробнее?
Offline
@eek - здесь не форум поддержки SAMP. По всем вопросам, связанным с работой клиент-серверных скриптов обращайтесь к разработчикам таких скриптов.
Примеры выше были описаны для случаев, когда трейлер в игре создается вашим собственным скриптом, к которому вы имеете доступ. Соответственно вы знаете имя (хендл) машины, которая создается, и можете с ней работать.
Offline
То что написано выше мне сложно сделать. Подскажите почему тут не работает активация на клавишу?
{$CLEO} wait 0 while true wait 0 0AB0: key_pressed 32 if 32@ > 10000 then 32@ = 0 end 0A8F: 0@ = 10000 - 32@ // int 0@ /= 1000 0AB0: key_pressed 32 03F0: enable_text_draw 1 045A: draw_text_1number 200.0 200.0 GXT 'NUMBER' number 0@ // ~1~ end
Offline
Тут «активация на клавишу» и не должна работать. Я не вижу адекватной проверки нажатия на клавишу. Опиши, что ты хотел состряпать.
Offline
{$CLEO} :Test 0000: :Test_2 wait 0 If 0AB0: key_pressed 32 JF @Test_2 while true wait 0 if 32@ > 10000 then 32@ = 0 end 0A8F: 0@ = 10000 - 32@ // int 0@ /= 1000 03F0: enable_text_draw 1 045A: draw_text_1number 200.0 200.0 GXT 'NUMBER' number 0@ // ~1~ end
Offline
{$CLEO} :Test 0000: :Test_2 wait 0 If 0AB0: key_pressed 32 JF @Test_2 :Test_3 while true wait 0 if 32@ > 10000 then 32@ = 0 end 0A8F: 0@ = 10000 - 32@ // int 0@ /= 1000 03F0: enable_text_draw 1 045A: draw_text_1number 200.0 200.0 GXT 'NUMBER' number 0@ // ~1~ If 0@>1 Then continue Else jump @Test_2 end end
Offline
У меня всё работает, как ни странно.
Offline
{$CLEO} :Test 0000: :Test_2 wait 0 If 0AB0: key_pressed 32 JF @Test_2 :Test_3 while true wait 0 if 32@ > 360000 then 32@ = 0 end 0A8F: 0@ = 360000 - 32@ // int 0@ /= 36000 03F0: enable_text_draw 1 045A: draw_text_1number 200.0 200.0 GXT 'NUMBER' number 0@ // ~1~ If 0@>1 Then continue Else jump @Test_2 end end
Offline
{$CLEO} :Test 0000: :Test_2 wait 0 $Time = 150000 If 0AB0: key_pressed 32 JF @Test_2 014E: set_timer_to $Time type 1 :Test_3 wait 0 if $Time < 1 jf @Test_3 end_thread
Offline
Offline
@НикИТОС - Объясни, в какой-такой справке написано что в клео скриптах можно использовать глобальные переменные и опкод end_thread.
Offline