2683 子 天赋技能和新增双职业各两个技能 / 【后端】天赋技能  -  buff层级变化触发技能,添加精灵召唤兽

#ntSummon:(3)普通召唤兽,可继承主人基础属性如攻击
#ntElf:(4)玩家替身,完全拥有玩家属性和被动功能
#ntFairy :(7)同ntSummon,但技能可触发被动功能
4个文件已修改
19 ■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -4320,7 +4320,8 @@
TriggerType_OneDamage,   # 伤害降低到1点 49
TriggerType_LuckyHit, # 会心一击时增加会心伤害百分比 50
TriggerType_ChangeHurtToHP, # 把受到伤害的xx%转化为生命值 51
) = range(1, 52)
TriggerType_AddLayer, # BUFF层级增加时 52
) = range(1, 53)
# NPC功能类型定义
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py
@@ -205,6 +205,9 @@
                    else:
                        curBuff.SetLayer(layerMaxCnt)
                    changeLayer = True
                    #BUFF层级变化触发被动
                    if buffOwner:
                        PassiveBuffEffMng.OnPassiveSkillTrigger(buffOwner, curObj, curSkill, ChConfig.TriggerType_AddLayer, tick)
            
            __BuffCanRemain(buffState, curBuff, i, resultTime, plusValueList, buffOwner)
            # 此处考虑下plusValue变强是否刷属性
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
@@ -816,6 +816,11 @@
        
    return True
#ntSummon:(3)普通召唤兽,可继承主人基础属性如攻击
#ntElf:(4)玩家替身,完全拥有玩家属性和被动功能
#ntFairy :(7)同ntSummon,但技能可触发被动功能
# ntElf 定义为人物使用对地持续性技能,并且人物可以移动,则需要ntElf做依托物的情况
# 那么ntElf执行人物的伤害计算和被动触发效果
# 被动技能只处理玩家,宠物,和灵
@@ -825,7 +830,7 @@
        return attacker
    
    npcType = attacker.GetType()
    if npcType not in [IPY_GameWorld.ntPet, IPY_GameWorld.ntElf]:
    if npcType not in [IPY_GameWorld.ntPet, IPY_GameWorld.ntElf, IPY_GameWorld.ntFairy]:
        if attacker.GetIsBoss():
            return attacker
        return
@@ -834,7 +839,7 @@
        # --宠物
        return attacker
    
    if npcType == IPY_GameWorld.ntElf:
    else:
        # ntElf 定义为人物使用对地持续性技能,并且人物可以移动,则需要ntElf做依托物的情况
        # 那么ntElf执行人物的伤害计算和被动触发效果
        attacker = NPCCommon.GetSummonNPCOwner(IPY_GameWorld.gotPlayer, attacker)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
@@ -3426,7 +3426,9 @@
    if skillAim == ChConfig.Def_UseSkillAim_None:
        if curSkill.GetSkillType() in ChConfig.Def_CanAttackSkill_List:
            if target and target.GetGameObjType() == IPY_GameWorld.gotNPC and target.GetType() == IPY_GameWorld.ntElf:
            if target and target.GetGameObjType() == IPY_GameWorld.gotNPC and target.GetGameNPCObjType() == IPY_GameWorld.gnotSummon:
                owner = NPCCommon.GetNpcObjOwnerDetail(target)
                if owner and owner.GetID() == attacker.GetID():
                # 有害技能特殊处理,不能对自己的召唤物释放
                target = None