#!/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 Ч¹ûÀàÐÍ ½ø¶ÈÖµ")
|
GameWorld.DebugAnswer(curPlayer, "ÉèÖÃË鯬: Gubao p ¹Å±¦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.NeedGubaoItemEffValueTypeList:
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GubaoItemEffValue % (gubaoID, effType), 0)
|
|
PlayerGubao.Sync_GubaoItemEffInfo(curPlayer, force=True)
|
GameWorld.DebugAnswer(curPlayer, "ÖØÖùű¦OK")
|
elif value1 == "p":
|
gubaoID = msgList[1] if len(msgList) > 1 else 0
|
pieceCount = msgList[2] if len(msgList) > 2 else 0
|
ipyData = IpyGameDataPY.GetIpyGameData("Gubao", gubaoID)
|
if not ipyData:
|
GameWorld.DebugAnswer(curPlayer, "²»´æÔڸùű¦!gubaoID=%s" % gubaoID)
|
return
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GubaoPiece % gubaoID, pieceCount)
|
GameWorld.DebugAnswer(curPlayer, "ÉèÖÃË鯬ÊýÁ¿: ID:%s,ÊýÁ¿:%s" % (gubaoID, pieceCount))
|
PlayerGubao.Sync_GubaoPieceInfo(curPlayer, [gubaoID])
|
return
|
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.NeedGubaoItemEffValueTypeList:
|
GameWorld.DebugAnswer(curPlayer, "¹Å±¦Ð§¹ûÖµÀàÐͽö°üº¬:%s" % str(PlayerGubao.NeedGubaoItemEffValueTypeList))
|
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
|
|
|