From ba71a1935d5e96c54131173c1eccb5678efc9827 Mon Sep 17 00:00:00 2001 From: xdh <xiefantasy@qq.com> Date: 星期一, 08 四月 2019 10:19:08 +0800 Subject: [PATCH] 6341 【后端】【2.0】境界改版开发单(经验buff叠加问题) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py | 42 ++++++++++++++++++++++++++++++++++++------ 1 files changed, 36 insertions(+), 6 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 5e87340..9636f84 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py @@ -37,8 +37,9 @@ import GameMap import OpenServerCampaign import PlayerMagicWeapon -import PassiveBuffEffMng +import PlayerWeekParty import CalcNoLineEffect +import CrossPlayerData import CalcLineEffect import random @@ -105,7 +106,6 @@ if not newPetItem: return - newPetItem.SetIsBind(True) newPetItem.SetUserAttr(ShareDefine.Def_IudetPet_NPCID, petNPCID) newPetItem.SetUserAttr(ShareDefine.Def_IudetPet_State, ShareDefine.Def_PetState_Null) @@ -266,8 +266,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 ## 执行宠物出战逻辑 @@ -320,7 +351,7 @@ #---通知客户端--- #rolePet.Sync_PetInfo() #刷新技能栏 - rolePet.Sync_SkillList() + #rolePet.Sync_SkillList() #---收到"宠物出战"请求--- #检查是否可出战 @@ -453,7 +484,6 @@ if not ItemControler.PlayerItemControler(curPlayer).PutInItem(petPackIndex, newPetItem): return - PlayerMagicWeapon.SetMWPrivilegeData(curPlayer, ChConfig.MWPrivilege_Pet, len(GetActivePetID(curPlayer))) ItemCommon.ReduceItem(curPlayer, itemPack, itemList, needItemCnt, False, ChConfig.ItemDel_Pet) EventShell.EventRespons_OnActivatePet(curPlayer, petNPCID) @@ -474,6 +504,7 @@ # 开服活动数据 OpenServerCampaign.UpdOpenServerCampaignRecordData(curPlayer, ShareDefine.Def_Campaign_Type_PetLV, GetTotalPetLV(curPlayer)) + PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Pet, petNPCID, False) return True @@ -507,7 +538,6 @@ if not ItemControler.PlayerItemControler(curPlayer).PutInItem(petPackIndex, newPetItem): return - PlayerMagicWeapon.SetMWPrivilegeData(curPlayer, ChConfig.MWPrivilege_Pet, len(GetActivePetID(curPlayer))) SetPetSkillFightPower(curPlayer) # 技能战力重算 petItemIndex = GetPetDataItemIndexByNPCID(curPlayer, petNPCID) DoChangePetState(curPlayer, petItemIndex, ShareDefine.Def_PetState_Fight) @@ -594,7 +624,7 @@ for itemIndex in itemIndexList: curItem = curItemPack.GetAt(itemIndex) #检查物品 - if not ItemCommon.CheckItemCanUse(curItem): + if not ItemCommon.CheckItemCanUse(curItem) or ItemControler.GetIsAuctionItem(curItem): continue itemCnt = curItem.GetCount() nowCnt += itemCnt -- Gitblit v1.8.0