Вопросы по CLEO-скриптингу

kuleer

Участник
86
13
Добрый день. Скиньте пожалуйста функцию которая получает координаты чекпоинта, который как у автобусников или в автошколе, именно такой, буду благодарен кто скинет)
 

romacaddy

Известный
Проверенный
234
206
дайте самый тупой пример кода, чтобы рендер опкод был активен например 3 секунды
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,962
дайте самый тупой пример кода, чтобы рендер опкод был активен например 3 секунды
CLEO:
{$CLEO}
0000:

WHILE TRUE   
// Тут что должно произойти до начала трёх секунд.    
    FOR 0@ = 0 TO 3000 [STEP = 1]
    0001: 0
    // Тут опкод который будет работать 3 секунды.
    END
// Тут что должно произойти после окончания трёх секунд.
END
 
  • Нравится
Реакции: romacaddy

Coghweel

Новичок
76
0
Подскажите пожалуйста, мне надо что бы скрипт отправлял на сервер кое-какую инфу (буквально одну цифру, не стиллер) Как это сделать?
 

MrAntow

Новичок
59
16
Подскажите, как можно решить такую проблему:

Есть основной код -
03A4: name_thread "Potok"

0000:NOP

repeat
wait 0
until SAMP.Available()

var
3@(5@,4i) : integer
4@(5@,4i) : integer
end

0B34: samp register_client_command "com1" to_label @com1
0B34: samp register_client_command "rel" to_label @reload_start
5@ = 0
0C6A: 3@(5@,4i) = create_custom_thread_at_label @reload
0C6C: set_thread 3@(5@,4i) local_var 1 = 0
5@ = 1
0C6A: 3@(5@,4i) = create_custom_thread_at_label @thread_1
5@ = 2
0C6A: 3@(5@,4i) = create_custom_thread_at_label @thread_2

repeat
wait 0
if 30@ == 1
then
30@ = 0
0ac8: alloc 1@ size 256
:lylka
5@ = 1
if 20@ == 0
then
0ad3: format_stirng 1@ = "{FF0000}Пункт1%c" 0xA
else
0ad3: format_stirng 1@ = "{00FF00}Пункт1%c" 0xA
end
5@ = 2
if 21@ == 0
then
0ad3: format_stirng 1@ = "%s{FF0000}Пункт2%c" 1@ 0xA
else
0ad3: format_stirng 1@ = "%s{00FF00}Пункт2%c" 1@ 0xA
end
5@ = 3
if 22@ == 0
then
0ad3: format_stirng 1@ = "%s{FF0000}Пункт3%c" 1@ 0xA
else
0ad3: format_stirng 1@ = "%s{00FF00}Пункт3%c" 1@ 0xA
end
0B3B: samp show_dialog id 45 caption "" text 1@ button_1 "Вкл/Выкл" button_2 "Закрыть" style 2
free 1@
0B49: samp set_current_dialog_list_item 7@
repeat
wait 0
if 0B3C: samp is_dialog_responded id 45 button 6@ list_item 7@ input_text 0
then
if 6@ == 1
then
// { ----------------------------- }
if 7@ == 0
then
// { -------------------------- }
5@ = 1
if 20@ == 0
then
20@ = 1
else
20@ = 0
end
// { -------------------------- }
end
// { ----------------------------- }
if 7@ == 1
then
// {-------------------------- }
5@ = 2
if 21@ == 0
then
21@ = 1
else
21@ = 0
end
// { -------------------------- }
end
if 7@ == 2
then
5@ = 3
if 22@ == 0
then
22@ = 1
else
22@ = 0
end
// { -------------------------- }
end
jump @Lylka
else
break
end
end
until false
0BA4: dialog 45 free
end
until false

:bort_pc
30@ = 1
SAMP.CmdRet()

:reload_start
5@ = 0
0C6C: set_thread 3@(5@,4i) local_var 1 = 1
SAMP.CmdRet()

:reload
wait 20
if 1@ == 1
then
0AAA: 0@ = thread 'AutoP' pointer
if
0@ > 0
then
0ABA: end_custom_thread_named 'Main'
0AF8: samp add_message_to_chat "autopilot! reloaded!" color 0xFFAACC
0A92: create_custom_thread "file.cs"
0@ = 1
1@ = 0
wait 1000
end
end
jump @reload

:thread_1
wait 0
if 0@ == 1
then
0AF8: samp add_message_to_chat "1" color //0xFFF235
wait 1000
end
jump @thread_1

:thread_2
wait 0
if 0@ == 1
then
0AF8: samp add_message_to_chat "2" color 0xFFF235//0xFF2B32
wait 1000
end
jump @thread_2

Код для перезапуска этого клео -
:reload
wait 20
if 1@ == 1
then
0AAA: 0@ = thread 'Potok' pointer
if
0@ > 0
then
0ABA: end_custom_thread_named 'Potok'
0AF8: samp add_message_to_chat "reloaded!" color 0xFFAACC
0A92: create_custom_thread "file.cs"
0@ = 1
1@ = 0
wait 1000
end
end
jump @reload

После перезапуска клео этим фрагментом кода команды этого скрипта перестают работать.В чём может быть дело?
 

hnnssy

Известный
Друг
2,684
2,748
в строке 0A92: create_custom_thread "file.cs" укажи имя скрипта, который нужно перезагружать
 

