- 好友
- 4
- 在线时间
- 0 小时
- 最后登录
- 2024-12-2
见习骑士
- UID
- 3199602
- 第纳尔
- 1162
- 精华
- 0
- 互助
- 36
- 荣誉
- 0
- 贡献
- 1
- 魅力
- 227
- 注册时间
- 2020-9-4
鲜花( 60) 鸡蛋( 0)
|
本帖最后由 奥杜因阿卡托什 于 2024-2-15 16:41 编辑
通过物品触发器给武器上粒子效果,是魔球都能做到的事,比如典中典的火把,但是这样上上去的粒子效果没法控制开闭,仅仅是武器自带的一个特殊视效而已,算不上一般意义上的附魔。为了能控制特效的开闭,我琢磨了好几种办法,最后表现如视频所示。https://www.bilibili.com/video/B ... 13c7736d290eab41395
现附代码如下:
先从slot开始。
下面的代码是从我的状态系统里抠出来的,放进某个(1,0,0的战场触发器里就行。
- (try_for_agents, ":agent_no"),
- (agent_get_slot, ":timer", ":agent_no", slot_flame_weapon),
- (gt, ":timer", 0),
- (try_begin),
- (eq, ":timer", 2),#等于2时结束附魔,通过刷新武器取消特效。附魔类效果的检测条件均为大于1小于阈值。若是在附魔持续时间内更换了武器(切换武器或者捡起武器等),则直接设置为1,避免重复刷新武器。
- (agent_get_wielded_item, ":weapon_no", ":agent_no", 0),
- (agent_unequip_item, ":agent_no", ":weapon_no", 1),
- (agent_equip_item, ":agent_no", ":weapon_no", 1),
- (agent_set_wielded_item, ":agent_no", ":weapon_no"),#刷新掉粒子效果
- (try_end),
- (try_begin),
- (lt, ":timer", 阈值),#附魔时设置为阈值,等于阈值时持续时间不会减少。在物品触发器中附魔过一次后值减少一,开始随时间减少。
- (val_sub, ":timer", 1),
- (try_end),
- (try_end),
复制代码
因为挂在武器上的那种粒子效果只能用物品触发器写,而四种物品触发器中shield和missile排除,init试了一下发现会导致数据混乱,所以使用ti on weapon attack。
- (ti_on_weapon_attack, [
- (store_trigger_param_1, ":agent_no"),
- (assign, ":value_no", 阈值),#阈值
- (agent_slot_ge, ":agent_no", slot_flame_weapon, ":value_no"),
- (val_sub, ":value_no", 1),
- (agent_set_slot, ":agent_no", slot_flame_weapon, ":value_no"),#在等于阈值时不会附魔,也不会减少时间,附魔过一次后设置为小于阈值,并开始减少时间。
- # (agent_set_animation, ":agent_no", "anim_active_enchant_1"),#这一行是自己搓的附魔动作,不要就是正常攻击,可以自己准备一个
- (set_position_delta, 0, 60, 0),
- (particle_system_add_new, "psys_torch_fire"),
- (set_current_color, 150, 130, 70),
- (add_point_light, 10, 30),
- ]),
复制代码 最后是以防中途切换武器的战场触发器:
- (ti_on_item_wielded, 0, 0,
- [],
- [
- (store_trigger_param_1, ":agent_no"),
- (agent_get_slot, ":timer", ":agent_no", slot_flame_weapon),
- (gt, ":timer", 1),
- (agent_set_slot, ":agent_no", slot_flame_weapon, 1),
- ]),
复制代码 要写伤害加成的之类的判定,记得从slot中获取的值得范围为大于等于2,小于那个自己填的阈值。
附魔之外,还有一个引子。在上面物品触发器那一部分,有一个利用更高优先级的动作覆盖普通攻击的操作。利用这个手段,理论上可以实现像老环黑魂那样的武器战技、战灰、特殊动作,而且由于仅仅是覆盖了一下动作,理论上还是伤害判定还是在的。简化后的物品触发器是
- (ti_on_weapon_attack, [
- (store_trigger_param_1, ":agent_no"),
- (key_is_down, key_e),
- (agent_set_animation, ":agent_no", "anim_active_jumping_chop"),
- ]),
复制代码 填入的动作设置为
- ["active_jumping_chop", acf_enforce_all|acf_overswing|acf_displace_position, amf_accurate_body|amf_use_weapon_speed|amf_play|amf_priority_striked,
- [0.4, "tiaozhang", 29, 40, blend_in_walk|blend_in_continue, 0, (0, 3, 0), 0.0],
- ],
复制代码 效果是按住E键不放再攻击,能将普通攻击变成特殊动作(我这里写的是个跳劈)
不过实操之后还是有个问题:普通攻击的动作太短了,加上玩家的熟练度加成和武器速度,导致有效判定时间只有0.2秒不到,基本新加的动作稍微花哨一点就来不及造成伤害了,有待进一步的研究。
|
评分
-
查看全部评分
|