cgmsv引擎论坛

 找回密码
 注册/Sign up
搜索
查看: 5171|回复: 3

[LUA] easygm 修复,适配cgmsv,gm命令扩充

[复制链接]

Rank: 1

发表于 2021-5-6 08:21:04 | 显示全部楼层 |阅读模式
EasyGm.lua  原自某sf
源版无法适配cgmsv,经过本人修复,已验证cgmsv可用
此lua相当于gm命令的扩充,比右键gm好用可以远程操作玩家,无需与玩家见面操作

功能大约包含:
1、基本控制:公告、高级在线、地图在线、鉴定、清空
2、玩家操作:踢出、召唤、跟踪、给物品、删物品、给宠物、给满档宠物、删宠物、给经验




简单介绍几个常用的命令用法:

[nr 高级在线]
可以查看所有在线玩家的名字和id
[nr 地图在线]
可以查看你当前所在地图的所有在线玩家名字和id





根据以上2条命令,你就能获得玩家的账号和id了
那么就可以继续下面的操作了







[nr 给物品 账号或名字 道具编号 数量]
如:
[nr 给物品 ahsin 88888]
[nr 给物品 ahsin 88888 10]
不填写数量即为1
[nr 给物品 all 88888 100]
全服在线的玩家,发放100个指定道具,适合发放补偿或者发放奖励
比如:sf群里sf论坛里公告今晚21:00准时,所有在线玩家将会获得系统限定奖励道具xxx一份

那么给宠物,你也能猜到怎么用了吧



[nr 清空]
清空gm身上所有道具,穿戴除外



[nr 召唤 账号或名字]
如:
[nr 召唤 ahsin]
把指定玩家传送到我身边
[nr 召唤 all]
把所有在线玩家召唤到我身边,适合活动使用,如pk赛,gm到达某竞技场,然后一键传送所有玩家到某竞技场



[nr 跟踪 账号或名字]
如:
[nr 跟踪 ahsin]
gm飞到指定玩家身边



[nr 给经验 账号或名字 数量]
如:
[nr 给经验 ahsin 1000000]
给了指定玩家1百万经验,这样操作玩家提升等级会获得相应点数,不会造成空有等级,没有点







好了,其他几个命令怎么用,一般人都能猜到,就不写了

二楼附代码

Rank: 1

 楼主| 发表于 2021-5-6 08:39:32 | 显示全部楼层
记得修改gm密码local GMPassword = "nr"




