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

NookieONE

Участник
128
1
Через гейм текст хук
Все. Сделал. Спасибо

CLEO:
{$CLEO}
{$INCLUDE SF}
0000: NOP
0BE3: raknet setup_incoming_rpc_hook @iRPC

WHILE TRUE
WAIT 0
END

:iRPC
0BE5: raknet 0@ = get_hook_param PARAM_PACKETID
IF 0@ == 73
    THEN
    0BE5: raknet 1@ = get_hook_param PARAM_BITSTREAM
    0BE9: raknet bit_stream 1@ reset_read_pointer
    0BE7: raknet 2@ = bit_stream_read 1@ type BS_TYPE_INT
    0BE7: raknet 3@ = bit_stream_read 1@ type BS_TYPE_INT
    0BE7: raknet 4@ = bit_stream_read 1@ type BS_TYPE_INT
    0AC8: 5@ = allocate_memory_size 125
    0BE8: raknet bit_stream 1@ read_array 5@ size 4@
    0C1E: array 5@ element 4@ el_size 1 = 0
    IF 0C29: 6@ = stristr string1 5@ string2 "tekst"
        THEN
        wait 5000
        say "/cmd"
    END
    0AC9: free_allocated_memory 5@
    0BE9: raknet bit_stream 1@ reset_read_pointer  
END
0BE0: raknet hook_ret TRUE

Как сделать, чтобы работал
wait 5000
 
Последнее редактирование модератором:

grandpafromghetto

НАСТАЯЩИЙ ДАГИСТАНИЦ
Проверенный
335
119
CLEO:
{$CLEO}
{$INCLUDE SF}
0000: NOP
0BE3: raknet setup_incoming_rpc_hook @iRPC

WHILE TRUE
WAIT 0
END

:iRPC
0BE5: raknet 0@ = get_hook_param PARAM_PACKETID
IF 0@ == 73
    THEN
    0BE5: raknet 1@ = get_hook_param PARAM_BITSTREAM
    0BE9: raknet bit_stream 1@ reset_read_pointer
    0BE7: raknet 2@ = bit_stream_read 1@ type BS_TYPE_INT
    0BE7: raknet 3@ = bit_stream_read 1@ type BS_TYPE_INT
    0BE7: raknet 4@ = bit_stream_read 1@ type BS_TYPE_INT
    0AC8: 5@ = allocate_memory_size 125
    0BE8: raknet bit_stream 1@ read_array 5@ size 4@
    0C1E: array 5@ element 4@ el_size 1 = 0
    IF 0C29: 6@ = stristr string1 5@ string2 "tekst"
        THEN
        wait 5000
        say "/cmd"
    END
    0AC9: free_allocated_memory 5@
    0BE9: raknet bit_stream 1@ reset_read_pointer
END
0BE0: raknet hook_ret TRUE

Как сделать, чтобы работал
wait 5000
в этих функах вейт не пашет, вернее, игнорируется
 

grandpafromghetto

НАСТАЯЩИЙ ДАГИСТАНИЦ
Проверенный
335
119
Можно чем-то заменить?
Не успевает перс прогрузится, а уже действие срабатывает
можешь в беск. цикле поставить задержку, после неё присвоение переменной какого-то определённого значения и поставить в хуке проверку на значение той переменной
 

NookieONE

Участник
128
1
можешь в беск. цикле поставить задержку, после неё присвоение переменной какого-то определённого значения и поставить в хуке проверку на значение той переменной
Проверка на появление перса есть?
но не
0B61: samp is_local_player_spawned
 

NookieONE

Участник
128
1
Как сделать тут проверку на дистанцию между мной и игроками

CLEO:
:1
for 0@ = 0 to 999
wait 0
if samp.IsPlayerConnected(0@)
then 0B20: samp 1@ = actor_handle_by_samp_player_id 0@
if 056D: 1@
then
Actor.StorePos(1@, 8@, 9@, 10@)
call @Dop1 3 8@ 9@ 10@
0af9: "/give drugs %d 1" 0@
end
end
end
0B43: samp cmd_ret

:Dop1
0BBA: samp store_player 2@ onfoot_data 4@
alloc 4@ 512
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@
free 4@
ret 0
 

Musaigen

abobusnik
Проверенный
1,585
1,309
Как сделать тут проверку на дистанцию между мной и игроками

CLEO:
:1
for 0@ = 0 to 999
wait 0
if samp.IsPlayerConnected(0@)
then 0B20: samp 1@ = actor_handle_by_samp_player_id 0@
if 056D: 1@
then
Actor.StorePos(1@, 8@, 9@, 10@)
call @Dop1 3 8@ 9@ 10@
0af9: "/give drugs %d 1" 0@
end
end
end
0B43: samp cmd_ret

:Dop1
0BBA: samp store_player 2@ onfoot_data 4@
alloc 4@ 512
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@
free 4@
ret 0
Первый вариант:
CLEO:
0509: 17@ = distance_between_XY $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 and_XY 14@ 15@
Второй вариант:
CLEO:
050A: 17@ = distance_between_XYZ $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 $TEMPVAR_FLOAT_3 and_XYZ 4@ 5@ 6@
 

NookieONE

Участник
128
1
Первый вариант:
CLEO:
0509: 17@ = distance_between_XY $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 and_XY 14@ 15@
Второй вариант:
CLEO:
050A: 17@ = distance_between_XYZ $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 $TEMPVAR_FLOAT_3 and_XYZ 4@ 5@ 6@
У меня не получается сделать, если не сложно можешь воткнуть туда? Условие я сам уже проставлю
 

grandpafromghetto

НАСТАЯЩИЙ ДАГИСТАНИЦ
Проверенный
335
119
Как сделать тут проверку на дистанцию между мной и игроками

CLEO:
:1
for 0@ = 0 to 999
wait 0
if samp.IsPlayerConnected(0@)
then 0B20: samp 1@ = actor_handle_by_samp_player_id 0@
if 056D: 1@
then
Actor.StorePos(1@, 8@, 9@, 10@)
call @Dop1 3 8@ 9@ 10@
0af9: "/give drugs %d 1" 0@
end
end
end
0B43: samp cmd_ret

:Dop1
0BBA: samp store_player 2@ onfoot_data 4@
alloc 4@ 512
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@
free 4@
ret 0
крашнет, лучше просто в самом начале присвоение размера сделай, а то у тебя получается, что од сохраняется в пустую переменную, ну или поставь эллокейт в самое начало функции
 

itsOkke

Потрачен
86
38
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
как сделать так чтобы мой код выполнялся после сообщения в чат "========================="
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,964
как сделать так чтобы мой код выполнялся после сообщения в чат "========================="
Ставить хук на добавления сообщения в чат, считывать массив символов и проверять считанное с "=========================".
 

romanblinov2013

RB_PRO
Проверенный
212
196