From d2e8880933fca8e8d8a8f0205bdd9ea95f4ec665 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 20 十二月 2023 15:58:14 +0800
Subject: [PATCH] 10024 【主干】【港台】【砍树】新增三种战令(增加战令类型4:古宝总星级)
---
ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py | 69 +++++++++++++++++++++++++++++-----
1 files changed, 59 insertions(+), 10 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
index ac304ce..d6d1a38 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
@@ -62,10 +62,18 @@
import GMShell
import IPY_PlayerDefine
import GameWorldArena
+import CrossLuckyCloudBuy
import CrossRealmPK
+import CrossChampionship
import AuctionHouse
import PlayerAssist
import PlayerFB
+import PlayerLove
+import PlayerCharm
+import CrossRealmPlayer
+import CrossBattlefield
+import CrossActAllRecharge
+import CrossYaomoBoss
#---------------------------------------------------------------------
#---------------------------------------------------------------------
@@ -121,6 +129,8 @@
if GameWorld.IsCrossServer():
#跨服PK
CrossRealmPK.OnPlayerLoginCrossServer(curPlayer)
+ #协助
+ PlayerAssist.OnPlayerLoginCrossServer(curPlayer)
return
#玩家家族刷新
@@ -128,8 +138,9 @@
PlayerFamily.PlayerLoginRefreshFamily(curPlayer, tick)
#玩家队伍初始化
PlayerTeam.OnPlayerLoginRefreshTeam(curPlayer, tick)
- PlayerCompensation.NotifyPlayerCompensation(curPlayer)
+ #PlayerCompensation.NotifyPlayerCompensation(curPlayer)
__UpdOnedayJobPlayerLoginoffTime(curPlayer)
+ CrossRealmPlayer.OnPlayerLogin(curPlayer)
if not PlayerControl.GetIsTJG(curPlayer):
# 只有通知逻辑的应该放此处减少IO,如有逻辑处理存储等不可放在此处
@@ -169,8 +180,6 @@
PlayerStore.OnPlayerLogin(curPlayer)
#通知世界boss信息
GameWorldBoss.OnPlayerLogin(curPlayer)
- #家族副本boss状态通知
- PlayerFamilyBoss.OnLogin(curPlayer)
#渡劫
PlayerDuJie.OnPlayerLogin(curPlayer)
#守卫人皇
@@ -186,20 +195,56 @@
GameWorldArena.OnPlayerLogin(curPlayer)
#跨服PK
CrossRealmPK.OnPlayerLogin(curPlayer)
+ #幸运云购
+ CrossLuckyCloudBuy.OnPlayerLogin(curPlayer)
#诛仙BOSS
PlayerZhuXianBoss.OnPlayerLogin(curPlayer)
#骑宠boss状态通知
PlayerHorsePetBoss.OnLogin(curPlayer)
#协助
- PlayerAssist.OnPlayerLogin(curPlayer, False)
+ PlayerAssist.OnPlayerLogin(curPlayer)
#天星塔
GameWorldSkyTower.OnPlayerLogin(curPlayer)
GMT_CTG.OnPlayerLogin(curPlayer)
else:
- #协助
- PlayerAssist.OnPlayerLogin(curPlayer, True)
+ pass
+ return
+
+def DoPlayerRealLoginOK(curPlayer, loginMsg, tick):
+ ''' 玩家最终登录成功处理, 由 MapServer DoPlayerRealLoginOK 通知
+ 该函数为地图最终登录成功才会执行到,以后一些功能类的登录处理建议均写到这里
+ 旧的功能先不动( __DoPlayerLoginServer 函数中的功能),如果有登录相关的bug再考虑是否移动到此函数
+ '''
+ isMixServerFirstLogin = loginMsg[0]
+ GameWorld.Log("GameServer->DoPlayerRealLoginOK, isMixServerFirstLogin=%s" % isMixServerFirstLogin, curPlayer.GetPlayerID())
+
+ if GameWorld.IsCrossServer():
+ return
+
+ PyGameData.g_dbPlayerIDMap[curPlayer.GetPlayerID()] = curPlayer.GetAccID()
+
+ if not PlayerControl.GetIsTJG(curPlayer):
+ #家族副本boss状态通知
+ PlayerFamilyBoss.OnLogin(curPlayer)
+ #魅力
+ PlayerCharm.OnPlayerLogin(curPlayer)
+ #情缘
+ PlayerLove.OnPlayerLogin(curPlayer)
+ #跨服战场
+ CrossBattlefield.OnPlayerLogin(curPlayer)
+ #跨服排位
+ CrossChampionship.OnPlayerLogin(curPlayer, tick)
+ #跨服全民充值
+ CrossActAllRecharge.OnPlayerLogin(curPlayer)
+ #跨服妖魔boss
+ CrossYaomoBoss.OnPlayerLogin(curPlayer)
+
+ if isMixServerFirstLogin:
+ PlayerCharm.OnMixServerFirstLogin(curPlayer)
+
+ PyGameData.g_noPlayerLoginWarningMailState = 2
return
def __UpdOnedayJobPlayerLoginoffTime(curPlayer):
@@ -670,13 +715,15 @@
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:
PyGameData.g_todayPlayerLVDict[playerID] = packValue
elif packType == IPY_GameServer.CDBPlayerRefresh_Job:
+ if packValue != curPlayer.GetJob():
+ PlayerBillboard.DelJobFightPowerBillboard(curPlayer, curPlayer.GetJob())
curPlayer.SetJob(packValue)
# elif packType == IPY_GameServer.CDBPlayerRefresh_CurrentPlayerType:
@@ -704,7 +751,8 @@
PlayerControl.SetCrossMapID(curPlayer, packValue, False)
elif packType == IPY_GameServer.CDBPlayerRefresh_ExAttr9:
- PlayerControl.SetVIPExpireTime(curPlayer, packValue)
+ curPlayer.SetExAttr9(packValue)
+ #PlayerControl.SetVIPExpireTime(curPlayer, packValue)
elif packType == IPY_GameServer.CDBPlayerRefresh_ExAttr10:
PlayerControl.SetChatBubbleBox(curPlayer, packValue)
@@ -717,7 +765,7 @@
elif packType == IPY_GameServer.CDBPlayerRefresh_OfficialRank:
curPlayer.SetOfficialRank(packValue)
- PlayerSocial.UpdateSocialInfo(curPlayer, packType, packValue)
+ PlayerSocial.UpdateSocialInfo(curPlayer.GetID(), packType, packValue)
#更新排行榜的境界
PlayerBillboard.UpdateBillboardRealm(curPlayer)
@@ -1192,7 +1240,8 @@
serverDateTime.Hour = serverTime.hour
serverDateTime.Minute = serverTime.minute
serverDateTime.Second = serverTime.second
- serverDateTime.MicSecond = serverTime.microsecond
+ serverDateTime.MicSecond = serverTime.microsecond
+ serverDateTime.CrossServerTime = GameWorld.GetCrossServerTimeStr()
# 通知客户端同步时间
NetPackCommon.SendFakePack(curPlayer, serverDateTime)
--
Gitblit v1.8.0