Всем привет, хочу написать скрипт который мониторит чат и при нахождении определённой строки достаёт из неё переменную и ищет её в ини файле, после нахождения берёт координаты и ставит чекпоинт, вот код который я написал, он просто не работает(
Код:// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013 {$CLEO .cs} //-------------MAIN--------------- 0000: NOP :READ_2 0001: wait 100 ms 0AFA: is_samp_available 004D: jump_if_false @READ_2 0B34: samp register_client_command "/hs" to_label @READ_90 0B34: samp register_client_command "/hsoff" to_label @READ_42 :READ_42 0B43: samp cmd_ret 03A4: name_thread 'READ' 0001: wait 0 ms 00D6: if 0AAB: file_exists "CLEO\Housess.ini" 004D: jump_if_false @READ_291 :READ_90 0001: wait 0 ms 0AC8: 0@ = allocate_memory_size 256 0AD3: 0@ = format "Внимание! В доме 228 сработала сигнализация!" 0AC8: 1@ = allocate_memory_size 24 0AA5: call 8528045 num_params 1 pop 1 "Внимание! В доме %d сработала сигнализация!!" 0AF0: 4@ = get_int_from_ini_file "CLEO\Housess.ini" section "Houses" key "%d" 018A: 4@ = create_checkpoint_at 14@ 15@ 16@ 0AC9: free_allocated_memory 0@ 0AC9: free_allocated_memory 1@ 0A93: end_custom_thread :READ_291 0001: wait 0 ms 0AF8: samp add_message_to_chat "{FFFFFF}Файл с домами не найден." color 16777215 0A93: end_custom_thread
{$CLEO}
0000:
alloc 1@ 256
int 3@
int 4@
repeat
wait 0
until samp.Available()
0b34: "cmd" @SCRIPT_ACTIVATION
while true
wait 0
if 0@ == 1
then
0B75: samp get_chat_string 99 text_to 1@ prefix_to 0 color_to 0 prefix_color_to 0
if 0AD4: 2@ = scan_string 1@ format "string wich you want to find %d" 3@
then
if 3@ == 4@
then
0AF0: 4@ = get_int_from_ini_file "CLEO\ini name.ini" section "sec" key "key"
018A: 5@ = create_checkpoint_at 14@ 15@ 16@
end
end
end
0@ = 0
end
:SCRIPT_ACTIVATION
0B12: 0@ = 0@ XOR 1
cmdret
Из ини файлаоткуда он берет координаты я так и не понялCLEO:{$CLEO} 0000: alloc 1@ 256 int 3@ int 4@ repeat wait 0 until samp.Available() 0b34: "cmd" @SCRIPT_ACTIVATION while true wait 0 if 0@ == 1 then 0B75: samp get_chat_string 99 text_to 1@ prefix_to 0 color_to 0 prefix_color_to 0 if 0AD4: 2@ = scan_string 1@ format "string wich you want to find %d" 3@ then if 3@ == 4@ then 0AF0: 4@ = get_int_from_ini_file "CLEO\ini name.ini" section "sec" key "key" 018A: 5@ = create_checkpoint_at 14@ 15@ 16@ end end end 0@ = 0 end :SCRIPT_ACTIVATION 0B12: 0@ = 0@ XOR 1 cmdret
Из ини файла
[Houses]
217 = 2659.1782,-2414.0164,13.6276
{$CLEO}
0000:
alloc 1@ 256
int 3@
int 4@
alloc 5@ 256
repeat
wait 0
until samp.Available()
0b34: "cmd" @SCRIPT_ACTIVATION
while true
wait 0
if 0@ == 1
then
0B75: samp get_chat_string 99 text_to 1@ prefix_to 0 color_to 0 prefix_color_to 0
if 0AD4: 2@ = scan_string 1@ format "string wich you want to find %d" 3@
then
if 3@ == 4@
then
0AF4: 5@ = read_string_from_ini_file "cleo\config.ini" section "SectionName" key "stringKey"
0AD4: 10@ = scan_string 5@ format "%f,%f,%f" 14@ 15@ 16@
018A: 6@ = create_checkpoint_at 14@ 15@ 16@
end
end
end
0@ = 0
end
:SCRIPT_ACTIVATION
0B12: 0@ = 0@ XOR 1
cmdret
Из ини файла
[Houses]
217 = 2659.1782,-2414.0164,13.6276
И как это сделать?так, погоди, он должен сравнивать кей с значением из чата, а не значение из ини
Привет. При использовании хука стало крашить после ввода команды:
CLEO::razz Samp.IsCommandTyped(0@) if 0AD4: 1@ = scan_string 0@ format "%d" 2@ then if Samp.IsPlayerConnected(2@) then 3@ = Samp.GetPlayerScore(2@) if 3@ <= 4 then say "/первое %d" 2@ else say "/второе %d" 2@ end else chatmsg "Игрок с ID: %d не найден" -1 2@ end end Samp.CmdRet()
CLEO::amm 28@ = Samp.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR) 0B36: samp 29@ = get_player_nickname 28@ 0BE5: raknet 0@ = get_hook_param 1 00D6: if 0039: 0@ == 93 then 0BE5: raknet 1@ = get_hook_param 0 0BEB: raknet bit_stream 1@ ignore_bits 32 0BE7: raknet 2@ = bit_stream_read 1@ type 3 0BE8: raknet bit_stream 1@ read_array 3@ size 2@ 0C1E: array 3@ element 2@ el_size 1 = 0 0AD3: 8@ = format "raz %s" 29@ if 0C18: 0 = strstr string1 3@ string2 8@ then //code end 0AD3: 8@ = format "dva %s" 29@ if 0C18: 0 = strstr string1 3@ string2 8@ then //code end 0AD3: 8@ = format "tri %s" 29@ if 0C18: 0 = strstr string1 3@ string2 8@ then //code end 0AD3: 8@ = format "4 %s" 29@ if 0C18: 0 = strstr string1 3@ string2 8@ then //code end end 0BE0: raknet hook_ret 1
слушайте, сударь, здесь люди по делу спрашивают, а не заказывают скрипты, для этого есть другая темаВ общем в клео вообще не шарю.
Помогите сделать скрипт, который будет по нажатию клавиши активации (Допустим F1) последовательно нажимать Alt и Enter до того времени, как я снова не нажму клавишу деактивации.
под 8@ память выделена? и перед каждым 0AD3 заполняй её лучше нулями через 0C11CLEO::amm 28@ = Samp.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR) 0B36: samp 29@ = get_player_nickname 28@ 0BE5: raknet 0@ = get_hook_param 1 00D6: if 0039: 0@ == 93 then 0BE5: raknet 1@ = get_hook_param 0 0BEB: raknet bit_stream 1@ ignore_bits 32 0BE7: raknet 2@ = bit_stream_read 1@ type 3 0BE8: raknet bit_stream 1@ read_array 3@ size 2@ 0C1E: array 3@ element 2@ el_size 1 = 0 0AD3: 8@ = format "raz %s" 29@ if 0C18: 0 = strstr string1 3@ string2 8@ then //code end 0AD3: 8@ = format "dva %s" 29@ if 0C18: 0 = strstr string1 3@ string2 8@ then //code end 0AD3: 8@ = format "tri %s" 29@ if 0C18: 0 = strstr string1 3@ string2 8@ then //code end 0AD3: 8@ = format "4 %s" 29@ if 0C18: 0 = strstr string1 3@ string2 8@ then //code end end 0BE0: raknet hook_ret 1
Серьёзно? Покупать клео, в котором одна строка? Поэтому я и написал сюдаслушайте, сударь, здесь люди по делу спрашивают, а не заказывают скрипты, для этого есть другая тема
Серьёзно? Покупать клео, в котором одна строка? Поэтому я и написал сюда
{$CLEO}
0000:
while true
wait 0
if 0C89: key_just_pressed 112
then
repeat
wait 0
0B56: set_game_key 21 state 255
wait 25
0C72: set_virtual_key 13 down true
0C72: set_virtual_key 13 down false
until 0C89: key_just_pressed 112
end
end
Память выделена.под 8@ память выделена? и перед каждым 0AD3 заполняй её лучше нулями через 0C11
и да, не используй одни и те же переменные в хуке и команде
Подскажите опкод для того что бы в SF консоли активировать скрипт
0C63: register_console_command "command" to_label @label
while true
wait 0
if 0@ == 1
then
{code}
end
0@ = 0
end
:label
0B12: 0@ = 0@ XOR 1
cmdret
opcodes - 0c11 | BlastHack — DEV_WIKI(https://blast.hk/wiki/opcodes:0c11?s[]=0c11)Про 0С11 можно более подробно?