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

АндрейЧотак

Известный
80
10
Вообщем у меня проблема с адресами,я хочу писать в чат без сфкс,адрес есть всё настроил но вот проблема в чат сообщение отпровляется(все видят) а у меня вместо сообщения варнинг
Вот код:
Код:
{$CLEO}
0000: NOP
 
wait 228
 
const
FUNC_SENDCMD = 0x7BDD0
end
 
While True
wait 0
if key_down 106
then
0AC8: 5@ = allocate_memory_size 256
format 5@ "Bomji"
call @say_msg 1 5@
free 5@
end
end
 
:say_msg                     
call @getSampBase 0 ret_to 1@
0A8E: 2@ = 1@ + FUNC_SENDCMD
0AA5: call 2@ num_params 1 pop 1 0@
ret 0
 
:getSampBase
0AA2: 1@ = load_library "kernel32.dll"                          {SA}
0AA4: 2@ = get_proc_address "GetModuleHandleA" library 1@ {MP}
0AA7: call_function 2@ num_params 1 pop 0 "samp.dll" 3@ {BASE}
ret 1 3@
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,468
FUNC_SENDCMD = 0x7BDD0
Функция для отправки команды, а не текста. Эт, пока, первое.
 

hnnssy

Известный
Друг
2,684
2,757
PHP:
{$CLEO}
 
const
    DIALOG_STYLE_LIST = 2
end
 
0000:
 
repeat
    wait 400
until 0AFA:  is_samp_available
 
while true
    wait 0
        if 0AB0: key_pressed 121
        then
        0AC8: 0@ = allocate_memory_size 128
        0ad3: format_stirng 0@ = "Респауны%cВторой пункт%cТретий пункт" 0xA 0xA
        0B3B: samp show_dialog id 17 caption "new" text 0@ button_1 "Выбрать" button_2 "Закрыть" style DIALOG_STYLE_LIST
        0AC9: free_allocated_memory 0@
        while 0AB0: key_pressed 121
        wait 20
    end
end
    if
        0B3C: samp is_dialog_responded id 17 button 1@ list_item 3@ input_text 0
    then
        if
            1@ == 1
        then
            if 3@ == 0
            then
            0AC8: 0@ = allocate_memory_size 128
            0ad3: format_stirng 0@ = "Банды%cОрганизации%cМафии" 0xA 0xA
            0B3B: samp show_dialog id 18 caption "new" text 0@ button_1 "Выбрать" button_2 "Закрыть" style DIALOG_STYLE_LIST
            0AC9: free_allocated_memory 0@
            end
 
            if 3@ == 1
            then 0AF8: samp add_message_to_chat "Это второй пункт" color -1
            end
 
            if 3@ == 2
            then 0AF8: samp add_message_to_chat "Это третий пункт" color -1
            end
        else
            0AF8: samp add_message_to_chat "А именно: Закрыть" color -1
        end
    end
 
    if
        0B3C: samp is_dialog_responded id 18 button 1@ list_item 3@ input_text 0
    then
        if
            1@ == 1
        then
            if 3@ == 0
            then
            0AC8: 0@ = allocate_memory_size 128
            0AC6: 0@ = label @gangs offset
            0B3B: samp show_dialog id 19 caption "Банды" text 0@ button_1 "Выбрать" button_2 "Закрыть" style DIALOG_STYLE_LIST
            0AC9: free_allocated_memory 0@
            end
        else
            0AF8: samp add_message_to_chat "ESC" color -1
        end
    end
end
 
 
:gangs
hex
"Los Santos Vagos" A
"The Ballas Gang" A
"The Grove Street" A
"El Coronos" A
"StreetRacers" A
"The Rifa Gang" A
"Hell Angels" A
"Black Kings" 00
end
Не крашит ведь.
И под
PHP:
0AC6: 0@ = label @gangs offset
память выделять не нужно.
 

hnnssy

Известный
Друг
2,684
2,757
Подробнее можно?Не очень в этом понимаю, учусь только.
Если не трудно, кинь пример.
PHP:
{$CLEO}
0000:
repeat
wait 0
until Samp.Available()
 
reg_cmd "k" @kill // При вводе /k будет выполняться код с метки :kill
reg_cmd "cmd" @cmd
 
while true
wait 0
end
 
:kill
say "/kill"
cmd_ret
 
:cmd
say "/command"
cmd_ret
Так понятно?
 

fonarik

Известный
206
3
0A96: 0@ = actor $PLAYER_ACTOR struct
0@ += 0x580
что мы получаем в этой структуре и есть ли список оффестов?
или ток где стат.адреса памяти гта?
 

Quar

Новичок
8
0
А вот еще 1 вопрос.
Какой сделать так, чтоб при входе в игру писало, к примеру, "Скрипт "ла-ла" loaded"
Какой код?
 

oolol

Новичок
16
1
Как сделать с 2-х и более один клео? т.е. файл 1 с 2+
Код:
PHP:
{$CLEO .cs}

if 
not 33@ = SAMP.Base()
jf @Potok_1 
0A93: end_custom_thread 

:Potok_1
wait 200 
   SAMP.Available
jf @Potok_1
jump @Potok_2

:Potok_2
wait 0
if and
0AB0:   key_pressed 51
0AB0:   key_pressed 52
jf @Potok_2
0B4B: samp set_current_dialog_editbox_text "Тут текст"
jump @Potok_2
Код второй:
PHP:
{$CLEO .cs}

if 
not 33@ = SAMP.Base()
jf @Potok_1 
0A93: end_custom_thread 

:Potok_1
wait 200 
   SAMP.Available
jf @Potok_1
jump @Potok_2

:Potok_2
wait 0
if and
0AB0:   key_pressed 51
0AB0:   key_pressed 52
jf @Potok_2
0B4B: samp set_current_dialog_editbox_text "тут текст х2"
jump @Potok_2
 

Избранный

Новичок
198
30
Как получить версию сампа и записать её в переменую?

0DB5: 2@ = samp_version
Как сделать с 2-х и более один клео? т.е. файл 1 с 2+
Код:
{$CLEO .cs}
:N
wait 0
if
0ab0: 93
jf @N_2
* код 1 *
 
 
:N_2
if
0ab0: 94
jf @N
* код 2 *
Кто поможет чё он не работает а пишет "Неизвестная каманда key down 82"


[spolier]// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .cs}
//-------------MAIN---------------
0662: printstring "MGMOLDOVA"
0662: printstring "FOR_ACHEATS.RU"
0662: printstring "NAGIBATOR"
:Noname_44
wait 0
if and
0AD2: 29@ = player $PLAYER_CHAR targeted_actor //IF and SET
key_down 82
else_jump @Noname_149
10@ = SAMP.GetSAMPPlayerIDByActorHandle(29@)
15@ = SAMP.GetPlayerNickname(10@)
0AF9: samp say_msg "/tazer %d" 10@
wait 710
0AF9: samp say_msg "/cuff %d" 10@
wait 550
:Noname_149
jump @Noname_44
[/spolier]

попробуй этот опкод поставить 0736: is_keyboard_key_just_pressed 82