:notCoder:
Новичок
- 19
- 0
Поставь это
0B43: samp cmd_ret
Спасибо, но я решил проблему убрав скобки, а когда ставлю этот опкод 0B43: samp cmd_ret, то после компиляции половина кода пропадает почему-то0B43: samp cmd_ret
Поставь это
0B43: samp cmd_ret
Спасибо, но я решил проблему убрав скобки, а когда ставлю этот опкод 0B43: samp cmd_ret, то после компиляции половина кода пропадает почему-то0B43: samp cmd_ret
Поставь это
0B43: samp cmd_ret
// 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
0B34: samp register_client_command "cmd" to_label @Noname_53
0001: wait 0 ms
00D6: if
0039: 22@ == 1
004D: jump_if_false @Noname_46
hex
00 01 F1 FF FF FF
end
:Noname_53
0006: 22@ = 1
0B43: samp cmd_ret
Я так понял метка @Noname_46 у тебя в Hexe?
{$CLEO}
0000:
0B34: samp register_client_command "cmd" to_label @cmd_2
while true
wait 0
if 22@ == 1
then
0AF8: samp add_message_to_chat "text" 0xFF5030
22@ = 0
end
end
:cmd_2
22@ = 1
SAMP.CmdRet ()
Делал по этому гайду:Ты тут ипользовать while true... для начала лучше используй jf так проще намного
{$CLEO}
0000: 'by AW_Rage'
const
rep = 25@
end
repeat
wait 400
until samp.available
0B34: samp register_client_command "rep" to_label @rep
alloc 1@ 64
while true
if rep == true
then
if
0B4C: samp is_dialog_active 16
then
rep = false
0BC9: samp send_dialog_response dialog 16 button 1 listitem 4 input 1@
end
end
wait 0
end
:rep
0B35: samp 0@ = get_last_command_params
0AD4: 0@ = scan_string 0@ format "%s" 1@
if 0@ > 0
then
rep = true
0AF9: samp say_msg "/mn"
else
rep = false
0AF8: samp add_message_to_chat "{0046c8}Èñïîëüçóéòå:{646464} /rep [text]" color -1
end
При вводе команды '/rep Hello World' крашит игру. Где я допустил ошибку?
Код:{$CLEO} :rep 0B35: samp 0@ = get_last_command_params 0AD4: 0@ = scan_string 0@ format "%s" 1@ if 0@ > 0 then rep = true 0AF9: samp say_msg "/mn" else rep = false 0AF8: samp add_message_to_chat "{0046c8}Èñïîëüçóéòå:{646464} /rep [text]" color -1 end
:rep
0B35: samp 0@ = get_last_command_params
0AD4: 0@ = scan_string 0@ format "%s" 1@
if 0@ > 0
then
rep = true
0AF9: samp say_msg "/mn"
else
rep = false
0AF8: samp add_message_to_chat "{0046c8}Èñïîëüçóéòå:{646464} /rep [text]" color -1
end
SAMP.CmdRet()
repeat
wait 0
SAMP.Avaliable()
alloc это кейворд, при декомпиле выводитSamp.CmdRet() забыл,поэтому и крашит.Код::rep 0B35: samp 0@ = get_last_command_params 0AD4: 0@ = scan_string 0@ format "%s" 1@ if 0@ > 0 then rep = true 0AF9: samp say_msg "/mn" else rep = false 0AF8: samp add_message_to_chat "{0046c8}Èñïîëüçóéòå:{646464} /rep [text]" color -1 end SAMP.CmdRet()
Так же в начале поставь wait 0 (нет особой разница 400 или 0 )
Код:repeat wait 0 SAMP.Avaliable()
-----------------------------------------------
Вопрос.Как выделять память?
Ну я понимаю что типа alloc @переменная 64 .
Почему именно 64?Если я поставлю 58 например,измениться что-нибудь.И что вообще это означает?
Так же видел в некоторых скриптах что-то вроде allocate_ещё что-то . Что он означает?
Есть ли разница alloc или allocate_что-то?
call @Noname_23 3 2231.3223 -2284.7041 14.3751
:Noname_23
3@ = SAMP.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR)
0AC8: 4@ = allocate_memory_size 68
0BBA: samp store_player 3@ onfoot_data 4@
0C0D: struct 4@ offset 6 size 4 = 0@
0C0D: struct 4@ offset 10 size 4 = 1@
0C0D: struct 4@ offset 14 size 4 = 2@
0BC0: samp send_onfoot_data 4@
0ac9: free 4@
0AB2: ret 0
64 кол-во байт, которые выделяются в памяти, после чего в переменную записывается адрес на начало блокаВопрос.Как выделять память?
Ну я понимаю что типа alloc @переменная 64 .
Почему именно 64?Если я поставлю 58 например,измениться что-нибудь.И что вообще это означает?
Так же видел в некоторых скриптах что-то вроде allocate_ещё что-то . Что он означает?
Есть ли разница alloc или allocate_что-то?
if
0@ == true
then
0@ = false
else
0@ = true
end
SAMP.CmdRet()
Так правильно?В 0@ 1@ 2@ записываешь корды этого чека и места сдачи и поочередно отправляешь
0085: 15@ = 0@
15@ += 0x21A10C
0A8D: 15@ = read_memory 15@ size 4 virtual_protect 1
0085: 16@ = 15@
16@ += 0x24
0A8D: 16@ = read_memory 16@ size 4 virtual_protect 1
0085: 17@ = 15@
0085: 18@ = 15@
0085: 19@ = 15@
17@ += 0xC
18@ += 0x10
19@ += 0x14
0A8D: 17@ = read_memory 17@ size 4 virtual_protect 1
0A8D: 18@ = read_memory 18@ size 4 virtual_protect 1
0A8D: 19@ = read_memory 19@ size 4 virtual_protect 1
0AB1: call_scm_func @Noname_23 3 17@ 18@ 19@
{$CLEO}
0000: NOP
repeat
wait 0
until SAMP.Available()
0B34: samp register_client_command "Nbuy" to_label @Activ
repeat
wait 0
:al
if
0@ == true
then
if
0B4C: samp is_dialog_active -1
then
0C72: set_virtual_key 13 down true
wait 100
0C72: set_virtual_key 13 down false
end
else
0@ == false
else
jump @al
end
until false
:Activ
if
0@ == false
then
0@ = true
chatmsg "{DCDCDC}Áîò ïîêóïêè íàðêî {228B22}çàïóùåí"
else
0@ = false
chatmsg "{DCDCDC}Áîò ïîêóïêè íàðêî {B22222}âûêëþ÷åí"
end
SAMP.CmdRet()
В чём проблема?
Код:{$CLEO} 0000: NOP repeat wait 0 until SAMP.Available() 0B34: samp register_client_command "Nbuy" to_label @Activ while true wait 0 if 0@ == true then if 0B4C: samp is_dialog_active -1 then 0C72: set_virtual_key 13 down true wait 100 0C72: set_virtual_key 13 down false 0@ == false else 0@ == false end end :Activ if 0@ == false then 0@ = true chatmsg "{DCDCDC}Áîò ïîêóïêè íàðêî {228B22}çàïóùåí" else 0@ = false chatmsg "{DCDCDC}Áîò ïîêóïêè íàðêî {B22222}âûêëþ÷åí" end SAMP.CmdRet()
Если я твой код правильно понял, то должно работать..