xdh
2019-04-04 aa385f92cd9b9809fa3417a1c757ee60d36d35bf
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerXMZZ.py
@@ -34,7 +34,6 @@
import PlayerUniversalGameRec
import random
import json
import math
RecType = ShareDefine.Def_UniversalGameRecType_XMZZStageRecord
@@ -265,14 +264,13 @@
        curCache = PlayerViewCache.ViewCacheMgr.FindCache(pkPlayerID)
        if not curCache:
            return
        PropData, ItemData = curCache.GetPropData(), curCache.GetItemData()
        
        packData = ChPyNetSendPack.tagGCXMZZFightInfo()
        packData.Clear()
        packData.PlayerID = pkPlayerID
        packData.PropData = PropData
        packData.PropData = curCache.GetPropData()
        packData.PropDataSize = len(packData.PropData)
        packData.ItemData = ItemData
        packData.ItemData = PlayerViewCache.GetItemData(curCache)
        packData.ItemDataSize = len(packData.ItemData)
        NetPackCommon.SendFakePack(curPlayer, packData)
        return
@@ -473,8 +471,9 @@
        #第一积分奖励
        if topScorePlayerID:
            topScoreAward = IpyGameDataPY.GetFuncEvalCfg('XMZZAward', 2)
            PlayerCompensation.SendMailByKey('XMZZTopScore', [topScorePlayerID], topScoreAward, [topScore])
            SavePKRecord('XMZZ_FirstPlace', [self.XMZZTopPlayerName, self.XMZZTopScore], False)
            if topScoreAward:
                PlayerCompensation.SendMailByKey('XMZZTopScore', [topScorePlayerID], topScoreAward, [topScore])
                SavePKRecord('XMZZ_FirstPlace', [self.XMZZTopPlayerName, self.XMZZTopScore], False)
        
        #押注奖励
        self.BetOverLogic()
@@ -482,7 +481,7 @@
        #阵营奖励
        winAward = IpyGameDataPY.GetFuncEvalCfg('XMZZAward', 3)
        LoseAward = IpyGameDataPY.GetFuncEvalCfg('XMZZAward', 4)
        dogfallAward = IpyGameDataPY.GetFuncEvalCfg('XMZZAward', 5)
        dogfallAward = IpyGameDataPY.GetFuncCfg('XMZZAward', 5)
        result = self.GetXMZZCurResult()
        if result == Faction_1:
            SavePKRecord('XMZZ_Victory', [result], True)          
@@ -500,7 +499,6 @@
                SavePKRecord('XMZZ_Draw', [], True)
                
                PlayerCompensation.SendMailByKey('XMZZDogfall', Faction_2_IDList + Faction_1_IDList, [], goldPaper=dogfallAward)
                #PlayerControl.MergeWorldNotify(0, '', [])
        
        PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_XMZZIsOver, 1)
        self.NotifyXMZZInfo()
@@ -627,11 +625,15 @@
    isRobotNPC = True
    pkDataDict = {}
    conWinCnt = XMZZPlayerDict[myPlayerID].ConWinCnt #参数
    XMZZSpecialNPCRate = eval(IpyGameDataPY.GetFuncCfg('XMZZSpecialNPCRate'))
    XMZZSpecialNPCRate = eval(IpyGameDataPY.GetFuncCompileCfg('XMZZSpecialNPCRate'))
    XMZZSuperNPCRate = eval(IpyGameDataPY.GetFuncCompileCfg('XMZZSpecialNPCRate', 2))
    XMZZNPCByLVPowerList = IpyGameDataPY.GetFuncEvalCfg('XMZZPKPowerRange', 2)
    isByLVPower = conWinCnt + 1 in XMZZNPCByLVPowerList #是否按等级表战力来随机范围
    if GameWorld.CanHappen(XMZZSuperNPCRate):
        GameWorld.DebugLog('    筛选对手  超级机器人 XMZZSuperNPCRate=%s' % (XMZZSuperNPCRate))
        pkPlayerID = 2
    
    if not isByLVPower and GameWorld.CanHappen(XMZZSpecialNPCRate):
    elif not isByLVPower and GameWorld.CanHappen(XMZZSpecialNPCRate):
        GameWorld.DebugLog('    筛选对手  高级机器人 XMZZSpecialNPCRate=%s' % (XMZZSpecialNPCRate))
        #机器人ID规则: ID从0~n, n不大于机器人ID列表长度, ID越大机器人越高级,根据策划需求自增
        #高级机器人
@@ -677,7 +679,7 @@
                power = propDataDict.get('FightPower', 0)
                g_playerPowerDict[playerID] = power
            
            pkDataDict[playerID] = [curCache.GetPropData(), curCache.GetItemData()]
            pkDataDict[playerID] = [curCache.GetPropData(), itemData]
            #GameWorld.DebugLog('    筛选对手 playerID=%s,power=%s' % (playerID, power))
            if minPower1 < power < myPower:
                underList1.append(playerID)
@@ -689,7 +691,7 @@
                aboveList2.append(playerID)
        GameWorld.DebugLog('    筛选对手 myPower=%s,underList1=%s, aboveList1=%s,underList2=%s, aboveList2=%s' % (myPower, underList1, aboveList1, underList2, aboveList2), myPlayerID)
        if conWinCnt % 5 == 0: #每5个匹配战力低的对手
        if conWinCnt % 5 == 0 or conWinCnt <= IpyGameDataPY.GetFuncCfg('XMZZPKPowerRange', 3): #每5个匹配战力低的对手
            if underList1:
                pkPlayerID = underList1[0]
            elif underList2: