From a0a1e6c3440172933aabec644b7cd279ea9f5263 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期四, 06 六月 2019 13:48:59 +0800 Subject: [PATCH] 1 GM测试属性技能伤害加成计算默认减10000 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PetControl.py | 55 +++++++++++++++---------------------------------------- 1 files changed, 15 insertions(+), 40 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PetControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PetControl.py index 5307f32..6b72837 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PetControl.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PetControl.py @@ -28,7 +28,6 @@ import IPY_GameWorld import ChConfig import GameWorld -import ReadChConfig import BuffSkill import SkillShell import PlayerPet @@ -47,6 +46,7 @@ import BaseAttack import PassiveBuffEffMng import ChNetSendPack +import IpyGameDataPY #--------------------------------------------------------------------- DefPetRebornHPRate = 100 # 宠物死亡复活血量百分比 @@ -240,7 +240,7 @@ # @return 返回值无意义 # @remarks 初始化宠物属性 def InitRolePet(rolePet, canSyncClient=True): - #---初始化时钟,致命一击倍率--- + #---初始化时钟--- NPCCommon.InitNPC(rolePet) #---初始化仇恨列表--- @@ -461,7 +461,7 @@ # @return BOOL 是否可出战 # @remarks 检查当前指定宠物是否可出战 def CheckPetCanFight(curPlayer, curPetObj): - if not GameWorld.GetMap().GetMapCanOutPet(): + if not GetMapCanOutPet(curPlayer): #Pet_liubo_314885 此地图禁止宠物 PlayerControl.NotifyCode(curPlayer, "Pet_liubo_314885") return False @@ -534,41 +534,6 @@ __RefreshAndSyncPetInfo(rolePet) #自动出战宠物 __AutoSummonPet_OnLogin(curPlayer, rolePet) - - if not GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_VersionFix, ChConfig.Def_VerFix_Pet): - GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_VersionFix, ChConfig.Def_VerFix_Pet, 1) - #等级不能超上限,技能删了重新学 - - petPackIndex = ShareDefine.rptPet - petPack = curPlayer.GetItemManager().GetPack(petPackIndex) - for i in range(petPack.GetCount()): - petItem = petPack.GetAt(i) - if petItem.IsEmpty(): - continue - petItemNPCID = petItem.GetUserAttr(ShareDefine.Def_IudetPet_NPCID) - curClassLV = petItem.GetUserAttr(ShareDefine.Def_IudetPet_ClassLV) + 1 - petIpyData = PlayerPet.GetPetIpydata(petItemNPCID) - if not petIpyData: - continue - maxLV = petIpyData.GetMaxRank() - if curClassLV > maxLV: - petItem.SetUserAttr(ShareDefine.Def_IudetPet_ClassLV, max(0, maxLV - 1)) - petItem.SetUserAttr(ShareDefine.Def_IudetPet_Exp, 0) - GameWorld.Log(' 老号宠物等级超过上限,宠物ID=%s,原LV=%s,重置为=%s'%(petItemNPCID, curClassLV, maxLV)) - curClassLV = maxLV - petItem.ClearUserAttr(ShareDefine.Def_IudetPet_Skill) - petSkillList = petIpyData.GetSkillID() - petSkillUnLockList = petIpyData.GetSkillUnLock() - for i, skillid in enumerate(petSkillList): - limitPetClassLV = petSkillUnLockList[i] # 学习此技能所需宠物阶级 - if curClassLV < limitPetClassLV: - continue - petItem.AddUserAttr(ShareDefine.Def_IudetPet_Skill, skillid) - if ReCallFightPet(curPlayer): - PlayerPet.AutoSummonPet(curPlayer) - # 重刷战力 - PlayerPet.SetPetSkillFightPower(curPlayer) # 技能战力重算 - PlayerPet.RefreshPetItemAddAttr(curPlayer, True) return #--------------------------------------------------------------------- @@ -582,7 +547,7 @@ if not rolePet.GetIsBattle(): return - if not GameWorld.GetMap().GetMapCanOutPet(): + if not GetMapCanOutPet(curPlayer): #此地图禁止宠物 return #召唤宠物出战 @@ -614,7 +579,7 @@ # @remarks def DoLogic_PetLoadMapOK(curPlayer): - if GameWorld.GetMap().GetMapCanOutPet(): + if GetMapCanOutPet(curPlayer): #此地图宠物可以上 PlayerPet.AutoSummonPet(curPlayer) return @@ -627,6 +592,16 @@ PlayerControl.NotifyCode(curPlayer, "Pet_liubo_314885") return +def GetMapCanOutPet(curPlayer): + ## 检查本地图可否出战宠物,支持前端自定义场景 + customMapID = PlayerControl.GetCustomMapID(curPlayer) + if customMapID: + ipyMapData = IpyGameDataPY.GetIpyGameData("ChinMap", customMapID) + canOutPet = True if ipyMapData and ipyMapData.GetCanOutPet() else False + else: + canOutPet = GameWorld.GetMap().GetMapCanOutPet() + return canOutPet + #--------------------------------------------------------------------- ## 刷新宠物信息并通知客户端 # @param rolePet 宠物实例 -- Gitblit v1.8.0