lua/module中,新建easygm.lua,暨lua/module/easygm.lua
并添加如下代码
  1. ------------------------------------------------------------------------------
  2. ------------------------------------------------------------------------------
  3. --                 【【【脚本说明】】】
  4. ------------------------------------------------------------------------------
  5. --EasyGM指令(高级GM指令)
  6. --
  7. --功能包括:(部分未修复)
  8. --1、基本控制:公告、高级在线、地图在线、鉴定、清空
  9. --2、玩家操作:踢出、召唤、跟踪、传送、查人物、查物品、查宠物、给物品、删物品、给宠物、给满档宠物、删宠物
  10. --3、高级控制:人物数据、宠物数据、物品数据、奖励
  11. --
  12. --20210505 ahsin修复在cgmsv中可用,部分功能待修复
  13. ----------------------------------------------------------------------------
  14. --Lua高级GM指令密码
  15. local GMPassword = "nr"
  16. --Lua高级GM指令最低GM等级限制(1~5),0为所有非GM玩家都可以使用
  17. local GMLevel = 1
  18. ----------------------------------------------------------------------------
  19. --常量设置
  20. local 常量 = {}
  21. 常量.对象 = {}
  22. 常量.对象.原名 = %对象_原名%
  23. 常量.对象.等级 = %对象_等级%
  24. 常量.对象.地图类型 = %对象_MAP%
  25. 常量.对象.地图 = %对象_地图%
  26. 常量.对象.X = %对象_X%
  27. 常量.对象.Y = %对象_Y%
  28. 常量.对象.账号 = %对象_账号%
  29. 常量.对象.GM = %对象_GM%
  30. ----------------------------------------------------------------------------
  31. --基础数据(本脚本依赖此数据)
  32. useModule("BaseData");                                       
  33. Players = Players or {}
  34. Delegate.RegDelTalkEvent("EasyGMEvent");
  35. function EasyGMEvent( _PlayerIndex, _msg, _color, _range, _size)
  36.         TalkMsg = _msg
  37.         TalkMsg = string.gsub(TalkMsg,"【","[")
  38.         TalkMsg = string.gsub(TalkMsg,"】","]")
  39.         TalkMsg = string.sub(TalkMsg,0)
  40.         print(Char.GetData(_PlayerIndex,常量.对象.原名)..":" .. TalkMsg)
  41.         if CheckGMPassword(TalkMsg)~=true then
  42.                 return 1
  43.         end
  44.         TalkMsg = string.gsub(TalkMsg,"]","")
  45.         if (Char.GetData(_PlayerIndex,常量.对象.GM)<GMLevel) then
  46.                 --NLG.SystemMessage(_PlayerIndex,"[系统] 你不是GM,无法使用此功能")
  47.                 return 1
  48.         end
  49.         if CheckCommand(TalkMsg, "公告")==true or CheckCommand(TalkMsg, "msg")==true then
  50.                 local CdKey = Char.GetData(_PlayerIndex,常量.对象.账号);
  51.                 local toStr = ""
  52.                 if CheckCommand(TalkMsg, "公告")==true then
  53.                         toStr = GetCommandPara(TalkMsg ,"公告")
  54.                 elseif CheckCommand(TalkMsg, "msg")==true then
  55.                         toStr = GetCommandPara(TalkMsg ,"msg")
  56.                 end
  57.                 local toPlayer = toStr[1]
  58.                 local toMsg = toStr[2]
  59.                 local toCdKey = -1
  60.                 for k,v in pairs(Players) do
  61.                         if v.Index==tonumber(toPlayer) or v.Name==toPlayer or k==toPlayer then
  62.                                 toCdKey=k
  63.                         end
  64.                 end
  65.                 if toCdKey~=-1 then
  66.                         NLG.SystemMessage(Players[toCdKey]["Index"], "[系统] 公告:" .. toMsg)
  67.                         NLG.SystemMessage(_PlayerIndex,"[系统] " .. Players[toCdKey]["Name"] .. "玩家公告发放完毕")
  68.                 elseif toPlayer=="all" or toPlayer=="All" or toPlayer=="全部" or toPlayer=="全" or toPlayer=="-1" or toPlayer==-1 or toPlayer=="*" then
  69.                         local rt = ""
  70.                         for k,v in pairs(Players) do
  71.                                 NLG.SystemMessage(v["Index"], "[系统] 公告:" .. toMsg)
  72.                         end
  73.                         NLG.SystemMessage(_PlayerIndex,"[系统] 所有在线玩家公告发放完毕")
  74.                 else
  75.                         NLG.SystemMessage(_PlayerIndex,"[系统] 没有找到该玩家或该玩家不在线。")
  76.                 end
  77.                 return 0
  78.         elseif CheckCommand(TalkMsg, "踢出")==true or CheckCommand(TalkMsg, "kill")==true then
  79.                 local CdKey = Char.GetData(_PlayerIndex,常量.对象.账号);
  80.                 local toStr = ""
  81.                 if CheckCommand(TalkMsg, "踢出")==true then
  82.                         toStr = GetCommandPara(TalkMsg ,"踢出")[1]
  83.                 elseif CheckCommand(TalkMsg, "kill")==true then
  84.                         toStr = GetCommandPara(TalkMsg ,"kill")[1]
  85.                 end
  86.                 local toPlayer = toStr
  87.                 local toCdKey = -1
  88.                 for k,v in pairs(Players) do
  89.                         if v.Index==tonumber(toPlayer) or v.Name==toPlayer or k==toPlayer then
  90.                                 toCdKey=k
  91.                         end
  92.                 end
  93.                 if toCdKey~=-1 then
  94.                         NLG.SystemMessage(_PlayerIndex,"[系统] 你已将 [" .. Players[toCdKey].Index .. "][" .. toCdKey .. "]" .. Players[toCdKey].Name .. " 踢出。")
  95.                         NLG.Kill(Players[toCdKey].Index)
  96.                 elseif toPlayer=="all" or toPlayer=="All" or toPlayer=="全部" or toPlayer=="全" or toPlayer=="-1" or toPlayer==-1 or toPlayer=="*" then
  97.                         local rt = ""
  98.                         for k,v in pairs(Players) do
  99.                                 toCdKey=k
  100.                                 NLG.Kill(Players[toCdKey].Index)
  101.                         end
  102.                         NLG.SystemMessage(_PlayerIndex,"[系统] 已将所有玩家踢出")
  103.                 elseif toCdKey==Char.GetData(_PlayerIndex,常量.对象.账号) then
  104.                         NLG.SystemMessage(_PlayerIndex,"[系统] 不能踢出自己")
  105.                 else
  106.                         NLG.SystemMessage(_PlayerIndex,"[系统] 没有找到该玩家或该玩家不在线。")
  107.                 end
  108.                 return 0
  109.         elseif CheckCommand(TalkMsg, "鉴定")==true or CheckCommand(TalkMsg, "ju")==true then
  110.                 local Count = 0
  111.                 for ItemSlot = 8,27 do
  112.                         local ItemIndex = Char.GetItemIndex(_PlayerIndex, ItemSlot)
  113.                         if ItemIndex > 0 then
  114.                                 if Item.GetData(ItemIndex, 63)==0 then
  115.                                         Count = Count + 1
  116.                                         Item.SetData(ItemIndex, 63, 1)
  117.                                         NLG.SystemMessage(_PlayerIndex,"[系统] 你身上的 " .. Item.GetData(ItemIndex, 2000) .. " 已鉴定为 " .. Item.GetData(ItemIndex, 2001))
  118.                                         Item.UpItem(_PlayerIndex, ItemSlot)
  119.                                 end
  120.                         end
  121.                 end
  122.                 if Count==0 then
  123.                         NLG.SystemMessage(_PlayerIndex, "[系统] 你身上没有需要鉴定的物品")
  124.                 end
  125.                 return 0
  126.         elseif CheckCommand(TalkMsg, "清空")==true or CheckCommand(TalkMsg, "clear")==true then
  127.                 for ItemSlot = 8,27 do
  128.                         local ItemIndex = Char.GetItemIndex(_PlayerIndex, ItemSlot)
  129.                         local ItemID = Item.GetData(ItemIndex, %道具_ID%)
  130.                         Char.DelItem(_PlayerIndex, ItemID, 999999)
  131.                 end
  132.                 return 0
  133.         elseif CheckCommand(TalkMsg, "召唤")==true or CheckCommand(TalkMsg, "call")==true then
  134.                 local CdKey = Char.GetData(_PlayerIndex,常量.对象.账号);
  135.                 local toStr = ""
  136.                 if CheckCommand(TalkMsg, "召唤")==true then
  137.                         toStr = GetCommandPara(TalkMsg ,"召唤")[1]
  138.                 elseif CheckCommand(TalkMsg, "call")==true then
  139.                         toStr = GetCommandPara(TalkMsg ,"call")[1]
  140.                 end
  141.                 local toPlayer = toStr
  142.                 local toCdKey = -1
  143.                 for k,v in pairs(Players) do
  144.                         if v.Index==tonumber(toPlayer) or v.Name==toPlayer or k==toPlayer then
  145.                                 toCdKey=k
  146.                         end
  147.                 end
  148.                 if toCdKey~=-1 then
  149.                         Char.Warp( Players[toCdKey].Index, Char.GetData(_PlayerIndex, 常量.对象.地图类型), Char.GetData(_PlayerIndex, 常量.对象.地图), Char.GetData(_PlayerIndex, 常量.对象.X), Char.GetData(_PlayerIndex, 常量.对象.Y))
  150.                         --NLG.SystemMessage(Players[toCdKey]["Index"], "[系统] 你已被强制召唤到" .. Char.GetData(_PlayerIndex,常量.对象.原名) .. " 身边")
  151.                         --NLG.SystemMessage(_PlayerIndex, "[系统] 你已强制召唤 " .. Players[toCdKey]["Name"] .. " 到身边")
  152.                 elseif toPlayer=="all" or toPlayer=="All" or toPlayer=="全部" or toPlayer=="全" or toPlayer=="-1" or toPlayer==-1 or toPlayer=="*" then
  153.                         local rt = ""
  154.                         for k,v in pairs(Players) do
  155.                                 toCdKey=k
  156.                                 Char.Warp( Players[toCdKey].Index, Char.GetData(_PlayerIndex, 常量.对象.地图类型), Char.GetData(_PlayerIndex, 常量.对象.地图), Char.GetData(_PlayerIndex, 常量.对象.X), Char.GetData(_PlayerIndex, 常量.对象.Y))
  157.                         end
  158.                         NLG.SystemMessage(_PlayerIndex,"[系统] 所有在线玩家召唤完毕")
  159.                 elseif toCdKey==Char.GetData(_PlayerIndex,常量.对象.账号) then
  160.                         NLG.SystemMessage(_PlayerIndex,"[系统] 不能召唤自己")
  161.                 else
  162.                         NLG.SystemMessage(_PlayerIndex,"[系统] 没有找到该玩家或该玩家不在线。")
  163.                 end
  164.                 return 0
  165.         elseif CheckCommand(TalkMsg, "跟踪")==true or CheckCommand(TalkMsg, "follow")==true then
  166.                 local CdKey = Char.GetData(_PlayerIndex,常量.对象.账号);
  167.                 local toStr = ""
  168.                 if CheckCommand(TalkMsg, "跟踪")==true then
  169.                         toStr = GetCommandPara(TalkMsg ,"跟踪")[1]
  170.                 elseif CheckCommand(TalkMsg, "follow")==true then
  171.                         toStr = GetCommandPara(TalkMsg ,"follow")[1]
  172.                 end
  173.                 local toPlayer = toStr
  174.                 local toCdKey = -1
  175.                 for k,v in pairs(Players) do
  176.                         if v.Index==tonumber(toPlayer) or v.Name==toPlayer or k==toPlayer then
  177.                                 toCdKey=k
  178.                         end
  179.                 end
  180.                 if toCdKey~=-1 then
  181.                         Char.Warp( _PlayerIndex, Char.GetData(Players[toCdKey]["Index"], 常量.对象.地图类型), Char.GetData(Players[toCdKey]["Index"], 常量.对象.地图), Char.GetData(Players[toCdKey]["Index"], 常量.对象.X), Char.GetData(Players[toCdKey]["Index"], 常量.对象.Y))
  182.                         --NLG.SystemMessage(Players[toCdKey]["Index"], "[系统] 你已被 " .. Char.GetData(_PlayerIndex,常量.对象.原名) .. " 跟踪")
  183.                         --NLG.SystemMessage(_PlayerIndex, "[系统] 你已跟踪 " .. Players[toCdKey]["Name"] .. " 身边")
  184.                 elseif toCdKey==Char.GetData(_PlayerIndex,常量.对象.账号) then
  185.                         NLG.SystemMessage(_PlayerIndex,"[系统] 不能跟踪自己")
  186.                 else
  187.                         NLG.SystemMessage(_PlayerIndex,"[系统] 没有找到该玩家或该玩家不在线。")
  188.                 end
  189.                 return 0
  190.         elseif CheckCommand(TalkMsg, "称号重置")==true  then
  191.                 local CdKey = Char.GetData(_PlayerIndex,常量.对象.账号);
  192.                 local toStr = ""
  193.                 if CheckCommand(TalkMsg, "称号重置")==true then
  194.                         toStr = GetCommandPara(TalkMsg ,"称号重置")[1]
  195.                 end
  196.                 local toPlayer = toStr
  197.                 local toCdKey = -1
  198.                 for k,v in pairs(Players) do
  199.                         if v.Index==tonumber(toPlayer) or v.Name==toPlayer or k==toPlayer then
  200.                                 toCdKey=k
  201.                         end
  202.                 end
  203.                 if toCdKey~=-1 then
  204.                         Field.Set(Players[toCdKey].Index,"TitleOn",0)
  205.                         NLG.SystemMessage(_PlayerIndex,"[系统] 重置成功"..Field.Get(Players[toCdKey].Index,"TitleOn")..Char.GetData(Players[toCdKey]["Index"], %对象_账号%))
  206.                 elseif toCdKey==Char.GetData(_PlayerIndex,常量.对象.账号) then
  207.                         NLG.SystemMessage(_PlayerIndex,"[系统] 不能重置自己")
  208.                 else
  209.                         NLG.SystemMessage(_PlayerIndex,"[系统] 没有找到该玩家或该玩家不在线。")
  210.                 end
  211.                 return 0
  212.         elseif CheckCommand(TalkMsg, "传送")==true or CheckCommand(TalkMsg, "teleport")==true then
  213.                 local CdKey = Char.GetData(_PlayerIndex,常量.对象.账号);
  214.                 local toStr = ""
  215.                 if CheckCommand(TalkMsg, "传送")==true then
  216.                         toStr = GetCommandPara(TalkMsg ,"传送")
  217.                 elseif CheckCommand(TalkMsg, "teleport")==true then
  218.                         toStr = GetCommandPara(TalkMsg ,"teleport")
  219.                 end
  220.                 local toPlayer = toStr[1]
  221.                 local toMapType = toStr[2]
  222.                 local toMapID = toStr[3]
  223.                 local toPosX = toStr[4]
  224.                 local toPosY = toStr[5]
  225.                 if toMapType==nil or toMapID==nil or toPosX==nil or toPosY==nil then
  226.                         NLG.SystemMessage(_PlayerIndex,"[系统] 参数错误,请重新输入!")
  227.                         return 0
  228.                 end
  229.                 local toCdKey = -1
  230.                 for k,v in pairs(Players) do
  231.                         if v.Index==tonumber(toPlayer) or v.Name==toPlayer or k==toPlayer then
  232.                                 toCdKey=k
  233.                         end
  234.                 end
  235.                 if toCdKey~=-1 then
  236.                         NLG.SystemMessage(Players[toCdKey]["Index"], "[系统] GM对你进行操作:")
  237.                         NLG.SystemMessage(Players[toCdKey]["Index"], "[系统] 传送完毕")
  238.                         Char.Warp(Players[toCdKey]["Index"], toMapType, toMapID, toPosX, toPosY)
  239.                         NLG.SystemMessage(_PlayerIndex,"[系统] " .. Players[toCdKey]["Name"] .. " 传送完毕")
  240.                 elseif toPlayer=="all" or toPlayer=="All" or toPlayer=="全部" or toPlayer=="全" or toPlayer=="-1" or toPlayer==-1 or toPlayer=="*" then
  241.                         local rt = ""
  242.                         for k,v in pairs(Players) do
  243.                                 toCdKey=k
  244.                                 NLG.SystemMessage(Players[toCdKey]["Index"], "[系统] GM对你进行操作:")
  245.                                 NLG.SystemMessage(Players[toCdKey]["Index"], "[系统] 传送完毕")
  246.                                 Char.Warp(Players[toCdKey]["Index"], toMapType, toMapID, toPosX, toPosY)
  247.                         end
  248.                         NLG.SystemMessage(_PlayerIndex,"[系统] 所有在线玩家传送完毕")
  249.                 else
  250.                         NLG.SystemMessage(_PlayerIndex,"[系统] 没有找到该玩家或该玩家不在线")
  251.                 end
  252.                 return 0
  253.         elseif CheckCommand(TalkMsg, "查人物")==true or CheckCommand(TalkMsg, "checkplayer")==true then
  254.                 local CdKey = Char.GetData(_PlayerIndex,常量.对象.账号);
  255.                 local toStr = ""
  256.                 if CheckCommand(TalkMsg, "查人物")==true then
  257.                         toStr = GetCommandPara(TalkMsg ,"查人物")[1]
  258.                 elseif CheckCommand(TalkMsg, "checkplayer")==true then
  259.                         toStr = GetCommandPara(TalkMsg ,"checkplayer")[1]
  260.                 end
  261.                 local toPlayer = toStr
  262.                 local toCdKey = -1
  263.                 for k,v in pairs(Players) do
  264.                         if v.Index==tonumber(toPlayer) or v.Name==toPlayer or k==toPlayer then
  265.                                 toCdKey=k
  266.                         end
  267.                 end
  268.                 if toCdKey~=-1 then
  269.                         local buf= Char.GetData(Players[toCdKey]["Index"], 1) .. "|"
  270.                                 buf = buf .. "[" .. Players[toCdKey]["CdKey"] .. "]" .. Players[toCdKey]["Name"]
  271.                         buf = buf .. " " .. getJobTypeName(Char.GetData(Players[toCdKey]["Index"], %对象_职类ID%)) .. Char.GetData(Players[toCdKey]["Index"], %对象_职阶%) .. "阶"
  272.                         buf = buf .. " Lv." .. Char.GetData(Players[toCdKey]["Index"], 常量.对象.等级)
  273.                         --buf = buf .. "\n【声望战绩信息】"
  274.                         buf = buf .. "\n\n声望:" .. Char.GetData(Players[toCdKey]["Index"], %对象_声望%) .. " 战绩:" .. Char.GetData(Players[toCdKey]["Index"], %对象_DP%) .. " 幸运:" .. Char.GetData(Players[toCdKey]["Index"], %对象_运%)
  275.                         --buf = buf .. "\n【金币信息】"
  276.                         buf = buf .. "\n\n身上:" .. Char.GetData(Players[toCdKey]["Index"], %对象_金币%) .. "G"
  277.                         buf = buf .. " 银行:" .. Char.GetData(Players[toCdKey]["Index"], %对象_银行金币%) .. "G"
  278.                         --buf = buf .. "\n【登录信息】"
  279.                         buf = buf .. "\n\n上次离线:" .. os.date("%Y.%m.%d %X", Char.GetData(Players[toCdKey]["Index"], 148))
  280.                         buf = buf .. "\n本次登入:" .. os.date("%Y.%m.%d %X", Char.GetData(Players[toCdKey]["Index"], 600))
  281.                         --[[
  282.                         buf = buf .. "\n登录[" .. Char.GetData(Players[toCdKey]["Index"], 65) .. ",走动[" .. Char.GetData(Players[toCdKey]["Index"], %对象_走动次数%)
  283.                         buf = buf .. ",死亡" .. Char.GetData(Players[toCdKey]["Index"], %对象_死亡数%) .. ",杀敌[" .. Char.GetData(Players[toCdKey]["Index"], %对象_杀宠数%) .. ",被打[" .. Char.GetData(Players[toCdKey]["Index"], %对象_伤害数%)
  284.                         buf = buf .. ",获宠" .. Char.GetData(Players[toCdKey]["Index"], %对象_获得宠数%) .. ",生产[" .. Char.GetData(Players[toCdKey]["Index"], %对象_生产数%) .. ",封印[" .. Char.GetData(Players[toCdKey]["Index"], %对象_封印数%)
  285.                         --]]
  286.                         WindowTalkedSelf = WindowTalkedSelf or NL.CreateNpc("lua/System/BaseModule/Base.lua", "Myinit");
  287.                         NLG.ShowWindowTalked( _PlayerIndex, 37, 1, 999, buf, WindowTalkedSelf );
  288.                 end
  289.         elseif CheckCommand(TalkMsg, "查物品")==true or CheckCommand(TalkMsg, "查道具")==true or CheckCommand(TalkMsg, "checkitem")==true then
  290.                 local CdKey = Char.GetData(_PlayerIndex,常量.对象.账号);
  291.                 local toStr = ""
  292.                 if CheckCommand(TalkMsg, "查物品")==true then
  293.                         toStr = GetCommandPara(TalkMsg ,"查物品")[1]
  294.                 elseif CheckCommand(TalkMsg, "查道具")==true then
  295.                         toStr = GetCommandPara(TalkMsg ,"查道具")[1]
  296.                 elseif CheckCommand(TalkMsg, "checkitem")==true then
  297.                         toStr = GetCommandPara(TalkMsg ,"checkitem")[1]
  298.                 end
  299.                 local toPlayer = toStr
  300.                 local toCdKey = -1
  301.                 for k,v in pairs(Players) do
  302.                         if v.Index==tonumber(toPlayer) or v.Name==toPlayer or k==toPlayer then
  303.                                 toCdKey=k
  304.                         end
  305.                 end
  306.                 if toCdKey~=-1 then
  307.                         local ItemPosName = {"头部", "身体", "右手", "左手", "脚部", "饰品1", "饰品2", "水晶"}
  308.                         NLG.SystemMessage(_PlayerIndex,"[系统] 玩家 [" .. Players[toCdKey]["Index"] .. "][" .. Players[toCdKey]["CdKey"] .. "]" .. Players[toCdKey]["Name"] .. " 道具清单如下:")
  309.                         NLG.SystemMessage(_PlayerIndex,"       名称(ID)    类型  Lv  堆叠   耐久")
  310.                         for i = 1,28 do
  311.                                 local Pos = i-1
  312.                                 local buf = ""
  313.                                 local ItemIndex = Char.GetItemIndex(Players[toCdKey]["Index"], Pos)
  314.                                 if ItemPosName[i]~=nil then
  315.                                         buf = buf .. strFormat(ItemPosName[i],6,1) .. ":"
  316.                                 else
  317.                                         buf = buf .. strFormat("道具" .. Pos-7,6,1) .. ":"
  318.                                 end
  319.                                 if ItemIndex>=0 then
  320.                                         buf = buf .. strFormat(Item.GetData(ItemIndex, 2001) .. "[" .. Item.GetData(ItemIndex, 0) .. "]",18,2) .. " "        --名称
  321.                                         buf = buf .. strFormat(getItemTypeName(Item.GetData(ItemIndex, %道具_类型%)),8,2) .. " "        --类型
  322.                                         buf = buf .. strFormat(Item.GetData(ItemIndex, %道具_等级%),3,3) .. " "        --等级
  323.                                         buf = buf .. strFormat(Item.GetData(ItemIndex, %道具_堆叠数%),4,3) .. "/" .. strFormat(Item.GetData(ItemIndex, %道具_最大堆叠数%),4,1) .. " "        --堆叠
  324.                                         buf = buf .. strFormat(Item.GetData(ItemIndex, 65),4,3) .. "/" .. strFormat(Item.GetData(ItemIndex, %道具_最大耐久%),4,1)        --耐久
  325.                                 else
  326.                                         --buf = buf .. "空"
  327.                                 end
  328.                                 NLG.SystemMessage(_PlayerIndex, buf)
  329.                         end
  330.                 else
  331.                         NLG.SystemMessage(_PlayerIndex,"[系统] 没有找到该玩家或该玩家不在线。")
  332.                 end
  333.                 return 0
  334.         elseif CheckCommand(TalkMsg, "查宠物")==true or CheckCommand(TalkMsg, "checkpet")==true then
  335.                 local CdKey = Char.GetData(_PlayerIndex,常量.对象.账号);
  336.                 local toStr = ""
  337.                 if CheckCommand(TalkMsg, "查宠物")==true then
  338.                         toStr = GetCommandPara(TalkMsg ,"查宠物")[1]
  339.                 elseif CheckCommand(TalkMsg, "checkpet")==true then
  340.                         toStr = GetCommandPara(TalkMsg ,"checkpet")[1]
  341.                 end
  342.                 local toPlayer = toStr
  343.                 local toCdKey = -1
  344.                 for k,v in pairs(Players) do
  345.                         if v.Index==tonumber(toPlayer) or v.Name==toPlayer or k==toPlayer then
  346.                                 toCdKey=k
  347.                         end
  348.                 end
  349.                 if toCdKey~=-1 then
  350.                         NLG.SystemMessage(_PlayerIndex,"[系统] 玩家 [" .. Players[toCdKey]["Index"] .. "][" .. Players[toCdKey]["CdKey"] .. "]" .. Players[toCdKey]["Name"] .. " 宠物清单如下:")
  351.                         NLG.SystemMessage(_PlayerIndex,"      名称(ID)   类型  Lv 体 力 防 敏 魔 总")
  352.                         for i = 1,5 do
  353.                                 local Pos = i-1
  354.                                 local buf = ""
  355.                                 local PetIndex = Char.GetPet(Players[toCdKey]["Index"], Pos)
  356.                                 buf = buf .. strFormat("宠物" .. i,5,1) .. ":"
  357.                                 if PetIndex>=0 then
  358.                                         buf = buf .. strFormat(Char.GetData(PetIndex, 常量.对象.原名) .. "[" .. Char.GetData(PetIndex, 68) .. "]",18,2) .. " "        --名称
  359.                                         buf = buf .. strFormat(getPetTypeName(Char.GetData(PetIndex, %对象_种族%)),4,2) .. " "        --类型
  360.                                         buf = buf .. strFormat(Char.GetData(PetIndex, 常量.对象.等级),3,3) .. " "        --等级
  361.                                         buf = buf .. strFormat(Pet.GetArtRank(PetIndex, %宠档_体成%) - Pet.FullArtRank(PetIndex, %宠档_体成%),3,3) .. " "        --体力档数
  362.                                         buf = buf .. strFormat(Pet.GetArtRank(PetIndex, %宠档_力成%) - Pet.FullArtRank(PetIndex, %宠档_力成%),3,3) .. " "        --力量档数
  363.                                         buf = buf .. strFormat(Pet.GetArtRank(PetIndex, %宠档_强成%) - Pet.FullArtRank(PetIndex, %宠档_强成%),3,3) .. " "        --强度档数
  364.                                         --123
  365.                                         --456
  366.                                         buf = buf .. strFormat(Pet.GetArtRank(PetIndex, %宠档_敏成%) - Pet.FullArtRank(PetIndex, %宠档_敏成%),3,3) .. " "        --速度档数
  367.                                         buf = buf .. strFormat(Pet.GetArtRank(PetIndex, %宠档_魔成%) - Pet.FullArtRank(PetIndex, %宠档_魔成%),3,3) .. " "        --魔法档数
  368.                                         buf = buf .. strFormat(Pet.GetArtRank(PetIndex, %宠档_体成%) + Pet.GetArtRank(PetIndex, %宠档_力成%) + Pet.GetArtRank(PetIndex, %宠档_强成%) + Pet.GetArtRank(PetIndex, %宠档_敏成%) + Pet.GetArtRank(PetIndex, %宠档_魔成%) - Pet.FullArtRank(PetIndex, %宠档_体成%) - Pet.FullArtRank(PetIndex, %宠档_力成%) - Pet.FullArtRank(PetIndex, %宠档_强成%) - Pet.FullArtRank(PetIndex, %宠档_敏成%) - Pet.FullArtRank(PetIndex, %宠档_魔成%),3,3)        --总档数
  369.                                 else
  370.                                         --buf = buf .. "空"
  371.                                 end
  372.                                 NLG.SystemMessage(_PlayerIndex, buf)
  373.                         end
  374.                 else
  375.                         NLG.SystemMessage(_PlayerIndex,"[系统] 没有找到该玩家或该玩家不在线。")
  376.                 end
  377.                 return 0
  378.         elseif CheckCommand(TalkMsg, "给物品")==true or CheckCommand(TalkMsg, "给道具")==true or CheckCommand(TalkMsg, "giveitem")==true then
  379.                 local CdKey = Char.GetData(_PlayerIndex,常量.对象.账号);
  380.                 local toStr = ""
  381.                 if CheckCommand(TalkMsg, "给物品")==true then
  382.                         toStr = GetCommandPara(TalkMsg ,"给物品")
  383.                 elseif CheckCommand(TalkMsg, "给道具")==true then
  384.                         toStr = GetCommandPara(TalkMsg ,"给道具")
  385.                 elseif CheckCommand(TalkMsg, "giveitem")==true then
  386.                         toStr = GetCommandPara(TalkMsg ,"giveitem")
  387.                 end
  388.                 local toPlayer = toStr[1]
  389.                 local toItemID = toStr[2]
  390.                 local toItemNum = toStr[3] or 1
  391.                 local toCdKey = -1
  392.                 for k,v in pairs(Players) do
  393.                         if v.Index==tonumber(toPlayer) or v.Name==toPlayer or k==toPlayer then
  394.                                 toCdKey=k
  395.                         end
  396.                 end
  397.                 if toCdKey~=-1 then
  398.                         NLG.SystemMessage(Players[toCdKey]["Index"], "[系统] GM对你进行操作:")
  399.                         Char.GiveItem(Players[toCdKey]["Index"], toItemID, toItemNum)
  400.                         NLG.SystemMessage(_PlayerIndex,"[系统] " .. Players[toCdKey]["Name"] .. "物品发放完毕")
  401.                 elseif toPlayer=="all" or toPlayer=="All" or toPlayer=="全部" or toPlayer=="全" or toPlayer=="-1" or toPlayer==-1 or toPlayer=="*" then
  402.                         local rt = ""
  403.                         for k,v in pairs(Players) do
  404.                                 toCdKey=k
  405.                                 NLG.SystemMessage(Players[toCdKey]["Index"], "[系统] GM对你进行操作:")
  406.                                 Char.GiveItem(Players[toCdKey]["Index"], toItemID, toItemNum)
  407.                         end
  408.                         NLG.SystemMessage(_PlayerIndex,"[系统] 所有在线玩家物品发放完毕")
  409.                 else
  410.                         NLG.SystemMessage(_PlayerIndex,"[系统] 没有找到该玩家或该玩家不在线")
  411.                 end
  412.                 return 0
  413.         elseif CheckCommand(TalkMsg, "删物品")==true or CheckCommand(TalkMsg, "删道具")==true or CheckCommand(TalkMsg, "killitem")==true then
  414.                 local CdKey = Char.GetData(_PlayerIndex,常量.对象.账号);
  415.                 local toStr = ""
  416.                 if CheckCommand(TalkMsg, "删物品")==true then
  417.                         toStr = GetCommandPara(TalkMsg ,"删物品")
  418.                 elseif CheckCommand(TalkMsg, "删道具")==true then
  419.                         toStr = GetCommandPara(TalkMsg ,"删道具")
  420.                 elseif CheckCommand(TalkMsg, "killitem")==true then
  421.                         toStr = GetCommandPara(TalkMsg ,"killitem")
  422.                 end
  423.                 local toPlayer = toStr[1]
  424.                 local toItemID = toStr[2]
  425.                 local toItemNum = toStr[3] or 1
  426.                 local toCdKey = -1
  427.                 for k,v in pairs(Players) do
  428.                         if v.Index==tonumber(toPlayer) or v.Name==toPlayer or k==toPlayer then
  429.                                 toCdKey=k
  430.                         end
  431.                 end
  432.                 if toCdKey~=-1 then
  433.                         NLG.SystemMessage(Players[toCdKey]["Index"], "[系统] GM对你进行操作:")
  434.                         Char.DelItem(Players[toCdKey]["Index"], toItemID, toItemNum)
  435.                         NLG.SystemMessage(_PlayerIndex,"[系统] " .. Players[toCdKey]["Name"] .. "的物品删除完毕")
  436.                 elseif toPlayer=="all" or toPlayer=="All" or toPlayer=="全部" or toPlayer=="全" or toPlayer=="-1" or toPlayer==-1 or toPlayer=="*" then
  437.                         local rt = ""
  438.                         for k,v in pairs(Players) do
  439.                                 toCdKey=k
  440.                                 NLG.SystemMessage(Players[toCdKey]["Index"], "[系统] GM对你进行操作:")
  441.                                 Char.DelItem(Players[toCdKey]["Index"], toItemID, toItemNum)
  442.                         end
  443.                         NLG.SystemMessage(_PlayerIndex,"[系统] 所有在线玩家物品删除完毕")
  444.                 else
  445.                         NLG.SystemMessage(_PlayerIndex,"[系统] 没有找到该玩家或该玩家不在线")
  446.                 end
  447.                 return 0
  448. elseif CheckCommand(TalkMsg, "给满档宠物")==true or CheckCommand(TalkMsg, "givefullpet")==true then
  449.                 local CdKey = Char.GetData(_PlayerIndex,常量.对象.账号);
  450.                 local toStr = ""
  451.                 if CheckCommand(TalkMsg, "给满档宠物")==true then
  452.                         toStr = GetCommandPara(TalkMsg ,"给满档宠物")
  453.                 elseif CheckCommand(TalkMsg, "givefullpet")==true then
  454.                         toStr = GetCommandPara(TalkMsg ,"givefullpet")
  455.                 end
  456.                 local toPlayer = toStr[1]
  457.                 local toPetID = toStr[2]
  458.                 local toCdKey = -1
  459.                 for k,v in pairs(Players) do
  460.                         if v.Index==tonumber(toPlayer) or v.Name==toPlayer or k==toPlayer then
  461.                                 toCdKey=k
  462.                         end
  463.                 end
  464.                 if toCdKey~=-1 then
  465.                         NLG.SystemMessage(Players[toCdKey]["Index"], "[系统] GM对你进行操作:")
  466.                         Char.AddPet(Players[toCdKey]["Index"], toPetID,1)
  467.                         NLG.SystemMessage(_PlayerIndex,"[系统] " .. Players[toCdKey]["Name"] .. "满档宠物发放完毕")
  468.                 elseif toPlayer=="all" or toPlayer=="All" or toPlayer=="全部" or toPlayer=="全" or toPlayer=="-1" or toPlayer==-1 or toPlayer=="*" then
  469.                         local rt = ""
  470.                         for k,v in pairs(Players) do
  471.                                 toCdKey=k
  472.                                 NLG.SystemMessage(Players[toCdKey]["Index"], "[系统] GM对你进行操作:")
  473.                                 Char.AddPet(Players[toCdKey]["Index"], toPetID,1)
  474.                         end
  475.                         NLG.SystemMessage(_PlayerIndex,"[系统] 所有在线玩家满档宠物发放完毕")
  476.                 else
  477.                         NLG.SystemMessage(_PlayerIndex,"[系统] 没有找到该玩家或该玩家不在线")
  478.                 end
  479.                 return 0
  480.         elseif CheckCommand(TalkMsg, "给宠物")==true or CheckCommand(TalkMsg, "givepet")==true then
  481.                 local CdKey = Char.GetData(_PlayerIndex,常量.对象.账号);
  482.                 local toStr = ""
  483.                 if CheckCommand(TalkMsg, "给宠物")==true then
  484.                         toStr = GetCommandPara(TalkMsg ,"给宠物")
  485.                 elseif CheckCommand(TalkMsg, "givepet")==true then
  486.                         toStr = GetCommandPara(TalkMsg ,"givepet")
  487.                 end
  488.                 local toPlayer = toStr[1]
  489.                 local toPetID = toStr[2]
  490.                 local toCdKey = -1
  491.                 for k,v in pairs(Players) do
  492.                         if v.Index==tonumber(toPlayer) or v.Name==toPlayer or k==toPlayer then
  493.                                 toCdKey=k
  494.                         end
  495.                 end
  496.                 if toCdKey~=-1 then
  497.                         NLG.SystemMessage(Players[toCdKey]["Index"], "[系统] GM对你进行操作:")
  498.                         Char.AddPet(Players[toCdKey]["Index"], toPetID)
  499.                         NLG.SystemMessage(_PlayerIndex,"[系统] " .. Players[toCdKey]["Name"] .. "宠物发放完毕")
  500.                 elseif toPlayer=="all" or toPlayer=="All" or toPlayer=="全部" or toPlayer=="全" or toPlayer=="-1" or toPlayer==-1 or toPlayer=="*" then
  501.                         local rt = ""
  502.                         for k,v in pairs(Players) do
  503.                                 toCdKey=k
  504.                                 NLG.SystemMessage(Players[toCdKey]["Index"], "[系统] GM对你进行操作:")
  505.                                 Char.AddPet(Players[toCdKey]["Index"], toPetID)
  506.                         end
  507.                         NLG.SystemMessage(_PlayerIndex,"[系统] 所有在线玩家宠物发放完毕")
  508.                 else
  509.                         NLG.SystemMessage(_PlayerIndex,"[系统] 没有找到该玩家或该玩家不在线")
  510.                 end
  511.                 return 0
  512.         elseif CheckCommand(TalkMsg, "给魔币")==true or CheckCommand(TalkMsg, "givegold")==true then
  513.                 local CdKey = Char.GetData(_PlayerIndex,常量.对象.账号);
  514.                 local toStr = ""
  515.                 if CheckCommand(TalkMsg, "给魔币")==true then
  516.                         toStr = GetCommandPara(TalkMsg ,"给魔币")
  517.                 elseif CheckCommand(TalkMsg, "givegold")==true then
  518.                         toStr = GetCommandPara(TalkMsg ,"givegold")
  519.                 end
  520.                 local toPlayer = toStr[1]
  521.                 local toAddGold = tonumber(toStr[2])
  522.                 local toCdKey = -1
  523.                 for k,v in pairs(Players) do
  524.                         if v.Index==tonumber(toPlayer) or v.Name==toPlayer or k==toPlayer then
  525.                                 toCdKey=k
  526.                         end
  527.                 end
  528.                 if toCdKey~=-1 then
  529.                         NLG.SystemMessage(Players[toCdKey]["Index"], "[系统] GM对你进行打赏魔币:"..toAddGold)
  530.                         Char.AddGold(Players[toCdKey]["Index"],toAddGold)
  531.                         NLG.UpChar(Players[toCdKey]["Index"])
  532.                         NLG.SystemMessage(_PlayerIndex,"[系统] " .. Players[toCdKey]["Name"] .. "魔币发放完毕"..toAddGold)
  533.                 elseif toPlayer=="all" or toPlayer=="All" or toPlayer=="全部" or toPlayer=="全" or toPlayer=="-1" or toPlayer==-1 or toPlayer=="*" then
  534.                         local rt = ""
  535.                         for k,v in pairs(Players) do
  536.                                 toCdKey=k
  537.                                 NLG.SystemMessage(Players[toCdKey]["Index"], "[系统] GM心情不错,打赏全服奖励魔币:"..toAddGold)
  538.                                 Char.AddGold(Players[toCdKey]["Index"],toAddGold)
  539.                                 NLG.UpChar(Players[toCdKey]["Index"])
  540.                         end
  541.                         NLG.SystemMessage(_PlayerIndex,"[系统] 所有在线玩家魔币发放完毕"..toAddGold)
  542.                 else
  543.                         NLG.SystemMessage(_PlayerIndex,"[系统] 没有找到该玩家或该玩家不在线")
  544.                 end
  545.                 return 0
  546.         elseif CheckCommand(TalkMsg, "给经验")==true or CheckCommand(TalkMsg, "giveexp")==true then
  547.                 local CdKey = Char.GetData(_PlayerIndex,常量.对象.账号);
  548.                 local toStr = ""
  549.                 if CheckCommand(TalkMsg, "给经验")==true then
  550.                         toStr = GetCommandPara(TalkMsg ,"给经验")
  551.                 elseif CheckCommand(TalkMsg, "giveexp")==true then
  552.                         toStr = GetCommandPara(TalkMsg ,"giveexp")
  553.                 end
  554.                 local toPlayer = toStr[1]
  555.                 local toAddExp = tonumber(toStr[2])
  556.                 local toCdKey = -1
  557.                 for k,v in pairs(Players) do
  558.                         if v.Index==tonumber(toPlayer) or v.Name==toPlayer or k==toPlayer then
  559.                                 toCdKey=k
  560.                         end
  561.                 end
  562.                 if toCdKey~=-1 then
  563.                         NLG.SystemMessage(Players[toCdKey]["Index"], "[系统] GM对你进行操作:+"..toAddExp)
  564.                         Char.SetData(Players[toCdKey]["Index"], %对象_经验%,Char.GetData(Players[toCdKey]["Index"], %对象_经验%)+toAddExp)
  565.                         NLG.UpChar(Players[toCdKey]["Index"])
  566.                         NLG.SystemMessage(_PlayerIndex,"[系统] " .. Players[toCdKey]["Name"] .. "经验发放完毕")
  567.                 elseif toPlayer=="all" or toPlayer=="All" or toPlayer=="全部" or toPlayer=="全" or toPlayer=="-1" or toPlayer==-1 or toPlayer=="*" then
  568.                         local rt = ""
  569.                         for k,v in pairs(Players) do
  570.                                 toCdKey=k
  571.                                 NLG.SystemMessage(Players[toCdKey]["Index"], "[系统] GM对你进行经验操作:+"..toAddExp)
  572.                                 Char.SetData(Players[toCdKey]["Index"], %对象_经验%,Char.GetData(Players[toCdKey]["Index"], %对象_经验%)+toAddExp)
  573.                                 NLG.UpChar(Players[toCdKey]["Index"])
  574.                         end
  575.                         NLG.SystemMessage(_PlayerIndex,"[系统] 所有在线玩家经验发放完毕")
  576.                 else
  577.                         NLG.SystemMessage(_PlayerIndex,"[系统] 没有找到该玩家或该玩家不在线")
  578.                 end
  579.                 return 0
  580.         elseif CheckCommand(TalkMsg, "宠物经验")==true or CheckCommand(TalkMsg, "petexp")==true then
  581.                 local CdKey = Char.GetData(_PlayerIndex,常量.对象.账号);
  582.                 local toStr = ""
  583.                 if CheckCommand(TalkMsg, "宠物经验")==true then
  584.                         toStr = GetCommandPara(TalkMsg ,"宠物经验")
  585.                 elseif CheckCommand(TalkMsg, "petexp")==true then
  586.                         toStr = GetCommandPara(TalkMsg ,"petexp")
  587.                 end
  588.                 local toPlayer = toStr[1]
  589.                 local toAddExp = tonumber(toStr[2])
  590.                 local toCdKey = -1
  591.                 for k,v in pairs(Players) do
  592.                         if v.Index==tonumber(toPlayer) or v.Name==toPlayer or k==toPlayer then
  593.                                 toCdKey=k
  594.                         end
  595.                 end
  596.                 if toCdKey~=-1 then
  597.                         Pos= Char.GetData(Players[toCdKey]["Index"], %对象_战宠%)
  598.                         if Pos >=0 then
  599.                                 PetIndex =Char.GetPet(Players[toCdKey]["Index"],Pos)       
  600.                                 NLG.SystemMessage(Players[toCdKey]["Index"], "[系统] GM对你宠物进行经验操作:+"..toAddExp)
  601.                                 Char.SetData(PetIndex, %对象_经验%,Char.GetData(PetIndex,%对象_经验%)+toAddExp)
  602.                                 Pet.UpPet(Players[toCdKey]["Index"],PetIndex)
  603.                                 NLG.SystemMessage(_PlayerIndex,"[系统] " .. Players[toCdKey]["Name"] .. "宠物"..Char.GetData(PetIndex,%对象_原名%).."经验发放完毕"..toAddExp)
  604.                         else
  605.                                 NLG.SystemMessage(_PlayerIndex,"[系统] " .. Players[toCdKey]["Name"] .. "无战宠,设置失败")
  606.                         end
  607.                 elseif toPlayer=="all" or toPlayer=="All" or toPlayer=="全部" or toPlayer=="全" or toPlayer=="-1" or toPlayer==-1 or toPlayer=="*" then
  608.                         local rt = ""
  609.                         for k,v in pairs(Players) do
  610.                                 toCdKey=k
  611.                                 Pos= Char.GetData(Players[toCdKey]["Index"], %对象_战宠%)
  612.                                 if Pos >=0 then
  613.                                         PetIndex =Char.GetPet(Players[toCdKey]["Index"],Pos)       
  614.                                         NLG.SystemMessage(Players[toCdKey]["Index"], "[系统] GM对你宠物进行经验操作:+"..toAddExp)
  615.                                         Char.SetData(PetIndex, %对象_经验%,Char.GetData(PetIndex,%对象_经验%)+toAddExp)
  616.                                         Pet.UpPet(Players[toCdKey]["Index"],PetIndex)
  617.                                 else
  618.                                         NLG.SystemMessage(_PlayerIndex,"[系统] " .. Players[toCdKey]["Name"] .. "无战宠,设置失败")
  619.                                 end
  620.                         end
  621.                         NLG.SystemMessage(_PlayerIndex,"[系统] 所有在线玩家宠物经验发放完毕")
  622.                 else
  623.                         NLG.SystemMessage(_PlayerIndex,"[系统] 没有找到该玩家或该玩家不在线")
  624.                 end
  625.                 return 0
  626.         elseif CheckCommand(TalkMsg, "宠物档数")==true or CheckCommand(TalkMsg, "setpetd")==true then
  627.                 local CdKey = Char.GetData(_PlayerIndex,常量.对象.账号);
  628.                 local toStr = ""
  629.                 if CheckCommand(TalkMsg, "宠物档数")==true then
  630.                         toStr = GetCommandPara(TalkMsg ,"宠物档数")
  631.                 elseif CheckCommand(TalkMsg, "setpetd")==true then
  632.                         toStr = GetCommandPara(TalkMsg ,"setpetd")
  633.                 end
  634.                 local toPlayer = toStr[1]
  635.                 local toti = tonumber(toStr[2]) or 0
  636.                 local toli = tonumber(toStr[3]) or 0
  637.                 local tofang = tonumber(toStr[4]) or 0
  638.                 local tomin = tonumber(toStr[5]) or 0
  639.                 local tomo = tonumber(toStr[6]) or 0
  640.                 local toCdKey = -1
  641.                 for k,v in pairs(Players) do
  642.                         if v.Index==tonumber(toPlayer) or v.Name==toPlayer or k==toPlayer then
  643.                                 toCdKey=k
  644.                         end
  645.                 end
  646.                 if toCdKey~=-1 then
  647.                         Pos= Char.GetData(Players[toCdKey]["Index"], %对象_战宠%)
  648.                         if Pos >=0 then
  649.                                 PetIndex =Char.GetPet(Players[toCdKey]["Index"],Pos)       
  650.                                 NLG.SystemMessage(Players[toCdKey]["Index"], "[系统] GM对你宠物进行档数操作:"..toti..toli..tofang..tomin..tomo)
  651.                                 local rank1 = Pet.FullArtRank(PetIndex,%宠档_体成%);
  652.                                 Pet.SetArtRank(PetIndex,%宠档_体成%, rank1-toti);
  653.                                 local rank2 = Pet.FullArtRank(PetIndex,%宠档_力成%);
  654.                                 Pet.SetArtRank(PetIndex,%宠档_力成%, rank2-toli);
  655.                                 local rank3 = Pet.FullArtRank(PetIndex,%宠档_强成%);
  656.                                 Pet.SetArtRank(PetIndex,%宠档_强成%, rank3-tofang);
  657.                                 local rank4 = Pet.FullArtRank(PetIndex,%宠档_敏成%);
  658.                                 Pet.SetArtRank(PetIndex,%宠档_敏成%, rank4-tomin);
  659.                                 local rank5 = Pet.FullArtRank(PetIndex,%宠档_魔成%);
  660.                                 Pet.SetArtRank(PetIndex,%宠档_魔成%, rank5-tomo);
  661.                                 Pet.ReBirth(Players[toCdKey]["Index"],PetIndex);
  662.                                 Pet.UpPet(Players[toCdKey]["Index"],Pos)
  663.                                 NLG.SystemMessage(_PlayerIndex,"[系统] " .. Players[toCdKey]["Name"] .. "宠物"..Char.GetData(PetIndex,%对象_原名%).."档数操作完毕"..toAddExp)
  664.                         else
  665.                                 NLG.SystemMessage(_PlayerIndex,"[系统] " .. Players[toCdKey]["Name"] .. "无战宠,设置失败")
  666.                         end
  667.                 elseif toPlayer=="all" or toPlayer=="All" or toPlayer=="全部" or toPlayer=="全" or toPlayer=="-1" or toPlayer==-1 or toPlayer=="*" then
  668.                         NLG.SystemMessage(_PlayerIndex,"[系统]该指令不支持全体")
  669.                         return 0
  670.                 else
  671.                         NLG.SystemMessage(_PlayerIndex,"[系统] 没有找到该玩家或该玩家不在线")
  672.                 end
  673.                 return 0
  674.         elseif CheckCommand(TalkMsg, "删宠物")==true or CheckCommand(TalkMsg, "killpet")==true then
  675.                 local CdKey = Char.GetData(_PlayerIndex,常量.对象.账号);
  676.                 local toStr = ""
  677.                 if CheckCommand(TalkMsg, "删宠物")==true then
  678.                         toStr = GetCommandPara(TalkMsg ,"删宠物")
  679.                 elseif CheckCommand(TalkMsg, "killpet")==true then
  680.                         toStr = GetCommandPara(TalkMsg ,"killpet")
  681.                 end
  682.                 local toPlayer = toStr[1]
  683.                 local toPetID = toStr[2]
  684.                 local toLevel = tonumber(toStr[4]) or 1
  685.                 local toMode = nil
  686.                 if toStr[3]==">=" then
  687.                         toMode=2
  688.                 elseif toStr[3]==">" then
  689.                         toMode=2
  690.                         toLevel = toLevel + 1
  691.                 elseif toStr[3]=="=" then
  692.                         toMode=1
  693.                 elseif toStr[3]=="<" then
  694.                         toMode=0
  695.                         toLevel = toLevel - 1
  696.                 elseif toStr[3]=="<=" then
  697.                         toMode=0
  698.                 end
  699.                
  700.                 if toStr[3]==nil or toStr[4]==nil then
  701.                         toMode=2
  702.                         toLevel=1
  703.                 end
  704.                 local toCdKey = -1
  705.                 for k,v in pairs(Players) do
  706.                         if v.Index==tonumber(toPlayer) or v.Name==toPlayer or k==toPlayer then
  707.                                 toCdKey=k
  708.                         end
  709.                 end
  710.                 if toCdKey~=-1 then
  711.                         NLG.SystemMessage(Players[toCdKey]["Index"], "[系统] GM对你进行操作:")
  712.                         Char.DelPet(Players[toCdKey]["Index"], toPetID, toLevel, toMode)
  713.                         NLG.SystemMessage(_PlayerIndex,"[系统] " .. Players[toCdKey]["Name"] .. "的宠物删除完毕")
  714.                 elseif toPlayer=="all" or toPlayer=="All" or toPlayer=="全部" or toPlayer=="全" or toPlayer=="-1" or toPlayer==-1 or toPlayer=="*" then
  715.                         local rt = ""
  716.                         for k,v in pairs(Players) do
  717.                                 toCdKey=k
  718.                                 NLG.SystemMessage(Players[toCdKey]["Index"], "[系统] GM对你进行操作:")
  719.                                 Char.DelPet(Players[toCdKey]["Index"], toPetID, toLevel, toMode)
  720.                         end
  721.                         NLG.SystemMessage(_PlayerIndex,"[系统] 所有在线玩家宠物删除完毕")
  722.                 else
  723.                         NLG.SystemMessage(_PlayerIndex,"[系统] 没有找到该玩家或该玩家不在线")
  724.                 end
  725.                 return 0
  726.         elseif CheckCommand(TalkMsg, "高级在线")==true or CheckCommand(TalkMsg, "list")==true or CheckCommand(TalkMsg, "l")==true then
  727.                 NLG.SystemMessage(_PlayerIndex, "全部在线玩家如下:");
  728.                 for Key,Value in pairs(Players) do
  729.                         local tName = Char.GetData(Value.Index, 常量.对象.原名)   --Name
  730.                         local tLv = Char.GetData(Value.Index, 常量.对象.等级)    --Lv
  731.                         local tMapName = ""
  732.                         if Char.GetData(Value.Index, 常量.对象.地图类型)==0 then
  733.                                 tMapName = getMapName(Char.GetData(Value.Index, 常量.对象.地图))
  734.                         elseif Char.GetData(Value.Index, 常量.对象.地图类型)==1 then
  735.                                 tMapName = "随机迷宫"
  736.                         elseif Char.GetData(Value.Index, 常量.对象.地图类型)==2 then
  737.                                 tMapName = "出租屋"
  738.                         else
  739.                                 tMapName = "未知"
  740.                         end
  741.                         local tMapPos = Char.GetData(Value.Index, 常量.对象.地图类型) .. "." .. Char.GetData(Value.Index, 常量.对象.地图) .. "." .. Char.GetData(Value.Index, 常量.对象.X) .. "." .. Char.GetData(Value.Index, 常量.对象.Y)
  742.                         local BattleStat = ""
  743.                         if Char.GetData(Value.Index, 8000)==true then BattleStat=" *战斗中*" end
  744.                         NLG.SystemMessage(_PlayerIndex, "[" .. Value.Index .. "][" .. Value.CdKey .. "]" .. tName .. "(Lv." .. tLv .. ") At " .. tMapName .. " [" .. tMapPos .. "] " .. BattleStat);
  745.                 end
  746.                 return 0
  747.         elseif CheckCommand(TalkMsg, "地图在线")==true or CheckCommand(TalkMsg, "maplist")==true or CheckCommand(TalkMsg, "ml")==true then
  748.                 NLG.SystemMessage(_PlayerIndex, "当前地图在线玩家如下:");
  749.                 for Key,Value in pairs(Players) do
  750.                         if Char.GetData(_PlayerIndex, 常量.对象.地图类型)==Char.GetData(Value.Index, 常量.对象.地图类型) and Char.GetData(_PlayerIndex, 常量.对象.地图)==Char.GetData(Value.Index, 常量.对象.地图) then
  751.                                 local tName = Char.GetData(Value.Index, 常量.对象.原名)   --Name
  752.                                 local tLv = Char.GetData(Value.Index, 常量.对象.等级)    --Lv
  753.                                 local tMapName = ""
  754.                                 if Char.GetData(Value.Index, 常量.对象.地图类型)==0 then
  755.                                         --123
  756.                                         --456
  757.                                         tMapName = getMapName(Char.GetData(Value.Index, 常量.对象.地图))
  758.                                 elseif Char.GetData(Value.Index, 常量.对象.地图类型)==1 then
  759.                                         tMapName = "随机迷宫"
  760.                                 elseif Char.GetData(Value.Index, 常量.对象.地图类型)==2 then
  761.                                         tMapName = "出租屋"
  762.                                 else
  763.                                         tMapName = "未知"
  764.                                 end
  765.                                 local pMapID = Char.GetData(_PlayerIndex, 常量.对象.地图)
  766.                                 --123
  767.                                 --456
  768.                                 local tMapPos = Char.GetData(Value.Index, 常量.对象.地图类型) .. "." .. Char.GetData(Value.Index, 常量.对象.地图) .. "." .. Char.GetData(Value.Index, 常量.对象.X) .. "." .. Char.GetData(Value.Index, 常量.对象.Y)
  769.                                 local BattleStat = ""
  770.                                 if Char.GetData(Value.Index, 8000)==true then BattleStat=" *战斗中*" end
  771.                                 NLG.SystemMessage(_PlayerIndex, "[" .. Value.Index .. "][" .. Value.CdKey .. "]" .. tName .. "(Lv." .. tLv .. ") At " .. tMapName .. " [" .. tMapPos .. "] " .. BattleStat);
  772.                         end
  773.                 end
  774.                 return 0
  775.         elseif CheckCommand(TalkMsg, "经验加成")==true or CheckCommand(TalkMsg, "jyjc")==true then
  776.        
  777.                 local toStr = ""
  778.                 if CheckCommand(TalkMsg, "经验加成")==true then
  779.                         toStr = GetCommandPara(TalkMsg ,"经验加成")
  780.                 elseif CheckCommand(TalkMsg, "jyjc")==true then
  781.                         toStr = GetCommandPara(TalkMsg ,"jyjc")
  782.                 end
  783.                 ExpADD(toStr[1],0)
  784.                 return 0
  785.         elseif CheckCommand(TalkMsg, "lua")==true then
  786.                 toStr = GetCommandPara(TalkMsg ,"lua")[1]
  787.                 f = loadstring(toStr)
  788.                 print("Lua脚本调试语句:|" .. toStr .. "|")
  789.                 print("Lua脚本调试结果:")
  790.                 local rt = f()
  791.                 if type(rt)=="nil" then rt="nil" end
  792.                 if type(rt)=="table" then rt="table" end
  793.                 if type(rt)=="function" then rt="function" end
  794.                 print(rt)
  795.                 print("Lua脚本调试结束。")
  796.                
  797.                 return 0
  798.         end
  799.         return 1
  800. end
  801. function CheckGMPassword(Msg)
  802.         local RightGM = "[" .. GMPassword .. " "
  803.         if string.sub(Msg,1,string.len(GMPassword)+2) == RightGM then
  804.                 return true
  805.         end
  806.         return false
  807. end
  808. function CheckCommand(Msg, Cmd)
  809.         local sMsg = string.sub(Msg, string.len("[" .. GMPassword .. " ")+1)
  810.         if sMsg==Cmd then
  811.                 return true
  812.         end
  813.         if string.find(sMsg, " ")~=nil then
  814.                 local tMsg = Split(sMsg, " ")
  815.                 if tMsg[1]==Cmd then
  816.                         return true
  817.                 end
  818.         end
  819.         return false
  820. end
  821. function GetCommandPara(Msg, Cmd)
  822.         local sMsg = string.sub(Msg, string.len("[" .. GMPassword .. " ")+1)
  823.         local tPara = Split(sMsg, " ")
  824.         table.remove(tPara, 1)
  825.         return tPara
  826. end
