From 01e46bb91dbc5023379dd2e10f2cb3532ca57ad0 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期一, 02 九月 2024 10:35:33 +0800 Subject: [PATCH] 10256 【越南】【砍树】排行榜名次加入积分限制(修复特殊排名规则跨服榜单报错bug;) --- ServerPython/CoreServerGroup/GameServer/Script/DataRecordPack.py | 162 +++++++++++++++++------------------------------------- 1 files changed, 51 insertions(+), 111 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/DataRecordPack.py b/ServerPython/CoreServerGroup/GameServer/Script/DataRecordPack.py index d01edf5..84a474e 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/DataRecordPack.py +++ b/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执行命令操作 @@ -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 -- Gitblit v1.8.0