#!/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
|
|
|