сервер может выкидывать тебя из тачки по разному, поэтому нужно игнорировать все эти рпс:как закрепить игрока на водительском месте? чтобы например на дрп на 1 лвле садился в мопед и меня с него не викидывало
сервер может выкидывать тебя из тачки по разному, поэтому нужно игнорировать все эти рпс:как закрепить игрока на водительском месте? чтобы например на дрп на 1 лвле садился в мопед и меня с него не викидывало
{$CLEO .cs}
{$INCLUDE SF}
0000:
repeat
wait 150
until 0afa:
0B34: samp register_client_command "fn" to_label @fn
0B34: samp register_client_command "rn" to_label @rn
0B34: samp register_client_command "bkn" to_label @bkn
while true
wait 0
end
:fn
0B35: samp 0@ = get_last_command_params
0AD4: 3@ = scan_string 0@ format "%s" 5@s
if 3@ > 0
then
say "/f (( %s ))" 0@
else
chatmsg "Используйте: /fn [нон-рп сообщение]" color 0xD6CFD6
end
SAMP.CmdRet()
:rn
0B35: samp 1@ = get_last_command_params
0AD4: 4@ = scan_string 1@ format "%s" 6@s
if 4@ > 0
then
say "/r (( %s ))" 1@
else
chatmsg "Используйте: /rn [нон-рп сообщение]" color 0xD6CFD6
end
SAMP.CmdRet()
:bkn
0B35: samp 1@ = get_last_command_params
0AD4: 4@ = scan_string 1@ format "%s" 6@s
if 4@ > 0
then
say "/bk (( %s ))" 1@
else
chatmsg "Используйте: /bkn [нон-рп сообщение]" color 0xD6CFD6
end
SAMP.CmdRet()
настройки SB > Форматирование > Регистр букв > "как есть"Привет, есть скрипт с кодом:
Надо поменять bkn на psn.Код:{$CLEO .cs} {$INCLUDE SF} 0000: repeat wait 150 until 0afa: 0B34: samp register_client_command "fn" to_label @fn 0B34: samp register_client_command "rn" to_label @rn 0B34: samp register_client_command "bkn" to_label @bkn while true wait 0 end :fn 0B35: samp 0@ = get_last_command_params 0AD4: 3@ = scan_string 0@ format "%s" 5@s if 3@ > 0 then say "/f (( %s ))" 0@ else chatmsg "Используйте: /fn [нон-рп сообщение]" color 0xD6CFD6 end SAMP.CmdRet() :rn 0B35: samp 1@ = get_last_command_params 0AD4: 4@ = scan_string 1@ format "%s" 6@s if 4@ > 0 then say "/r (( %s ))" 1@ else chatmsg "Используйте: /rn [нон-рп сообщение]" color 0xD6CFD6 end SAMP.CmdRet() :bkn 0B35: samp 1@ = get_last_command_params 0AD4: 4@ = scan_string 1@ format "%s" 6@s if 4@ > 0 then say "/bk (( %s ))" 1@ else chatmsg "Используйте: /bkn [нон-рп сообщение]" color 0xD6CFD6 end SAMP.CmdRet()
Пробовал сам, но в итоге когда компилирую и захожу в ГТА, получается такое:
код. мы не экстрасенсыРебят, не пойму в чём проблема. Не работает задержка(т.е. wait ? и 0001: wait ? ms) У меня есть 3 переменные, 1-ая - она отвечает за регистрацию команды, а затем переход на следующую переменную, 2-ую - там скрипт должен писать в чат слова, которые я указал заранее, а потом уже включать 3-ую переменную, которая будет активироваться только после написания слов, но у меня всё иначе, сначала активируется 2-ая переменная, а потом 1-ая. Пытался ставить задержку, то же самое, помогите пожалуйста, если можно покажите примерный код решения проблемы.
в теле команды задержки игнорируются.Тоесть сначала выполняется func2, а потом уже func1, а должно получиться наоборот.CLEO:<{$CLEO} 0000: NOP :startuem 0001: wait 0 ms 0AFA: is_samp_available 004D: jump_if_false @startuem 0B34: samp_register_client_command "(Тут типо активация)" to_label @func1 0AF8: samp add_message_to_chat "(тут текст)" color R G B 0xFFA500 0BDE: pause_thread 0 :func1 0AF9: samp say_msg "(команда с рп отыгровкой)" jump @func2 :func2 0001: wait 1000 ms (тут я пробовал задержку поставить, не робит) 0AF8: samp add_message_to_chat "privet" color R G B 0xFFA500 0B43: samp cmd_ret>
0b34: "cmd" @cmd
// в данном случае ставить поток на паузу не нужно!
while true
wait 0
if 31@ == true
then
say "привет"
wait 1000
say "я пидорас"
31@ = false
end
end
:cmd
31@ = true
cmdret
Сорри за тупой вопрос, ну какой я, такой и вопрос, как сделать проверку на то что тебя ударили кулаком.
{$CLEO}
{$INCLUDE SF}
0000:
thread "astap"
WHILE NOT SAMP.Available()
0001: 0
END
0BE1: raknet setup_outcoming_rpc_hook @HOOK
0BDE: pause_thread 0
:HOOK
0BE5: raknet 0@ = get_hook_param PARAM_PACKETID
IF 0@ == RPC_GIVETAKEDAMAGE
THEN
0BE5: raknet 0@ = get_hook_param PARAM_BITSTREAM
0BE7: raknet 1@ = bit_stream_read 0@ type 1 // give/take
IF 1@ == TRUE
THEN
0BE7: raknet 2@ = bit_stream_read 0@ type 2 // id
0B2B: samp 3@ = get_player_id_by_actor_handle $PLAYER_ACTOR
IF 003B: 3@ == 2@ // (int)
THEN
0BE7: raknet 4@ = bit_stream_read 0@ type 3 // damage
0BE7: raknet 5@ = bit_stream_read 0@ type 2 // weapID
IF 003B: 5@ == 0 // fist
THEN
SAY "меня ударили кулаком :("
END
END
END
END
0BE0: raknet hook_ret TRUE
Окей, но у меня ещё, когда я пишу /rn || /fn || /psn "Text" - выводится сообщение с пустыми скобками.настройки SB > Форматирование > Регистр букв > "как есть"
CLEO:{$CLEO} {$INCLUDE SF} 0000: thread "astap" WHILE NOT SAMP.Available() 0001: 0 END 0BE1: raknet setup_outcoming_rpc_hook @HOOK 0BDE: pause_thread 0 :HOOK 0BE5: raknet 0@ = get_hook_param PARAM_PACKETID IF 0@ == RPC_GIVETAKEDAMAGE THEN 0BE5: raknet 0@ = get_hook_param PARAM_BITSTREAM 0BE7: raknet 1@ = bit_stream_read 0@ type 1 // give/take IF 1@ == TRUE THEN 0BE7: raknet 2@ = bit_stream_read 0@ type 2 // id 0B2B: samp 3@ = get_player_id_by_actor_handle $PLAYER_ACTOR IF 003B: 3@ == 2@ // (int) THEN 0BE7: raknet 4@ = bit_stream_read 0@ type 3 // damage 0BE7: raknet 5@ = bit_stream_read 0@ type 2 // weapID IF 003B: 5@ == 0 // fist THEN SAY "меня ударили кулаком :(" END END END END 0BE0: raknet hook_ret TRUE
он выводится пустым из-за хуевого форматирования, перекомпилируй и все будет нормОкей, но у меня ещё, когда я пишу /rn || /fn || /psn "Text" - выводится сообщение с пустыми скобками.
/rn (( )) || /fn (( )) || /ps (( ))
у тебя не установлены константы сампфункса
{$CLEO}
{$INCLUDE SF}
0000:
thread "as"
WHILE NOT SAMP.Available()
0001: 0
END
0BE1: raknet setup_outcoming_rpc_hook @HOOK
0BDE: pause_thread 0
:HOOK
0BE5: raknet 0@ = get_hook_param PARAM_PACKETID
IF 0@ == RPC_GIVETAKEDAMAGE
THEN
0BE5: raknet 0@ = get_hook_param PARAM_BITSTREAM
0BE7: raknet 1@ = bit_stream_read 0@ type 1 // give/take
IF 1@ == TRUE
THEN
0BE7: raknet 4@ = bit_stream_read 0@ type 3 // damage
0BE7: raknet 5@ = bit_stream_read 0@ type 2 // weapID
IF 003B: 5@ == 0 // fist
THEN
0AF9: samp say_msg "Только не на кулак."
END
END
END
0BE0: raknet hook_ret TRUE
я кое-что напутал. вот это точно работает:Почему крашит?CLEO:{$CLEO} {$INCLUDE SF} 0000: thread "as" WHILE NOT SAMP.Available() 0001: 0 END 0BE1: raknet setup_outcoming_rpc_hook @HOOK 0BDE: pause_thread 0 :HOOK 0BE5: raknet 0@ = get_hook_param PARAM_PACKETID IF 0@ == RPC_GIVETAKEDAMAGE THEN 0BE5: raknet 0@ = get_hook_param PARAM_BITSTREAM 0BE7: raknet 1@ = bit_stream_read 0@ type 1 // give/take IF 1@ == TRUE THEN 0BE7: raknet 4@ = bit_stream_read 0@ type 3 // damage 0BE7: raknet 5@ = bit_stream_read 0@ type 2 // weapID IF 003B: 5@ == 0 // fist THEN 0AF9: samp say_msg "Только не на кулак." END END END 0BE0: raknet hook_ret TRUE
{$CLEO}
{$INCLUDE SF}
0000:
thread "astap"
WHILE NOT SAMP.Available()
0001: 0
END
0BE1: raknet setup_outcoming_rpc_hook @HOOK
0BDE: pause_thread 0
:HOOK
0BE5: raknet 0@ = get_hook_param PARAM_PACKETID
IF 0@ == RPC_GIVETAKEDAMAGE
THEN
0BE5: raknet 0@ = get_hook_param PARAM_BITSTREAM
0BE7: raknet 1@ = bit_stream_read 0@ type 1 // give/take
IF 1@ == TRUE
THEN
0BE7: raknet 2@ = bit_stream_read 0@ type BS_TYPE_SHORT
0BE7: raknet 4@ = bit_stream_read 0@ type BS_TYPE_FLOAT
0BE7: raknet 5@ = bit_stream_read 0@ type BS_TYPE_SHORT
IF 5@ == 0
THEN
chatmsg "кулак" -1
END
END
END
0BE0: raknet hook_ret TRUE
// 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
thread "SPRINGFIELD"
wait 5000
call @SPRINGFIELD_634 0
31@ = 0
:SPRINGFIELD_39
wait 0
if and
key_down 18
key_down 114
else_jump @SPRINGFIELD_190
0B12: 31@ = 31@ XOR 1
if
31@ == 1
else_jump @SPRINGFIELD_134
call @SPRINGFIELD_255 0
printf "" 1337
wait 200
goto @SPRINGFIELD_190
:SPRINGFIELD_134
if
31@ == 0
else_jump @SPRINGFIELD_190
call @SPRINGFIELD_415 0
printf "" 1337
wait 200
:SPRINGFIELD_190
if
31@ == 1
else_jump @SPRINGFIELD_248
if
key_down 119
else_jump @SPRINGFIELD_248
call @SPRINGFIELD_415 0
wait 1000
call @SPRINGFIELD_255 0
:SPRINGFIELD_248
goto @SPRINGFIELD_39
:SPRINGFIELD_255
0AA2: 30@ = load_library "samp.dll" // IF and SET
0A8E: 1@ = 30@ + 457971 // int
0A8C: write_memory 1@ size 6 value -1869574000 virtual_protect 1
0A8E: 2@ = 30@ + 458004 // int
0A8C: write_memory 2@ size 6 value -1869574000 virtual_protect 1
0A8E: 3@ = 30@ + 458280 // int
0A8C: write_memory 3@ size 2 value 37008 virtual_protect 1
0A8E: 4@ = 30@ + 462648 // int
0A8C: write_memory 4@ size 2 value 37008 virtual_protect 1
0A8E: 5@ = 30@ + 462372 // int
0A8C: write_memory 5@ size 6 value -1869574000 virtual_protect 1
0AA3: free_library 30@
ret 0
:SPRINGFIELD_415
0AA2: 30@ = load_library "samp.dll" // IF and SET
0A8E: 1@ = 30@ + 457971 // int
0A8C: write_memory 1@ size 4 value 24216591 virtual_protect 1
0A8E: 2@ = 1@ + 4 // int
0A8C: write_memory 2@ size 2 value 0 virtual_protect 1
0A8E: 3@ = 30@ + 458004 // int
0A8C: write_memory 3@ size 4 value 22053903 virtual_protect 1
0A8E: 4@ = 3@ + 4 // int
0A8C: write_memory 4@ size 2 value 0 virtual_protect 1
0A8E: 5@ = 30@ + 458280 // int
0A8C: write_memory 5@ size 2 value 16500 virtual_protect 1
0A8E: 6@ = 30@ + 462648 // int
0A8C: write_memory 6@ size 2 value 24948 virtual_protect 1
0A8E: 7@ = 30@ + 462372 // int
0A8C: write_memory 7@ size 4 value 24218127 virtual_protect 1
0A8E: 8@ = 7@ + 4 // int
0A8C: write_memory 8@ size 2 value 0 virtual_protect 1
0AA3: free_library 30@
ret 0
:SPRINGFIELD_634
0AA2: 0@ = load_library "samp.dll" // IF and SET
0085: 1@ = 0@ // (int)
1@ += 2203876
0A8D: 3@ = read_memory 1@ size 4 virtual_protect 1
0085: 2@ = 0@ // (int)
2@ += 409616
ret 0
получаешь строку текстдрава и так же сравниваешьРебята, как сравнить TextDraw с нужным мне текстом? Вот строки в чате можно сравнивать при помощи опкодов 0c14, 0c18, а мне надо именно TextDraw, help me pls!
0C5A: samp textdraw 0@ get_string_to 1@
это не стол заказовПоменять кнопку активации на F5
Код:// 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 thread "SPRINGFIELD" wait 5000 call @SPRINGFIELD_634 0 31@ = 0 :SPRINGFIELD_39 wait 0 if and key_down 18 key_down 114 else_jump @SPRINGFIELD_190 0B12: 31@ = 31@ XOR 1 if 31@ == 1 else_jump @SPRINGFIELD_134 call @SPRINGFIELD_255 0 printf "" 1337 wait 200 goto @SPRINGFIELD_190 :SPRINGFIELD_134 if 31@ == 0 else_jump @SPRINGFIELD_190 call @SPRINGFIELD_415 0 printf "" 1337 wait 200 :SPRINGFIELD_190 if 31@ == 1 else_jump @SPRINGFIELD_248 if key_down 119 else_jump @SPRINGFIELD_248 call @SPRINGFIELD_415 0 wait 1000 call @SPRINGFIELD_255 0 :SPRINGFIELD_248 goto @SPRINGFIELD_39 :SPRINGFIELD_255 0AA2: 30@ = load_library "samp.dll" // IF and SET 0A8E: 1@ = 30@ + 457971 // int 0A8C: write_memory 1@ size 6 value -1869574000 virtual_protect 1 0A8E: 2@ = 30@ + 458004 // int 0A8C: write_memory 2@ size 6 value -1869574000 virtual_protect 1 0A8E: 3@ = 30@ + 458280 // int 0A8C: write_memory 3@ size 2 value 37008 virtual_protect 1 0A8E: 4@ = 30@ + 462648 // int 0A8C: write_memory 4@ size 2 value 37008 virtual_protect 1 0A8E: 5@ = 30@ + 462372 // int 0A8C: write_memory 5@ size 6 value -1869574000 virtual_protect 1 0AA3: free_library 30@ ret 0 :SPRINGFIELD_415 0AA2: 30@ = load_library "samp.dll" // IF and SET 0A8E: 1@ = 30@ + 457971 // int 0A8C: write_memory 1@ size 4 value 24216591 virtual_protect 1 0A8E: 2@ = 1@ + 4 // int 0A8C: write_memory 2@ size 2 value 0 virtual_protect 1 0A8E: 3@ = 30@ + 458004 // int 0A8C: write_memory 3@ size 4 value 22053903 virtual_protect 1 0A8E: 4@ = 3@ + 4 // int 0A8C: write_memory 4@ size 2 value 0 virtual_protect 1 0A8E: 5@ = 30@ + 458280 // int 0A8C: write_memory 5@ size 2 value 16500 virtual_protect 1 0A8E: 6@ = 30@ + 462648 // int 0A8C: write_memory 6@ size 2 value 24948 virtual_protect 1 0A8E: 7@ = 30@ + 462372 // int 0A8C: write_memory 7@ size 4 value 24218127 virtual_protect 1 0A8E: 8@ = 7@ + 4 // int 0A8C: write_memory 8@ size 2 value 0 virtual_protect 1 0AA3: free_library 30@ ret 0 :SPRINGFIELD_634 0AA2: 0@ = load_library "samp.dll" // IF and SET 0085: 1@ = 0@ // (int) 1@ += 2203876 0A8D: 3@ = read_memory 1@ size 4 virtual_protect 1 0085: 2@ = 0@ // (int) 2@ += 409616 ret 0