#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#-------------------------------------------------------------------------------
|
#
|
##@package GM.Commands.Gubao
|
#
|
# @todo:¹Å±¦
|
# @author hxp
|
# @date 2025-10-11
|
# @version 1.0
|
#
|
# ÏêϸÃèÊö: ¹Å±¦
|
#
|
#-------------------------------------------------------------------------------
|
#"""Version = 2025-10-11 21:00"""
|
#-------------------------------------------------------------------------------
|
|
import GameWorld
|
import IpyGameDataPY
|
import ItemControler
|
import PlayerGubao
|
|
def OnExec(curPlayer, msgList):
|
|
if not msgList:
|
GameWorld.DebugAnswer(curPlayer, "ÖØÖùű¦: Gubao 0")
|
GameWorld.DebugAnswer(curPlayer, "ÉèÖùű¦: Gubao ¹Å±¦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()
|
itemID = ipyData.GetUnlockItemID()
|
if ItemControler.GetItemCountByID(curPlayer, itemID):
|
ItemControler.SetItemCountByID(curPlayer, itemID, 0) # ÖØÖÃ
|
if not PlayerGubao.IsGubaoActivated(curPlayer, gubaoID):
|
continue
|
if gubaoID not in gubaoIDList:
|
gubaoIDList.append(gubaoID)
|
PlayerGubao.SetGubaoInfo(curPlayer, gubaoID, 0, 0, 0)
|
GameWorld.DebugAnswer(curPlayer, "ÖØÖùű¦OK")
|
else:
|
return
|
|
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
|
itemID = ipyData.GetUnlockItemID()
|
ItemControler.SetItemCountByID(curPlayer, itemID, pieceCount)
|
GameWorld.DebugAnswer(curPlayer, "ÉèÖùű¦(%s)Ë鯬ID:%s,ÊýÁ¿:%s" % (gubaoID, itemID, pieceCount))
|
return
|
|
else:
|
gubaoID = value1
|
lv = msgList[1] if len(msgList) > 1 else 1
|
star = msgList[2] if len(msgList) > 2 else 0
|
layer = msgList[3] if len(msgList) > 3 else 0
|
ipyData = IpyGameDataPY.GetIpyGameData("Gubao", gubaoID)
|
if not ipyData:
|
GameWorld.DebugAnswer(curPlayer, "²»´æÔڸùű¦!gubaoID=%s" % gubaoID)
|
return
|
quality = ipyData.GetGubaoQuality()
|
layer = min(layer, ipyData.GetSpecEffLayerMax())
|
|
starIpyDataList = IpyGameDataPY.GetIpyGameDataList("GubaoStar", quality)
|
if starIpyDataList:
|
lastStarIpyData = starIpyDataList[-1]
|
star = min(star, lastStarIpyData.GetGubaoStar())
|
|
lvIpyDataList = IpyGameDataPY.GetIpyGameDataList("GubaoLV", quality)
|
if lvIpyDataList:
|
lastLVIpyData = lvIpyDataList[-1]
|
lv = min(lv, lastLVIpyData.GetLessEqualLV())
|
|
GameWorld.DebugAnswer(curPlayer, "ÉèÖùű¦:%s,¼¶(%s),ÐÇ(%s),²ã(%s)" % (gubaoID, lv, star, layer))
|
PlayerGubao.SetGubaoInfo(curPlayer, gubaoID, lv, star, layer)
|
gubaoIDList.append(gubaoID)
|
|
PlayerGubao.RefreshGubaoAttr(curPlayer)
|
PlayerGubao.Sync_GubaoInfo(curPlayer, gubaoIDList)
|
return
|