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

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,979
Тогда использовать только через фейксинхру или как?

Попробуй так, но я не думаю, что что-то изменится.

CLEO:
0AB1: call_scm_func @Send_RPC_PICKEDUPPICKUP params 1 | 0@ ||

:Send_RPC_PICKEDUPPICKUP
0B3D: raknet 25@ = new_bit_stream
0B40: raknet bit_stream 25@ write 0@ type 3 size 4
0B8A: raknet send_rpc RPC_PICKEDUPPICKUP bit_stream 25@
0B3E: raknet delete_bit_stream 25@
0AB2: ret 0 ||
 

hnnssy

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

AWRage

Активный
642
141
Попробуй так, но я не думаю, что что-то изменится.

CLEO:
0AB1: call_scm_func @Send_RPC_PICKEDUPPICKUP params 1 | 0@ ||

:Send_RPC_PICKEDUPPICKUP
0B3D: raknet 25@ = new_bit_stream
0B40: raknet bit_stream 25@ write 0@ type 3 size 4
0B8A: raknet send_rpc RPC_PICKEDUPPICKUP bit_stream 25@
0B3E: raknet delete_bit_stream 25@
0AB2: ret 0 ||
Вручную тоже отправлял, не выходит.
Возможно на сервере стоит проверка позиции игрока, попробуй стоять рядом с пикапом.
Насколько рядом? Если я стану на него, то я его подберу, если я буду стоять на нем, то прийдется перезаходить на него. Тут либо стать на него и не позволять отправлять пакет серверу, а потом когда активирую кнопкой - отправить когда нужно мне.
 

hnnssy

Известный
Друг
2,684
2,760
Вручную тоже отправлял, не выходит.

Насколько рядом? Если я стану на него, то я его подберу, если я буду стоять на нем, то прийдется перезаходить на него. Тут либо стать на него и не позволять отправлять пакет серверу, а потом когда активирую кнопкой - отправить когда нужно мне.
Не НА него, а рядом с ним.
 

AWRage

Активный
642
141
Не НА него, а рядом с ним.
Тоже не работает. Там похоже вообще не используется этот RPC. Если хукать RPC и близко подойти к пикапу, то я его подбираю, а RPC не отправляется от меня. Я веду к тому, что там, скорее всего, через онфут синхру работает все и чтобы взять пикап, необходимо её редактировать при отправке.
 

Zoxan_Twist

Новичок
126
29
Код:
{$CLEO}
{$INCLUDE SF}
0001: wait 0 ms
while not SAMP.Available()
    wait 400
end
0BE3: raknet setup_incoming_rpc_hook @in_rpc
0BDE: pause_thread 0
:in_rpc
0BE5: raknet 0@ = get_hook_param PARAM_PACKETID
if
    0@ == RPC_GIVETAKEDAMAGE
then
    0B78: log "RPC: %d" 0@
    0BE5: raknet 1@ = get_hook_param PARAM_BITSTREAM
    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_FLOAT
    0BE7: raknet 5@ = bit_stream_read 1@ type BS_TYPE_INT    
    0B78: log "Damage: %i" 1@
    0B78: log "ID: %d" 2@
    0B78: log "Float: %f" 3@
    0B78: log "Weapon: %d" 4@
end
0BE0: raknet hook_ret true
Почему может не работать?
 
Последнее редактирование:

hnnssy

Известный
Друг
2,684
2,760
Код:
{$CLEO}
{$INCLUDE SF}
0001: wait 0 ms
while not SAMP.Available()
    wait 400
end
0BE3: raknet setup_incoming_rpc_hook @in_rpc
0BDE: pause_thread 0
:in_rpc
0BE5: raknet 0@ = get_hook_param PARAM_PACKETID
if
    0@ == RPC_GIVETAKEDAMAGE
