用户工具

站点工具


skill_frame

这是本文档旧的修订版!


技能框架

hero_config 英雄配置

skill_config 技能配置

skill_behavior_config 技能行为配置

buff_config buff配置

技能表现

技能表现主要分为 释放(Cast) 和 结果(Result) 两个大类

释放中又细分为 施放者效果(Cast) 和 全局效果(Show)

结果分为 飞行(Fly) 和 (Hit命中)

一个技能至少有一个释放体, 但有若干个结果

释放的表现预制体为 EffectBattleSkillCast 的 Clone

结果表现预制体为 EffectBattleSkillResult 的 Clone

其中几个主要控件的位置:

Cast 绑定在施放者上
Show 自由摆放
Fly 绑定在施放者,指向目标
Hit 绑定在目标上

几个时机

* 开始结果表现的时机,配置在释放结果中,释放结果是有类型区别的 参考SKILL_RESULT_TYPE

* 技能结算可以触发 OnTargetHurt(执行目标受伤动画,可能多套) 和 OnResult(跳数字,变血条)

事件绑定的方法

技能扩展

沈默 2019/05/05 17:07

枚举改动

ATTRIB 属性部分增加

[44] DMG_RESIST 免伤率
[45] NORMAL_RESIST 普攻免伤率
[46] SKILL_RESIST 技能免伤率
[47] SKILL_CRITICAL 技能额外暴击率
[51] RED_RESIST_R 红色抗性(可以是负数)
[52] GREEN_RESIST_R 绿色抗性(可以是负数)
[53] BLUE_RESIST_R 蓝色抗性(可以是负数)
[54] YELLOW_RESIST_R 黄色抗性(可以是负数)
[55] PURPLE_RESIST_R 紫色抗性(可以是负数)
[61] RED_EXTRA_R 对红色伤害额外提高
[62] GREEN_EXTRA_R 对绿色伤害额外提高
[63] BLUE_EXTRA_R 对蓝色伤害额外提高
[64] YELLOW_EXTRA_R 对黄色伤害额外提高
[65] PURPLE_EXTRA_R 对紫色伤害额外提高

SKILL_TARGET_TYPE 做出了调整

1ALL_ENEMY敌方全体
2SINGLE_ENEMY敌方目标单体
3GROUP_ENEMY敌方目标以及附近(三个)
4NEAR_BY_ENEMY敌方目标的左右(两个)
6OTHER_ENEMY敌方目标以外的所有(四个)
7RANDOM_ENEMY敌方随机目标
11ALL_FRIEND全部我方
12SINGLE_FRIEND我方单体(道具用)
13GROUP_FRIEND我方目标以及附近(三个)
14NEAR_BY_FRIEND我方目标的左右(两个)
15SELF我方施法者
16OTHER_FRIEND我方目标以外的(四个)
17RANDOM_FRIEND我方随机队友(优先其他人而不是自己)

新增 枚举 SKILL_ARG_SOURCE 技能来源参数,主要是采集一些过程参数,然后纳入后面的结算

0NONE技能参数来源(无)
1TOTAL_DAMAGE前面所有行为的伤害
2TOTAL_CRITICAL_DAMAGE前面所有行为的暴击伤害
3TOTAL_COUNT前面所有行为的击中数量
4TOTAL_CRITICAL_COUNT前面所有行为的暴击数量
5TOTAL_KILL_COUNT前面所有行为的击杀数量
6HP_COMPARE_TARGET敌我HP百分比比较(敌方多为1)
7HP_COMPARE_SELF敌我HP百分比比较(我方的多为1)
8HP_LOST我方损失血量百分比

技能效果方法。

SKILL_EFFECT_TYPE 调整了部分枚举,其中前3个关联到了 SKILL_ARG_SOURCE

[1] DAMAGE_PERCENT 百分比伤害(参数1 百分比填正数,参数2 根据ArgSource的追加系数)
[11] HEAL_PERCENT 百分比治疗(可以乘以 ArgSource的追加系数)
[12] HEAL_NUM 绝对值治疗(可以乘以 ArgSource的追加系数)
[44] CAST_SKILL 几率性触发某后续技能(参数1:技能id(8开头) 参数2:几率)
[45] ROLL_SKILL 权重性触发某后续技能(参数1:技能id(8开头) 参数2:权重)
[46] PICK_SKILL 选择性触发某后续技能(参数1:技能id(8开头)要独立UI)

