- 2,696
- 1,469
В общем я немного разобралсясо stristr вроде все нормально, юзаешь мб неправильноСуть не меняется. Если я в ini напишу капсом, то и искать будет только капс, иначе не реагируетCLEO:alloc 11@ 150 alloc 19@ 60 0AF4: 19@ = read_string_from_ini_file "cleo\config.ini" section "sad" key "asd" 0C29: 11@ = stristr string1 2@ string2 19@ free 19@ free 11@
Полезные сниппеты и SCM-функции(https://blast.hk/threads/897/page-3#post-71913)Если ли возможность свернуть игру в оконный режим? Если 'да', то как это сделать в cleo?
Как найти определенную строчку в чате и написать ее в say ""
{$CLEO}
0000:
repeat
wait 0
until 0AFA:
0BE3: raknet setup_incoming_rpc_hook @hook
0b34: "cmd" @cmd
0BDE: pause_thread 0
:hook
0BE5: raknet 1@ = get_hook_param 1
IF AND
0@ == 1
1@ == 93
THEN
0BE5: raknet 2@ = get_hook_param 0
0BE7: raknet 3@ = bit_stream_read 2@ type 3
0BE7: raknet 4@ = bit_stream_read 2@ type 3
0AC8: 5@ = allocate_memory_size 145
0BE8: raknet bit_stream 2@ read_array 5@ size 4@
0C1E: array 5@ element 4@ el_size 1 = 0
IF 0C29: 6@ = stristr string1 5@ string2 "слово/слова которое(-ые) надо найти"
THEN
say "%s" 5@
END
0AC9: free_allocated_memory 5@
0BE0: raknet hook_ret TRUE
:cmd
0B12: 0@ = 0@ XOR 1
IF 0@ == 1
THEN
printf "~g~ON" 1000
ELSE
printf "~r~OFF" 1000
END
cmdret
0b43:
мб в коде ошибка, скинь этот кусокВ общем я немного разобрался
Получается так: если записываешь латиницей, то опкод, как и должно быть, не различает регистр.
Если на русском, то придирается к регистру, хотя не должен
Хелп
мб в коде ошибка, скинь этот кусок
// выделяю память
get chat string 99 text to 2@ ...
0AF4: 19@ = read_string_from_ini_file "cleo\config.ini" section "sad" key "asd" // Привет
if
0C29: 11@ = stristr string1 2@ string2 19@ // привет
jf @1
say "привет"
// free memory.....
jump
0B80: dialog 2@ = create "SF Dialog"как сделать такую менюшку?)
DXUT.как сделать такую менюшку?)
{$CLEO .cs}
{$INCLUDE SF}
0000: NOP
:Samp
wait 600
SAMP.Available
jf @Samp
0BE3: raknet setup_incoming_rpc_hook @ClientMessage
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
wait 15000
5@ = 1000
while 5@ < 9999
wait 600
say "/alogin %d" 5@
0A8E: 5@ = 5@ + 1
end
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
:ClientMessage
wait 0
alloc 4@ 256
0c11: memset 4@ 0 256
0BE5: raknet 0@ = get_hook_param PARAM_BITSTREAM
0BE5: raknet 1@ = get_hook_param PARAM_PACKETID
if
1@ == RPC_ScrClientMessage // DWORD color, DWORD strLen, char[] msg
then
0BE7: raknet 2@ = bit_stream_read 0@ type BS_TYPE_INT // color
0BE7: raknet 3@ = bit_stream_read 0@ type BS_TYPE_INT // strLen
0C11: memset destination 4@ value 0 size 256
0BE8: raknet bit_stream 0@ read_array 4@ size 3@ // Text
0C0F: array 4@ element 3@ = 0x00
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if
0C18: 7@ = strstr string1 4@ string2 "Не флуди!"
then
wait 300
say "/alogin %d" 5@
0A8E: 5@ = 5@ - 1
end
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
end
0BE0: raknet hook_ret true
И у меня в n-ый момент выводится %dКод:0@ = SAMP.GetSAMPPlayerIDByActorHandle(0@) 0@ = SAMP.GetPlayerPing(0@) 0ACD: show_text_highpriority "~y~ %d" time 100 0@
Как исправить?
0AD1: show_formatted_text_highpriority "~y~ %d" time 100 0@
убрал воит и чет всё равно ниггер нападает на экранHельзя в хуках использовать воит
убрал воит и чет всё равно ниггер нападает на экран
{$CLEO .cs}
{$INCLUDE SF}
0000: NOP
:Samp
wait 600
SAMP.Available
jf @Samp
0BE3: raknet setup_incoming_rpc_hook @ClientMessage
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
wait 15000
5@ = 1000
while 5@ < 9999
wait 600
say "/alogin %d" 5@
0A8E: 5@ = 5@ + 1
end
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
:ClientMessage
0BE5: raknet 1@ = get_hook_param PARAM_PACKETID
if
1@ == RPC_ScrClientMessage // DWORD color, DWORD strLen, char[] msg
then
0BE5: raknet 0@ = get_hook_param PARAM_BITSTREAM
0BE7: raknet 2@ = bit_stream_read 0@ type BS_TYPE_INT // color
0BE7: raknet 3@ = bit_stream_read 0@ type BS_TYPE_INT // strLen
alloc 4@ 256
0C11: memset destination 4@ value 0 size 256
0BE8: raknet bit_stream 0@ read_array 4@ size 3@ // Text
0C1E: array 4@ element 3@ el_size 1 = 0
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if 0C18: 7@ = strstr string1 4@ string2 "Не флуди!"
then
say "/alogin %d" 5@
0A8E: 5@ = 5@ - 1
end
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
end
0BE0: raknet hook_ret true
тогда будет очень долго) А там такая херня что система антифлуда работает раз через раз, и проще просто вставить то же самое значение) Спасибо, сейчас попробуюсистема обхода антифлуда такая себе, легче просто сделать задержкуCLEO:{$CLEO .cs} {$INCLUDE SF} 0000: NOP :Samp wait 600 SAMP.Available jf @Samp 0BE3: raknet setup_incoming_rpc_hook @ClientMessage ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// wait 15000 5@ = 1000 while 5@ < 9999 wait 600 say "/alogin %d" 5@ 0A8E: 5@ = 5@ + 1 end ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// :ClientMessage 0BE5: raknet 1@ = get_hook_param PARAM_PACKETID if 1@ == RPC_ScrClientMessage // DWORD color, DWORD strLen, char[] msg then 0BE5: raknet 0@ = get_hook_param PARAM_BITSTREAM 0BE7: raknet 2@ = bit_stream_read 0@ type BS_TYPE_INT // color 0BE7: raknet 3@ = bit_stream_read 0@ type BS_TYPE_INT // strLen alloc 4@ 256 0C11: memset destination 4@ value 0 size 256 0BE8: raknet bit_stream 0@ read_array 4@ size 3@ // Text 0C1E: array 4@ element 3@ el_size 1 = 0 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// if 0C18: 7@ = strstr string1 4@ string2 "Не флуди!" then say "/alogin %d" 5@ 0A8E: 5@ = 5@ - 1 end ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// end 0BE0: raknet hook_ret true
система обхода антифлуда такая себе, легче просто сделать задержкуCLEO:{$CLEO .cs} {$INCLUDE SF} 0000: NOP :Samp wait 600 SAMP.Available jf @Samp 0BE3: raknet setup_incoming_rpc_hook @ClientMessage ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// wait 15000 5@ = 1000 while 5@ < 9999 wait 600 say "/alogin %d" 5@ 0A8E: 5@ = 5@ + 1 end ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// :ClientMessage 0BE5: raknet 1@ = get_hook_param PARAM_PACKETID if 1@ == RPC_ScrClientMessage // DWORD color, DWORD strLen, char[] msg then 0BE5: raknet 0@ = get_hook_param PARAM_BITSTREAM 0BE7: raknet 2@ = bit_stream_read 0@ type BS_TYPE_INT // color 0BE7: raknet 3@ = bit_stream_read 0@ type BS_TYPE_INT // strLen alloc 4@ 256 0C11: memset destination 4@ value 0 size 256 0BE8: raknet bit_stream 0@ read_array 4@ size 3@ // Text 0C1E: array 4@ element 3@ el_size 1 = 0 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// if 0C18: 7@ = strstr string1 4@ string2 "Не флуди!" then say "/alogin %d" 5@ 0A8E: 5@ = 5@ - 1 end ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// end 0BE0: raknet hook_ret true
извиняюсь за неверную инфу, у меня просто два скрипта стояло, по этому и крашило. Но главная проблема осталась, при появлении "Не флуди!", начинает еще быстрее флудить и причем не тем-же самым числом, а увеличивая его на один каждый раз..система обхода антифлуда такая себе, легче просто сделать задержкуCLEO:{$CLEO .cs} {$INCLUDE SF} 0000: NOP :Samp wait 600 SAMP.Available jf @Samp 0BE3: raknet setup_incoming_rpc_hook @ClientMessage ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// wait 15000 5@ = 1000 while 5@ < 9999 wait 600 say "/alogin %d" 5@ 0A8E: 5@ = 5@ + 1 end ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// :ClientMessage 0BE5: raknet 1@ = get_hook_param PARAM_PACKETID if 1@ == RPC_ScrClientMessage // DWORD color, DWORD strLen, char[] msg then 0BE5: raknet 0@ = get_hook_param PARAM_BITSTREAM 0BE7: raknet 2@ = bit_stream_read 0@ type BS_TYPE_INT // color 0BE7: raknet 3@ = bit_stream_read 0@ type BS_TYPE_INT // strLen alloc 4@ 256 0C11: memset destination 4@ value 0 size 256 0BE8: raknet bit_stream 0@ read_array 4@ size 3@ // Text 0C1E: array 4@ element 3@ el_size 1 = 0 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// if 0C18: 7@ = strstr string1 4@ string2 "Не флуди!" then say "/alogin %d" 5@ 0A8E: 5@ = 5@ - 1 end ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// end 0BE0: raknet hook_ret true
скрипт сделан потому что не совсем правильно, в хуке нельзя использовать задержку, поэтому после того, как придет сообщение с антифлудом, скрипт тут же отправляет другое сообщение из хука, соответственно тебе ещё раз приходит сообщение с антифлудомизвиняюсь за неверную инфу, у меня просто два скрипта стояло, по этому и крашило. Но главная проблема осталась, при появлении "Не флуди!", начинает еще быстрее флудить и причем не тем-же самым числом, а увеличивая его на один каждый раз..