From 8166d5b7bc084e0e6bdf65c54ffd0391ccb8b66a Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 24 一月 2025 19:09:17 +0800
Subject: [PATCH] 1111 【越南】【英语】【BT】【砍树】增加功能开启触发任务事件;
---
ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py | 44 ++++++++++++++++++++++++++++++++------------
1 files changed, 32 insertions(+), 12 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
index 4732ca9..a3bbbd0 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
@@ -56,7 +56,6 @@
import GameWorldFamilyWar
import PlayerFBHelpBattle
import GameWorldSkyTower
-import GMT_CTG
import PyGameData
import GMShell
import IPY_PlayerDefine
@@ -78,8 +77,10 @@
import PlayerFuncTeam
import PyDataManager
import GameWorldMineArea
+import PlayerPackData
import PlayerRecData
import GameWorship
+import GameXiangong
#---------------------------------------------------------------------
#---------------------------------------------------------------------
@@ -177,8 +178,6 @@
''' 玩家登录需要处理的内容,本服及跨服服务器分开
'''
if GameWorld.IsCrossServer():
- #跨服PK
- CrossRealmPK.OnPlayerLoginCrossServer(curPlayer)
#协助
PlayerAssist.OnPlayerLoginCrossServer(curPlayer)
return
@@ -256,7 +255,6 @@
GameWorldSkyTower.OnPlayerLogin(curPlayer)
#福地
GameWorldMineArea.OnPlayerLogin(curPlayer)
- GMT_CTG.OnPlayerLogin(curPlayer)
else:
pass
@@ -295,7 +293,7 @@
CrossYaomoBoss.OnPlayerLogin(curPlayer)
#玩家记录
PlayerRecData.OnPlayerLogin(curPlayer)
-
+ PlayerPackData.OnPlayerLogin(curPlayer)
#在线状态变更,放最后
__OnPlayerOnlineStateChange(curPlayer, True)
@@ -639,9 +637,6 @@
PlayerFB.OnPlayerDisconnectCrossServer(curPlayer)
return
- #跨服匹配PK
- CrossRealmPK.OnLeaveServer(curPlayer)
-
#组队玩家离线
PlayerTeam.DoPlayerLogOffTeamLogic(curPlayer, tick)
#家族玩家离线
@@ -663,6 +658,7 @@
if not PlayerControl.GetIsTJG(curPlayer):
playerID = curPlayer.GetPlayerID()
PyGameData.g_unTJLogoffTime[playerID] = int(time.time())
+ PyGameData.g_xiangongCanLikeTimeDict.pop(playerID, None)
#在线状态变更,放最后
__OnPlayerOnlineStateChange(curPlayer, False)
@@ -681,9 +677,8 @@
#offlineValue = olMgr.GetOfflineValue(playerID, PlayerViewCache.FindViewCache(playerID))
#SyncRelatedPlayerOnlineState(playerID, offlineValue, relatedPlayerIDList)
- if not PlayerControl.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_CrossRealmPK) \
- and not PlayerControl.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_CrossBattlefield):
- GameWorld.DebugLog("跨服相关功能未开启,不同步在线状态到跨服服务器! LV=%s" % curPlayer.GetLV(), curPlayer.GetPlayerID())
+ if curPlayer.GetLV() < 50:
+ #GameWorld.DebugLog("跨服相关功能未开启,不同步在线状态到跨服服务器! LV=%s" % curPlayer.GetLV(), curPlayer.GetPlayerID())
return
cacheBase = PlayerViewCache.GetSyncCrossCacheBase(curPlayer)
@@ -699,7 +694,23 @@
cacheBase = msgData["cacheBase"]
isLogout = not isOnline
+ olMgr = GetOnlinePlayerMgr()
+ olMgr.SetOnlineState(playerID, isOnline, cacheBase.get("ServerGroupID", 0))
+
PlayerViewCache.UpdCrossCacheBase(playerID, cacheBase, isLogout)
+ serverID = GameWorld.GetAccIDServerID(cacheBase["AccID"])
+
+ # 上线
+ if isOnline:
+ # 需要管理跨服在线状态时,默认需要同步缓存信息、打包数据信息
+ syncStateInfo = {"playerID":playerID, "ViewCacheCross":1, "PackDataCross":1}
+ CrossRealmMsg.SendMsgToClientServer(ShareDefine.CrossServerMsg_PlayerPackDataState, syncStateInfo, [serverGroupID])
+
+ GameXiangong.OnPlayerLogin_CrossLogic(serverGroupID, serverID, playerID)
+
+ # 下线
+ else:
+ pass
SyncCrossPlayerOnlineStateToRelatedPlayer(playerID)
return
@@ -821,6 +832,7 @@
packValue = playerStatePack.GetValue()
packValueEx = playerStatePack.GetValueEx()
packType = playerStatePack.GetType()
+ #packValueTotal = packValue + packValueEx * ChConfig.Def_PerPointValue
#---特殊逻辑处理---
if packType == ShareDefine.CDBPlayerRefresh_ForbidenTalk:
@@ -830,7 +842,11 @@
if packType == ShareDefine.CDBPlayerRefresh_ExAttr17:
PlayerControl.SetPlayerAccState(curPlayer, packValue)
return
-
+
+ if packType == ShareDefine.CDBPlayerRefresh_ExAttr19:
+ PlayerControl.SetLeaveFamilyTimeEx(curPlayer, packValue)
+ return
+
if packType == IPY_GameServer.CDBPlayerRefresh_State:
# 脱机在线
PlayerControl.SetIsTJG(curPlayer, packValue)
@@ -920,6 +936,10 @@
elif packType == IPY_GameServer.CDBPlayerRefresh_Face:
curPlayer.SetFace(packValue)
PlayerBillboard.UpdateBillboardFace(curPlayer)
+ elif packType == IPY_GameServer.CDBPlayerRefresh_HairColor:
+ #c++头像外框 用头发颜色通知 - 遗漏问题
+ curPlayer.SetFacePic(packValue)
+ PlayerBillboard.UpdateBillboardFacePic(curPlayer)
#社交信息
PlayerSocial.UpdateSocialInfo(curPlayer.GetID(), packType, packValue)
--
Gitblit v1.8.0