From a8f9421ee701e988e767e2735628e08b67efd393 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 18 一月 2019 17:49:06 +0800 Subject: [PATCH] 5722 【后端】【1.5.100】【1.5】跨服BOSS开发(同步场景灵宠、坐骑变更) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py | 32 ++++++++++++++++++++++++++++++++ 1 files changed, 32 insertions(+), 0 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py index 5a25e67..04a1995 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py @@ -39,6 +39,7 @@ import PlayerMagicWeapon import PassiveBuffEffMng import CalcNoLineEffect +import CrossPlayerData import CalcLineEffect import random @@ -266,8 +267,39 @@ # petItem.SetUserAttr(ShareDefine.Def_IudetPet_State, tagState) # GameWorld.DebugLog("切换宠物状态异常防范! curState=%s,tagState=%s" % (curState, tagState)) + if not GameWorld.IsCrossServer(): + dataList = [petNPCID, curClasslv, tagState] + CrossPlayerData.SendDataToCrossServer(curPlayer, CrossPlayerData.CrossData_PetState, dataList) + return +def CrossServer_DoChangePetState(curPlayer, dataList): + ## 跨服处理 宠物战斗状态变更 + petNPCID, curClasslv, tagState = dataList + petItem = GetPetDataItemByNPCID(curPlayer, petNPCID) + if not petItem: + newPetItem = GetNewPetDataItem(curPlayer, petNPCID) + if not newPetItem: + return + if not ItemControler.PlayerItemControler(curPlayer).PutInItem(ShareDefine.rptPet, newPetItem): + return + petItem = GetPetDataItemByNPCID(curPlayer, petNPCID) + if not petItem: + return + + curItemClasslv = petItem.GetUserAttr(ShareDefine.Def_IudetPet_ClassLV) + # 处理技能问题,暂不处理 + if curClasslv > curItemClasslv: + pass + + curState = petItem.GetUserAttr(ShareDefine.Def_IudetPet_State) # 当前状态 + if curState == ShareDefine.Def_PetState_Fight: + PetControl.ReCallFightPet(curPlayer) + + if tagState == ShareDefine.Def_PetState_Fight: + __DoPetGoOutToFight(curPlayer, petItem) + + return ## 执行宠物出战逻辑 -- Gitblit v1.8.0