关于 Trinitycore 可用于 LUA 脚本的 API 的问题
首先,如果我在这里发表问题是错的,请让我道歉。
我正在使用 单人项目服务器3.3.5。我正在尝试编写一个脚本,每当用户在游戏中地图上指向时就会传送玩家。
我修改了 Carbonite 插件,以便将项添加到地图右键菜单中,这样它就会发送 gm 命令 [.go zonexy][3] [zonecoordinate X] [zonecoordinate Y]。
但它只适用于玩家当前所在的区域。我希望它适用于我在地图上能看到的所有区域。为此,我需要在 AreaTableID 上找到一个 zoneId(这是 .go zonexy 命令的一个可选参数)
我毫不怀疑,我无法弄清楚如何在客户端获取当前地图区域 ID。我查找了一下,只找到 GetCurrentMapZone(),它给我一个数字,我真的不知道该怎么做。还有 GetRealZoneText(),它返回光标所指向的区域名称。这几乎是我需要的。我需要区域 ID 而不是区域名称。GetCurrentMapAreaID() 也给了我一个 mapID,但它不匹配我需要的 zoneID。
因此,我想在服务器端制作一个 lua 脚本,将 [zonecoordinate X] [zonecoordinate Y] [zone name] 从客户端中提取出来,并将区域名称转换为区域 ID。或者通过某种方式从 GetCurrentMapZone() 和 GetCurrentMapAreaID() 中获取 zoneid。
然而,我没有找到任何关于在 Lua 脚本中可用的 API 的文档。我查看了一些随单人项目提供的脚本。其中之一是 'System_Group_commands.lua'(以下附上),我已经连接到它。我成功地将信息从客户端传递了过来,但我不知道是否可以从 LUA 查找字符串区域名称并从 AreaTableID 中获取其 ID。另外一个问题是,我传递了区域坐标,但是 Player: Teleport 在 Lua 中想要的是绝对地图坐标。我查看了 Teleport 函数和 '.go zonexy' 函数的 c++ 源代码,看来 .go zonexy 函数将本地坐标转换为全局坐标。使用
Zone2MapCoordinates(x, y, zoneEntry->ID); //line 454 in cs_go.cpp attached below
但是,我不知道这个函数是否暴露给 LUA 脚本。
如果有人能帮帮我,我将不胜感激。也许有一种简单的方法可以从客户端获取区域 ID,或者我没有注意到其他方面......
谢谢
PS. 一张图片胜过千言万语...... 这里 是目前的工作方式。将其扩展到地图的其他区域将会很好。
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
