THE-FYP/SAMP.Lua · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈
SAMP.Lua
SAMP.Lua 是专为 MoonLoader 设计的 Lua 库,它通过添加一些功能来简化 SA:MP 的模组开发。
目前该库仍在开发中。现阶段唯一已实现的模块是 SAMP.Events。
安装
将整个 samp 文件夹复制到 moonloader/lib/ 目录中。
SAMP.Events
它能以非常简单的方式处理 SA:MP 发送和接收的低级网络数据包。
使用方式
local sampev = require 'samp.events'
-- intercept outgoing chat messages
function sampev.onSendChat(msg)
print('You said: ' .. msg)
end
您可以重写数据。只需在表格中按正确顺序返回所有参数即可。
function sampev.onSendChat(msg)
return {'I said: ' .. msg}
end
您也可以通过返回 false 来中断对任何数据包的处理。
function sampev.onSetPlayerPos(position)
-- prevent server from changing player's position
return false
end
添加自定义数据包处理程序
local sampev = require 'samp.events'
local raknet = require 'samp.raknet'
sampev.INTERFACE.INCOMING_RPCS[raknet.RPC.PLAYSOUND] = {'onPlaySound', {soundId = 'int32'}, {coordinates = 'vector3d'}}
function sampev.onPlaySound(sound, coords)
-- add log message
print(string.format('Sound %d at coords %0.2f, %0.2f, %0.2f', sound, coords.x, coords.y, coords.z))
-- and mute sound
return false
end
同样的方法,您还可以为更复杂的数据包结构添加自定义类型。更多信息与示例请参见源代码。
链接
MoonLoader:http://blast.hk/moonloader/
BlastHack 上的官方帖子:http://blast.hk/threads/14624/
致谢
FYP、MISTER_GONWIK 以及所有贡献者。