前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >服务器直接输入字符串代码执行方法测试

服务器直接输入字符串代码执行方法测试

原创
作者头像
深雾
修改2020-07-07 14:32:50
4960
修改2020-07-07 14:32:50
举报
文章被收录于专栏:工具类工具类

前言

我们在写代码的过程中时常要调试,但线上的服务器打包部署运行很费时,或者需要在线上查看数据,可以直接在服务器上输入需要执行的代码

后台输入接口

判定是否有gm权限,前缀runstr执行代码

代码语言:lua
复制
function GM:RunCMD(str)
	if self.player.gm_level ~= 100 then
		lua_app.log_error("GM:RunCMD: not GM", self.player.cache.account, self.player.cache.name, self.player.ip, str)
		return
	end
	if head7 == "runstr " then
		local strcode = string.sub(str, 8)
		self:runstr(strcode)
		return
	end
end

--运行字符串代码
function GM:runstr(str)
	--local f = loadstring(str) --lua5.3弃用了
	SetGmPlayer(self.player)
	local f = load(str)
	if f then
		pcall(f)
	end
	SetGmPlayer(nil)
end

打印测试效果

输入runstr local player = WHO() print(player.cache.level)

代码语言:lua
复制
function WHO(dbid)
	if not dbid then
		return GetGmPlayer()
	end
	return server.playerCenter:GetPlayerByDBID(dbid)
end

who()默认获取当前用户信息,打印出玩家等级为50

执行服务器方法

这个方法更为好用,可以用来测试,以后有异常情况也可以重新调用

下面是帮派职务每天自动更新,因为运营需要测试,我写了个命令直接刷新。

测试效果

调用此命令,直接刷新帮派职务,玩家贡献度高获得帮主职位

此命令本地方法,所以需要先取的服务器和玩家类

代码语言:javascript
复制
function GetServer()
	return server
end

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 后台输入接口
    • 打印测试效果
    • 执行服务器方法
      • 测试效果
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档