From fd85134c0d4ac18f7286d1d92eb84fa64c8defc5 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 30 五月 2025 10:23:20 +0800 Subject: [PATCH] 16 卡牌服务端(首登修改) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini | 17 -- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/EventReport.py | 72 ---------- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py | 191 --------------------------- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py | 14 -- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py | 88 +----------- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py | 4 6 files changed, 10 insertions(+), 376 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini index 898ea20..1b74e06 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini @@ -1101,23 +1101,6 @@ PacketSubCMD_1=0x11 PacketCallFunc_1=OnQueryOpenServerCampaignAward - -;事件汇报 -[EventReport] -ScriptName = EventReport.py -Writer = hxp -Releaser = hxp -RegType = 0 -RegisterPackCount = 2 - -PacketCMD_1=0xA1 -PacketSubCMD_1=0x01 -PacketCallFunc_1=ReceiveClientPCInfo - -PacketCMD_2=0xA2 -PacketSubCMD_2=0x19 -PacketCallFunc_2=OnSubmitBugSuggest - ;装备分解 [EquipDecompose] ScriptName = Player\PlayerEquipDecompose.py diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py index 3301fa1..89ba876 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py @@ -3403,7 +3403,6 @@ Def_Player_Dict_PlayerFromPID = "PlayerFromPID" # pid Def_Player_Dict_Account_Type = "account_type" # account_type Def_Player_Dict_FirstLogin = "FirstLogin" # 首登标记 0-未首登; 1-首登过 -Def_Player_Dict_RealLoginOK = "RealLoginOK" # 真正登录成功标记 Def_GuideStateKeyCount = 8 # 引导状态key最大个数 Def_Player_Dict_GuideState = "GuideState_%s" # 引导状态记录,参数为key个数编号 Def_Player_Dict_VersionFix = "VersionFix_%s" # 版本修正标记,参数为key个数编号, 支持n个版本修正标记,每个key支持31个 @@ -3483,8 +3482,6 @@ Def_Player_Dict_GameFuncAwardState = "GameFuncAwardState_%s" # 服务端功能开启领奖状态; 参数, key编号 Def_Player_Dict_MissionFinish = "MissionFinish_%s" # 任务是否完成; 参数, 任务ID, 只会记录部分需要记录的任务ID Def_Player_Dict_FamilyArrestAwardState = "ArrestAwardState_103" # 家族悬赏奖励领取情况 -Def_Player_Dict_OtherDayLogin = "OtherDayLogin_105" # 非同一天二次登陆 -Def_Player_Dict_LoginValid = "LoginValid_106" # 新增有效登陆标记 Def_Player_Dict_RequestAddFamilyCnt = "RequestAddFamilyCnt_107" # 已申请加入家族的个数 Def_Player_Dict_RequestAddFamilyID = "AddFamilyID%s_108" # 申请加入的家族ID, %s为第几个 Def_Player_Dict_LastFamilyID = "LastFamilyID" # 记录玩家上一个家族ID @@ -3493,7 +3490,6 @@ Def_Player_Dict_ActivityValueDay = "ActivityValueDay_117" #每日活跃值 Def_Player_Dict_GiveActivityAward = "GiveActivityAward_118" #每日活跃值奖励领取 Def_Player_CrazyBilling_VIP_Coin = "CrazyBillingVIPCoin_119" # 扶持账号真实充值 -Def_Player_Dict_LoginType = "LoginType_122" # 玩家登入方式 Def_Player_Dict_CommonNewGuyCardState = "CommonNGCard_%s" # 通用新手卡使用记录, 参数为key编号, 二进制位存储 Def_Player_Dict_IDNewGuyCardState = "IDNGCard_%s" # 绑定账号新手卡使用记录, 参数为key编号, 二进制位存储 Def_Player_Dict_UseNewGuyCardState = "NGCardState_%s" # 是否使用过某类型的新手卡,参数为key编号, 二进制位存储 diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py index b3da437..5d07bd5 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py @@ -5584,126 +5584,6 @@ #------------------------------------------------------ -# A1 01 玩家电脑信息 #tagCMPCInfo - -class tagCMPCInfo(Structure): - Head = tagHead() - PCOSLen = 0 #(BYTE PCOSLen) - PCOS = "" #(String PCOS)// 操作系统 - ResolutionLen = 0 #(BYTE ResolutionLen) - Resolution = "" #(String Resolution)// 分辨率 - BrowserLen = 0 #(BYTE BrowserLen) - Browser = "" #(String Browser)// 浏览器 - ScribeTypeLen = 0 #(BYTE ScribeTypeLen) - ScribeType = "" #(String ScribeType)// 记录类型 - ScribeDataLen = 0 #(BYTE ScribeDataLen) - ScribeData = "" #(String ScribeData)// 记录扩展信息 - data = None - - def __init__(self): - self.Clear() - self.Head.Cmd = 0xA1 - self.Head.SubCmd = 0x01 - return - - def ReadData(self, _lpData, _pos=0, _Len=0): - self.Clear() - _pos = self.Head.ReadData(_lpData, _pos) - self.PCOSLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) - self.PCOS,_pos = CommFunc.ReadString(_lpData, _pos,self.PCOSLen) - self.ResolutionLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) - self.Resolution,_pos = CommFunc.ReadString(_lpData, _pos,self.ResolutionLen) - self.BrowserLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) - self.Browser,_pos = CommFunc.ReadString(_lpData, _pos,self.BrowserLen) - self.ScribeTypeLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) - self.ScribeType,_pos = CommFunc.ReadString(_lpData, _pos,self.ScribeTypeLen) - self.ScribeDataLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) - self.ScribeData,_pos = CommFunc.ReadString(_lpData, _pos,self.ScribeDataLen) - return _pos - - def Clear(self): - self.Head = tagHead() - self.Head.Clear() - self.Head.Cmd = 0xA1 - self.Head.SubCmd = 0x01 - self.PCOSLen = 0 - self.PCOS = "" - self.ResolutionLen = 0 - self.Resolution = "" - self.BrowserLen = 0 - self.Browser = "" - self.ScribeTypeLen = 0 - self.ScribeType = "" - self.ScribeDataLen = 0 - self.ScribeData = "" - return - - def GetLength(self): - length = 0 - length += self.Head.GetLength() - length += 1 - length += len(self.PCOS) - length += 1 - length += len(self.Resolution) - length += 1 - length += len(self.Browser) - length += 1 - length += len(self.ScribeType) - length += 1 - length += len(self.ScribeData) - - return length - - def GetBuffer(self): - data = '' - data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) - data = CommFunc.WriteBYTE(data, self.PCOSLen) - data = CommFunc.WriteString(data, self.PCOSLen, self.PCOS) - data = CommFunc.WriteBYTE(data, self.ResolutionLen) - data = CommFunc.WriteString(data, self.ResolutionLen, self.Resolution) - data = CommFunc.WriteBYTE(data, self.BrowserLen) - data = CommFunc.WriteString(data, self.BrowserLen, self.Browser) - data = CommFunc.WriteBYTE(data, self.ScribeTypeLen) - data = CommFunc.WriteString(data, self.ScribeTypeLen, self.ScribeType) - data = CommFunc.WriteBYTE(data, self.ScribeDataLen) - data = CommFunc.WriteString(data, self.ScribeDataLen, self.ScribeData) - return data - - def OutputString(self): - DumpString = ''' - Head:%s, - PCOSLen:%d, - PCOS:%s, - ResolutionLen:%d, - Resolution:%s, - BrowserLen:%d, - Browser:%s, - ScribeTypeLen:%d, - ScribeType:%s, - ScribeDataLen:%d, - ScribeData:%s - '''\ - %( - self.Head.OutputString(), - self.PCOSLen, - self.PCOS, - self.ResolutionLen, - self.Resolution, - self.BrowserLen, - self.Browser, - self.ScribeTypeLen, - self.ScribeType, - self.ScribeDataLen, - self.ScribeData - ) - return DumpString - - -m_NAtagCMPCInfo=tagCMPCInfo() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMPCInfo.Head.Cmd,m_NAtagCMPCInfo.Head.SubCmd))] = m_NAtagCMPCInfo - - -#------------------------------------------------------ # A1 23 查询充值次数 #tagCMQueryCoinToGoldCount class tagCMQueryCoinToGoldCount(Structure): @@ -6155,77 +6035,6 @@ m_NAtagCMViewBillboard=tagCMViewBillboard() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMViewBillboard.Cmd,m_NAtagCMViewBillboard.SubCmd))] = m_NAtagCMViewBillboard - - -#------------------------------------------------------ -# A2 19 游戏建议收集 #tagCMAdviceSubmit - -class tagCMAdviceSubmit(Structure): - Head = tagHead() - Type = 0 #(BYTE Type)//提交类型 - Len = 0 #(WORD Len) - Content = "" #(String Content)//size = Len - data = None - - def __init__(self): - self.Clear() - self.Head.Cmd = 0xA2 - self.Head.SubCmd = 0x19 - return - - def ReadData(self, _lpData, _pos=0, _Len=0): - self.Clear() - _pos = self.Head.ReadData(_lpData, _pos) - self.Type,_pos = CommFunc.ReadBYTE(_lpData, _pos) - self.Len,_pos = CommFunc.ReadWORD(_lpData, _pos) - self.Content,_pos = CommFunc.ReadString(_lpData, _pos,self.Len) - return _pos - - def Clear(self): - self.Head = tagHead() - self.Head.Clear() - self.Head.Cmd = 0xA2 - self.Head.SubCmd = 0x19 - self.Type = 0 - self.Len = 0 - self.Content = "" - return - - def GetLength(self): - length = 0 - length += self.Head.GetLength() - length += 1 - length += 2 - length += len(self.Content) - - return length - - def GetBuffer(self): - data = '' - data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) - data = CommFunc.WriteBYTE(data, self.Type) - data = CommFunc.WriteWORD(data, self.Len) - data = CommFunc.WriteString(data, self.Len, self.Content) - return data - - def OutputString(self): - DumpString = ''' - Head:%s, - Type:%d, - Len:%d, - Content:%s - '''\ - %( - self.Head.OutputString(), - self.Type, - self.Len, - self.Content - ) - return DumpString - - -m_NAtagCMAdviceSubmit=tagCMAdviceSubmit() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMAdviceSubmit.Head.Cmd,m_NAtagCMAdviceSubmit.Head.SubCmd))] = m_NAtagCMAdviceSubmit #------------------------------------------------------ diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py index 3ff1e5c..014408a 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py @@ -134,20 +134,6 @@ GameWorld.GetGameWorld().EventShell_SendEventEx(eventTypeStr, len(eventTypeStr), dataStr, len(dataStr)) return - -## 二次非同天登陆 -# @param accID: 账号ID -# @param ip: ip -# @return: None -def DR_OtherDayLogin(accID, ip, curPlayer): - - dataDict = {'AccID':accID, 'IP':ip} - - #发送封包 - SendEventPack("OtherDayLogin", dataDict, curPlayer) - return - - ## 登陆 # @param curPlayer 玩家实例 # @return: None diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/EventReport.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/EventReport.py index 3396ab3..fa374e0 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/EventReport.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/EventReport.py @@ -895,78 +895,6 @@ #=========================================================================== return -#// A1 01 玩家电脑信息 #tagCMPCInfo -# -#struct tagCMPCInfo -#{ -# tagHead Head; -# BYTE PCOSLen; -# char PCOS[PCOSLen]; // 操作系统 -# BYTE ResolutionLen; -# char Resolution[ResolutionLen]; // 分辨率 -# BYTE BrowserLen; -# char Browser[BrowserLen]; // 浏览器 -# BYTE ScribeTypeLen; -# char ScribeType[ScribeTypeLen]; // 记录类型 -# BYTE ScribeDataLen; -# char ScribeData[ScribeDataLen]; // 记录扩展信息 -#}; -def ReceiveClientPCInfo(index, clientData, tick): - #=========================================================================== - # curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) - # PCOS = clientData.PCOS - # Resolution = clientData.Resolution - # Browser = clientData.Browser - # ScribeType = clientData.ScribeType - # #ScribeData = clientData.ScribeData - # - # GameWorld.DebugLog("ReceiveClientPCInfo %s" % ScribeType) - # GameWorld.DebugLog(" PCOS=%s" % PCOS) - # GameWorld.DebugLog(" Resolution=%s" % Resolution) - # GameWorld.DebugLog(" Browser=%s" % Browser) - # - # # 转化为对方所需格式 - # if PCOS and "Windows" in PCOS: - # PCOS = " ".join(PCOS.split(" ")[:2]) - # - # # 转化为对方所需格式 - # if Resolution: - # Resolution = "%s*%s" % eval(Resolution) - # - # if ScribeType == ShareDefine.Def_UserAction_Login: - # firstLogin = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FirstLogin) - # if not firstLogin: - # PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FirstLogin, 1) - # WriteEvent_entry_firstlogin(curPlayer, Browser, Resolution, PCOS) - # if curPlayer.GetLV() == 1: - # WriteEvent_level_up(curPlayer) # 首登发送一次1级数据 - # GameWorld.DebugLog(" entry_firstlogin") - # - # WriteEvent_login(curPlayer, Browser, Resolution, PCOS) - #=========================================================================== - - return - -#// A2 19 游戏建议收集 #tagCMAdviceSubmit -# -#struct tagCMAdviceSubmit -#{ -# tagHead Head; -# BYTE Type; //提交类型 -# WORD Len; -# char Content[Len]; //size = Len -#}; -def OnSubmitBugSuggest(index, clientData, tick): - #=========================================================================== - # curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) - # subType = clientData.Type - # content = clientData.Content - # eventName = Def_Custom_Events_Bug if subType == 0 else Def_Custom_Events_Suggest - # WriteEvent_custom_events(curPlayer, eventName, content) - # DataRecordPack.DR_BugSuggest(curPlayer, eventName, content) - #=========================================================================== - return - def GetScribeEvent_chr_level(curPlayer): transCnt, showLV = GameWorld.GetClientLV(curPlayer) return transCnt * 1000 + showLV diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py index 1678a8b..61daa51 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py @@ -218,37 +218,6 @@ PlayerEventCounter.UpdatePlayerLoginTime(curPlayer) return -##非同一天二次登陆 -# @param curPlayer 玩家实例 -# @return None -def NoteOtherDayLogin(curPlayer): - #记录过或者未登陆过 不记录 - if curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_OtherDayLogin) != 1: - return - - logoffTimeStr = curPlayer.GetLogoffTime().strip() - loginTimeStr = curPlayer.GetLoginTime().strip() - #curTimeStr = GameWorld.GetCurrentDataTimeStr() - - #防范外部逻辑错误,或异常情况 - if logoffTimeStr in ['', '0'] or loginTimeStr in ['', '0']: - return - - logoffTimeDate = GameWorld.GetDateTimeByStr(logoffTimeStr.split()[0], ChConfig.TYPE_Time_Format_Day) - - #同一天不记录 - if logoffTimeDate == GameWorld.GetDateTimeByStr(loginTimeStr.split()[0], ChConfig.TYPE_Time_Format_Day): - return - - #GameWorld.Log("OtherDayLogin offtime = %s" % logoffTimeDate) - - DataRecordPack.DR_OtherDayLogin(curPlayer.GetAccID(), curPlayer.GetIP(), curPlayer) - - #标记为已记录 - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_OtherDayLogin, 2) - - return - #// A1 20 货币兑换 #tagCMMoneyExchange # #struct tagCMMoneyExchange @@ -480,7 +449,6 @@ def DoPlayerLogin(curPlayer, tick): #这里只做初始化逻辑 curPlayer.SetDict(ChConfig.Def_PlayerKey_LoadMapIsLogin, 1) - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_RealLoginOK, 0) # 每次登录重置 #通知时间 Sync_PyServerDataTimeToClient(curPlayer) @@ -577,14 +545,13 @@ PlayerPrestigeSys.OnLogin(curPlayer) #DataRecordPack.DR_PlayerLogin(curPlayer) EventReport.WriteEvent_login(curPlayer) - + + __FirstLoginOnEnter(curPlayer) + # 合服首登处理 __DoMixServerFirstLogin(curPlayer) PlayerBillboard.BillboardOnLogin(curPlayer) - #非同一天二次登陆, 应该放在该函数中的SetLoginTime之后 - NoteOtherDayLogin(curPlayer) - #上线时通知脱机挂时被击杀的离线时间 __Sync_PlayerOffline(curPlayer, tick) @@ -612,8 +579,6 @@ #---玩家上线, 宠物逻辑处理--- PetControl.DoLogic_PetInfo_OnLogin(curPlayer, tick) PlayerPet.OnPlayerPetLogin(curPlayer) - - __FirstLoginOnEnter(curPlayer) #清空玩家万能背包中的任务物品 ItemControler.ClearPackEventItem(curPlayer, IPY_GameWorld.rptAnyWhere) @@ -909,11 +874,6 @@ 该函数为地图最终登录成功才会执行到,以后一些功能类的登录处理建议均写到这里 旧的功能先不动( __DoPlayerLoginServer 函数中的功能),如果有登录相关的bug再考虑是否移动到此函数 ''' - - if curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_RealLoginOK): - #切地图的不处理,切地图的也会触发该函数 - return - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_RealLoginOK, 1) GameWorld.Log("MapServer->DoPlayerRealLoginOK", curPlayer.GetPlayerID()) if GameWorld.IsCrossServer(): @@ -956,9 +916,11 @@ return def __FirstLoginOnEnter(curPlayer): - ## 首登处理,先return - return + ## 首登处理 + playerID = curPlayer.GetID() + if curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FirstLogin): + return GameWorld.Log('玩家是第一次进入游戏', playerID) # 特殊说明: 如果地图没有完全初始化好,客户端断开或者异常等情况会触发RunGateGameServerMapServerKickOutPlayerNoSave @@ -969,8 +931,6 @@ #---补满血满魔--- GameObj.SetHP(curPlayer, GameObj.GetMaxHP(curPlayer)) curPlayer.SetMP(curPlayer.GetMaxMP()) - - #---给予玩家新手物品--- #默认触发一次功能开启 if curPlayer.GetLV() == 1: @@ -984,9 +944,6 @@ #玩家默认恶名值 curPlayer.SetInfamyValue(ChConfig.Def_FirstLogin_InfamyValue) - #标记已登陆过,用于非同一天二次登陆 - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_OtherDayLogin, 1) - #curPlayer.SetDict("ThunderLogin", 1) #记录第一次登陆 DataRecordPack.DR_FirstLogin(curPlayer.GetAccID(), curPlayer.GetIP(), curPlayer) @@ -995,12 +952,12 @@ mailList = IpyGameDataPY.GetFuncEvalCfg("MailLVAward", 2) for mailTypeKey, mailItemList in mailList: PlayerControl.SendMailByKey(mailTypeKey, [curPlayer.GetPlayerID()], mailItemList) + + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FirstLogin, 1) return -## 合服首登处理 -# @param curPlayer -# @return None def __DoMixServerFirstLogin(curPlayer): + ## 合服首登处理 isMixServer = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_IsMixServer) if not isMixServer: return @@ -2392,28 +2349,6 @@ def PlayerDisconnect(index, tick): GameWorld.GetPsycoFunc(__Func_PlayerDisconnect)(index, tick) return -#--------------------------------------------------------------------- - -##记录新增有效登陆玩家,登陆10分钟以上玩家才算有效 -# @param curPlayer 玩家实例 -# @return None -def NoteLoginValid(curPlayer): - if curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_LoginValid) == 1: - #已记录 - return - - #计算时间, 当前减去登陆时间 - diffTime = GameWorld.GetCurrentTime() - GameWorld.GetDateTimeByStr(curPlayer.GetLoginTime().strip()) - - #10分钟以上才算有效玩家 - if diffTime.days == 0 and diffTime.seconds < 10 * 60: - return - - DataRecordPack.DR_LoginValid(curPlayer.GetAccID(), curPlayer.GetIP(), curPlayer) - - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_LoginValid, 1) - return - ##C++封包触发, 玩家下线 #@param index 玩家索引 @@ -2462,9 +2397,6 @@ #流向记录玩家下线 DataRecordPack.DR_PlayerDisconnect(curPlayer) - - #记录新增有效登陆玩家 - NoteLoginValid(curPlayer) #VIP时间 #PlayerVip.CalcVIPTimeByTick(curPlayer, tick, False) -- Gitblit v1.8.0