Гайд #3 | Работа с библиотекой SAMP.lua
UFDHBI
https://vk.me/gfrtgf
Все, библиотеку мы установили, переходим к написанию скриптов.
Я создал файл Hooks.lua, кодировка windows 1251.
Поместил туда шаблон:
Подключим нашу библиотеку:
Попробуем отловить входящий пакет о присоеденении игрока к серверу на котором вы находитесь, пишем следующий код:
Мы написали код который будет отлавливать пакеты с информацией о том что игрок присоеденился к серверу, но никак мы не обработали, давайте выведем в чат кто присоеденился и с каким ID.
Теперь каждый раз когда кто-то присоединяется к серверу мы видим сообщение в чате:
nickname[id] присоединился к серверу.
Теперь перехватим входящее сообщение от сервера
Давайте сделаем, чтобы все сообщения которые нам приходят от сервера были зелеными.
Источник
SAMP.Lua
Изначально эта библиотека задумывалась как простой апи исключительно для обработки сетевых пакетов, но в процессе было решешо, что лучше бы сделать её полноценной библиотекой для работы с сампом, в будущем это позволит избавить от необходимости использования SAMPFUNCS. Пока реализован только модуль, значительно упрощающий работу с пакетами, так что говорить сейчас будем о нём.
SAMP.Events
Этот модуль добавляет событийную обработку входящих и исходящих RakNet пакетов. Имеет удобный API, полностью кастомизируем, предоставляет те же возможности, что и обычные хуки: чтение, перезапись, игнорирование.
Использование
Простой пример обработки исходящего сообщения в чат:
Структуры всех пакетов находятся в файле events.lua.
Перезапись исходящих пакетов синхронизации слегка отличается от всех остальных — они не требуют возврата аргументов, а вместо этого данные перезаписываются как в обычной таблице lua. Это сделано для повышения производительности.
Пример перезаписи позиции в исходящих данных синхронизации игрока:
Это применимо только в событиях onSendPlayerSync, onSendVehicleSync, onSendPassengerSync, onSendAimSync, onSendUnoccupiedSync, onSendTrailerSync, onSendBulletSync, onSendSpectatorSync.
Структуры всех пакетов синхронизации находятся в файле synchronization.lua.
Примеры скриптов
AntiCarJack — перехват и игнорирование входящего RPC и пакета синхронизации
Bubble Sniffer — перехват и обработка входящего RPC
DerpCam — перезапись данных исходящего пакета синхронизации
Chat Bliss — перезапись, игнорирование и обработка исходящего RPC
Источник
луа кодинг
RusGaming
Участник
fallengod
open your eyes
p0pc0rn
Участник
RusGaming
Участник
fallengod
open your eyes
можешь в скрипт мне впихнуть? я просто не знаю, как это правильно там сделать
можешь в скрипт мне впихнуть? я просто не знаю, как это правильно там сделать
RusGaming
Участник
= nil then
else
sampAddChatMessage(«
sampAddChatMessage(«
sampAddChatMessage(«
sampAddChatMessage(«
sampAddChatMessage(«
sampAddChatMessage(«
end
end
function lec(param)
lecid = string.match(param, ‘(%d+)’)
if lecid
= nil then
else
sampAddChatMessage(«
sampAddChatMessage(«
sampAddChatMessage(«
sampAddChatMessage(«
sampAddChatMessage(«
sampAddChatMessage(«
end
end
function exper(param)
experid = string.match(param, ‘(%d+)’)
if experid
= nil then
else
sampAddChatMessage(«
sampAddChatMessage(«
end
end
function raz(param)
razid = string.match(param, ‘(%d+)’)
if razid
= nil then
else
sampAddChatMessage(«
sampAddChatMessage(«
end
end
function fbihelp()
local fbihelp = [[
Скрипт сделан для сотрудников FBI +8 ранга. Над скриптом работали: Rayli_Enyag and Bracciale_Paciotti
]]
sampShowDialog(1010, »
end
Источник