From 31f23f47e183bc9ea886af369b4b4e1f290a6b1c Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期一, 22 十一月 2021 17:04:29 +0800 Subject: [PATCH] 9367 【BT5】【主干】战力压制拓展到21亿以上(主干冲突) --- ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py | 62 ++++++++++++++++++++----------- 1 files changed, 40 insertions(+), 22 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py index 94b3cbf..1a784f9 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py @@ -44,7 +44,7 @@ #import PlayerFamilyStore import PlayerSocial import PlayerFamilyParty -import PlayerSealDemon +#import PlayerSealDemon import PlayerBillboard import PlayerLVAward import PlayerDuJie @@ -56,14 +56,18 @@ import GameWorldActionControl import GameWorldFamilyWar import PlayerFBHelpBattle +import GameWorldSkyTower import GMT_CTG import PyGameData import GMShell import IPY_PlayerDefine +import GameWorldArena import CrossRealmPK import AuctionHouse import PlayerAssist import PlayerFB +import PlayerLove +import PlayerCharm #--------------------------------------------------------------------- #--------------------------------------------------------------------- @@ -88,9 +92,7 @@ except: curPlayer.Kick(IPY_PlayerDefine.disWaitForPlayerLoinError) import traceback - GameWorld.ErrLog("玩家上线逻辑错误~~~~~\r\n%s" % traceback.format_exc()) - if GameWorld.GetGameWorld().GetDebugLevel(): - raise Exception("玩家上线逻辑错误~~~~\r\n%s" % traceback.format_exc()) + GameWorld.RaiseException("玩家上线逻辑错误\r\n%s" % traceback.format_exc()) return #--------------------------------------------------------------------- @@ -160,7 +162,7 @@ #仙盟宴会 PlayerFamilyParty.OnPlayerLogin(curPlayer) #封魔坛 - PlayerSealDemon.OnPlayerLogin(curPlayer) + #PlayerSealDemon.OnPlayerLogin(curPlayer) #仙魔之争 PlayerXMZZ.OnXMZZOnLogin(curPlayer) #等级奖励 @@ -169,21 +171,19 @@ PlayerStore.OnPlayerLogin(curPlayer) #通知世界boss信息 GameWorldBoss.OnPlayerLogin(curPlayer) - #家族副本boss状态通知 - PlayerFamilyBoss.OnLogin(curPlayer) #渡劫 PlayerDuJie.OnPlayerLogin(curPlayer) #守卫人皇 PlayerFamilySWRH.OnLogin(curPlayer) PlayerTalk.LoginChatMi(curPlayer) PlayerTalk.NotifyTalkCache(curPlayer) - PlayerGeTui.CleanNewGuyCallBackGeTui(curPlayer.GetID()) + #PlayerGeTui.CleanNewGuyCallBackGeTui(curPlayer.GetID()) #活动 GameWorldActionControl.OnPlayerLogin(curPlayer) #玩家等级记录 PyGameData.g_todayPlayerLVDict[curPlayer.GetID()] = curPlayer.GetLV() - #副本助战 - PlayerFBHelpBattle.OnHelpPlayerLogin(curPlayer) + #竞技场 + GameWorldArena.OnPlayerLogin(curPlayer) #跨服PK CrossRealmPK.OnPlayerLogin(curPlayer) #诛仙BOSS @@ -192,11 +192,31 @@ PlayerHorsePetBoss.OnLogin(curPlayer) #协助 PlayerAssist.OnPlayerLogin(curPlayer, False) + #天星塔 + GameWorldSkyTower.OnPlayerLogin(curPlayer) GMT_CTG.OnPlayerLogin(curPlayer) else: #协助 PlayerAssist.OnPlayerLogin(curPlayer, True) + + return + +def DoPlayerRealLoginOK(curPlayer, tick): + ''' 玩家最终登录成功处理, 由 MapServer DoPlayerRealLoginOK 通知 + 该函数为地图最终登录成功才会执行到,以后一些功能类的登录处理建议均写到这里 + 旧的功能先不动( __DoPlayerLoginServer 函数中的功能),如果有登录相关的bug再考虑是否移动到此函数 + ''' + + GameWorld.Log("GameServer->DoPlayerRealLoginOK", curPlayer.GetPlayerID()) + + if not PlayerControl.GetIsTJG(curPlayer): + #家族副本boss状态通知 + PlayerFamilyBoss.OnLogin(curPlayer) + #魅力 + PlayerCharm.OnPlayerLogin(curPlayer) + #情缘 + PlayerLove.OnPlayerLogin(curPlayer) return @@ -518,9 +538,7 @@ __Func_PlayerDisconnect(curPlayer, tick) except: import traceback - GameWorld.ErrLog("玩家下线逻辑错误~~~~~\r\n%s" % traceback.format_exc()) - if GameWorld.GetGameWorld().GetDebugLevel(): - raise Exception("玩家下线逻辑错误~~~~\r\n%s" % traceback.format_exc()) + GameWorld.RaiseException("玩家下线逻辑错误\r\n%s" % traceback.format_exc()) #调用底层下线 curPlayer.DoDisconnect() return @@ -545,13 +563,15 @@ PlayerFriend.OnPlayerDisconnect(curPlayer, tick) __UpdOnedayJobPlayerLoginoffTime(curPlayer) - PlayerGeTui.NewGuyCallBackGeTui(curPlayer, tick) + #PlayerGeTui.NewGuyCallBackGeTui(curPlayer, tick) # 设置家族成员离线时间 SetPlayerOfflineTime(curPlayer) #拍卖行 AuctionHouse.OnPlayerLeaveServer(curPlayer) #协助 PlayerAssist.OnLeaveServer(curPlayer) + #红包 + PlayerFamilyRedPacket.OnLeaveServer(curPlayer) #------------镖车逻辑 #TruckPlayerDisconnectProcess(curPlayer, tick) @@ -566,8 +586,8 @@ # @return None # @remarks 函数详细说明. def SetPlayerOfflineTime(curPlayer): - if PlayerControl.GetIsTJG(curPlayer): - return + #if PlayerControl.GetIsTJG(curPlayer): + # return curPlayerID = curPlayer.GetPlayerID() curFamily = curPlayer.GetFamily() @@ -621,6 +641,7 @@ playerStatePack = IPY_GameServer.IPY_GRefreshPlayerProperty() packValue = playerStatePack.GetValue() + packValueEx = playerStatePack.GetValueEx() packType = playerStatePack.GetType() #---特殊逻辑处理--- @@ -647,7 +668,7 @@ return if packType == IPY_GameServer.CDBPlayerRefresh_FightPower: - curPlayer.SetFightPower(packValue) + curPlayer.SetFightPower(packValue, packValueEx) return if packType == IPY_GameServer.CDBPlayerRefresh_ExAttr2: @@ -667,7 +688,7 @@ elif packType == IPY_GameServer.CDBPlayerRefresh_LV: curPlayer.SetLV(packValue) - PlayerSocial.UpdateSocialInfo(curPlayer, packType, packValue) + PlayerSocial.UpdateSocialInfo(curPlayer.GetID(), packType, packValue) #玩家等级记录 playerID = curPlayer.GetID() if playerID in PyGameData.g_todayPlayerLVDict: @@ -706,9 +727,6 @@ elif packType == IPY_GameServer.CDBPlayerRefresh_ExAttr10: PlayerControl.SetChatBubbleBox(curPlayer, packValue) - elif packType == IPY_GameServer.CDBPlayerRefresh_ExAttr11: - PlayerControl.SetTodayXianyuanCoin(curPlayer, packValue) - elif packType == IPY_GameServer.CDBPlayerRefresh_ExAttr13: PlayerControl.SetPlayerServerGroupID(curPlayer, packValue) @@ -717,7 +735,7 @@ elif packType == IPY_GameServer.CDBPlayerRefresh_OfficialRank: curPlayer.SetOfficialRank(packValue) - PlayerSocial.UpdateSocialInfo(curPlayer, packType, packValue) + PlayerSocial.UpdateSocialInfo(curPlayer.GetID(), packType, packValue) #更新排行榜的境界 PlayerBillboard.UpdateBillboardRealm(curPlayer) -- Gitblit v1.8.0