hxp
2018-12-26 3a3ad99a1761438e31bc6860e94b43cb4f165513
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py
@@ -113,6 +113,7 @@
import ChConfig
import ShareDefine
import PlayerControl
import PyGameData
#===============================================================================
##发送事件记录给EventShell
# @param eventTypeStr: 事件类型标识
@@ -123,6 +124,7 @@
    if curPlayer:
        pid = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_PlayerFromPID)
        dataDict["pid"] = pid
        dataDict["fightPower"] = curPlayer.GetFightPower()
    dataDict["time"] = str(datetime.datetime.today()).split(".")[0]
    
    dataStr = str(dataDict)
@@ -153,7 +155,7 @@
    name = curPlayer.GetName()
    
    dataDict = {'Type':'login', 'IP':str(ip), 'AccID':accID,
                'Name':name, 'LoginTime':str(loginTime), 'LogoutTime':''}
                'Name':name, 'LoginTime':str(loginTime), 'LogoutTime':'', 'MFPFightPower':GetMFPFightPowerInfo(curPlayer)}
    
    #发送封包
    SendEventPack("LogInOut", dataDict, curPlayer)
@@ -175,11 +177,18 @@
    goldPaper = curPlayer.GetGoldPaper()
    dataDict = {'Type':'logout', 'IP':ip, 'AccID':accID, 'LV':lv, 'VipLV':vipLV,
                  'Name':name, 'LoginTime':str(loginTime), 'Gold':gold, 'GoldPaper':goldPaper,
                  'LogoutTime':str(logoutTime)}
                  'LogoutTime':str(logoutTime), 'MFPFightPower':GetMFPFightPowerInfo(curPlayer)}
    #发送封包
    SendEventPack("LogInOut", dataDict, curPlayer)
    return
def GetMFPFightPowerInfo(curPlayer):
    #记录模块战力
    dataDict = {}
    for mfpType in ShareDefine.ModuleFightPowerTypeList:
        fightPower = PlayerControl.GetMFPFightPower(curPlayer, mfpType)
        dataDict[mfpType] = fightPower
    return dataDict
    
## 新增有效登陆
#  @param accID: 账号ID
@@ -929,8 +938,8 @@
    dataDict = {"PlayerID":curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), 
                "AccID":curPlayer.GetAccID()}
    dataDict.update(addDict)
    SendEventPack("StoneChange_%s"%eventName, dataDict, curPlayer)
    Cache_FightPowerChangeInfo(curPlayer, ChConfig.PowerDownType_StoneChange, addDict)
    return
def DR_VIPChange(curPlayer, eventName, addDict={}):
@@ -1261,12 +1270,6 @@
    SendEventPack("PlayerGetReward", dataDict, curPlayer)
    return
def DR_MergePlayerEvent(playerID, eventType, eventTime, eventData, opType):
    # 跨服玩家记录事件流向
    dataDict = {'PlayerID':playerID, "EventType":eventType, "EventTime":eventTime, 'EventData':eventData}
    SendEventPack("MergePlayerEvent_%s" % opType, dataDict)
    return
## 申请加入贵宾俱乐部
#  @param curPlayer
#  @param hasRegister: 之前是否已报名
@@ -1571,9 +1574,6 @@
    return
## 玩家上线成就检查
#  @param tagObjType: 攻击方类型
#  @param tagObj: 攻击方ID
#  @param mapID: 死亡玩家所在地图ID
#  @return
def DR_CheckOldPlayerSuccess(curPlayer):
    dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), 
@@ -1581,4 +1581,41 @@
    
    #发送封包
    SendEventPack("CheckOldPlayerSuccess", dataDict, curPlayer)
    return
    return
## 玩家境界升级
#  @return
def DR_RealmLVUp(curPlayer, realmlv, realmPoint, needRealmPoint):
    dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(),
                'AccID':curPlayer.GetAccID(), 'realmlv':realmlv, 'curRealmPoint':realmPoint, 'costRealmPoint':needRealmPoint,
                'playerlv':curPlayer.GetLV(), 'power':curPlayer.GetFightPower()}
    #发送封包
    SendEventPack("RealmLVUp", dataDict, curPlayer)
    return
def Cache_FightPowerChangeInfo(curPlayer, dotype, dataDict):
    ##暂存可能导致战力降低的行为信息
    dataDict['dotime'] = str(datetime.datetime.today()).split(".")[0]
    eventName = ChConfig.FightPowerDownRecordDict.get(dotype, 'Unknown')
    if eventName in PyGameData.g_fightpowerChangeDataRecordDict:
        PyGameData.g_fightpowerChangeDataRecordDict[eventName].append(dataDict)
    else:
        PyGameData.g_fightpowerChangeDataRecordDict[eventName] = [dataDict]
    return
def DR_FightPowerChangeInfo(curPlayer, beforePower):
    ##记录战力降低的行为信息
    dataDict = {'beforePower':beforePower, 'PlayerID':curPlayer.GetPlayerID(), 'AccID':curPlayer.GetAccID()}
    for dotype, dateList in PyGameData.g_fightpowerChangeDataRecordDict.items():
        rList = []
        for dateInfo in dateList:
            dateTimeStr = dateInfo['dotime']
            if GameWorld.GetPastSeconds(dateTimeStr) >10:
                continue
            rList.append(dateInfo)
        dataDict[dotype] = rList
    PyGameData.g_fightpowerChangeDataRecordDict = {}
    #发送封包
    SendEventPack("FightPowerChangeInfo", dataDict, curPlayer)
    return