| | |
| | | import ShareDefine
|
| | | import NetPackCommon
|
| | | import PlayerControl
|
| | | import PlayerSuccess
|
| | | import ChPyNetSendPack
|
| | | import IPY_GameWorld
|
| | | import IpyGameDataPY
|
| | | import GameFuncComm
|
| | | import PlayerOnline
|
| | | import PlayerTask
|
| | | import GameWorld
|
| | | import ObjPool
|
| | |
|
| | |
| | | costItemIndexList, bindCnt, unBindCnt = ItemCommon.GetPackItemBindStateIndexInfo(curPlayer, costItemID, costItemCount)
|
| | | lackCnt = costItemCount - bindCnt - unBindCnt
|
| | | if lackCnt > 0:
|
| | | GameWorld.DebugLog("消耗道具不足,无法升级坐骑! costItemID=%s,costItemCount=%s,bindCnt=%s,unBindCnt=%s,lackCnt=%s" |
| | | costItemCount -= lackCnt
|
| | | GameWorld.DebugLog("消耗道具不足,有多少消耗多少! costItemID=%s,costItemCount=%s,bindCnt=%s,unBindCnt=%s,lackCnt=%s" |
| | | % (costItemID, costItemCount, bindCnt, unBindCnt, lackCnt))
|
| | | return
|
| | | |
| | | |
| | | # 扣除消耗
|
| | | ItemCommon.DelCostItemByBind(curPlayer, costItemIndexList, bindCnt, unBindCnt, costItemCount, ChConfig.ItemDel_Horse)
|
| | |
|
| | |
| | | # 有升级额外处理
|
| | | if updHorseLV > horseLV:
|
| | | RefreshHorseAttr(curPlayer)
|
| | | |
| | | PlayerTask.AddTaskValue(curPlayer, ChConfig.TaskType_HorseLVUP, costItemCount)
|
| | | PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_OSAHorseLVUP, costItemCount)
|
| | | return
|
| | |
|
| | | #// B2 02 坐骑进阶 #tagCSHorseClassUP
|
| | |
| | | #{
|
| | | # tagHead Head;
|
| | | # BYTE OPType; // 操作 1-激活;2-佩戴;3-升星
|
| | | # BYTE SkinID; // 外观ID,佩戴时发0即为卸下
|
| | | # WORD SkinID; // 外观ID,佩戴时发0即为卸下
|
| | | #};
|
| | | def OnHorseSkinOP(index, clientData, tick):
|
| | | curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
| | |
| | | ipyData = IpyGameDataPY.GetIpyGameData("HorseSkin", horseSkinID)
|
| | | if not ipyData:
|
| | | return
|
| | | if ipyData.GetUnlockWay() != 2:
|
| | | GameWorld.DebugLog("非道具激活的不用添加: horseSkinID=%s" % (horseSkinID), playerID)
|
| | | return
|
| | | if not isFree:
|
| | | itemID = ipyData.GetUnlockValue()
|
| | | itemCount = ipyData.GetUnlockNeedCnt()
|
| | | if not itemID or not itemCount:
|
| | | return
|
| | | needItemList = [[itemID, itemCount]]
|
| | | itemPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)
|
| | | lackItemDict, delInfoDict = ItemCommon.GetCostItemIndexList(needItemList, itemPack)
|
| | | if lackItemDict:
|
| | | GameWorld.DebugLog("激活所需物品不足! horseSkinID=%s,lackItemDict=%s" % (horseSkinID, lackItemDict), playerID)
|
| | | return
|
| | | ItemCommon.DelCostItem(curPlayer, itemPack, delInfoDict, "AddHorseSkin")
|
| | | unlockWay = ipyData.GetUnlockWay()
|
| | | if unlockWay == 1:
|
| | | classLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HorseClassLV)
|
| | | if classLV < ipyData.GetUnlockValue():
|
| | | GameWorld.DebugLog("坐骑阶级不足无法解锁! classLV=%s < %s" % (classLV, ipyData.GetUnlockValue()), playerID)
|
| | | return
|
| | | elif unlockWay == 2:
|
| | | itemID = ipyData.GetUnlockValue()
|
| | | itemCount = ipyData.GetUnlockNeedCnt()
|
| | | if not itemID or not itemCount:
|
| | | return
|
| | | needItemList = [[itemID, itemCount]]
|
| | | itemPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)
|
| | | lackItemDict, delInfoDict = ItemCommon.GetCostItemIndexList(needItemList, itemPack)
|
| | | if lackItemDict:
|
| | | GameWorld.DebugLog("激活所需物品不足! horseSkinID=%s,lackItemDict=%s" % (horseSkinID, lackItemDict), playerID)
|
| | | return
|
| | | ItemCommon.DelCostItem(curPlayer, itemPack, delInfoDict, "AddHorseSkin")
|
| | |
|
| | | ipyExpireSeconds = ipyData.GetExpireMinutes() * 60
|
| | |
|
| | |
| | | for index in range(ipyDataMgr.GetHorseSkinCount()):
|
| | | ipyData = ipyDataMgr.GetHorseSkinByIndex(index)
|
| | | horseSkinID = ipyData.GetSkinID()
|
| | | if horseSkinID <= 0:
|
| | | continue
|
| | | if ipyData.GetUnlockWay() != 1:
|
| | | continue
|
| | | if ipyData.GetUnlockValue() > 0:
|
| | |
| | | if ipyData:
|
| | | unlockWay = ipyData.GetUnlockWay()
|
| | | if unlockWay == 1:
|
| | | classLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HorseClassLV)
|
| | | if classLV >= ipyData.GetUnlockValue():
|
| | | if not ipyData.GetUnlockValue():
|
| | | return True
|
| | | #classLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HorseClassLV)
|
| | | #if classLV >= ipyData.GetUnlockValue():
|
| | | # return True
|
| | |
|
| | | return False
|
| | |
|
| | |
| | | if ipyData.GetUnlockWay() != 2:
|
| | | return
|
| | | itemID = ipyData.GetUnlockValue()
|
| | | itemCount = ipyData.GetUnlockNeedCnt()
|
| | | itemCount = ipyData.GetUpNeedCnt()
|
| | | if not itemID or not itemCount:
|
| | | return
|
| | | needItemList = [[itemID, itemCount]]
|