hxp
4 天以前 388823edfe6308cba6f76ca6dc4f20022c5cb2be
ServerPython/CoreServerGroup/GameServer/Script/DataRecordPack.py
@@ -58,7 +58,6 @@
# @change: "2015-02-03 14:30" xmnathan 添加补偿时增加流向
# @change: "2015-06-17 14:30" hxp 排行榜流向增加比较值信息
# @change: "2015-07-13 14:00" hxp 增加pid信息
# @change: "2015-10-25 17:00" hxp 增加DR_SendMergePKRewardMail
# @change: "2015-11-05 12:00" hxp 增加恢复跨服连胜流向
#------------------------------------------------------------------------------ 
"""Version = 2016-09-12 16:00"""
@@ -66,6 +65,8 @@
import GameWorld
import datetime
import ShareDefine
import PlayerControl
import PlayerBillboard
import ChConfig
#===============================================================================
##发送事件记录给EventShell
@@ -76,7 +77,9 @@
    if curPlayer:
        pid = curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_PlayerFromPID)
        dataDict["pid"] = pid
        dataDict["fightPower"] = curPlayer.GetFightPower()
        dataDict["fightPower"] = PlayerControl.GetFightPower(curPlayer)
        dataDict["PlayerLV"] = curPlayer.GetLV()
        dataDict["IP"] = curPlayer.GetIP()
        
    dataDict["time"] = str(datetime.datetime.today()).split(".")[0]
    
@@ -117,10 +120,10 @@
#  @param familyName: 家族名
#  @param familyID: 家族ID
#  @return None
def DR_CreateFamily(accID, playerID, playerNaem, familyName, familyID):
def DR_CreateFamily(accID, playerID, playerNaem, familyName, familyID, creatFamilyTimes):
    dataDict = {'AccID':accID, 'PlayerID':playerID, "PlayerName":playerNaem, 'FamilyName':familyName, 
                'FamilyID':familyID}
                'FamilyID':familyID, 'creatFamilyTimes':creatFamilyTimes}
    #发送封包
    SendEventPack("CreateFamily", dataDict)
@@ -231,13 +234,6 @@
    SendEventPack("GameMapOnLinePlayerCnt", dataDict)
    return
## 每天记录排行榜数据
#  @param billboardType: 排行榜类型
#  @return: None
def DR_BillboardDataByDay(billboardType):
    DR_BillboardData(billboardType, "BillboardDataByDay")
    return
## 记录排行榜数据
#  @param billboardType: 排行榜类型
#  @return: None
@@ -246,33 +242,46 @@
    if not billBoard:
        #找不到排行榜
        return
    dataCount = billBoard.GetCount()
    if not dataCount:
        return
    
    for index in range(0, billBoard.GetCount()):
    billboardMgr = PlayerBillboard.GetBillboardMgr()
    billboardObj = billboardMgr.GetBillboardObj(billboardType)
    idOrderDict = billboardObj.GetIDOrderDict()
    serverTime = GameWorld.GetServerTime()
    timeStr = "%02d%02d%02d%s" % (serverTime.hour, serverTime.minute, serverTime.second, str(serverTime.microsecond)[:3])
    eventTypeStr = "Billboard_%s_%s_%s" % (billboardType, eventName, timeStr)
    dataDict = {"BillboardType":billboardType, "DataCount":dataCount, "addDataDict":addDataDict}
    SendEventPack(eventTypeStr, dataDict)
    for index in range(0, dataCount):
        billBoardData = billBoard.At(index)
        if not billBoardData:
            continue
        objID = billBoardData.GetID()
        objID2 = billBoardData.GetID2()
        name1 = billBoardData.GetName1()
        name2 = billBoardData.GetName2()
        type2 = billBoardData.GetType2()
        value1 = billBoardData.GetValue1()
        value2 = billBoardData.GetValue2()
        cmpValue = billBoardData.GetCmpValue()
        cmpValue2 = billBoardData.GetCmpValue2()
        cmpValue3 = billBoardData.GetCmpValue3()
        dataDict = {"BillboardType":billboardType,
                    "Place":index,  "ObjID":objID, "ObjID2":objID2, "Name1":name1,
                    "Name2":name2,  "Type2":type2, "Value1":value1, "Value2":value2,
                    "CmpValue":cmpValue, "CmpValue2":cmpValue2, "CmpValue3":cmpValue3,
        rank = idOrderDict.get(billBoardData.GetID(), index + 1)
        dataDict = {"Rank":rank, "Index":index,
                    "ID":billBoardData.GetID(),
                    "ID2":billBoardData.GetID2(),
                    "Name1":billBoardData.GetName1(),
                    "Name2":billBoardData.GetName2(),
                    "Type2":billBoardData.GetType2(),
                    "Value1":billBoardData.GetValue1(),
                    "Value2":billBoardData.GetValue2(),
                    "Value3":billBoardData.GetValue3(),
                    "Value4":billBoardData.GetValue4(),
                    "Value5":billBoardData.GetValue5(),
                    "Value6":billBoardData.GetValue6(),
                    "Value7":billBoardData.GetValue7(),
                    "Value8":billBoardData.GetValue8(),
                    "CmpValue":billBoardData.GetCmpValue(),
                    "CmpValue2":billBoardData.GetCmpValue2(),
                    "CmpValue3":billBoardData.GetCmpValue3(),
                    "UserData":billBoardData.GetUserData(),
                    }
        dataDict.update(addDataDict)
        #发送封包
        SendEventPack(eventName, dataDict)
        SendEventPack(eventTypeStr, dataDict)
    return
## GM执行命令操作
@@ -318,13 +327,13 @@
#  @param tagFamilyLV: 被踢者职位
#  @return:  
def DR_PlayerLeaveFamily(curPlayer, familyID, familyName, familyCnt, familyLV, 
                         tagPlayerID, tagPlayerName, tagFamilyLV):
                         tagPlayerID, tagPlayerName, tagFamilyLV, leaveFamilyTime=0):
    dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'AccID':curPlayer.GetAccID(), 
                "PlayerName":curPlayer.GetName(), 
                "FamilyID":familyID, "FamilyName":familyName, "Count":familyCnt, "FamilyJob":familyLV, 
                "tagPlayerID":tagPlayerID, "tagPlayerName":tagPlayerName, "tagFamilyJob":tagFamilyLV}
    if leaveFamilyTime:
        dataDict['leaveFamilyTime'] = leaveFamilyTime
    #发送封包
    SendEventPack("PlayerLeaveFamily", dataDict, curPlayer)
    return
