# GmTools **Repository Path**: coolxy/gm-tools ## Basic Information - **Project Name**: GmTools - **Description**: 大佬心语难诉开发的在线GM工具,作者已经在群中分享。我为方便小白们,放在gitee上方便直接git clone拉取。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 5 - **Created**: 2024-01-02 - **Last Updated**: 2025-01-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TLBB-GM在线管理工具 2.0 ## 更新说明 ``` V2.0 更新时间:2021-1-15 1.新增发物品时可以模糊搜索指定道具,实现快速查找发放物品,需要将自身版本的物品、宝石、装备文件储存到txtFiles文件夹中。 2.服务端执行完相关事件后立即break跳出循环,以免浪费过多资源 3.删除无用的tlbbdbConfig配置 ``` ## 相关疑问解答 ``` Q1: 为什么配置成功后,添加相关GM事件也显示执行成功,为什么没有效果? A1: 正如你所说,目前相关文档案例中仅支持苏州场景。所以目标玩家需要在苏州场景中才能生效。至于代码中获取4大主城场景下某玩家的objId仅仅是遗留的测试代码,并没有开发完善。目前解决的方案就是自己动手二次开发。或者等待作者更新。 Q2: 心跳NPC会被玩家恶意利用卡代码? A2: 使用xxx_monster.ini搭配心跳脚本的灵感来自于各大版本中的BOSS刷新脚本,无类型无坐标,理论上不存在卡代码行为,目前几个月以来并没有发现心跳脚本被卡的行为,且脚本并不会执行来自玩家的任何参数,所有数据均来自GM工具数据库,如果实在担心,可以在线上版本更改脚本ID。 Q3: 心跳脚本2秒远程请求一次接口会影响效率?导致很慢以至于脚本崩溃? A3: 影响效率可以忽略不计。请求过程慢取决于自身WEB服务器的稳定性。作者在长达40+days的生产环境中,配置1核2G 5M,宝塔面板 + Nginx 1.18 + PHP7.3 + MYSQL5.7,累计执行请求4581362次,总流量:38.52 MB,未曾出现过崩溃。 Q4: ScriptGlobal.lua中GMDATA_ISOPEN_GMTOOLS变量可有可无? A4: 该变量控制着是否开启在线GM工具,如果删除该变量,那么就意味着GM在线工具始终都是开启状态,只要服务端启动便会无休止的请求WEB服务器。这样就意味着如果你的版本中加入了心跳脚本就必须要配套在线GM工具,为了灵活性,最好还是保留为好。 Q5: ... A5: 更多疑问解答会以后更新 ``` ## 工具说明 本工具是由`PHP+Lua`编写的一套`TLBB GM在线管理工具`,本工具以非常巧妙的思路实现了几个基础的TLBB在线管理功能,GM可以通过`电脑PC端网页`、`手机端网页`就可以实时对游戏内相关功能、玩家做出不同功能的设定,过程中`GM无需登陆游戏`,`玩家也无需下线等待`,没错,这一切的操作都是`实时`进行的。当然有能力的朋友可以自行二次开发完善。 ## 安装/部署 ### 1.部署条件 需要自行搭建可`外部访问的WEB服务器`,推荐`Nginx+PHP+MySQL`组合,确保可以`正常执行PHP`与`数据库连接`。 ### 2.在线管理工具配置 配置`index.php` ```php $loginPassworld #你自定义的登陆密码 $privateKey #TLBB服务端请求数据时需要验证的KEY,这里也需要自定义 $dbConfig #在线管理工具数据库,配置看第三部 $webDbConfig #TLBB账号数据库 ``` ### 3.在线管理工具数据库配置 1).创建数据库,数据库名自定义,编码格式**GBK** 2).导入数据表 ```sql CREATE TABLE `eventlist` ( `id` int(11) NOT NULL AUTO_INCREMENT, `event` varchar(255) NOT NULL COMMENT '事件标识', `eventnote` varchar(255) NOT NULL COMMENT '事件说明', `createtime` int(11) NOT NULL COMMENT '事件创建时间', `status` tinyint(2) unsigned NOT NULL DEFAULT '0' COMMENT '执行状态', `requesttime` int(11) unsigned DEFAULT '0' COMMENT '事件请求回执时间', `param1` varchar(255) DEFAULT NULL COMMENT '参数1', `param2` varchar(255) DEFAULT NULL COMMENT '参数2', `param3` varchar(255) DEFAULT NULL COMMENT '参数3', `param4` varchar(255) DEFAULT NULL COMMENT '参数4', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=gbk; ``` ### 4.配置TLBB服务端 1).版本中引入`XYNS_SecondsTimer.lua` ```ini ;心语难诉添加秒级心跳脚本 666898=\XYNS_SecondsTimer.lua ``` 2).在某个场景添加一个NPC,这个NPC作用于计时器脚本,每2秒请求一次 **DEMO以苏州为例,script_id为脚本号,scripttimer为请求间隔时间,1000=1秒,推荐2秒默认** ```ini [monster122] guid=8623891 type=0 pos_x=0 pos_z=0 dir=27 script_id=666898 respawn_time=1800000 base_ai=3 scripttimer=2000 group_id=-1 team_id=-1 patrol_id=-1 shop0=-1 shop1=-1 shop2=-1 shop3=-1 ReputationID=-1 ``` 3).配置`XYNS_SecondsTimer.lua`接口 ```lua execute("cd /home/tlbb/Server/SecondsTimer;wget -q 'http://你的域名或者IP/index.php?privateKey=你在PHP文件中配置的验证KEY' -O SecondsTimerData.txt") ``` 4).配置GM工具开关 **ScriptGlobal.lua** 中配置 **GMDATA_ISOPEN_GMTOOLS** 变量,1 = 开启,0 = 关闭 ### 5.重启服务端 到这一步就已经配置完成,重启服务端后访问`http://你的域名或者IP/index.php`,输入好你设置的密码即可使用TLBB-GM在线管理工具 ## 结尾 本工具利用了`OnCharacterTimer`(**角色计时器**)来实现这一些列操作,目前仅有几个功能的DEMO版本可以应对GM的基本需求,将来会有更多神奇好玩的功能陆续开发更新。 code by 心语难诉 <437723442@qq.com>