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