| #!/usr/bin/python | 
| # -*- coding: GBK -*- | 
| #------------------------------------------------------------------------------- | 
| # | 
| ##@package GM.Commands.Shentong | 
| # | 
| # @todo:Éñͨ | 
| # @author hxp | 
| # @date 2023-01-08 | 
| # @version 1.0 | 
| # | 
| # ÏêϸÃèÊö: Éñͨ | 
| # | 
| #------------------------------------------------------------------------------- | 
| #"""Version = 2023-01-08 18:00""" | 
| #------------------------------------------------------------------------------- | 
|   | 
| import GameWorld | 
| import IpyGameDataPY | 
| import PlayerShentong | 
| import PlayerControl | 
| import ChConfig | 
|   | 
| #--------------------------------------------------------------------- | 
| #Â߼ʵÏÖ | 
|   | 
| ## GMÃüÁîÖ´ÐÐÈë¿Ú | 
| #  @param curPlayer µ±Ç°Íæ¼Ò | 
| #  @param msgList ²ÎÊýÁбí | 
| #  @return None | 
| #  @remarks º¯ÊýÏêϸ˵Ã÷. | 
| def OnExec(curPlayer, msgList): | 
|      | 
|     if not msgList: | 
|         GameWorld.DebugAnswer(curPlayer, "ÖØÖÃÉñͨ: Shentong 0") | 
|         GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÉñͨ: Shentong ÉñͨID ½× µÈ¼¶") | 
|         return | 
|      | 
|     syncIDList = [] | 
|      | 
|     if len(msgList) == 1: | 
|         if msgList[0] == 0: | 
|             ipyDataMgr = IpyGameDataPY.IPY_Data() | 
|             for index in range(ipyDataMgr.GetShentongCount()): | 
|                 ipyData = ipyDataMgr.GetShentongByIndex(index) | 
|                 shentongID = ipyData.GetShentongID() | 
|                 classLV, lv = PlayerShentong.GetShentongLVInfo(curPlayer, shentongID) | 
|                 if not classLV and not lv: | 
|                     continue | 
|                 syncIDList.append(shentongID) | 
|                 PlayerShentong.SetShentongLVInfo(curPlayer, shentongID, 0, 0) | 
|                  | 
|             ShentongSkillCountMax = len(IpyGameDataPY.GetFuncEvalCfg("Shentong", 1)) | 
|             skillManager = curPlayer.GetSkillManager() | 
|             playerCtl = PlayerControl.PlayerControl(curPlayer) | 
|             for num in range(ShentongSkillCountMax): | 
|                 skillID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ShentongSkillID % num) | 
|                 if skillID and skillManager.FindSkillBySkillID(skillID): | 
|                     skillManager.DeleteSkillBySkillID(skillID, True) | 
|                     playerCtl.RefreshSkillFightPowerByDel(skillID) | 
|                 PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ShentongSkillID % num, 0) | 
|             PlayerShentong.Sync_ShentongSkillInfo(curPlayer) | 
|              | 
|             GameWorld.DebugAnswer(curPlayer, "ÖØÖÃÉñͨOK") | 
|              | 
|     elif len(msgList) == 3: | 
|         shentongID, classLV, lv = msgList | 
|         ipyData = IpyGameDataPY.GetIpyGameData("Shentong", shentongID) | 
|         if not ipyData: | 
|             GameWorld.DebugAnswer(curPlayer, "²»´æÔÚ¸ÃÉñͨ!shentongID=%s" % shentongID) | 
|             return | 
|         lvIpyData = IpyGameDataPY.GetIpyGameData("ShentongLV", shentongID, classLV, lv) | 
|         if not lvIpyData: | 
|             GameWorld.DebugAnswer(curPlayer, "²»´æÔÚ¸ÃÉñͨµÈ¼¶!shentongID=%s,classLV=%s,lv=%s" % (shentongID, classLV, lv)) | 
|             return | 
|         GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÉñͨ:%s,½×(%s),µÈ¼¶(%s)" % (shentongID, classLV, lv)) | 
|         PlayerShentong.SetShentongLVInfo(curPlayer, shentongID, classLV, lv) | 
|         syncIDList.append(shentongID) | 
|     else: | 
|         return | 
|      | 
|     PlayerShentong.RefreshShentongAttr(curPlayer) | 
|     PlayerShentong.Sync_ShentongLVInfo(curPlayer, syncIDList) | 
|     return |