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

ehxqu

Известный
Проверенный
177
153
Возможно ли сделать условие "если игрок использует определённую анимацию" ?

да

CLEO:
while true
    wait 0
    0B2B: samp 1@ = get_player_id_by_actor_handle $PLAYER_ACTOR
    0B57: samp 2@ = player 1@ animation_id
    if 2@ == 536 //ид анимации
    then
        //Действие
        //0AFD: samp set_special_action 0
        wait 1000
    end
end
 
  • Нравится
Реакции: astap_

trefa

Известный
Всефорумный модератор
2,097
1,231
Я не шарю в клео, но можете прокоментировать строки, хочу на луа перевести
CLEO:
{$CLEO}
0A9F: 0@ = current_thread_pointer
0@ += 0x10
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0

// -- Clock Border
0A8C: write_memory 0x58EB70 size 1 value 1 virtual_protect 1
// -- Money Border
0A8C: write_memory 0x58F58D size 1 value 1 virtual_protect 1
// -- Money String Format
0A8F: 1@ = 0@ - @POSITIVE_MONEY
0A8C: write_memory 0x58F4C8 size 4 value 1@ virtual_protect 1
// -- Money String Format - Negative (debt)
0@ -= @NEGATIVE_MONEY
0A8C: write_memory 0x58F50A size 4 value 0@ virtual_protect 1
0A93: end_custom_thread

:POSITIVE_MONEY
hex
"$%d" 00
end

:NEGATIVE_MONEY
hex
"-$%d" 00
end
 

хуесос)

Известный
263
63
Я не шарю в клео, но можете прокоментировать строки, хочу на луа перевести
CLEO:
{$CLEO}
0A9F: 0@ = current_thread_pointer
0@ += 0x10
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0

// -- Clock Border
0A8C: write_memory 0x58EB70 size 1 value 1 virtual_protect 1
// -- Money Border
0A8C: write_memory 0x58F58D size 1 value 1 virtual_protect 1
// -- Money String Format
0A8F: 1@ = 0@ - @POSITIVE_MONEY
0A8C: write_memory 0x58F4C8 size 4 value 1@ virtual_protect 1
// -- Money String Format - Negative (debt)
0@ -= @NEGATIVE_MONEY
0A8C: write_memory 0x58F50A size 4 value 0@ virtual_protect 1
0A93: end_custom_thread

:POSITIVE_MONEY
hex
"$%d" 00
end

:NEGATIVE_MONEY
hex
"-$%d" 00
end

Трудно посмотреть адреса памяти, узнать функцию адреса и переписать на Луа?

А функций уже написаны, только на английском
 

trefa

Известный
Всефорумный модератор
2,097
1,231
Трудно посмотреть адреса памяти, узнать функцию адреса и переписать на Луа?

А функций уже написаны, только на английском
Я не понял значение некоторого кода
вот:
CLEO:
0A9F: 0@ = current_thread_pointer
0@ += 0x10
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
и вот
CLEO:
:POSITIVE_MONEY
hex
"$%d" 00
end

:NEGATIVE_MONEY
hex
"-$%d" 00
end
 

хуесос)

Известный
263
63
Я не понял значение некоторого кода
вот:
CLEO:
0A9F: 0@ = current_thread_pointer
0@ += 0x10
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
и вот
CLEO:
:POSITIVE_MONEY
hex
"$%d" 00
end

:NEGATIVE_MONEY
hex
"-$%d" 00
end

CLEO:
0a9f: 0@ = current_thread_pointer
Возвращает указатель на поток текущего скрипта
Потом он прибовляет к переменной 0@ 0x10
CLEO:
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
Тутра он читает адрес памяти из переменной 0@ и записывает в переменную 0@
CLEO:
:POSITIVE_MONEY
hex
 "$%d" 00
end
 :NEGATIVE_MONEY
hex
 "-$%d" 00
end
Ну это просто в шестнадцитиричном виде он записал когда у тебя деньги в минусе, и плюсе. Ну если что модераторы поправят меня.

После конекта к серверу крашить
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

