Почему вылетает игра, когда пишу два значения?????
:cmd_int
SAMP.IsCommandTyped(20@)
0AD4: 20@ = scan_string 20@ format "%s %s %s" 16@v 18@v 25@v
if
20@ == 3
then
say "Text %s %s. ID %s" 16@v 18@v 25@v
else
say "LOH"
end
samp.CmdRet()
Настоятельно рекомендуется не сканировать строку на строку используя 0ad4CLEO:format "%s %s %s" 16@v 18@v 25@v
Информация - Гайд - Регистрация клиентских команд с помощью SAMPFUNCS(https://blast.hk/threads/17439/)Почему вылетает игра, когда пишу два значения?????
Код готов к компиляции, осталось поменять координаты на свои:Немного оффтопа, Ребзя кто шарит в клео, как вывести на экран числом запас спринта игрока?
{$CLEO}
0000:
repeat
wait 0
until SAMP.Available()
0@ = Render.CreateFont("Arial", {height}10, {flags}5)
alloc 2@ 24
while true
wait 0
if and
SAMP.IsLocalPlayerSpawned()
8BD5: samp is_scoreboard_opened
not ACTOR.Driving($PLAYER_ACTOR)
then
{h}0A8D: 1@ = read_memory 0xB7CDB4 size 4 virtual_protect 0
{n}1@ /= 31.47
{s}1@ += 4.0
{y}1@ *= 0.9615384
format 2@ "%.0f" 1@
Render.DrawText(0@ 2@ {X}300 {Y}300 {color}-1) // X Y Координаты на экране в пикселях
end
end
В его случаи - можно. Но это не хороший код.Нельзя сканировать строку на строку используя 0ad4
скажите опкод действия когда alt жмякаешь
Код киньПочему при использовании ХУКА часто вылетает игра?
Есть ли фикс?
Код кинь
{$CLEO}
{$I SF}
0000:
const
TOGGLE = 10@
TOGGLE_MOVE = 11@
BUF = 12@
end
const
hFONT = 13@
TEXT = 14@
SX = 15@
SY = 16@
NickName = 17@
end
SX = 178
SY = 756
const
YELLOW = 0xFFFF5000
end
alloc NickName 20
0AF4: NickName = read_string_from_ini_file "cleo\confing.ini" section "NickName" key ":"
0AC6: BUF = label @buffer offset
if not 0@ = SAMP.Base()
then 0A93: end_custom_thread
end
while not SAMP.Available()
wait 100
end
0B6D: render hFONT = create_font "IMPACT" height 10 flags 4
0BE3: raknet setup_incoming_rpc_hook @hook
0B34: samp register_client_command "sreset" to_label @sreset
0B34: samp register_client_command "en" to_label @toggle
0B34: samp register_client_command "move" to_label @move
while true
wait 0
if TOGGLE == false
then
call @get_values 1 buff BUF returns TEXT
0B6F: render font hFONT draw_text TEXT pos SX SY color YELLOW
end
while TOGGLE_MOVE == true
wait 0
0B5E: get_cursor_pos SX SY
call @get_values 1 buff BUF returns TEXT
0B6F: render font hFONT draw_text TEXT pos SX SY color YELLOW
if key_down 1
then
TOGGLE_MOVE = false
end
end
end
: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@ = 3@ NickName // ТУТ ВОТ ОН ПРОВЕРЯЕТ, ЕСЛИ ЕСТЬ В СТРОКЕ НИК, ТО ОН ИДЕТ ДАЛЬШЕ
THEN
IF OR
0C18: 33@ = strstr string1 3@ string2 "ТЕКСТ NICK" // ПОИСК ТЕКСТА
0C18: 33@ = strstr string1 3@ string2 "ТЕКСТ1 NICK" // ПОИСК ТЕКСТА1
THEN
0AF0: 4@ = get_int_from_ini_file "cleo\confing.ini" section "ПЕРВОЕ" key "Количество"
000A: 4@ += 1
0AF1: write_int 4@ to_ini_file "cleo\confing.ini" section "ПЕРВОЕ" key "Количество"
END
IF 0C18: 33@ = strstr string1 3@ string2 "ДРУГОЙ NICK ТЕКСТ" // ПОИСК ТЕКСТА
THEN
0AF0: 4@ = get_int_from_ini_file "cleo\confing.ini" section "ВТОРОЕ" key "Количество"
000A: 4@ += 1
0AF1: write_int 4@ to_ini_file "cleo\confing.ini" section "ВТОРОЕ" key "Количество"
END
END
free 3@
END
0BE0: raknet hook_ret TRUE
:sreset
chatmsg "Счётчик обнулен!" -1
0AF1: write_int 0 to_ini_file "cleo\confing.ini" section "ПЕРВОЕ" key "Количество"
0AF1: write_int 0 to_ini_file "cleo\confing.ini" section "ВТОРОЕ" key "Количество"
SAMP.CmdRet()
:toggle
0B12: TOGGLE = TOGGLE XOR 1
SAMP.CmdRet()
:move
0B12: TOGGLE_MOVE = TOGGLE_MOVE XOR 1
SAMP.CmdRet()
:get_values
0AF0: 1@ = get_int_from_ini_file "cleo\confing.ini" section "ПЕРВОЕ" key "Количество"
0AF0: 2@ = get_int_from_ini_file "cleo\confing.ini" section "ВТОРОЕ" key "Количество"
0AD3: 0@ = format "{ec0000}ПЕРВОЕ: {FFFFFF}%d {ec0000}ВТОРОЕ: {FFFFFF}%d" 1@ 2@
ret 1 0@
:buffer
hex
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0
end
каким опкодом проверять нанес ли я урон игроку?
051A: actor 1@ damaged_by_actor $PLAYER_ACTOR
Игра вылетает после 10 минут игры. ХЕЛПCLEO:{$CLEO} {$I SF} 0000: const TOGGLE = 10@ TOGGLE_MOVE = 11@ BUF = 12@ end const hFONT = 13@ TEXT = 14@ SX = 15@ SY = 16@ NickName = 17@ end SX = 178 SY = 756 const YELLOW = 0xFFFF5000 end alloc NickName 20 0AF4: NickName = read_string_from_ini_file "cleo\confing.ini" section "NickName" key ":" 0AC6: BUF = label @buffer offset if not 0@ = SAMP.Base() then 0A93: end_custom_thread end while not SAMP.Available() wait 100 end 0B6D: render hFONT = create_font "IMPACT" height 10 flags 4 0BE3: raknet setup_incoming_rpc_hook @hook 0B34: samp register_client_command "sreset" to_label @sreset 0B34: samp register_client_command "en" to_label @toggle 0B34: samp register_client_command "move" to_label @move while true wait 0 if TOGGLE == false then call @get_values 1 buff BUF returns TEXT 0B6F: render font hFONT draw_text TEXT pos SX SY color YELLOW end while TOGGLE_MOVE == true wait 0 0B5E: get_cursor_pos SX SY call @get_values 1 buff BUF returns TEXT 0B6F: render font hFONT draw_text TEXT pos SX SY color YELLOW if key_down 1 then TOGGLE_MOVE = false end end end :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@ = 3@ NickName // ТУТ ВОТ ОН ПРОВЕРЯЕТ, ЕСЛИ ЕСТЬ В СТРОКЕ НИК, ТО ОН ИДЕТ ДАЛЬШЕ THEN IF OR 0C18: 33@ = strstr string1 3@ string2 "ТЕКСТ NICK" // ПОИСК ТЕКСТА 0C18: 33@ = strstr string1 3@ string2 "ТЕКСТ1 NICK" // ПОИСК ТЕКСТА1 THEN 0AF0: 4@ = get_int_from_ini_file "cleo\confing.ini" section "ПЕРВОЕ" key "Количество" 000A: 4@ += 1 0AF1: write_int 4@ to_ini_file "cleo\confing.ini" section "ПЕРВОЕ" key "Количество" END IF 0C18: 33@ = strstr string1 3@ string2 "ДРУГОЙ NICK ТЕКСТ" // ПОИСК ТЕКСТА THEN 0AF0: 4@ = get_int_from_ini_file "cleo\confing.ini" section "ВТОРОЕ" key "Количество" 000A: 4@ += 1 0AF1: write_int 4@ to_ini_file "cleo\confing.ini" section "ВТОРОЕ" key "Количество" END END free 3@ END 0BE0: raknet hook_ret TRUE :sreset chatmsg "Счётчик обнулен!" -1 0AF1: write_int 0 to_ini_file "cleo\confing.ini" section "ПЕРВОЕ" key "Количество" 0AF1: write_int 0 to_ini_file "cleo\confing.ini" section "ВТОРОЕ" key "Количество" SAMP.CmdRet() :toggle 0B12: TOGGLE = TOGGLE XOR 1 SAMP.CmdRet() :move 0B12: TOGGLE_MOVE = TOGGLE_MOVE XOR 1 SAMP.CmdRet() :get_values 0AF0: 1@ = get_int_from_ini_file "cleo\confing.ini" section "ПЕРВОЕ" key "Количество" 0AF0: 2@ = get_int_from_ini_file "cleo\confing.ini" section "ВТОРОЕ" key "Количество" 0AD3: 0@ = format "{ec0000}ПЕРВОЕ: {FFFFFF}%d {ec0000}ВТОРОЕ: {FFFFFF}%d" 1@ 2@ ret 1 0@ :buffer hex 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 end