| | |
| | | import ChConfig
|
| | | import ShareDefine
|
| | | import PlayerControl
|
| | | import PyGameData
|
| | | #===============================================================================
|
| | | ##发送事件记录给EventShell
|
| | | # @param eventTypeStr: 事件类型标识
|
| | |
| | | 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)
|
| | |
| | | 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)
|
| | |
| | | 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
|
| | |
| | | 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={}):
|
| | |
| | | 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: 之前是否已报名
|
| | |
| | | return
|
| | |
|
| | | ## 玩家上线成就检查
|
| | | # @param tagObjType: 攻击方类型
|
| | | # @param tagObj: 攻击方ID
|
| | | # @param mapID: 死亡玩家所在地图ID
|
| | | # @return
|
| | | def DR_CheckOldPlayerSuccess(curPlayer):
|
| | | dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(),
|
| | |
| | |
|
| | | #发送封包
|
| | | 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
|