А что бывают другие в CLEO? Что ты мне свой код кидаешь. Я тебе мягко говоря скажу, в коде нет ничего правильного.
String/LongString бывает. Мне они и нужны, а ещё нужна переменная класса Actor.
А что бывают другие в CLEO? Что ты мне свой код кидаешь. Я тебе мягко говоря скажу, в коде нет ничего правильного.
Строки в переменных не хранятся, каждая переменная в CLEO - это четырёх байтовый участок памяти в котором могут храниться целые и дробные числа. Строки хранятся в переменных в форме указателей (*), т.е. адрес памяти где начинается первый символ и завершается терминирующим нулём.String/LongString бывает. Мне они и нужны, а ещё нужна переменная класса Actor.
Это мне известно. Но как тогда получить значение этих переменных в байтах или хотя-бы адрес в памяти? Точнее, как тогда выйти из этой ситуации?Строки в переменных не хранятся, каждая переменная в CLEO - это четырёх байтовый участок памяти в котором могут храниться целые и дробные числа. Строки хранятся в переменных в форме указателей (*), т.е. адрес памяти где начинается первый символ и завершается терминирующим нулём.
Ну например использовать эти опкоды.Это мне известно. Но как тогда получить значение этих переменных в байтах или хотя-бы адрес в памяти?
0AAA: 0@ = thread "OTB" pointer
0A9F: 0@ = current_thread_pointer
Немного не понял, что эти опкоды дают. И как ими пользоваться, есть примеры?Ну например использовать эти опкоды.
CLEO:0AAA: 0@ = thread "OTB" pointer 0A9F: 0@ = current_thread_pointer
А как ты собрался получать переменные из других потоков не имея указателей на них?Немного не понял, что эти опкоды дают. И как ими пользоваться, есть примеры?
А как ты собрался получать переменные из других потоков не имея указателей на них?
А как ты собрался получать переменные из других потоков не имея указателей на них?
0B35: samp 0@ = get_last_command_param
0AD4: 20@ = scan_string 0@ format "%d %s %s" 1@ 22@ 23@
say "TESTCHAT %s %s" 22@s 23@s
Нельзя строку на строку сканировать. sscanf используй.Привет, у меня возникла проблема.
CLEO:0B35: samp 0@ = get_last_command_param 0AD4: 20@ = scan_string 0@ format "%d %s %s" 1@ 22@ 23@ say "TESTCHAT %s %s" 22@s 23@s
Если я пишу /{команда} {число} INT_HOUSE wash_up, то в чате появляется это - "TESTCHAT INT_wash wash_up". Не знаете, в чём проблема?
:2
alloc 2@ 128
alloc 3@ 128
IF 0B35: samp 0@ = get_last_command_params
THEN
0AA5: call 0x8220AD num_params 5 pop 5 params 3@ 2@ 1@v "%d %s %s" 0@
00D6: if and
0B23: samp is_player_connected 1@
8B64: not samp is_player 1@ npc
004D: jump_if_false @CMDError1
0B20: samp 4@ = actor_handle_by_samp_player_id 1@
056D: actor 4@ defined
004D: jump_if_false @CMDError2
04ED: load_animation "%s" 2@
wait 1000
chatmsg "[TESTCMD]: ID: %d FILE: %s ANIMATION: %s" -1 1@ 2@ 3@
0A1A: actor 4@ perform_animation "%s" IFP "%s" framedelta 4.0 loop 1 lockX 0 lockY 0 lockF 0 time -1 3@ 2@
04EF: release_animation "%s" 2@
ELSE
0AF8: samp add_message_to_chat "{ffffff}Ââîäèòå /anim [id] [file] [animation]" color 0xFFFFFF
END
0AC9: free_allocated_memory 2@
0AC9: free_allocated_memory 3@
SAMP.CmdRet()
0A1A не поддерживает форматирование.Я похоже задолбал тут всех. Но анимация не воспроизводится на игроке. Хотя ввожу всё верно (/anim {id} INT_HOUSE wash_up) и выводится на экран мне всё верно.
CLEO::2 alloc 2@ 128 alloc 3@ 128 IF 0B35: samp 0@ = get_last_command_params THEN 0AA5: call 0x8220AD num_params 5 pop 5 params 3@ 2@ 1@v "%d %s %s" 0@ 00D6: if and 0B23: samp is_player_connected 1@ 8B64: not samp is_player 1@ npc 004D: jump_if_false @CMDError1 0B20: samp 4@ = actor_handle_by_samp_player_id 1@ 056D: actor 4@ defined 004D: jump_if_false @CMDError2 04ED: load_animation "%s" 2@ wait 1000 chatmsg "[TESTCMD]: ID: %d FILE: %s ANIMATION: %s" -1 1@ 2@ 3@ 0A1A: actor 4@ perform_animation "%s" IFP "%s" framedelta 4.0 loop 1 lockX 0 lockY 0 lockF 0 time -1 3@ 2@ 04EF: release_animation "%s" 2@ ELSE 0AF8: samp add_message_to_chat "{ffffff}Ââîäèòå /anim [id] [file] [animation]" color 0xFFFFFF END 0AC9: free_allocated_memory 2@ 0AC9: free_allocated_memory 3@ SAMP.CmdRet()
04ED: load_animation 2@
0A1A: actor 4@ perform_animation 3@ IFP 2@ framedelta 4.0 loop 1 lockX 0 lockY 0 lockF 0 time -1
04EF: release_animation 2@
0AA5: call 0x823BDB num_params 3 pop 3 0 0 0Можно как то закрыть процесс gta_sa.exe ?
0000: NOP
while not SAMP.Available()
wait 100
end
0B34: samp register_client_command "teest" to_label @Xor
while true
wait 0
if 0@ == 1
then
03F0: enable_text_draw 1
0AC8: 10@ = allocate_memory_size 256
0AC8: 11@ = allocate_memory_size 256
0AC8: 12@ = allocate_memory_size 256
0AB1: call_scm_func @Main 0 1@ 2@
0AD3: 10@ = format "Äèàëîã: %d" 1@
0AD3: 11@ = format "Èíòåðååð: %d" 2@
0AC9: free_allocated_memory 10@
0AC9: free_allocated_memory 11@
0AC9: free_allocated_memory 12@
0B6F: render font 0 draw_text 11@ pos 500 550 color 0xFFFFFFFF
end
end
:Main
0B4E: samp 1@ = get_current_dialog_id
077E: get_active_interior_to 2@
0AB2: ret 2 1@ 2@
:Xor
0B12: 0@ = 0@ XOR 1
00D6: if
0039: 0@ == 1
0B43: samp cmd_ret
шрифт надо в начале регистрировать и ещё куча херни.Помогите что не так ?
Код:0000: NOP while not SAMP.Available() wait 100 end 0B34: samp register_client_command "teest" to_label @Xor while true wait 0 if 0@ == 1 then 03F0: enable_text_draw 1 0AC8: 10@ = allocate_memory_size 256 0AC8: 11@ = allocate_memory_size 256 0AC8: 12@ = allocate_memory_size 256 0AB1: call_scm_func @Main 0 1@ 2@ 0AD3: 10@ = format "Äèàëîã: %d" 1@ 0AD3: 11@ = format "Èíòåðååð: %d" 2@ 0AC9: free_allocated_memory 10@ 0AC9: free_allocated_memory 11@ 0AC9: free_allocated_memory 12@ 0B6F: render font 0 draw_text 11@ pos 500 550 color 0xFFFFFFFF end end :Main 0B4E: samp 1@ = get_current_dialog_id 077E: get_active_interior_to 2@ 0AB2: ret 2 1@ 2@ :Xor 0B12: 0@ = 0@ XOR 1 00D6: if 0039: 0@ == 1 0B43: samp cmd_ret
{$CLEO}
0000: NOP
0B6D: render 30@ = create_font "Tahoma" height 8 flags 0xD
while not SAMP.Available()
wait 100
end
0B34: samp register_client_command "test" to_label @Xor
while true
wait 0
if 0@ == 1
then
03F0: enable_text_draw 1
0AC8: 10@ = allocate_memory_size 256
0AB1: call_scm_func @Main 0 1@ 2@
0AD3: 10@ = format "Èíòåðüåð: %d Äèàëîã: %d" 2@ 1@
0B6F: render font 30@ draw_text 10@ pos 500 550 color 0xFFFFFFFF
0AC9: free_allocated_memory 10@
end
end
:Main
0B4E: samp 1@ = get_current_dialog_id
077E: get_active_interior_to 2@
0AB2: ret 2 1@ 2@
:Xor
0B12: 0@ = 0@ XOR 1
0B43: samp cmd_ret