使用lua给石器时代添加自定义GM命令

2019-11-0610:28石器单机版石器

使用lua制作一个GM命令(让指定宠物回炉并提升到140级,并且一定极品)

. 建立函数main 并使用和定义GM命令接口


使用petreset字段作为GM指令(字段自定义) --例 [gm petreset 1] 把宠物栏第一个宠物回炉并提升至140
* 使用函数PetReSet作为执行函数
 使用lua给石器时代添加自定义GM命令 石器单机版 第1张石器时代图片石器so石器sf石器时代私服疯狂原始人 
magic.addLUAListFunction 
-- 括号里的参数 
1.Gm命令字段 (自定义)
2.该接口所执行的函数 (自定义)
3.该函数的路径(默认为此lua文件) 
4.GM等级(data目录下gmset.txt里设置的等级) --只限于大于该等级的GM账号使用
5.注解(无意义)

说明
当该账号为gm等级3且游戏中输入[gm petreset]时,会触发函数PetReSet


. 建立函数PetReSet
 使用lua给石器时代添加自定义GM命令 石器单机版 第2张石器时代图片石器so石器sf石器时代私服疯狂原始人 
该函数附带2个参数(固定)(参数名自定)
参数1:使用该命令的玩家索引
参数2:该命令的内容 --指[gm petresetXXXXXXX] 只包括红色部分内容--函数main创建的magic.addLUAListFunction定义的第一个参数名(不包括该字段)后面的内容如下图:
 使用lua给石器时代添加自定义GM命令 石器单机版 第3张石器时代图片石器so石器sf石器时代私服疯狂原始人 
 使用lua给石器时代添加自定义GM命令 石器单机版 第4张石器时代图片石器so石器sf石器时代私服疯狂原始人 

. 完成函数PetReSet内容
1. 根据字段截取数字 --设定数字为宠物栏位置
2. 判断位置是否有宠物
3. 删除该宠物,建立相同编号宠物并获取该宠物索引
4. 设定该宠物索引能力值和等级
 使用lua给石器时代添加自定义GM命令 石器单机版 第5张石器时代图片石器so石器sf石器时代私服疯狂原始人 
(请点击查看大图)总结
1.当玩家输入[gm petreset 1]时,检测该账号是否为GM等级3
2.如果该账号是GM等级3账号则执行函数PetReSet3.获取petreset之后第一个空格到第二个空格(或结束)的字符串,转化该字符串为数值型并赋值于局部变量petid
3.检测petid是否为大于0或小于6的数
4.让该数字减1得到实际对应的宠物栏位置后检测该位置是否有宠物
5.如果该位置有宠物则获取该宠物enemy编号
6.删除原宠物,再次创建一个新的相同编号的1级宠物,并设置宠物能力值
7.让该宠物升级139次,设定该宠物等级为140级
8.刷新宠物栏所有宠物   --刷新是显示最新的数值,如不刷新则显示原始的数值,不影响游戏实际操作(当储存,捡起,交易,进入战斗都会强制刷新)

 使用lua给石器时代添加自定义GM命令 石器单机版 第6张石器时代图片石器so石器sf石器时代私服疯狂原始人

*注意
 使用lua给石器时代添加自定义GM命令 石器单机版 第7张石器时代图片石器so石器sf石器时代私服疯狂原始人

上图在char.sendStatusString接口由0到4循环5次等于刷新所有宠物栏位置(服务器获取玩家宠物位置由0开始)
例:char.sendStatusString(abc,"K0") 数字0代表第一个宠物,4代表第5个宠物
在这里可以利用第一个局部变量petid直接刷新指定宠物
例:char.sendStatusString(abc,"K"..(petid-1))
但该逻辑存在的问题,就是当GM输入[gm petreset 3]
首先删除宠物栏3号位置的宠物,然后创建一个新的宠物
如果GM宠物栏1或2没有其他宠物,则该宠物创立在宠物栏1或2的位置


 使用lua给石器时代添加自定义GM命令 石器单机版 第8张石器时代图片石器so石器sf石器时代私服疯狂原始人  使用lua给石器时代添加自定义GM命令 石器单机版 第9张石器时代图片石器so石器sf石器时代私服疯狂原始人 

石器时代历史 PC端石器任务 石器时代俱乐部 石器cc 石器时代7.5