From 2e4837aa365ec5136341773855ec105e98de1863 Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期四, 08 十一月 2018 21:21:16 +0800 Subject: [PATCH] 2683 子 天赋技能和新增双职业各两个技能 / 【后端】天赋技能 - 对象错误 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py | 36 ++++++++++++++++++++---------------- 1 files changed, 20 insertions(+), 16 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 6308b40..0c8873c 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py @@ -235,15 +235,16 @@ # 当前状态处理 if curState == ShareDefine.Def_PetState_Fight: - curPet = curPlayer.GetPetMgr().GetFightPet() - if curPet: - #已是出战状态, C++召唤坐标和人重叠 - resultPos = GameMap.GetEmptyPlaceInArea(curPlayer.GetPosX(), curPlayer.GetPosY(), ChConfig.Def_SummonAppearDist) - curPet.ResetPos(resultPos.GetPosX(), resultPos.GetPosY()) - PassiveBuffEffMng.GetPassiveEffManager().RegistPassiveEff(curPet) - PassiveBuffEffMng.GetPassiveEffManager().RegistPassiveBuff(curPet) - return - #PetControl.ReCallFightPet(curPlayer) +# curPet = curPlayer.GetPetMgr().GetFightPet() +# if curPet: +# #已是出战状态, C++召唤坐标和人重叠 +# resultPos = GameMap.GetEmptyPlaceInArea(curPlayer.GetPosX(), curPlayer.GetPosY(), ChConfig.Def_SummonAppearDist) +# curPet.ResetPos(resultPos.GetPosX(), resultPos.GetPosY()) +# PassiveBuffEffMng.GetPassiveEffManager().RegistPassiveEff(curPet) +# PassiveBuffEffMng.GetPassiveEffManager().RegistPassiveBuff(curPet) +# return + #18/10/15 因为某种未知原因宠物物品的状态是出战(实际场景中未出战),导致该宠物无法出战,故再次发包出战时,此处不拦! + PetControl.ReCallFightPet(curPlayer) else: pass @@ -303,20 +304,20 @@ PetControl.DoLogic_PlayerPetLearnSkillList(rolePet, learnSkillList) #---刷新属性(不通知)--- - #GameWorld.DebugLog("刷前: petID=%s,playerID=%s,npcID=%s,BindType=%s,AIMode=%s,PetIndex=%s,petFinalHurtPer=%s,grade=%s,qualLV=%s," + #GameWorld.DebugLog("刷前: petID=%s,playerID=%s,npcID=%s,BindType=%s,AIMode=%s,PetIndex=%s,grade=%s,qualLV=%s," # % (petStruct.PetID, petStruct.PlayerID, petStruct.NPCID, petStruct.BindType, petStruct.AIMode, petStruct.PetIndex, - # rolePet.GetBattleValEx5(), rolePet.GetGrade(), rolePet.GetQualityLV())) + # rolePet.GetGrade(), rolePet.GetQualityLV())) petControl = NPCCommon.NPCControl(rolePet) petControl.RefreshNPCState(canSyncClient=False) - #GameWorld.DebugLog("刷后: petID=%s,playerID=%s,npcID=%s,BindType=%s,AIMode=%s,PetIndex=%s,petFinalHurtPer=%s,grade=%s,qualLV=%s," + #GameWorld.DebugLog("刷后: petID=%s,playerID=%s,npcID=%s,BindType=%s,AIMode=%s,PetIndex=%s,grade=%s,qualLV=%s," # % (petStruct.PetID, petStruct.PlayerID, petStruct.NPCID, petStruct.BindType, petStruct.AIMode, petStruct.PetIndex, - # rolePet.GetBattleValEx5(), rolePet.GetGrade(), rolePet.GetQualityLV())) + # rolePet.GetGrade(), rolePet.GetQualityLV())) #当前血量(不通知) PetControl.SetPetHP(rolePet, rolePet.GetMaxHP(), False) #---通知客户端--- - rolePet.Sync_PetInfo() + #rolePet.Sync_PetInfo() #刷新技能栏 rolePet.Sync_SkillList() @@ -455,7 +456,8 @@ ItemCommon.ReduceItem(curPlayer, itemPack, itemList, needItemCnt, False, ChConfig.ItemDel_Pet) EventShell.EventRespons_OnActivatePet(curPlayer, petNPCID) - PlayerControl.WorldNotify(0, 'GetPet', [curPlayer.GetName(), petNPCID]) + sysMark = ipyData.GetUnlockSys() or 'GetPet' + PlayerControl.WorldNotify(0, sysMark, [curPlayer.GetName(), petNPCID]) rolePet = curPlayer.GetPetMgr().GetFightPet() if not rolePet: petItemIndex = GetPetDataItemIndexByNPCID(curPlayer, petNPCID) @@ -653,6 +655,7 @@ petIpyData = GetPetIpydata(petNPCID) petSkillList = petIpyData.GetSkillID() petSkillUnLockList = petIpyData.GetSkillUnLock() + sysMarkList = petIpyData.GetSkillUnLockSys() learnSkillList = [] for i, skillid in enumerate(petSkillList): limitPetClassLV = petSkillUnLockList[i] # 学习此技能所需宠物阶级 @@ -668,7 +671,8 @@ #被动技能不学 learnSkillList.append(skillid) #广播 - PlayerControl.WorldNotify(0, 'PetUpLv', [playerName, petNPCID, limitPetClassLV, skillid]) + sysMark = sysMarkList[i] if i < len(sysMarkList) else 'PetUpLv' + PlayerControl.WorldNotify(0, sysMark, [playerName, petNPCID, limitPetClassLV, skillid]) if not learnSkillList and updClassLV + 1 == maxClassLV: PlayerControl.WorldNotify(0, 'PetUpLvMax', [playerName, petNPCID]) -- Gitblit v1.8.0