const
    DIALOG_STYLE_MSGBOX = 0 // С текстом
    DIALOG_STYLE_INPUT = 1 // С полем для ввода текста
    DIALOG_STYLE_LIST = 2 // Со списком
    DIALOG_STYLE_PASSWORD = 3 // С полем для ввода текста, текст заменяется точками
    DIALOG_STYLE_TABLIST = 4 // Похож на DIALOG_STYLE_LIST, но может быть разбит на несколько колонок
    DIALOG_STYLE_TABLIST_HEADERS = 5 // Тот же, что и DIALOG_STYLE_TABLIST, но имеет заголовки для колонок
end

:SAMPAv
WAIT 0
SAMP.Available()
JF @SAMPAv
0B34: "prec" @DialogRecShow
0BDE: pause_thread 0


:DialogRecShow
wait 0
0ac8: alloc 0@ size 64 
0ad3: format_stirng 0@ = "PayDay RP || Plantium%cPayDay RP || Gold" 0xA 
0B3B: samp show_dialog id 47 caption "PDRP reconnect by L.Vazque" text 0@ button_1 "Подкючиться" button_2 "Закрыть" style DIALOG_STYLE_LIST
0ac9: free 0@ 


if 0B3C: samp is_dialog_responded id 47 button 1@ list_item 3@ input_text 0
 then
    end 
      if 3@ == 0
       then 
       0B38: samp connect_to_server "5.135.209.89" port 7777
       chatmsg "[Reconnect]: Вы были подключены к PayDay RP Plantium"
       end
       then 
       if 3@ == 1     
       0B38: samp connect_to_server "149.202.37.10" port 7777
       chatmsg "[Reconnect]: Вы были подключены к PayDay RP Gold"
    end
SAMP.CmdRet()
 
Последнее редактирование модератором:

D3.Pheonix

🎹
Модератор
2,817
1,599
После конекта к серверу крашить
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

const
    DIALOG_STYLE_MSGBOX = 0 // С текстом
    DIALOG_STYLE_INPUT = 1 // С полем для ввода текста
    DIALOG_STYLE_LIST = 2 // Со списком
    DIALOG_STYLE_PASSWORD = 3 // С полем для ввода текста, текст заменяется точками
    DIALOG_STYLE_TABLIST = 4 // Похож на DIALOG_STYLE_LIST, но может быть разбит на несколько колонок
    DIALOG_STYLE_TABLIST_HEADERS = 5 // Тот же, что и DIALOG_STYLE_TABLIST, но имеет заголовки для колонок
end

:SAMPAv
WAIT 0
SAMP.Available()
JF @SAMPAv
0B34: "prec" @DialogRecShow
0BDE: pause_thread 0


:DialogRecShow
wait 0
0ac8: alloc 0@ size 64
0ad3: format_stirng 0@ = "PayDay RP || Plantium%cPayDay RP || Gold" 0xA
0B3B: samp show_dialog id 47 caption "PDRP reconnect by L.Vazque" text 0@ button_1 "Подкючиться" button_2 "Закрыть" style DIALOG_STYLE_LIST
0ac9: free 0@


if 0B3C: samp is_dialog_responded id 47 button 1@ list_item 3@ input_text 0
 then
    end
      if 3@ == 0
       then
       0B38: samp connect_to_server "5.135.209.89" port 7777
       chatmsg "[Reconnect]: Вы были подключены к PayDay RP Plantium"
       end
       then
       if 3@ == 1   
       0B38: samp connect_to_server "149.202.37.10" port 7777
       chatmsg "[Reconnect]: Вы были подключены к PayDay RP Gold"
    end
SAMP.CmdRet()

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

const
    DIALOG_STYLE_MSGBOX = 0 // С текстом
    DIALOG_STYLE_INPUT = 1 // С полем для ввода текста
    DIALOG_STYLE_LIST = 2 // Со списком
    DIALOG_STYLE_PASSWORD = 3 // С полем для ввода текста, текст заменяется точками
    DIALOG_STYLE_TABLIST = 4 // Похож на DIALOG_STYLE_LIST, но может быть разбит на несколько колонок
    DIALOG_STYLE_TABLIST_HEADERS = 5 // Тот же, что и DIALOG_STYLE_TABLIST, но имеет заголовки для колонок
end