MrAntow

Новичок
59
16
Неа, перезагрузка вшита в исходный клео, но оформлена отдельным потоком через 0C6A: 3@(5@,4i) = create_custom_thread_at_label @reload
 

hnnssy

Известный
Друг
2,684
2,748
а, всё, смог в этой нечитаемой куче говна разглядеть подключение потока
 

woksonal

Известный
Проверенный
268
154
Подскажите, как можно решить такую проблему:

Есть основной код -
03A4: name_thread "Potok"

0000:NOP

repeat
wait 0
until SAMP.Available()

var
3@(5@,4i) : integer
4@(5@,4i) : integer
end

0B34: samp register_client_command "com1" to_label @com1
0B34: samp register_client_command "rel" to_label @reload_start
5@ = 0
0C6A: 3@(5@,4i) = create_custom_thread_at_label @reload
0C6C: set_thread 3@(5@,4i) local_var 1 = 0
5@ = 1
0C6A: 3@(5@,4i) = create_custom_thread_at_label @thread_1
5@ = 2
0C6A: 3@(5@,4i) = create_custom_thread_at_label @thread_2

repeat
wait 0
if 30@ == 1
then
30@ = 0
0ac8: alloc 1@ size 256
:lylka
5@ = 1
if 20@ == 0
then
0ad3: format_stirng 1@ = "{FF0000}Пункт1%c" 0xA
else
0ad3: format_stirng 1@ = "{00FF00}Пункт1%c" 0xA
end
5@ = 2
if 21@ == 0
then
0ad3: format_stirng 1@ = "%s{FF0000}Пункт2%c" 1@ 0xA
else
0ad3: format_stirng 1@ = "%s{00FF00}Пункт2%c" 1@ 0xA
end
5@ = 3
if 22@ == 0
then
0ad3: format_stirng 1@ = "%s{FF0000}Пункт3%c" 1@ 0xA
else
0ad3: format_stirng 1@ = "%s{00FF00}Пункт3%c" 1@ 0xA
end
0B3B: samp show_dialog id 45 caption "" text 1@ button_1 "Вкл/Выкл" button_2 "Закрыть" style 2
free 1@
0B49: samp set_current_dialog_list_item 7@
repeat
wait 0
if 0B3C: samp is_dialog_responded id 45 button 6@ list_item 7@ input_text 0
then
if 6@ == 1
then
// { ----------------------------- }
if 7@ == 0
then
// { -------------------------- }
5@ = 1
if 20@ == 0
then
20@ = 1
else
20@ = 0
end
// { -------------------------- }
end
// { ----------------------------- }
if 7@ == 1
then
// {-------------------------- }
5@ = 2
if 21@ == 0
then
21@ = 1
else
21@ = 0
end
// { -------------------------- }
end
if 7@ == 2
then
5@ = 3
if 22@ == 0
then
22@ = 1
else
22@ = 0
end
// { -------------------------- }
end
jump @Lylka
else
break
end
end
until false
0BA4: dialog 45 free
end
until false

:bort_pc
30@ = 1
SAMP.CmdRet()

:reload_start
5@ = 0
0C6C: set_thread 3@(5@,4i) local_var 1 = 1
SAMP.CmdRet()

:reload
wait 20
if 1@ == 1
then
0AAA: 0@ = thread 'AutoP' pointer
if
0@ > 0
then
0ABA: end_custom_thread_named 'Main'
0AF8: samp add_message_to_chat "autopilot! reloaded!" color 0xFFAACC
0A92: create_custom_thread "file.cs"
0@ = 1
1@ = 0
wait 1000
end
end
jump @reload

:thread_1
wait 0
if 0@ == 1
then
0AF8: samp add_message_to_chat "1" color //0xFFF235
wait 1000
end
jump @thread_1

:thread_2
wait 0
if 0@ == 1
then
0AF8: samp add_message_to_chat "2" color 0xFFF235//0xFF2B32
wait 1000
end
jump @thread_2

Код для перезапуска этого клео -
:reload
wait 20
if 1@ == 1
then
0AAA: 0@ = thread 'Potok' pointer
if
0@ > 0
then
0ABA: end_custom_thread_named 'Potok'
0AF8: samp add_message_to_chat "reloaded!" color 0xFFAACC
0A92: create_custom_thread "file.cs"
0@ = 1
1@ = 0
wait 1000
end
end
jump @reload

После перезапуска клео этим фрагментом кода команды этого скрипта перестают работать.В чём может быть дело?
0ABA: end_custom_thread_named 'Potok'
этот опкод у меня не работал, попробуй сделать так

// call @ThreadKill 1 0@ указатель на поток

:ThreadKill
0@ += 20 // ip
0A9F: 30@ = current_thread_pointer
30@ += 16 // base ip
0A8D: 31@ = read_memory 30@ size 4 virtual_protect 1
000E: 31@ -= @1
0A8C: write_memory 0@ size 4 value 31@ virtual_protect 0
ret 0

:1
0A93: end_custom_thread
 

MrAntow

Новичок
59
16
Очень странно.Опкоды в repeat..until false как-то влияют на перезапуск, но что именно вызывает проблему - не понятно
 

kuleer

Участник
86
13
Каким опкодом можно проверить стоит ли игрок на земле? именно на земле, не под текстурой