#!/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 ShareDefine
|
import PlayerSuccess
|
import IpyGameDataPY
|
import GameWorld
|
|
def OnExec(curPlayer, msgList):
|
if not msgList:
|
GameWorld.DebugAnswer(curPlayer, "ÖØÖóɾÍ: Success 0 [ÀàÐÍ ...]")
|
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 == "p":
|
__DoPrintSuccess(curPlayer, msgList)
|
# Ôö¼Ó½ø¶È
|
elif cmdType == "a":
|
succType = msgList[1] if len(msgList) > 1 else 0
|
addValue = msgList[2] if len(msgList) > 2 else 1
|
conds = msgList[3:]
|
GameWorld.DebugAnswer(curPlayer, "Ôö¼Ó³É¾Í½ø¶È: T:%s,V:%s,C:%s" % (succType, addValue, conds))
|
PlayerSuccess.DoAddSuccessProgress(curPlayer, succType, addValue, conds)
|
# ¸üнø¶È
|
elif cmdType == "u":
|
succType = msgList[1] if len(msgList) > 1 else 0
|
newCnt = msgList[2] if len(msgList) > 2 else 1
|
conds = msgList[3:]
|
GameWorld.DebugAnswer(curPlayer, "¸üгɾͽø¶È: T:%s,V:%s,C:%s" % (succType, addValue, conds))
|
PlayerSuccess.UptateSuccessProgress(curPlayer, succType, newCnt, conds)
|
return
|
|
def __DoResetSuccess(curPlayer, msgList, resetValue=True):
|
## ÖØÖóɾÍÊý¾Ý
|
if len(msgList) > 1:
|
typeList = msgList[1:]
|
else:
|
typeList = ShareDefine.SuccessTypeList
|
|
succIDList = []
|
syncTypeCondList = []
|
for succType in typeList:
|
ipyDataList = IpyGameDataPY.GetIpyGameDataListNotLog("Success", succType)
|
if not ipyDataList:
|
continue
|
for ipyData in ipyDataList:
|
succID = ipyData.GetSuccID()
|
conds = ipyData.GetCondition()
|
|
if PlayerSuccess.GetSuccHasGot(curPlayer, succID):
|
succIDList.append(succID)
|
PlayerSuccess.SetSuccHasGot(curPlayer, succID, False)
|
|
if [succType, conds] not in syncTypeCondList:
|
syncTypeCondList.append([succType, conds])
|
PlayerSuccess.SetSuccValue(curPlayer, succType, conds, 0)
|
|
PlayerSuccess.SyncSuccessInfo(curPlayer, syncTypeCondList, True)
|
PlayerSuccess.SyncSuccessAwardRecord(curPlayer, succIDList, True)
|
GameWorld.DebugAnswer(curPlayer, "ÖØÖóɾÍÀàÐÍ:%s" % typeList)
|
return
|
|
def __DoPrintSuccess(curPlayer, msgList):
|
## Êä³ö³É¾ÍÊý¾Ý
|
if len(msgList) > 1:
|
typeList = msgList[1:]
|
else:
|
typeList = ShareDefine.SuccessTypeList
|
GameWorld.DebugAnswer(curPlayer, "--- Êä³öÓнø¶ÈµÄ³É¾ÍÊý¾Ý ---")
|
for succType in typeList:
|
ipyDataList = IpyGameDataPY.GetIpyGameDataListNotLog("Success", succType)
|
if not ipyDataList:
|
continue
|
printType = False
|
for ipyData in ipyDataList:
|
succID = ipyData.GetSuccID()
|
conds = ipyData.GetCondition()
|
needCnt = ipyData.GetNeedCnt()
|
value = PlayerSuccess.GetSuccValue(curPlayer, succType, conds)
|
if not value:
|
continue
|
if not printType:
|
printType = True
|
GameWorld.DebugAnswer(curPlayer, "----- ³É¾ÍÀàÐÍ: %s" % succType)
|
hasGot = PlayerSuccess.GetSuccHasGot(curPlayer, succID)
|
GameWorld.DebugAnswer(curPlayer, "ID:%s,C:%s,V:%s/%s,½±:%s" % (succID, conds, value, needCnt, hasGot))
|
|
return
|
|