Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {$CLEO}
- /*
- RakNet - является сетевым движком SA:MP'а.
- Все данные, которые посылаются нам / отсылаем мы сами, хранятся в BitStream - структура, которая хранит данные побайтово.
- В SA:MP'e имеется 2 вида данных для обмена информацией между клиентом и сервером - Packet и RPC.
- */
- 0BE3: raknet setup_incoming_rpc_hook @iRPC { Перехват всех входящих RPC }
- 0BE1: raknet setup_outcoming_rpc_hook @oRPC { Перехват всех исходящих RPC }
- 0BE4: raknet setup_incoming_packet_hook @iPacket { Перехват всех входящих пакетов }
- 0BE2: raknet setup_outcoming_packet_hook @oPacket { Перехват всех исходящих пакетов }
- 0BDE: pause_thread 0
- :iRPC
- 0BE5: raknet 0@ = get_hook_param {PARAM_PACKETID}1
- 0BF8: raknet 0@ = get_rpc_name 0@
- 0B78: log "iRPC: %s" {iRPC}0@
- 0BE0: raknet hook_ret TRUE
- :oRPC
- 0BE5: raknet 0@ = get_hook_param {PARAM_PACKETID}1
- 0BF8: raknet 0@ = get_rpc_name 0@
- 0B78: log "oRPC: %s" {oRPC}0@
- 0BE0: raknet hook_ret TRUE
- :iPacket
- 0BE5: raknet 0@ = get_hook_param {PARAM_PACKETID}1
- 0BF9: raknet 0@ = get_packet_name 0@
- 0B78: log "iPacket: %s" {iPacket}0@
- 0BE0: raknet hook_ret TRUE
- :oPacket
- 0BE5: raknet 0@ = get_hook_param {PARAM_PACKETID}1
- 0BF9: raknet 0@ = get_packet_name 0@
- 0B78: log "oPacket: %s" {oPacket}0@
- 0BE0: raknet hook_ret TRUE
- /*
- TRUE (1) - Packet/RPC принимается/отправляется серверу.
- FALSE (0) - Packet/RPC НЕ принимается/НЕ отправляется серверу.
- */
- { Часть 2 }
- // Разница между RPC и Packet'ами.
- {
- RPC - это в основном мелкие процедуры которые сервер присылает Вам или Вы отсылаете серверу.
- Packet - это большие процедуры которые так же могут быть получены с сервера и могут быть посланы Вами.
- Примеры:
- RPC - Смена погоды, смена времени, телепортация и т.д.
- Packet - Текущая позиция игрока, скорость движения, количество ХП, АП и т.д.
- Если углубиться, то большая разница между RPC и Packet'ами в том, что в структуре каждого Packet'a первый байт всегда отвечает за ID Packet'a, а все последующие данные отвечают уже за структуру Packet'a .
- В RPC же всё проще. В них никогда первый байт не отвечает за ID RPC, за исключением того, что это предусмотрено самим RPC .
- Все названия RPC и Packet'ов могут быть найдены в файле SF, который находится в папке SB/data/sa (Если Вы до этого устанавливали опкоды SF) .
- }
- // Новые опкоды для Часть 2.
- /*
- Opcode: 0BE5: raknet 0@ = get_hook_param 0@
- Описание: Возвращает указанный параметр Hook'a .
- Список параметров:
- PARAM_BITSTREAM = 0 // Получает BitStream из Hook'a .
- PARAM_PACKETID = 1 // Получает ID RPC/Packet'a из Hook'a .
- PARAM_PRIORITY = 2 // ...
- PARAM_RELIABILITY = 3 // ...
- PARAM_ORDERINGCHANNEL = 4 // ...
- PARAM_SHIFTTIMESTAMP = 5 // ...
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement