#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package GM.Commands.Success # # @todo:³É¾Í # @author hxp # @date 2020-03-31 # @version 1.0 # # ÏêϸÃèÊö: ³É¾Í # #------------------------------------------------------------------------------- #"""Version = 2020-03-31 18:00""" #------------------------------------------------------------------------------- import ChConfig import ShareDefine import PlayerSuccess import GameWorld import PlayerControl #Âß¼­ÊµÏÖ ## GMÃüÁîÖ´ÐÐÈë¿Ú # @param curPlayer µ±Ç°Íæ¼Ò # @param msgList ²ÎÊýÁбí [npcID] # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def OnExec(curPlayer, msgList): if not msgList: GameWorld.DebugAnswer(curPlayer, "ÖØÖÃËùÓгɾÍ: Success 0") GameWorld.DebugAnswer(curPlayer, "ÖØÖÃÖ¸¶¨³É¾Í: Success 0 ÀàÐÍ") GameWorld.DebugAnswer(curPlayer, "ÖØÖóɾÍÁì½±: Success w ÀàÐÍ") GameWorld.DebugAnswer(curPlayer, "Êä³ö³É¾ÍÊý¾Ý: Success p ÀàÐÍ") #GameWorld.DebugAnswer(curPlayer, "Ôö¼Ó³É¾Í½ø¶È: Success a ÀàÐÍ ½ø¶È Ìõ¼þ(Ñ¡Ìî)") #GameWorld.DebugAnswer(curPlayer, "¸üгɾͽø¶È: Success u ÀàÐÍ ½ø¶È Ìõ¼þ(Ñ¡Ìî)") return cmdType = msgList[0] # ÖØÖÃÊý¾Ý if cmdType == 0: __DoResetSuccess(curPlayer, msgList) # ÖØÖÃÁì½± elif cmdType == "w": __DoResetSuccessAward(curPlayer, msgList) # Êä³öÊý¾Ý elif cmdType == "p": __DoPrintSuccess(curPlayer, msgList) # Ôö¼Ó½ø¶È elif cmdType == "a": pass # ¸üнø¶È elif cmdType == "u": pass return def __DoResetSuccess(curPlayer, msgList): ## ÖØÖóɾÍÊý¾Ý if len(msgList) > 1: typeList = [msgList[1]] else: typeList = ShareDefine.SuccessTypeList resetTypeList = [] for succType in typeList: succDataList = PlayerSuccess.GetSuccDataMng().GetSuccDataByType(succType) if not succDataList: continue for succDataObj in succDataList: succID = succDataObj.succID if succType not in resetTypeList: resetTypeList.append(succType) PlayerSuccess.SetSuccHasGot(curPlayer, succID, False) PlayerSuccess.SetSuccPassportAwardHasGot(curPlayer, succID, False) PlayerSuccess.SetSuccFinish(curPlayer, succID, False) PlayerSuccess.SetPDictValue(curPlayer, ChConfig.Def_PDict_Success_LastDay % (succID), 0) PlayerSuccess.SetSuccFinishValue(curPlayer, succType, succDataObj.condition, 0) # ÀÏÍæ¼ÒÉÏÏß¼ì²éÇé¿ö PlayerSuccess.SetPDictValue(curPlayer, ChConfig.Def_PDict_Success_CheckVersion, 0) # ͬ²½³É¾ÍÐÅÏ¢ PlayerSuccess.Sync_SuccessInfo(curPlayer, [], True) # ͬ²½³É¾ÍÁì½±¼Ç¼ PlayerSuccess.Sync_SuccTypeIndexAwardRecord(curPlayer, [], True) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_Success_ScoreAward, 0) PlayerSuccess.Sync_SuccessScoreAward(curPlayer) GameWorld.DebugAnswer(curPlayer, "ÖØÖóɾÍÀàÐÍ:%s" % resetTypeList) return def __DoResetSuccessAward(curPlayer, msgList): ## ÖØÖóɾÍÁì½± if len(msgList) > 1: typeList = [msgList[1]] else: typeList = ShareDefine.SuccessTypeList resetIDList = [] for succType in typeList: succDataList = PlayerSuccess.GetSuccDataMng().GetSuccDataByType(succType) if not succDataList: continue for succDataObj in succDataList: succID = succDataObj.succID if not PlayerSuccess.GetSuccHasGot(curPlayer, succID) and not PlayerSuccess.GetSuccPassportAwardHasGot(curPlayer, succID): continue PlayerSuccess.SetSuccHasGot(curPlayer, succID, False) PlayerSuccess.SetSuccPassportAwardHasGot(curPlayer, succID, False) PlayerSuccess.SetSuccFinish(curPlayer, succID) # ÓÐÖØÖÃÁì½±µÄIDÐèÒªÖØÐÂÉèÖÃΪÒÑÍê³É resetIDList.append(succID) # ͬ²½³É¾ÍÁì½±¼Ç¼ PlayerSuccess.Sync_SuccTypeIndexAwardRecord(curPlayer, resetIDList, True) GameWorld.DebugAnswer(curPlayer, "ÖØÖóɾÍIDÁì½±:%s" % resetIDList) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_Success_ScoreAward, 0) PlayerSuccess.Sync_SuccessScoreAward(curPlayer) return def __DoPrintSuccess(curPlayer, msgList): ## Êä³ö³É¾ÍÊý¾Ý if len(msgList) > 1: typeList = [msgList[1]] else: typeList = ShareDefine.SuccessTypeList GameWorld.DebugAnswer(curPlayer, "--- Êä³öÓнø¶ÈµÄ³É¾ÍÊý¾Ý ---") for succType in typeList: succDataList = PlayerSuccess.GetSuccDataMng().GetSuccDataByType(succType) if not succDataList: continue printType = False for succDataObj in succDataList: succID = succDataObj.succID value = PlayerSuccess.GetSuccFinishValue(curPlayer, succType, succDataObj.condition) if not value: continue if not printType: printType = True GameWorld.DebugAnswer(curPlayer, "³É¾ÍÀàÐÍ: %s" % succType) isFinish = PlayerSuccess.GetSuccIsFinish(curPlayer, succID) hasGot = PlayerSuccess.GetSuccHasGot(curPlayer, succID) passportHasGot = PlayerSuccess.GetSuccPassportAwardHasGot(curPlayer, succID) GameWorld.DebugAnswer(curPlayer, " id=%s Ìõ¼þ:%s ½ø¶È:%s/%s Íê³É:%s Áì½±:%s %s" % (succID, succDataObj.condition, value, succDataObj.needCnt, isFinish, hasGot, passportHasGot)) return