xdh
2019-06-10 a9e5ae2ed13bffe82038291776ffa68f65becce6
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
    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