:SAMPAv
WAIT 0
SAMP.Available()
JF @SAMPAv
0B34: "prec" @DialogRecShow
0BDE: pause_thread 0


:DialogRecShow
wait 0
0ac8: alloc 0@ size 64
0ad3: format_stirng 0@ = "PayDay RP || Plantium%cPayDay RP || Gold" 0xA
0B3B: samp show_dialog id 47 caption "PDRP reconnect by L.Vazque" text 0@ button_1 "Подкючиться" button_2 "Закрыть" style DIALOG_STYLE_LIST
0ac9: free 0@


if 0B3C: samp is_dialog_responded id 47 button 1@ list_item 3@ input_text 0
 then
      if 3@ == 0
       then
       0B38: samp connect_to_server "5.135.209.89" port 7777
       chatmsg "[Reconnect]: Вы были подключены к PayDay RP Plantium"
       end
       if 3@ == 1  
        then
       0B38: samp connect_to_server "149.202.37.10" port 7777
       chatmsg "[Reconnect]: Вы были подключены к PayDay RP Gold"
    end
end
SAMP.CmdRet()
 

хуесос)

Известный
263
63
Подходишь к этой хуйне и либо пишет /savepos (или как то так) либо а сани билдере (не выходя из мгры) CTRL + shift + g (точно не помнб)
 

DonkRage

Известный
406
114
Как конвертировать опкод, например как тут:
CLEO:
0xbab22c - 12235308; 0xbab244 - 12235332
 

astap_

Известный
Всефорумный модератор
626
597
Хочу сделать фейк-одменку на АРП, не знаю скриптинге на клео ничего.
Не знаю как получить ID игрока, вписаного при команде
К примеру, пишу /ban 10(айди) 30(кол-во дней) Читы(причина)
Текст в чате: (красным цветом) Администратор Nick_Name забанил игрока Name_Nick на 30 дней. Причина: Читы
96fx96f
CLEO:
{$CLEO}
0000:
THREAD "astap"

:SA
WAIT 0
IF
SAMP.Available()
JF @SA
0B34: samp register_client_command "ban" to_label @ban
0BDE: pause_thread 0

:ban
0B35: samp 0@ = get_last_command_params
IF
0AD4: 0@ = scan_string 0@ format "%d %d %s" 1@ 2@ 3@
JF @error
IF
0B23:  samp is_player_connected 1@
JF @error1
0B2B: samp 4@ = get_player_id_by_actor_handle $PLAYER_ACTOR  // 4@ - наш ID
0B36: samp 5@ = get_player_nickname 4@   // 5@ - наш Nickname
0B36: samp 6@ = get_player_nickname 1@   //  6@ - ник игрока, которого баним
CHATMSG "Администратор %s забанил игрока %s на %d дней. Причина: %s" -1 наш_ник: 5@ ник_игрока_которого_баним: 6@ колво_дней: 2@ причина: 3@
SAMP.CMDRET()

:error
CHATMSG "Указан невалидный параметр!" -1
SAMP.CmdRet()

:error1
CHATMSG "Игрок не подключён!" -1
SAMP.CmdRet()
 
Последнее редактирование:

DonkRage

Известный
406
114
Киньте опкоды для проверки на сервер, т.е если ип не совпадает с тем, что я прописал в коде скрипт оффнется. Искал их в SB, но не нашёл, только как узнать текущий адресс.
 

astap_

Известный
Всефорумный модератор
626
597
Киньте опкоды для проверки на сервер, т.е если ип не совпадает с тем, что я прописал в коде скрипт оффнется. Искал их в SB, но не нашёл, только как узнать текущий адресс.
CLEO:
:Label
ALLOC 2@ 200
0C11: memset destination 2@ value 0 size 200
0B39: samp get_current_server_address 2@ port 0
IF
8C29:   not 1@ = stristr string1 2@ string2 "5.254.104" // Advance RP
JF @Label2 // продолжаем работу
CHATMSG "Скрипт не для этого сервера!"
FREE 2@
0A93: end_custom_thread // "выгружаем" скрипт
 
Последнее редактирование:
  • Нравится
Реакции: DonkRage

DonkRage

Известный
406
114
Возможно ли сделать затухание/возгарание samp_textdraw? (Плавно появляется и исчезает)