@@ -383,20 +392,6 @@
    SendEventPack("ResetGameDataRecord", dataDict)
    return
## 复制的排行榜记录
#  @param Place: 名次
#  @param playerID: 玩家ID
#  @param playerName: 玩家名字
#  @param playerLV: 玩家等级
#  @param playerJob: 玩家职业
#  @param totalPoint: 积分
#  @return: None
def DR_BillboardCopy(billboardType):
    DR_BillboardData(billboardType, "BillboardCopy")
    return
## 弹劾玩家家族职位变更
#  @param familyID: 家族ID
#  @param familyName: 家族名字 
@@ -452,12 +447,6 @@
    
    #发送封包
    SendEventPack("UpdatePlayerName", 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
#-------------------------------------
@@ -559,6 +548,15 @@
    SendEventPack("CompensationPersonal", dataDict)
    return 
## 删除个人补偿流向
#  @param curPlayerID, GUID, ItemDictList
#  @return: None
def DR_DelPersonalCompensation(playerID, GUID, eventName):
    dataDict = {'PlayerID':playerID, 'GUID':GUID, 'eventName':eventName}
    #发送封包
    SendEventPack("CompensationPersonalDel", dataDict)
    return
## 添加全服补偿流向
#  @param GUID, ItemDictList
#  @return: None 
@@ -566,63 +564,5 @@
    dataDict = {'GUID':GUID, "eventName":eventName}
    dataDict.update(addDict)
    SendEventPack("CompensationEntire", dataDict)
    return
## 发送充值排行榜特惠活动奖励邮件记录流向
#  @param curPlayerID: 玩家ID
#  @param GUID:
#  @param actionID: 活动ID
#  @param actionValue: 活动编号
#  @param order: 奖励排名
#  @param rewardItemList: 奖励物品列表
#  @return None
def DR_SendRechareRankTeHuiRewardMail(curPlayerID, GUID, actionID, actionValue, order, rewardItemList):
    dataDict = {'PlayerID':curPlayerID, 'GUID':GUID, 'ActionID':actionID, 'ActionValue':actionValue,
                'Order':order, 'ItemList':rewardItemList}
    #发送封包
    SendEventPack("SendRechareRankTeHuiRewardMail", dataDict)
    return
## 发送消费排行榜特惠活动奖励邮件记录流向
#  @param curPlayerID: 玩家ID
#  @param GUID:
#  @param actionID: 活动ID
#  @param actionValue: 活动编号
#  @param order: 奖励排名
#  @param rewardItemList: 奖励物品列表
#  @return None
def DR_SendCostRankTeHuiRewardMail(curPlayerID, GUID, actionID, actionValue, order, rewardItemList):
    dataDict = {'PlayerID':curPlayerID, 'GUID':GUID, 'ActionID':actionID, 'ActionValue':actionValue,
                'Order':order, 'ItemList':rewardItemList}
    #发送封包
    SendEventPack("SendCostRankTeHuiRewardMail", dataDict)
    return
## 发送跨服PK奖励邮件记录流向
#  @param playerIdList 玩家ID列表
#  @param GUID 邮件标识
#  @param actionKey 活动Key
#  @param order 奖励排名
#  @param rewardItemList 奖励物品列表
#  @param addDataDict 附加属性
#  @return None
def DR_SendMergePKRewardMail(playerIdList, guid, actionKey, rewardItemList, addDataDict={}):
    dataDict = {'PlayerIDList':playerIdList, 'GUID':guid, 'ItemList':rewardItemList}
    dataDict.update(addDataDict)
    #发送封包
    SendEventPack("SendMergePKRewardMail_%s" % actionKey, dataDict)
    return
## 恢复跨服PK连胜次数
def DR_RecoverMergePKWin(accID, cWin, maxCWin):
    dataDict = {'AccID':accID, 'cWin':cWin, 'maxCWin':maxCWin}
    #发送封包
    SendEventPack("RecoverMergePKWin", dataDict)
    return