then
    0B78: log "RPC: %d" 0@
    0BE5: raknet 1@ = get_hook_param PARAM_BITSTREAM
    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_FLOAT
    0BE7: raknet 5@ = bit_stream_read 1@ type BS_TYPE_INT  
    0B78: log "Damage: %i" 1@
    0B78: log "ID: %d" 2@
    0B78: log "Float: %f" 3@
    0B78: log "Weapon: %d" 4@
end
0BE0: raknet hook_ret true
Почему может не работать?
Параметр один проебал. bool dmgType, uint16_t issuerId, float damage, int weapon, int bodypart
да и вообще руки кривые
0B78: log "Damage: %i" 1@
в 1@ у тебя битстрим
 

Zoxan_Twist

Новичок
126
29
Параметр один проебал. bool dmgType, uint16_t issuerId, float damage, int weapon, int bodypart
да и вообще руки кривые
0B78: log "Damage: %i" 1@
в 1@ у тебя битстрим
Данные брались исходя из этой таблицы. Там ни слова о dmgType
https://docs.google.com/spreadsheets/d/1iIxEk7yR8r7ZLGiSAL4ndtz_N1k0p3Wt7TE5bei6ztU/edit#gid=1
Где можно найти таблицу с этими параметрами?
 

Dark_Knight

Me, me and me.
Друг
4,078
2,094
https://www.blast.hk/wiki/tutorials:dxut_dialogs
https://www.blast.hk/wiki/tutorials:local_dialogs
Первые лучше.
 

ackman31

Новичок
35
0
https://www.blast.hk/wiki/tutorials:dxut_dialogs
https://www.blast.hk/wiki/tutorials:local_dialogs
Первые лучше.
сяб, спасибо.

Вместо введных параметров пишет какие-то непонятные символы
Код:
{$CLEO}
0000:

while 8AFA:
wait 0
end

0B34: samp register_client_command "fmet" to_label @cmd
0BDE: pause_thread 0

:cmd
if
0B35: samp 0@ = get_last_command_params
then
0B78: log "0"
chatmsg "[Подсказка}: Используйте /fmet [Ранг] [Ваш ник] [Ваш ид] [Кол-во металла]" 11403055
else
0B78: log "1"
alloc 1@ 128
alloc 2@ 128
alloc 3@ 128
alloc 4@ 128
0AA5: call 0x8220AD num_params 4 pop 4 params 1@v 2@v 3@ 4@ "%s %s %s %s" 0@
0AF8: samp add_message_to_chat "{00B2EE}%s %s[%s] положил на склад мафии {32CD32}%s кг металла" 1@ 2@ 3@ 4@
0AC9: free_allocated_memory 1@
0AC9: free_allocated_memory 2@
0AC9: free_allocated_memory 3@
0AC9: free_allocated_memory 4@
end
0B43: samp cmd_ret
 
Последнее редактирование модератором:

Vovich

HOT
Проверенный
717
197
Вместо введных параметров пишет какие-то непонятные символы
Код:
{$CLEO}
0000:
Код:
{$CLEO}
0000:
repeat
wait 150
until 0afa:
0B34: samp register_client_command "fmet" to_label @cmd
alloc 1@ 128
alloc 2@ 128
alloc 3@ 128
alloc 4@ 128
while true
wait 0
if 22@ == 1
then
0AA5: call 0x8220AD num_params 6 pop 6 params 4@v 3@v 2@ 1@ "%s %s %d %d" 0@
0AF8: samp add_message_to_chat "%s %s[%d] положил на склад мафии {32CD32}%d кг металла" 0x00B2EE 1@ 2@ 3@ 4@
22@ = 0
end 
end 

:cmd
if 0B35: samp 0@ = get_last_command_params
then
0B78: log "0"
chatmsg "[Подсказка}: Используйте /fmet [Ранг] [Ваш ник] [Ваш ид] [Кол-во металла]" 11403055
else
22@ = 1
0b78: log "1"
end 
SAMP.CmdRet()