Вопросы по CLEO-скриптингу

:notCoder:

Новичок
19
0

:notCoder:

Новичок
19
0
Поставь это
0B43: samp cmd_ret
CLEO:
 // 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
Новая проблема:d
Почему при компиляции получается это? И игра сильно начинает глючить? Тоже самое получается с SAMP.CmdRet
 

:notCoder:

Новичок
19
0
Я так понял метка @Noname_46 у тебя в Hexe?
CLEO:
{$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 ()
До компиляции код выглядел так, почему там вообще появились новые метки я хз
 

AWRage

Активный
642
141
При вводе команды '/rep Hello World' крашит игру. Где я допустил ошибку?
Код:
{$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
 

Forus

Известный
54
12
При вводе команды '/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()
Samp.CmdRet() забыл,поэтому и крашит.
Так же в начале поставь wait 0 (нет особой разница 400 или 0 )
Код:
repeat
wait 0
SAMP.Avaliable()

-----------------------------------------------
Вопрос.Как выделять память?
Ну я понимаю что типа alloc @переменная 64 .
Почему именно 64?Если я поставлю 58 например,измениться что-нибудь.И что вообще это означает?
Так же видел в некоторых скриптах что-то вроде allocate_ещё что-то . Что он означает?
Есть ли разница alloc или allocate_что-то?
 
Последнее редактирование:
  • Нравится
Реакции: AWRage

DubStep_

Известный
292
52
Код:
: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()
Samp.CmdRet() забыл,поэтому и крашит.
Так же в начале поставь wait 0 (нет особой разница 400 или 0 )
Код:
repeat
wait 0
SAMP.Avaliable()

-----------------------------------------------
Вопрос.Как выделять память?
Ну я понимаю что типа alloc @переменная 64 .
Почему именно 64?Если я поставлю 58 например,измениться что-нибудь.И что вообще это означает?
Так же видел в некоторых скриптах что-то вроде allocate_ещё что-то . Что он означает?
Есть ли разница alloc или allocate_что-то?
alloc это кейворд, при декомпиле выводит
0AC8: 0@ = allocate_memory_size 260
 
  • Нравится
Реакции: Forus

next23012

Новичок
59
6
Что нужно добавить, чтоб подбирался такой чекпоинт?
PHP:
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

image.png
 

spiceman

GOWNIK <3
104
35
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Вопрос.Как выделять память?
Ну я понимаю что типа alloc @переменная 64 .
Почему именно 64?Если я поставлю 58 например,измениться что-нибудь.И что вообще это означает?
Так же видел в некоторых скриптах что-то вроде allocate_ещё что-то . Что он означает?
Есть ли разница alloc или allocate_что-то?
64 кол-во байт, которые выделяются в памяти, после чего в переменную записывается адрес на начало блока
 
  • Нравится
Реакции: Forus

Forus

Известный
54
12
Есть какая-нибудь универсальная активация-деактивация скрипта?Которая будет работать в любом случае.
Как я понимаю активация-деактивация
Код:
if 
0@ == true
then 
0@ = false
else
0@ = true
end
SAMP.CmdRet()
Только если есть цикл(repeat,while,for)?Т.е. если у меня скрипт будет в метке,то эта активация работать не будет?
 

AWRage

Активный
642
141
Код:
alloc 1@ 64
0B35: samp 0@ = get_last_command_params
0AD4: 0@ = scan_string 0@ format "%s" 1@
0AF8: samp add_message_to_chat 1@ color 0xFFFFFF
Пишу "/test Привет всем", но в чат вместо "Привет всем" выводятся какие-то символы. Пример: s%?/?;---_;'13;a
 

Dark_Knight

Me, me and me.
Друг
4,062
2,077
Нельзя сканировать строку на строку.
Код:
0B35: samp 0@ = get_last_command_params
0AF8: samp add_message_to_chat 0@ color 0xFFFFFF
 
  • Нравится
Реакции: AWRage

next23012

Новичок
59
6
В 0@ 1@ 2@ записываешь корды этого чека и места сдачи и поочередно отправляешь
Так правильно?
PHP:
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@
 

Forus

Известный
54
12
В чём проблема?

Код:
{$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()
 

AWRage

Активный
642
141
В чём проблема?

Код:
{$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()

Если я твой код правильно понял, то должно работать..
 
  • Нравится
Реакции: Forus