From 80760d7bb7ae12f127bd67613dab8a8a02d4400c Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 12 二月 2026 15:29:30 +0800
Subject: [PATCH] 16 卡牌服务端(删除不需要旧功能:法器、炼体、魅力、情缘、仙宫、神兽、系统特权、印记;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py | 268 -----------------------------------------------------
1 files changed, 1 insertions(+), 267 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
index 598b4b1..40aecf6 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
@@ -31,15 +31,10 @@
import PlayerControl
import NetPackCommon
import ChPyNetSendPack
-import PlayerVip
import AttackCommon
import PyGameData
-import PlayerHorse
import BaseAttack
-import EventShell
import NPCCommon
-import PetControl
-import QuestCommon
import ItemCommon
import FBCommon
@@ -71,74 +66,6 @@
def OnPassiveSet(index, clientData, tick):
#改为都生效,不需要设置
return
-# curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
-# findSkill = None
-# if clientData.SkillID != 0:
-# findSkill = curPlayer.GetSkillManager().FindSkillBySkillID(clientData.SkillID)
-# if not findSkill:
-# return
-#
-# if findSkill.GetFuncType() != ChConfig.Def_SkillFuncType_FbPassiveSkill:
-# return
-#
-# holeCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 2)
-# if clientData.Index >= holeCnt:
-# # 超出孔数
-# return
-#
-# pageCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 3)
-# if clientData.Page >= pageCnt:
-# # 超出页数
-# return
-#
-# tmpDict = IpyGameDataPY.GetFuncEvalCfg('PassSkillEquipLimit', 1)
-# # 剩余VIP时间
-# #haveVipTime = PlayerVip.GetCurVIPTime(curPlayer)
-# strIndex = str(clientData.Index)
-# if strIndex in tmpDict:
-# # 判断条件
-# for key, value in tmpDict[strIndex].items():
-# if key == "level" and curPlayer.GetLV() < value:
-# return
-# if key == "vipLv":
-# if curPlayer.GetVIPLv() < value:# or haveVipTime <=0:
-# return
-# if key == "MountLv":
-# if PlayerHorse.GetHorseSumLV(curPlayer) < value:
-# return
-#
-#
-# # 多加一种任务判断
-# if key == "OpenSkillSlots":
-# # 主线任务完成时会设置标志可进地图标志
-# mission_1 = QuestCommon.GetCommonMission(curPlayer)
-# if not mission_1:
-# return
-#
-# if (pow(2, int(strIndex)) & mission_1.GetProperty("OpenSkillSlots")) == 0:
-# return
-#
-# PlayerControl.NomalDictSetProperty(curPlayer,
-# ChConfig.Def_PDict_GFPassiveIndex%(clientData.Page, clientData.Index),
-# clientData.SkillID,
-# ChConfig.Def_PDictType_GFPassive)
-#
-# # 通知客户端设置成功
-# sendPack = ChPyNetSendPack.tagMCPassiveSetAnswer()
-# sendPack.Page = clientData.Page
-# sendPack.Index = clientData.Index
-# sendPack.SkillID = clientData.SkillID
-# NetPackCommon.SendFakePack(curPlayer, sendPack)
-#
-# # 刷被动效果和属性
-# page = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassivePage, 0, ChConfig.Def_PDictType_GFPassive)
-# if clientData.Page == page:
-# GetPassiveEffManager().RegistPassiveEffSet(curPlayer, True)
-# PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState()
-#
-# EventShell.EventRespons_PassiveSet(curPlayer)
-# return
-
#===============================================================================
# //B4 08 被动技能页选择(功法) # tagCMPassivePage
@@ -219,87 +146,16 @@
def OnLoginGFPassive(curPlayer):
#改为都生效,不需要设置
return
-# # ---通知每页数据---
-# holeCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 2)
-# pageCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 3)
-#
-# sendPack = ChPyNetSendPack.tagMCPassiveSet()
-# sendPack.PageCnt = pageCnt
-# sendPack.PassiveSkills = []
-#
-#
-# #tmpDict = IpyGameDataPY.GetFuncEvalCfg('PassSkillEquipLimit', 1)
-#
-# # 剩余VIP时间
-# #haveVipTime = PlayerVip.GetCurVIPTime(curPlayer)
-#
-# for i in xrange(pageCnt):
-# skills = ChPyNetSendPack.tagMCPassiveSkills()
-# skills.Count = holeCnt
-# skills.SkillIDList = []
-# for j in xrange(holeCnt):
-#
-# #===================================================================
-# # # 判断VIP过期的情况
-# # for key, value in tmpDict.get(j, {}).items():
-# # if key == "vipLv":
-# # if curPlayer.GetVIPLv() < value or haveVipTime <=0:
-# # PlayerControl.NomalDictSetProperty(curPlayer,
-# # ChConfig.Def_PDict_GFPassiveIndex%(i, j),
-# # 0,
-# # ChConfig.Def_PDictType_GFPassive)
-# #===================================================================
-#
-# skillID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassiveIndex%(i, j), 0,
-# ChConfig.Def_PDictType_GFPassive)
-# skills.SkillIDList.append(skillID)
-#
-# sendPack.PassiveSkills.append(skills)
-#
-# NetPackCommon.SendFakePack(curPlayer, sendPack)
-#
-# # ---通知激活页---
-# page = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassivePage, 0, ChConfig.Def_PDictType_GFPassive)
-# sendPack = ChPyNetSendPack.tagMCPassivePage()
-# sendPack.Page = page
-# NetPackCommon.SendFakePack(curPlayer, sendPack)
-# return
# 切换地图
def OnLoadMapGFPassive(curPlayer):
# 被动技能
GetPassiveEffManager().RegistPassiveEff(curPlayer)
- #tmpDict = IpyGameDataPY.GetFuncEvalCfg('PassSkillEquipLimit', 1)
- #holeCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 2)
-
- # 剩余VIP时间
- #haveVipTime = PlayerVip.GetCurVIPTime(curPlayer)
-
- #当前使用页
- #page = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassivePage, 0, ChConfig.Def_PDictType_GFPassive)
-
-#===============================================================================
-# for j in xrange(holeCnt):
-#
-# # 判断VIP过期的情况
-# for key, value in tmpDict.get(j, {}).items():
-# if key != "vipLv":
-# continue
-# if curPlayer.GetVIPLv() < value or haveVipTime <= 0:
-# PlayerControl.NomalDictSetProperty(curPlayer,
-# ChConfig.Def_PDict_GFPassiveIndex%(page, j),
-# 0,
-# ChConfig.Def_PDictType_GFPassive)
-#===============================================================================
-
# 魔族法宝-被动技能页
GetPassiveEffManager().RegistPassiveEffSet(curPlayer)
GetPassiveEffManager().RegistPassiveBuff(curPlayer)
-
- # 助战神兽技能
- GetPassiveEffManager().RegistPassiveEffDogz(curPlayer)
GetPassiveEffManager().RegistSuperEquipSkillDict(curPlayer)
@@ -410,10 +266,6 @@
4083:ChConfig.TriggerType_AddThumpHitPer, # 增加重击伤害百分比
4084:ChConfig.TriggerType_ThumpHit, # 对第一目标重击触发技能
4085:ChConfig.TriggerType_SkillSuccess, # 任何技能释放成功都可触发 76 加印记
- 4086:ChConfig.TriggerType_AttackAddSkillPerYinji, # 所有攻击伤害(SkillPer)增加,含普攻,计算时 为了飘字使用
- 4087:ChConfig.TriggerType_AttackAddSkillPerYinji, # 所有攻击伤害(SkillPer)增加,含普攻,计算时 为了飘字使用
- 4088:ChConfig.TriggerType_AttackAddSkillPerYinji, # 所有攻击伤害(SkillPer)增加,含普攻,计算时 为了飘字使用
- 4089:ChConfig.TriggerType_AttackAddSkillPerYinji, # 所有攻击伤害(SkillPer)增加,含普攻,计算时 为了飘字使用
4090:ChConfig.TriggerType_AttackOver, # 攻击(对敌技能)后被动技能被触发 4
4091:ChConfig.TriggerType_SkillOverNoAttack, # 技能释放后 与TriggerType_AttackOver相反19,
4092:ChConfig.TriggerType_SkillSuccessExpend, # 任何技能释放成功都可触发 76 减印记
@@ -570,38 +422,6 @@
# 获得被动触发的 buff
def GetBuffsByTriggerType(self, triggerType, useSkillID=0):
return self.AffectBuffDict.get((triggerType, 0), {})
-
-
- # 重刷神兽助战技能
- def RefreshDogzBattleSkill(self):
- self.AffectDogzSkillDict = {}
- skills = FindDogzBattleSkills(self.gameObj)
-
- for curSkill in skills:
- if not SkillCommon.isPassiveTriggerSkill(curSkill):
- continue
-
- skillTypeID = curSkill.GetSkillTypeID()
-
- connSkillID = SkillShell.GetConnectSkillID(curSkill) # 关联技能ID, 0代表不限技能
- for i in xrange(curSkill.GetEffectCount()):
- curEffect = curSkill.GetEffect(i)
- effectID = curEffect.GetEffectID()
- if effectID == 0:
- continue
-
- triggerType = GetTriggerTypeByEffectID(effectID)
- if triggerType == -1:
- continue
-
- key = (triggerType,connSkillID)
- if key not in self.AffectDogzSkillDict:
- self.AffectDogzSkillDict[key] = []
-
- self.AffectDogzSkillDict[key].append((skillTypeID, effectID))
-
- return self.AffectDogzSkillDict
-
# 重刷特殊装备技能
def RefreshSuperEquipSkillDict(self):
@@ -897,23 +717,7 @@
else:
passiveEff.RefreshPassiveSkillSet(isCD)
return
-
-
- # 人物需同步注册神兽技能
- def RegistPassiveEffDogz(self, gameObj):
- passiveEff = self.GetPassiveEff(gameObj)
- if not passiveEff:
- # 强制刷新所有被动技能
- passiveEff = PassiveEff(gameObj)
- if not passiveEff.RefreshDogzBattleSkill():
- return
- self.AddPassiveEff(gameObj, passiveEff)
- else:
- passiveEff.RefreshDogzBattleSkill()
- return
-
-
-
+
# 人物需同步注册装备技能,技能目前为可触发的被动类,若有定义冲突则可用功能类型划分
def RegistSuperEquipSkillDict(self, gameObj):
passiveEff = self.GetPassiveEff(gameObj)
@@ -932,11 +736,6 @@
# buff # 筛选buffType 否则NPC没有此接口会报错
for buffType in [IPY_GameWorld.bfBuff, IPY_GameWorld.bfDeBuff, IPY_GameWorld.bfProcessBuff
, IPY_GameWorld.btPassiveBuf, IPY_GameWorld.bfActionBuff, IPY_GameWorld.bfProcessDeBuff]:
-
- if buffType == IPY_GameWorld.btPassiveBuf and gameObj.GetGameObjType() == IPY_GameWorld.gotNPC:
- # NPC只有宠物有被动BUFF
- if not PetControl.IsPet(gameObj):
- continue
buffTuple = SkillCommon.GetBuffManagerByBuffType(gameObj, buffType)
#通过类型获取目标的buff管理器为空,则跳出
@@ -1632,71 +1431,6 @@
curValue += callFunc(attacker, defender, passiveEffect)
return curValue
-
-
-# 因为要兼容低等级技能,所以技能只能是在助战的时候,先删除神兽技能再学习新的助战神兽技能
-def PlayerDogzSkill(curPlayer):
-
- dogzSkills = [] # 需要学习的技能
- ipyDataMgr = IpyGameDataPY.IPY_Data()
- for i in xrange(ipyDataMgr.GetDogzCount()):
- ipyData = ipyDataMgr.GetDogzByIndex(i)
- if not GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_PDict_DogzFightState, i):
- continue
-
- dogzSkills.extend(ipyData.GetHelpBattleSkills())
-
- delDogzSkills = [] # 删除不在助战神兽队列的技能
- skillManager = curPlayer.GetSkillManager()
- for i in xrange(skillManager.GetSkillCount()):
- curSkill = skillManager.GetSkillByIndex(i)
- if curSkill.GetFuncType() != ChConfig.Def_SkillFuncType_Dogz:
- continue
- skillID = curSkill.GetSkillID()
-
- delDogzSkills.append(skillID)
-
- GameWorld.DebugLog("PlayerDogzSkill:%s - 删除%s"%(dogzSkills, delDogzSkills))
-
- # 删除神兽技能
- for skillID in delDogzSkills:
- skillManager.DeleteSkillBySkillID(skillID, False)
-
- # 添加助战技能,同类技能取最高
- dogzSkills.sort()
- for skillID in dogzSkills:
- skillData = GameWorld.GetGameData().GetSkillBySkillID(skillID)
- if not skillData:
- continue
- if skillData.GetSkillType() == ChConfig.Def_SkillType_AttrSkillNoLearn:
- # 同技能可多个叠加的技能不能学,算属性时直接取表
- continue
-
- skillManager.LearnSkillByID(skillID, False)
-
- # 刷被动效果
- GetPassiveEffManager().RegistPassiveEffDogz(curPlayer)
- return
-
-
-# 获取助战神兽的技能列表
-def FindDogzBattleSkills(gameObj):
- skills = []
- if gameObj.GetGameObjType() != IPY_GameWorld.gotPlayer:
- return skills
-
- skillManager = gameObj.GetSkillManager()
- for i in xrange(skillManager.GetSkillCount()):
- curSkill = skillManager.GetSkillByIndex(i)
- if not curSkill:
- continue
-
- if curSkill.GetFuncType() != ChConfig.Def_SkillFuncType_Dogz:
- continue
- skills.append(curSkill)
-
- return skills
-
# 遍历身上装备技能以及各自个数,装备技能不需要学习
# 保证不同的装备技能不会有相同的效果, 效果数值的衰减是根据相同技能个数计算而不是效果个数 1-pow((1-初始值),相同技能个数)
--
Gitblit v1.8.0