BUFF_GROUP 新增[0] FOREVER 永久持续类(不可驱散,不会覆盖), 内部实现是用一个自增的大数字

BUFF_EFFECT 新增

[12] HEAL 吸血(参数2,恢复的血量百分比)
[13] FEEDBACK 反噬(参数2,反噬的比例)
[14] SKILL_FEEDBACK 技能反噬(参数2,技能反噬的比例)
[15] OWNER_HEAL 造成伤害时给释放buff的人回血(参数2,回血比例)
[16] NO_BUFF 不能获得增益
[17] SKILL_DAMAGE 技能增伤(参数2: buff类型(0/1/2), 参数3:单个增加技能伤害的数值)
[21] TURN_SKILL 回合结束的时候释放某个技能(参数2:技能id 参数3:技能参数, 参数4:技能参数)
[22] END_SKILL BUFF结束的时候释放某个技能(参数2:技能id 参数3:技能参数, 参数5:技能参数)
[23] DEAD_SKILL 死亡的时候释放某个技能(参数2:技能id 参数3:技能参数, 参数4:技能参数)
[24] DEAD_OWNER_SKILL 死亡的时候由施法者释放某个技能(参数2:技能id 参数3:技能参数, 参数4:技能参数)
[25] HURT_SKILL 受到伤害时触发
[26] DISPELL_SKILL 驱散时触发技能
[27] DODGE_SKILL 躲闪后触发技能
[31] SHIELD 护盾(参数2,护盾值,参数3 是否被击穿)
[32] SKILL_BLOCK 禁止释放技能
[33] MANA_BLOCK 禁止回魔(用于表现)
[34] TIME_MACHINE 时光标记

原型表改动

skill_config 新增 7:buff技能 8:连带技能(behavior 触发)

skill_behavior_config调整字段

[effect_condition] 生效条件 ATTRIB的条件表达式,比如(7>0.5)表示血量大于50% 颜色过滤也可以这样用
[buff_condition] 如果目标身上有该id的buff才生效,用于buff叠加,0表示不判断,负数表示仅在buff不存在的时候才能触发
[arg_source] 技能额外来源参数 SKILL_ARG_SOURCE
[arg_source_max] 技能额外来源参数最大值

buff_config.display_mode 显示模式 1:正常显示 0:不显示icon和长

制作/填表技巧

* 在这个回合实现 死亡后如何如何,或者临时增加技能属性,可以增加一个0回合的buff, 回合结束的时候会被移除

* 可以使用 arg_source / arg_source_max 来进行 特定输入的整合,主要在 按照暴击吸血,按照伤害回血,按照是否暴击来增加伤害等。arg_source_max 可以控制最大生效次数。

* buff叠加机制,可以通过skill_behavior_config.buff_condition 来判断 是否包含某个buff,如果是一个连续破甲之类的buff。
我们可以通过 多个behavior + 多个buff的机制,进行buff替换。把不同堆叠的buff做成不同的buff

* behavior可以对目标进行条件判断,从而达到一些过滤目的。 比如血量低于多少执行 behavior 1,高于则 behavior 2
还能配置不同的 技能表现

* 条件还可以用于颜色过滤 ,比如 (41=3)表示 ,只有 蓝色可以生效

* 一定概率 触发,可以通过 ROLL_SKILL权重性触发 来进行 抽奖

* 卡牌大师需要使用 PICK_SKILL选择性触发

* 回合结束时 需要回血等功能,配置成 TURN_SKILL 回合结束的时候释放某个技能 这样。配置合理的受击特效。

* 禁止回魔 、禁止施法、护盾 ,技能选择,这几个功能需要特别的UI逻辑

* OWNER_HEAL造成伤害时给释放buff的人回血 和 DEAD_OWNER_SKILL 死亡的时候由施法者释放某个技能 这两个需要记住buff的释放者

* 死亡后触发技能、回合结束触发技能、攻击躲闪后触发技能等,都是buff的很自由的扩展方式

skill_frame.1557052111.txt.gz · 最后更改: 2019/05/05 18:28 由 shenmo