From a9e5ae2ed13bffe82038291776ffa68f65becce6 Mon Sep 17 00:00:00 2001 From: xdh <xiefantasy@qq.com> Date: 星期一, 10 六月 2019 10:57:18 +0800 Subject: [PATCH] 7145 【2.0】【后端】仙盟新增兑换活跃令功能 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamily.py | 65 ++++++++++++++++++++++++++++++++ 1 files changed, 64 insertions(+), 1 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamily.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamily.py index 5697e1b..74471cf 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamily.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamily.py @@ -932,4 +932,67 @@ clientPack = ChPyNetSendPack.tagMCFamilyDayAward() clientPack.GetState = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FamilyDayAward) NetPackCommon.SendFakePack(curPlayer, clientPack) - return \ No newline at end of file + return + + +#// A6 06 家族兑换活跃令 #tagCMFamilyActivityExchange +# +#struct tagCMFamilyActivityExchange +#{ +# tagHead Head; +# BYTE Count; //材料所在背包索引的数量 +# WORD IndexList[Count]; //材料所在背包索引列表 +# DWORD ItemIDList[Count]; //材料所在背包物品ID列表 +#}; +## 家族兑换活跃令 +# @param playerIndex 玩家索引 +# @param clientData 客户端封包 +# @param tick 时间 +# @return None +def OnFamilyActivityExchange(index, clientData, tick): + curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) + if not clientData.Count: + return + playerID = curPlayer.GetID() + eatIndexList = clientData.IndexList + eatItemIDList = clientData.ItemIDList + givePoint = 0 #分解得到活跃令 + familyDonateDict = IpyGameDataPY.GetFuncEvalCfg('FamilyDonate', 1, {}) + itemPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem) + for i, index in enumerate(eatIndexList): + eatItem = itemPack.GetAt(index) + if not ItemCommon.CheckItemCanUse(eatItem): + GameWorld.DebugLog("物品不可用,无法兑换!itemIndex=%s" % index) + continue + eatItemID = eatItem.GetItemTypeID() + if eatItemID != eatItemIDList[i]: + GameWorld.Log('家族兑换活跃令 发的物品ID不对应index=%s eatItemID=%s,ItemIDList[i]=%s' % (index, eatItemID, eatItemIDList[i]), playerID) + continue + if eatItem.GetIsBind(): + GameWorld.DebugLog("装备已绑定,无法兑换!itemIndex=%s" % index) + continue + if eatItem.GetEndureReduceType(): + GameWorld.DebugLog("有时效耐久物品,无法兑换!itemIndex=%s" % index) + continue + if not ItemCommon.CheckItemIsEquip(eatItem): + GameWorld.DebugLog("非装备,无法兑换!itemIndex=%s" % index) + continue + itemColor = eatItem.GetItemColor() + if str(itemColor) not in familyDonateDict: + continue + isSuite = eatItem.GetSuiteID() + addPoint = familyDonateDict[str(itemColor)][1 if isSuite else 0] + givePoint += addPoint + ItemCommon.DelItem(curPlayer, eatItem, 1, True, ChConfig.ItemDel_ZhuXianDecompose, {'addPoint':addPoint}, True) + + if not givePoint: + GameWorld.DebugLog("家族兑换活跃令,没有装备可兑换!") + return + PlayerControl.GiveMoney(curPlayer, ShareDefine.TYPE_Price_FamilyActivity, givePoint) + + #通知结果 + packData = ChPyNetSendPack.tagMCFamilyActivityExchangeResult() + packData.Clear() + packData.Point = givePoint + NetPackCommon.SendFakePack(curPlayer, packData) + return -- Gitblit v1.8.0