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

Ranto

Участник
45
1
Как сделать вывод ид игрока и ника в чат? Какими функциями?
Лови
CLEO:
{$CLEO}
0000:
wait 2000
0B34: reg_cmd "ip" @cmd @com
while true
wait 0
end
:cmd
wait 0
0B35: samp 0@ = get_last_command_params
if 0AD4: 1@ = scan_string 0@ format "%d" 2@
then
    if 0B23:  samp is_player_connected 2@
    then
        0B36: samp 3@ = get_player_nickname 2@
        0Af8: msg_to_chat "%s[%d]" 0xFFCC00 3@ 2@
    end
end
0B43: cmd_ret
 

jenekbueno

Известный
157
69
Настрой свой СБ как на скринах, все будет нормуль.

gMDsrAw.png
2zMEcVz.png
AMgSVDi.png
 

jenekbueno

Известный
157
69
Как реализовать:
Если игрок стоит на определенном месте более 10 секунд, то он делает определенное действие
Код:
{$CLEO}
0000:

repeat
wait 0
until Samp.Available() // подождали пока наш сампикуе загрузится

while true
wait 0
    Actor.StorePos($player_actor 0@ 1@ 2@) // получили нашу позицию
    if 00EC:   actor $PLAYER_ACTOR sphere 0 near_point 0@ 1@ radius 0.5 0.5
    then // если мы находимся в радиусе координат записанных в переменную 0 и 1
        5@ += 1
        wait 1000
    end
    if 5@ == 10
    then // если переменная 5 равна 10 (10 сек)
        chatmsg "мы простояли на 1 месте 10 сек" -1 // то пишем например текст в чат
    end
end
 
  • Нравится
Реакции: Supra

STROFF

Новичок
1
0
Все мпривет мне нужна помощь в написание скрипта.
Ближе к теме, пример "/traktor 228 Привет, как дела". И мне нужно получить цифру 228 и фразу "Привет, как дела". Помогите пожалуйста!
 

jenekbueno

Известный
157
69
Как можно проверить сколько литров бензина в машине?
только через хук входящего RPC_ScrShowTextDraw.

Параметры:
WORD id, len;
char text[256];
stTextDrawTransmit st;
memset(&st, 0, sizeof(stTextDrawTransmit));

Все мпривет мне нужна помощь в написание скрипта.
Ближе к теме, пример "/traktor 228 Привет, как дела". И мне нужно получить цифру 228 и фразу "Привет, как дела". Помогите пожалуйста!
Код:
if 0C18: 1@ = strstr string1 0@ string2 "/traktor 228 Привет, как дела" // если нашли такой текст в строке 0@
then
        0AD4: 2@ = scan_string 0@ format "/traktor %d Привет, как дела" 3@ // то записали в 3@ цифру
         chatmsg "%d" -1 3@ // и допустим вывели её в чат
end
 
Последнее редактирование:
  • Нравится
Реакции: JEEMBО

p1cador

cerf
Проверенный
220
359
Код:
{$CLEO}
0000:

repeat
wait 0
until Samp.Available() // подождали пока наш сампикуе загрузится

while true
wait 0
    Actor.StorePos($player_actor 0@ 1@ 2@) // получили нашу позицию
    if 00EC:   actor $PLAYER_ACTOR sphere 0 near_point 0@ 1@ radius 0.5 0.5
    then // если мы находимся в радиусе координат записанных в переменную 0 и 1
        5@ += 1
        wait 1000
    end
    if 5@ == 10
    then // если переменная 5 равна 10 (10 сек)
        chatmsg "мы простояли на 1 месте 10 сек" -1 // то пишем например текст в чат
    end
end
Ты забыл сбросить 5@, скрипт сработает только 1 раз
 

Dessgun

Новичок
2
0
Вот код
Использование: 0AB1: call @getText 2 0@ 28@ return: 27@
Код:
CLEO:
:getText
{
    Example: 0AB1: call @getText 2 0@ 28@ return: 27@
    In: 0@ - SAMP BASE; 1@ - TextDraw ID;
    Out: 4@ - text
}
    0085: 2@ = 0@
    2@ += 2173496
    0A8D: 2@ = read_memory 2@ size 4 virtual_protect 0
    2@ += 979
    0A8D: 2@ = read_memory 2@ size 4 virtual_protect 0
    2@ -= 9224
    3@ = 4
    006A: 3@ *= 1@
    005A: 2@ += 3@
    0A8D: 4@ = read_memory 2@ size 4 virtual_protect 0
0AB2: ret 1 4@
И теперь мои вопросы: Как узнать id текстдрава на сервере? И как дописать начало с активацией? И как я понял этот скрипт копирует надпись которая находиться в тексдраве?
 
Последнее редактирование модератором:

Lord

Новичок
236
42
CLEO:
{$CLEO}
{$INCLUDE SF}
0000: NOP

wait 2000

alloc 4@ 256
0c11: memset 4@ 0 256

0BE3: raknet setup_incoming_rpc_hook @ClientMessage

while true
wait 0
end

:ClientMessage
0BE5: raknet 0@ = get_hook_param PARAM_BITSTREAM
0BE5: raknet 1@ = get_hook_param PARAM_PACKETID
if
1@ == RPC_ScrClientMessage // DWORD color, DWORD strLen, char[] msg
then
    0BE7: raknet 2@ = bit_stream_read 0@ type BS_TYPE_INT
    0BE7: raknet 3@ = bit_stream_read 0@ type BS_TYPE_INT 
    0C11: memset destination 4@ value 0 size 256
    0BE8: raknet bit_stream 0@ read_array 4@ size 3@
    0C0F: array 4@ element 3@ = 0x00
end

if
0C18: 7@ = strstr string1 4@ string2 "Проверка" //-Текст в чате
then
say "Всё работает" //-Ответ
end
Что-то вроде автоответчика.
Почему крашит?