ITADN
THE-FYP/SAMP.Lua
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/

致谢

FYPMISTER_GONWIK 以及所有贡献者。