- 2,865
- 1,649
ПОпробуй русские буквы не юзать в iniЯ в этом не силен.
Можешь пример скинуть?
ПОпробуй русские буквы не юзать в iniЯ в этом не силен.
Можешь пример скинуть?
Цикл вызывается кучу раз из-за того что строка не меняется и число инкрементится несколько раз подряд. Ставь хукНе работает. Все равно рандомное число добавляет
В том что ты херню мутишьalloc 1@ 128
1@ *= 60000
wait 1@
в чем проблема
opcodes - 0b39 | BlastHack — DEV_WIKI(https://blast.hk/wiki/opcodes:0b39)Здорова всем, как сделать проверку играем ли мы на указанном сервере либо нет? Если мы играем на указанном сервере (указанном по ип и порт) тогда скрипт будет работать, а если мы не играем на указанном сервере тогда напишет сообщение в чат типа такого: chatmsg "Скрипт доступен только на указанном сервере" -1
Не помогло.ПОпробуй русские буквы не юзать в ini
Цикл вызывается кучу раз из-за того что строка не меняется и число инкрементится несколько раз подряд. Ставь хук
В том что ты херню мутишь
opcodes - 0b39 | BlastHack — DEV_WIKI(https://blast.hk/wiki/opcodes:0b39)
Дальше сам
Можно костыль сделать (16 строка)Что за хук? Можешь помочь? :)
{$CLEO}
0000:
repeat
wait 0
until samp.Available()
while true
wait 0
alloc 1@ 256
0B75: samp get_chat_string 99 text_to 1@ prefix_to 0 color_to 0 prefix_color_to 0
if 0C18: 2@ = strstr string1 1@ string2 "ТЕКСТ"
then
0AF0: 3@ = get_int_from_ini_file "cleo\Файл.ini" section "Счетчик" key "Кол-во"
000A: 3@ += 1
0AF1: write_int 3@ to_ini_file "cleo\Файл.ini" section "Счетчик" key "Кол-во"
chatmsg "запись сделана" -1 // Сбиваешь 99 строку любым сообщением, чтоб не было повторений
end
free 1@
end
{$CLEO}
{$INCLUDE SF}
0000:
IF 8AAB: file_exists "CLEO\test.ini"
THEN
0AF1: write_int 0 to_ini_file "cleo\test.ini" section "Counter" key "Key"
END
0BE3: raknet setup_incoming_rpc_hook @hook
0bde: 0
:hook
0BE5: raknet 0@ = get_hook_param PARAM_PACKETID
IF 0@ == RPC_SCRCLIENTMESSAGE
THEN
0BE5: raknet 0@ = get_hook_param PARAM_BITSTREAM
0BE7: raknet 1@ = bit_stream_read 0@ type BS_TYPE_INT
0BE7: raknet 2@ = bit_stream_read 0@ type BS_TYPE_INT
alloc 3@ 125
0BE8: raknet bit_stream 0@ read_array 3@ size 2@
0C1E: struct 3@ offset 2@ size 1 = 0
IF 0C18: 33@ = strstr string1 3@ string2 "ТЕКСТ"
THEN
0AF0: 4@ = get_int_from_ini_file "cleo\test.ini" section "Counter" key "Key"
000A: 4@ += 1
0AF1: write_int 4@ to_ini_file "cleo\test.ini" section "Counter" key "Key"
END
free 3@
END
0BE0: raknet hook_ret TRUE
Можно костыль сделать (16 строка)
CLEO:{$CLEO} 0000: repeat wait 0 until samp.Available() while true wait 0 alloc 1@ 256 0B75: samp get_chat_string 99 text_to 1@ prefix_to 0 color_to 0 prefix_color_to 0 if 0C18: 2@ = strstr string1 1@ string2 "ТЕКСТ" then 0AF0: 3@ = get_int_from_ini_file "cleo\Файл.ini" section "Счетчик" key "Кол-во" 000A: 3@ += 1 0AF1: write_int 3@ to_ini_file "cleo\Файл.ini" section "Счетчик" key "Кол-во" chatmsg "запись сделана" -1 // Сбиваешь 99 строку любым сообщением, чтоб не было повторений end free 1@ end
Работает. Спасибо ^^CLEO:{$CLEO} {$INCLUDE SF} 0000: IF 8AAB: file_exists "CLEO\test.ini" THEN 0AF1: write_int 0 to_ini_file "cleo\test.ini" section "Counter" key "Key" END 0BE3: raknet setup_incoming_rpc_hook @hook 0bde: 0 :hook 0BE5: raknet 0@ = get_hook_param PARAM_PACKETID IF 0@ == RPC_SCRCLIENTMESSAGE THEN 0BE5: raknet 0@ = get_hook_param PARAM_BITSTREAM 0BE7: raknet 1@ = bit_stream_read 0@ type BS_TYPE_INT 0BE7: raknet 2@ = bit_stream_read 0@ type BS_TYPE_INT alloc 3@ 125 0BE8: raknet bit_stream 0@ read_array 3@ size 2@ 0C1E: struct 3@ offset 2@ size 1 = 0 IF 0C18: 33@ = strstr string1 3@ string2 "ТЕКСТ" THEN 0AF0: 4@ = get_int_from_ini_file "cleo\test.ini" section "Counter" key "Key" 000A: 4@ += 1 0AF1: write_int 4@ to_ini_file "cleo\test.ini" section "Counter" key "Key" END free 3@ END 0BE0: raknet hook_ret TRUE
Есть вопрос.CLEO:{$CLEO} {$INCLUDE SF} 0000: IF 8AAB: file_exists "CLEO\test.ini" THEN 0AF1: write_int 0 to_ini_file "cleo\test.ini" section "Counter" key "Key" END 0BE3: raknet setup_incoming_rpc_hook @hook 0bde: 0 :hook 0BE5: raknet 0@ = get_hook_param PARAM_PACKETID IF 0@ == RPC_SCRCLIENTMESSAGE THEN 0BE5: raknet 0@ = get_hook_param PARAM_BITSTREAM 0BE7: raknet 1@ = bit_stream_read 0@ type BS_TYPE_INT 0BE7: raknet 2@ = bit_stream_read 0@ type BS_TYPE_INT alloc 3@ 125 0BE8: raknet bit_stream 0@ read_array 3@ size 2@ 0C1E: struct 3@ offset 2@ size 1 = 0 IF 0C18: 33@ = strstr string1 3@ string2 "ТЕКСТ" THEN 0AF0: 4@ = get_int_from_ini_file "cleo\test.ini" section "Counter" key "Key" 000A: 4@ += 1 0AF1: write_int 4@ to_ini_file "cleo\test.ini" section "Counter" key "Key" END free 3@ END 0BE0: raknet hook_ret TRUE
IF OR
0C18: 33@ = strstr string1 3@ string2 "ТЕКСТ"
0C18: 33@ = strstr string1 3@ string2 "ТЕКСТ 2"
THEN
...
END
Допустим чтобы сделать 5 текстов достаточно будет одного OR?@NookieONE
CLEO:IF OR 0C18: 33@ = strstr string1 3@ string2 "ТЕКСТ" 0C18: 33@ = strstr string1 3@ string2 "ТЕКСТ 2" THEN ... END
В if or можно 8 условий засунутьДопустим чтобы сделать 5 текстов достаточно будет одного OR?
Или на каждый текст свой OR
Теперь нужно чтобы в тексте нужно было вставить свой ник т.е.CLEO:{$CLEO} {$INCLUDE SF} 0000: IF 8AAB: file_exists "CLEO\test.ini" THEN 0AF1: write_int 0 to_ini_file "cleo\test.ini" section "Counter" key "Key" END 0BE3: raknet setup_incoming_rpc_hook @hook 0bde: 0 :hook 0BE5: raknet 0@ = get_hook_param PARAM_PACKETID IF 0@ == RPC_SCRCLIENTMESSAGE THEN 0BE5: raknet 0@ = get_hook_param PARAM_BITSTREAM 0BE7: raknet 1@ = bit_stream_read 0@ type BS_TYPE_INT 0BE7: raknet 2@ = bit_stream_read 0@ type BS_TYPE_INT alloc 3@ 125 0BE8: raknet bit_stream 0@ read_array 3@ size 2@ 0C1E: struct 3@ offset 2@ size 1 = 0 IF 0C18: 33@ = strstr string1 3@ string2 "ТЕКСТ" THEN 0AF0: 4@ = get_int_from_ini_file "cleo\test.ini" section "Counter" key "Key" 000A: 4@ += 1 0AF1: write_int 4@ to_ini_file "cleo\test.ini" section "Counter" key "Key" END free 3@ END 0BE0: raknet hook_ret TRUE
0AF4: 0@ = read_string_from_ini_file "cleo\config.ini" section "SectionName" key "stringKey"
0AD3: 0@ = format "TEXT %s" 1@ // 1@ - ник из файла, под 0@ тоже надо выделить память
// не забывай после операций освобождать выделенную память, если данные в переменной тебе уже не нужны
// 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
:Noname_2
0001: wait 400 ms
0AFA: is_samp_available
004D: jump_if_false @Noname_2
0B34: samp register_client_command "sboom" to_label @Noname_210
0BE2: raknet setup_outcoming_packet_hook @Noname_219
:Noname_37
0001: wait 0 ms
00D6: if
0039: 20@ == 1
004D: jump_if_false @Noname_203
0AD4: 4@ = scan_string 1@ format "%s" 2@
00D6: if and
0039: 4@ == 1
0C29: 0@ = stristr string1 2@ string2 "да"
004D: jump_if_false @Noname_203
00D6: if
00DF: actor $PLAYER_ACTOR driving
004D: jump_if_false @Noname_135
0224: set_car $PLAYER_ACTOR health_to 0
0002: jump @Noname_196
:Noname_135
0AF8: samp add_message_to_chat "{F49418}[Ошибка] {FFFFFF}Нужно находиться в транспорте" color -1
:Noname_196
0006: 20@ = 0
:Noname_203
0002: jump @Noname_37
:Noname_210
0006: 20@ = 1
0B43: samp cmd_ret
:Noname_219
0BE5: raknet 0@ = get_hook_param 1
00D6: if and
0039: 0@ == 207
0039: 20@ == 1
004D: jump_if_false @Noname_320
0BE5: raknet 1@ = get_hook_param 0
0AC8: 2@ = allocate_memory_size 69
0BE8: raknet bit_stream 1@ read_array 2@ size 69
0C0D: struct 2@ offset 63 size 2 = 1
0C0D: struct 2@ offset 65 size 2 = 1
0BEA: raknet bit_stream 1@ reset_write_pointer
0B40: raknet bit_stream 1@ write 2@ type 5 size 69
0AC9: free_allocated_memory 2@
:Noname_320
0BE0: raknet hook_ret 1
Крашит игру.бери ник из иника через
предварительно выделив под переменную память и вставляй вместо "Текст ник" эту переменную, если тебе нужно чтобы был и "текст" и ник, то форматируй в одну строку черезCLEO:0AF4: 0@ = read_string_from_ini_file "cleo\config.ini" section "SectionName" key "stringKey"
CLEO:0AD3: 0@ = format "TEXT %s" 1@ // 1@ - ник из файла, под 0@ тоже надо выделить память // не забывай после операций освобождать выделенную память, если данные в переменной тебе уже не нужны