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

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,979
  • Нравится
Реакции: Избранный

BlackKnigga

Известный
BH Team
922
446
попробуй так
:fArrest
if
not 0B35: samp 0@ = get_last_command_params
then
chatmsg "[Подсказка}: Используйте /farrest [Звание] [Ваш ник] [Ник преступника] [Время ареста]"
Для проверки введения параметров после команды можно использовать опкод 0AD4. Первый его параметр возвращает кол-во успешных преобразований.
Для тебя:
CLEO:
{$CLEO}
0000:

wait 0
chatmsg "{ADFF2F}Cleo fake arrest for ARP by {0000FF}ackman31 успешно загружено"

0B34: "farrest" @fArrest
0BDE: pause_thread 0

:fArrest
0B35: samp 0@ = get_last_command_params
0AD4: 10@ = scan_string 0@ format "%d" 1@ // Если преобразование пройдет успешно(0@ просканируется и ее значение запишется в 1@), опкод вернет 1. Иначе(если параметров нет или там будет например текст который нельзя всунут по параметру %d), в 10@ вернется 0.
if
10@ == 0
then
chatmsg "[Подсказка}: Используйте /farrest [Звание] [Ваш ник] [Ник преступника] [Время ареста]" 0xADFF2F
else
alloc 1@ 128

Также можно делать проверки на необходимое кол-во параметров.
 
Последнее редактирование:

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,979
а как когда дальше?Т.е если параметры есть то идет сам скрипт
CLEO:
{$CLEO}
0B34: samp register_client_command "CMD" to_label @CMD
0BDE: pause_thread 0

:CMD
IF 0B35: samp 0@ = get_last_command_params
THEN 0B78: log "0"
ELSE 0B78: log "1"
END
0B43: samp cmd_ret

Если ты написал что-то в параметрах, то сработает 1, а если не написал, то 0.
 

ackman31

Новичок
35
0
CLEO:
{$CLEO}
0B34: samp register_client_command "CMD" to_label @CMD
0BDE: pause_thread 0

:CMD
IF 0B35: samp 0@ = get_last_command_params
THEN 0B78: log "0"
ELSE 0B78: log "1"
END
0B43: samp cmd_ret

Если ты написал что-то в параметрах, то сработает 1, а если не написал, то 0.
Воу, работает, спасибо.
 

AWRage

Активный
642
141
Как перезаписать битстрим входящего RPC? Если приходит RPC_SetRaceCheckpoint, то как мне записать в него другие координаты чекпоинта? Или нужно эмулировать?

P.S. RPC_SetRaceCheckpoint - BYTE type, float[3] pos, float[3] nextpos, float radius
 

Dark_Knight

Me, me and me.
Друг
4,078
2,094
Как перезаписать битстрим входящего RPC? Если приходит RPC_SetRaceCheckpoint, то как мне записать в него другие координаты чекпоинта? Или нужно эмулировать?

P.S. RPC_SetRaceCheckpoint - BYTE type, float[3] pos, float[3] nextpos, float radius
https://www.blast.hk/wiki/tutorials:sf_raknet
 
  • Нравится
Реакции: AWRage

AWRage

Активный
642
141
Почему у меня не работает опкод 0BD1: samp send_picked_up_pickup 0@?
Указываю ID пикапа, но он не поднимается. Или чтобы поднять пикап нужен другой способ?
 

AWRage

Активный
642
141
Всё подбирается же.
На ДРП не работает, либо это я криворукий. Щас кину скринчеГ.

CLEO:
{$CLEO}
{$INCLUDE SF}
0000:


while 8AFA:
wait 0
end

0B34: "reload" @Reload
0BE3: setup_incoming_rpc_hook @IncomingRPC
0BE1: setup_outcoming_rpc_hook @OutcomingRPC

while true

    if 0ADC: "Q"
    then
        0BD1: send_picked_up_pickup 1@
    end
   
wait 0
end

:IncomingRPC
0BE0: hook_ret true

:OutcomingRPC
0BE5: 0@ = get_hook_param PARAM_PACKETID
if 0@ == RPC_PICKEDUPPICKUP
then
    0BE5: 0@ = get_hook_param PARAM_BITSTREAM
    0BE7: 1@ = bit_stream_read 0@ type BS_TYPE_BYTE
    0AF8: " >ID: %i" 0xFFAA00 1@
end
0BE0: hook_ret true

:Reload
0AF8: " >Dev: {FFFFFF}Script {AA5555}'Dev.cs' {FFFFFF}was reloaded successfully.." 0xFFAA00
0A92: create_custom_thread "Dev.cs"
0A93: end_custom_thread
0B43: cmd_ret
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,979
На сервере вполне может не работать. Я про опкод говорю.