#!/usr/bin/python 
 | 
# -*- coding: GBK -*- 
 | 
#------------------------------------------------------------------------------- 
 | 
# 
 | 
##@package GM.Commands.Gubao 
 | 
# 
 | 
# @todo:¹Å±¦ 
 | 
# @author hxp 
 | 
# @date 2023-01-5 
 | 
# @version 1.0 
 | 
# 
 | 
# ÏêϸÃèÊö: ¹Å±¦ 
 | 
# 
 | 
#------------------------------------------------------------------------------- 
 | 
#"""Version = 2023-01-5 15:30""" 
 | 
#------------------------------------------------------------------------------- 
 | 
  
 | 
import GameWorld 
 | 
import IpyGameDataPY 
 | 
import PlayerGubao 
 | 
import PlayerControl 
 | 
import ChConfig 
 | 
  
 | 
#--------------------------------------------------------------------- 
 | 
#Â߼ʵÏÖ 
 | 
  
 | 
## GMÃüÁîÖ´ÐÐÈë¿Ú 
 | 
#  @param curPlayer µ±Ç°Íæ¼Ò 
 | 
#  @param msgList ²ÎÊýÁбí 
 | 
#  @return None 
 | 
#  @remarks º¯ÊýÏêϸ˵Ã÷. 
 | 
def OnExec(curPlayer, msgList): 
 | 
     
 | 
    if not msgList: 
 | 
        GameWorld.DebugAnswer(curPlayer, "ÖØÖùű¦: Gubao 0") 
 | 
        GameWorld.DebugAnswer(curPlayer, "ÉèÖùű¦: Gubao ¹Å±¦ID µÈ¼¶ ÐǼ¶") 
 | 
        GameWorld.DebugAnswer(curPlayer, "ÉèÖÃЧ¹û: Gubao e ¹Å±¦ID Ð§¹ûÀàÐÍ  ½ø¶ÈÖµ") 
 | 
        return 
 | 
     
 | 
    gubaoIDList = [] 
 | 
    value1 = msgList[0] 
 | 
    if len(msgList) == 1: 
 | 
        if msgList[0] == 0: 
 | 
            ipyDataMgr = IpyGameDataPY.IPY_Data() 
 | 
            for index in range(ipyDataMgr.GetGubaoCount()): 
 | 
                ipyData = ipyDataMgr.GetGubaoByIndex(index) 
 | 
                gubaoID = ipyData.GetGubaoID() 
 | 
                if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GubaoPiece % gubaoID): 
 | 
                    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GubaoPiece % gubaoID, 0) 
 | 
                    if gubaoID not in gubaoIDList: 
 | 
                        gubaoIDList.append(gubaoID) 
 | 
                _, star = PlayerGubao.GetGubaoLVInfo(curPlayer, gubaoID) 
 | 
                if not star: 
 | 
                    continue 
 | 
                if gubaoID not in gubaoIDList: 
 | 
                    gubaoIDList.append(gubaoID) 
 | 
                PlayerGubao.SetGubaoLVInfo(curPlayer, gubaoID, 0, 0) 
 | 
                for effType in PlayerGubao.GubaoEffTtemIypeList: 
 | 
                    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GubaoItemEffValue % (gubaoID, effType), 0) 
 | 
                     
 | 
            PlayerGubao.Sync_GubaoItemEffInfo(curPlayer, force=True) 
 | 
            GameWorld.DebugAnswer(curPlayer, "ÖØÖùű¦OK") 
 | 
             
 | 
    elif len(msgList) == 3: 
 | 
        gubaoID, lv, star = msgList 
 | 
        ipyData = IpyGameDataPY.GetIpyGameData("Gubao", gubaoID) 
 | 
        if not ipyData: 
 | 
            GameWorld.DebugAnswer(curPlayer, "²»´æÔڸùű¦!gubaoID=%s" % gubaoID) 
 | 
            return 
 | 
        starIpyData = IpyGameDataPY.GetIpyGameData("GubaoStar", gubaoID, star) 
 | 
        if not starIpyData: 
 | 
            GameWorld.DebugAnswer(curPlayer, "²»´æÔڸùű¦ÐǼ¶!gubaoID=%s,star=%s" % (gubaoID, star)) 
 | 
            return 
 | 
        gubaoType = ipyData.GetGubaoType() 
 | 
        quality = ipyData.GetGubaoQuality() 
 | 
        lvIpyData = IpyGameDataPY.GetIpyGameData("GubaoLV", gubaoType, quality, lv) 
 | 
        if not lvIpyData: 
 | 
            GameWorld.DebugAnswer(curPlayer, "²»´æÔڸùű¦Æ·Öʵȼ¶!gubaoID=%s,gubaoType=%s,quality=%s,lv=%s" % (gubaoID, gubaoType, quality, lv)) 
 | 
            return 
 | 
        GameWorld.DebugAnswer(curPlayer, "ÉèÖùű¦:%s,µÈ¼¶(%s),ÐÇ(%s)" % (gubaoID, lv, star)) 
 | 
        PlayerGubao.SetGubaoLVInfo(curPlayer, gubaoID, lv, star) 
 | 
        gubaoIDList.append(gubaoID) 
 | 
    elif value1 == "e": 
 | 
        if len(msgList) != 4: 
 | 
            return 
 | 
        _, gubaoID, effType, effValue = msgList 
 | 
        if effType not in PlayerGubao.GubaoEffTtemIypeList: 
 | 
            GameWorld.DebugAnswer(curPlayer, "¹Å±¦ÎïÆ·Ð§¹ûÀàÐͽö°üº¬:%s" % str(PlayerGubao.GubaoEffTtemIypeList)) 
 | 
            return 
 | 
        ipyData = IpyGameDataPY.GetIpyGameData("Gubao", gubaoID) 
 | 
        if not ipyData: 
 | 
            GameWorld.DebugAnswer(curPlayer, "²»´æÔڸùű¦!gubaoID=%s" % gubaoID) 
 | 
            return 
 | 
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GubaoItemEffValue % (gubaoID, effType), effValue) 
 | 
        PlayerGubao.Sync_GubaoItemEffInfo(curPlayer, gubaoID, effType, True) 
 | 
        GameWorld.DebugAnswer(curPlayer, "ÉèÖùű¦:%s,Ч¹ûÀàÐÍ(%s),Öµ(%s)" % (gubaoID, effType, effValue)) 
 | 
    else: 
 | 
        return 
 | 
     
 | 
    PlayerGubao.RefreshGubaoAttr(curPlayer) 
 | 
    PlayerGubao.Sync_GubaoInfo(curPlayer, gubaoIDList) 
 | 
    PlayerGubao.Sync_GubaoPieceInfo(curPlayer, gubaoIDList)     
 | 
    return 
 |