xdh
2019-06-10 383717a8ea488971e4f665da9499bb030ba11a69
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyWar.py
@@ -28,6 +28,7 @@
import ChPyNetSendPack
import GameWorldProcess
import PlayerDienstgrad
import PlayerWeekParty
import IpyGameDataPY
import PlayerFamily
import NetPackCommon
@@ -521,7 +522,7 @@
    if not FBCommon.GetHadDelTicket(curPlayer):
        FBCommon.SetHadDelTicket(curPlayer)
        FBCommon.AddEnterFBCount(curPlayer, ChConfig.Def_FBMapID_FamilyWar)
        PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_FamilyWar, 1)
    isFinalMatch = gameFB.GetGameFBDictByKey(GameFBDict_IsFinalMatch)
    roundNum = gameFB.GetGameFBDictByKey(GameFBDict_RoundNum)
    groupID = gameFB.GetGameFBDictByKey(GameFBDict_GroupID)
@@ -990,17 +991,24 @@
        
    # 最高级别联赛第一名额外奖励
    winnerFirstAwardEx = [] # 获胜方第一名额外奖励
    firstAwardEx = []
    loserFirstAwardEx = [] # 失败方第一名额外奖励
    firstAwardEx, firstAwardEx2= [], []
    if groupID == FamilyWar_MaxGroupID:
        worldLv = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_WorldAverageLv)
        if isFinalMatch:
            firstAwardExDict = IpyGameDataPY.GetFuncEvalCfg("FamilyMatchSRankOneReward", 1)
            firstAwardExDict2 = IpyGameDataPY.GetFuncEvalCfg("FamilyMatchSRankOneReward", 2)
        else:
            firstAwardExDict = IpyGameDataPY.GetFuncEvalCfg("FamilyMatchRankOneReward", 1)
            firstAwardExDict2 = IpyGameDataPY.GetFuncEvalCfg("FamilyMatchRankOneReward", 2)
        firstAwardEx = GameWorld.GetOrderValueByDict(firstAwardExDict, worldLv)
        firstAwardEx = [] if not firstAwardEx else firstAwardEx
        GameWorld.Log("最高级别联赛第一名额外奖励: firstAwardEx=%s,firstAwardExDict=%s,worldLv=%s"
        GameWorld.Log("最高级别联赛胜者第一名额外奖励: firstAwardEx=%s,firstAwardExDict=%s,worldLv=%s"
                      % (firstAwardEx, firstAwardExDict, worldLv), lineID)
        firstAwardEx2 = GameWorld.GetOrderValueByDict(firstAwardExDict2, worldLv)
        firstAwardEx2 = [] if not firstAwardEx2 else firstAwardEx2
        GameWorld.Log("最高级别联赛败者第一名额外奖励: firstAwardEx2=%s,firstAwardExDict2=%s,worldLv=%s"
                      % (firstAwardEx2, firstAwardExDict2, worldLv), lineID)
        
    GameWorld.Log("名次奖励配置: rankAwardDict=%s,awardPer=%s,rankAwardDictCopy=%s,firstAwardEx=%s,joinAwardItemList=%s" 
                  % (rankAwardDict, awardPer, rankAwardDictCopy, firstAwardEx, joinAwardItemList), lineID)
@@ -1021,6 +1029,10 @@
            awardItemList = rankItemList + winnerFirstAwardEx
            # <color=#44e863FF>%s0</color>在仙盟联赛中表现优异,获得额外<color=#44e863FF><Word info=item id=%s1/></color>奖励
            PlayerControl.WorldNotify(0, "FamilyMatchRankNoOne", [warPlayer.name, winnerFirstAwardEx[0][0]])
        elif firstAwardEx2 and not loserFirstAwardEx and warPlayer.familyID != winnerFamilyID:
            loserFirstAwardEx = firstAwardEx2
            awardItemList = rankItemList + loserFirstAwardEx
            PlayerControl.WorldNotify(0, "FamilyMatchRankNoOneLose", [warPlayer.name, loserFirstAwardEx[0][0]])
        else:
            awardItemList = rankItemList
        playerID = warPlayer.playerID
@@ -1259,7 +1271,7 @@
    skillTypeID, buffOwner = 0, None
    lostValue = int(GameObj.GetMaxHP(curPlayer) * lostHPPer / 100.0) * lostTime
    #GameWorld.DebugLog("OnCollecting lostHPPer=%s,lostTime=%s,lostValue=%s" % (lostHPPer, lostTime, lostValue), playerID)
    SkillCommon.SkillLostHP(curPlayer, skillTypeID, buffOwner, lostValue, tick)
    SkillCommon.SkillLostHP(curPlayer, skillTypeID, buffOwner, lostValue, tick, skillAffect=False)
    return
@@ -1268,7 +1280,7 @@
# @param tick 时间戳
# @return 无意义
# @remarks
def OnCollectOK(curPlayer, tick):
def OnCollectOK(curPlayer, npcID, tick):
    tagObj = curPlayer.GetActionObj()
    if not tagObj:
        return
@@ -1475,7 +1487,7 @@
    Sync_ChampionFamilyDailyRewardState(curPlayer)
    
    for itemID, itemCnt, isBind in itemList:
        ItemControler.GivePlayerItem(curPlayer, itemID, itemCnt, isBind, [IPY_GameWorld.rptItem])
        ItemControler.GivePlayerItem(curPlayer, itemID, itemCnt, 0, [IPY_GameWorld.rptItem])
        
    GameWorld.DebugLog("领取王者仙盟每日俸禄: itemList=%s" % itemList, playerID)
    return