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