You are not logged in.
Последний скрипт я вытащил из мейна, куда я его давно засунул, когда тестил таймеры. Сейчас просто скопировал сюда с небольшой правкой, безо внимания добавил директиву {$CLEO}, скомпилировал, запустил и побежал по своим делам. Но во всяком случае посыпаю главу пеплом, так как за мной такие грешки имеются, ибо я нуб, и мне такие вещи сразу глаз не режут.
Offline
@НикИТОС - глобальные переменные ( X$ ) в КЛЕО скриптах использовать нельзя, только локальные ( X@ ). Опкоды таймера (в описании которых есть слово"timer") требуют использования глобальных переменных, поэтому данные команды в КЛЕО скриптах также не используются. А вместо команды end_thread в КЛЕО скриптах используется 0A93: end_custom_thread
Код таймера обратного отсчёта в формате минуты-секунды для КЛЕО:
{$CLEO} wait 0 while true repeat wait 0 until 0AB0: key_pressed 32 while true if 32@ > 150000 then 32@ = 0 end 0A8F: 1@ = 150000 - 32@ // int 0085: 0@ = 1@ // (int) 0@ /= 60000 03F0: enable_text_draw 1 045A: draw_text_1number 200.0 200.0 GXT 'NUMBER' number 0@ // ~1~ 0@ *= 60000 0062: 1@ -= 0@ // (int) 1@ /= 1000 045A: draw_text_1number 220.0 200.0 GXT 'NUMBER' number 1@ // ~1~ if and 0@ == 0 1@ == 0 then break end wait 0 end end
Offline
Опкоды таймера (в описании которых есть слово"timer") требуют использования глобальных переменных, поэтому данные команды в КЛЕО скриптах также не используются.
Offline
Что ты подразумевал под свёрнутым режимом? Зачем это?
Offline
: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
Вот код для Main.SCM. Счётчик в свёрнутом режиме, я думаю, работать не будет, ибо любые скрипты, вроде, в таком режиме не пашут.
Offline
{$CLEO} wait 0 while true repeat wait 0 if and 0AB0: key_pressed 17 0AB0: key_pressed 77 while true if 32@ > 150000 then 32@ = 0 end 0A8F: 1@ = 150000 - 32@ // int 0085: 0@ = 1@ // (int) 0@ /= 60000 03F0: enable_text_draw 1 045A: draw_text_1number 200.0 200.0 GXT 'NUMBER' number 0@ // ~1~ 0@ *= 60000 0062: 1@ -= 0@ // (int) 1@ /= 1000 045A: draw_text_1number 220.0 200.0 GXT 'NUMBER' number 1@ // ~1~ if and 0@ == 0 1@ == 0 then break end wait 0 end
почему не работает активация на сочитание клавиш?
Offline
{$CLEO} wait 0 :Test 0000: :Test_2 Wait 0 if and 0AB0: key_pressed 17 0AB0: key_pressed 77 JF @Test_2 :Test_3 while true repeat wait 0 while true if 32@ > 150000 then 32@ = 0 end 0A8F: 1@ = 150000 - 32@ // int 0085: 0@ = 1@ // (int) 0@ /= 60000 03F0: enable_text_draw 1 045A: draw_text_1number 200.0 200.0 GXT 'NUMBER' number 0@ // ~1~ 0@ *= 60000 0062: 1@ -= 0@ // (int) 1@ /= 1000 045A: draw_text_1number 220.0 200.0 GXT 'NUMBER' number 1@ // ~1~ if and 0@ == 0 1@ == 0 then break end wait 0 end
Offline
И там ещё нужно было бы добавить двоеточие.
А GXT файл открыть не судьба?
И почему то по завершении отсчета игру крашит, варнинги идут, из-за чего может быть?
while true repeat wait 0
Замени на это и будет тебе счастье
while true FOR repeat wait 0
Заодно, может быть, научишься составлять правильно циклы.
Тряхнул стариной, держи код.
{$CLEO} 0000: while true wait 0 if and 0AB0: key_pressed 17 0AB0: key_pressed 77 then 32@ = 0 while true wait 0 0A8F: 1@ = 150000 - 32@ // int 0085: 0@ = 1@ // (int) 0@ /= 60000 0085: 2@ = 0@ // (int) 2@ *= 60000 0062: 1@ -= 2@ // (int) 1@ /= 1000 03F0: enable_text_draw 1 if 0019: 1@ > 9 then 045B: draw_text_2numbers 200.0 200.0 GXT 'TIME' numbers 0@ 1@ // ~1~:~1~ else 045B: draw_text_2numbers 200.0 200.0 GXT 'TIME_0' numbers 0@ 1@ // ~1~:~1~ end if and 0@ == 0 1@ == 0 then break end if and 32@ > 2000 0AB0: key_pressed 17 0AB0: key_pressed 77 then wait 1000 break end end end end
Last edited by yelmi (16-07-2013 02:17)
Offline