复制代码







lua/module中,放入basedata.lua,暨lua/module/basedata.lua
(代码中,对应技能、地图id和名字等与你sf不一样的,可以自行修改,不改也能用,没什么大的影响


lua/module中,放入onlineplayer.lua,暨lua/module/onlineplayer.lua


Module.rar (28.11 KB, 下载次数: 3)
(这2个lua太长了发不出,只能打包了,rar中包含basedata.lua onlineplayer.lua)







lua/config.lua中,最后一行添加
  1. useModule("EasyGM");                        --lua gm命令扩展
  2. useModule("BaseData");                        --lua gm命令扩展
复制代码
lua/config.lua中,修改
  1. --useModule("OnlinePlayer");                --玩家在线列表(必须)
复制代码

  1. useModule("OnlinePlayer");                --玩家在线列表(必须)
复制代码


Rank: 1

发表于 2021-5-25 10:42:39 | 显示全部楼层
流弊,膜拜大佬~!~

Rank: 1

发表于 2021-5-25 10:50:12 | 显示全部楼层
就是大佬能不能弄到免费区去,知道辛苦,可惜没金币啊 哈哈哈
您需要登录后才可以回帖 登录 | 注册/Sign up

本版积分规则

手机版|cgmsv引擎论坛

GMT+8, 2024-11-21 21:43 , Processed in 0.173650 second(s), 11 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表