From 54257275bdaa30fb8d38da4144050511825d0d84 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 16 五月 2019 11:01:45 +0800
Subject: [PATCH] 3583 3524 【BUG】【2.0】妖王副本没有boss(进入副本如果boss已经被击杀则弹出结算界面)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/GMShell.py |   39 ++++++++++++++++++++++++++++++---------
 1 files changed, 30 insertions(+), 9 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/GMShell.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/GMShell.py
index 571488b..928baf0 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/GMShell.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/GMShell.py
@@ -30,6 +30,7 @@
 import traceback
 import PlayerTJG
 import FBLogic
+import GameObj
 #---------------------------------------------------------------------
 
 #---------------------------------------------------------------------
@@ -103,14 +104,10 @@
             del inputList[0]
             #把剩余参数转换为整型
             for i in range(0, len(inputList)):
-                if i == 0 and callFunName in ["GetPlayerDict", "SetPlayerDict", "CTG"]:
-                    continue
-                if i == 1 and callFunName in ["SetMissionDict"]:
-                    continue
                 value = GameWorld.ToIntDef(inputList[i], None)
                 if value == None:
-                    GameWorld.DebugAnswer(curPlayer, "参数错误, 必须为纯数字!")
-                    return
+                    #GameWorld.DebugAnswer(curPlayer, "参数错误, 必须为纯数字!")
+                    continue
                 inputList[i] = value
                 
             callFunc(curPlayer, inputList)
@@ -168,13 +165,37 @@
             DR_UseGMCMD(curPlayer, inputStr)
             return
         
+        # GameObj 的 Get、Set函数
+        if hasattr(GameObj, callFunName):
+            callObj = getattr(GameObj, callFunName)
+            argcount = callObj.func_code.co_argcount # 函数参数个数
+            
+            if argcount == 1 and callFunName.startswith("Get"):
+                value = callObj(curPlayer)
+            elif argcount == 2 and callFunName.startswith("Set"):
+                if len(inputList) < 2:
+                    GameWorld.DebugAnswer(curPlayer, "必须设定一定参数值")
+                    return
+                value = GameWorld.ToIntDef(inputList[1], None)
+                if value == None:
+                    GameWorld.DebugAnswer(curPlayer, "参数错误, 必须为纯数字!")
+                    return
+                callObj(curPlayer, value)
+            else:
+                GameWorld.DebugAnswer(curPlayer, "不支持该命令!GameObj.%s" % callFunName)
+                return
+            
+            GameWorld.DebugAnswer(curPlayer, "%s : %s" % (callFunName, value))
+            DR_UseGMCMD(curPlayer, inputStr)
+            return
+        
         curPlayer.GameServer_GMCmd(inputStr)
     except BaseException:
         GameWorld.DebugAnswer(curPlayer, "执行GM命令错误, 请查看所在地图日志!")
         errorMsg = str(traceback.format_exc())
         GameWorld.ErrLog('GM命令错误 - > %s' % errorMsg, curPlayer.GetPlayerID())
-        if GameWorld.GetGameWorld().GetDebugLevel():
-            raise Exception(errorMsg)
+        #if GameWorld.GetGameWorld().GetDebugLevel():
+        #    raise Exception(errorMsg)
     return
 
 ## 使用GM命令流向
@@ -259,7 +280,7 @@
     curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
     
     if not curPlayer.GetMapLoadOK():
-        #未读取地图成功,不让用
+        GameWorld.DebugLog("    未读取地图成功,不让用")
         return
     
     #判断FB中是否可使用GM命令

--
Gitblit v1.8.0