From 5c4ea9b4fd7f98d82e64878a5ce29d5747506f8c Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期四, 24 一月 2019 14:08:09 +0800
Subject: [PATCH] 5924 【后端】【1.5.100】诛仙Boss功能(2秒不打,停止掉血)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py | 78 ++++++++++++++++++++++++++++++++++----
1 files changed, 69 insertions(+), 9 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py
index 503836b..933c0ee 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py
+++ b/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: 之前是否已报名
@@ -1568,4 +1571,61 @@
'AccID':curPlayer.GetAccID(), 'mwID':mwID, 'mwLV':mwLV}
#发送封包
SendEventPack("MagicWeaponActive", dataDict, curPlayer)
+ return
+
+## 玩家上线成就检查
+# @return
+def DR_CheckOldPlayerSuccess(curPlayer):
+ dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(),
+ 'AccID':curPlayer.GetAccID()}
+
+ #发送封包
+ SendEventPack("CheckOldPlayerSuccess", dataDict, curPlayer)
+ 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
+
+## 玩家周狂欢(七天巡礼)
+# @return
+def DR_WeekPartyPoint(curPlayer, dayIndex, point):
+ dataDict = {'PlayerID':curPlayer.GetPlayerID(),
+ 'AccID':curPlayer.GetAccID(), 'dayIndex':dayIndex, 'point':point}
+
+ #发送封包
+ SendEventPack("WeekPartyPoint", dataDict, curPlayer)
return
\ No newline at end of file
--
Gitblit v1.8.0