骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索
购买CDKEY 小黑盒加速器
查看: 3751|回复: 4

[讨论] 关于战场触发器减伤的一个问题

[复制链接]

21

主题

77

回帖

334

积分

贵族[MOD作者]

Rank: 7Rank: 7Rank: 7

UID
3154436
第纳尔
1403
精华
1
互助
13
荣誉
14
贡献
10
魅力
129
注册时间
2020-4-2

霸主正版勋章

鲜花(39) 鸡蛋(0)
发表于 2021-10-19 21:51:49 | 显示全部楼层 |阅读模式
本帖最后由 vegetto 于 2022-11-29 10:42 编辑

例如我给玩家设置了一个技能,受到伤害减少一半。于是我写了一个触发器比如:
jianshang = (

  ti_on_agent_hit, 0, 0, [],
  [
  (store_trigger_param_1,":shohaizhe"),##受害者
  (store_trigger_param_3,":wuqishanghai"),##伤害


  (eq, ":shohaizhe", ":wanjia"),
  (val_div, ":wuqishanghai", 2),
  (set_trigger_result, ":wuqishanghai"),
  ])


然后我又想给所有战场上的人设置一个技能,攻击时有概率造成双倍伤害(暴击),这时候我是需要再重新写一个触发器呢还是只能在上面这个触发器里写。

重新写一个暴击的触发器的话,那上面这个减伤的触发器还会不会起效果?
不知我表达清楚了没有。

55

主题

2759

回帖

1769

积分

子爵[版主]

吟游诗人

Rank: 7Rank: 7Rank: 7

UID
3054380
第纳尔
23809
精华
2
互助
57
荣誉
44
贡献
916
魅力
1418
注册时间
2019-1-18

骑砍中文站APP会员勋章原版正版勋章战团正版勋章火与剑正版勋章拿破仑正版勋章维京征服正版勋章霸主正版勋章剧本设计大奖赛骑友真人秀Ⅷ勋章骑友真人秀Ⅶ勋章骑友真人秀Ⅸ勋章

QQ
鲜花(512) 鸡蛋(2)
发表于 2021-10-19 22:26:36 | 显示全部楼层
你这段代码....写了和没写好像没什么区别啊
珍惜 奉献 不负韶华

5

主题

201

回帖

122

积分

见习骑士

Rank: 3

UID
3103735
第纳尔
1596
精华
0
互助
10
荣誉
1
贡献
0
魅力
34
注册时间
2019-9-10
鲜花(32) 鸡蛋(0)
发表于 2021-10-20 00:15:56 | 显示全部楼层
同类型的触发器最好写在一块,或者错开触发时间,否则返回值会覆盖。比如这样,优先计算暴击伤害,然后计算减伤值。
change_damage = (
  ti_on_agent_hit, 0, 0, [],
   [
    (get_player_agent_no, ":player_agent"),
    (store_trigger_param_1, ":victim"),
    (store_trigger_param_2, ":attacker"),
    (store_trigger_param_3, ":damage"),
    (assign, ":cur_damage", ":damage"),
    (agent_is_alive, ":victim"),
    (agent_is_alive, ":attacker"),
    (agent_is_human, ":victim"),
    (agent_is_human, ":attacker"),
    (agent_get_wielded_item, ":wielded_item", ":attacker"),
    (store_random_in_range, ":range", 1, 15),
    (try_begin),
       (gt, ":wielded_item", 0),
       (gt, ":range", 5),
       (val_mul, ":cur_damage", 2),
    (try_end),
    (try_begin),
       (eq, ":victim", ":player_agent"),
       (val_div, ":cur_damage", 2),
    (try_end),
    (assign, reg1, ":cur_damage"),
    (set_trigger_result, reg1),
   ])

鲜花鸡蛋

stevenxxy007  在2021-10-20 15:27  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下
已退

58

主题

960

回帖

545

积分

子爵[版主]

Rank: 7Rank: 7Rank: 7

UID
81513
第纳尔
5223
精华
1
互助
18
荣誉
5
贡献
100
魅力
124
注册时间
2008-6-26
QQ
鲜花(120) 鸡蛋(0)
发表于 2021-10-20 15:27:16 | 显示全部楼层
在那悠远的苍穹 发表于 2021-10-20 00:15
同类型的触发器最好写在一块,或者错开触发时间,否则返回值会覆盖。比如这样,优先计算暴击伤害,然后计算 ...

正解。
再补充一下,关于有返回值的触发器,逻辑必须写在一起。否则只有一个会起效果~当然如果不需要返回值,比如ti_on_agent_hit仅仅只是需要在这个触发条件时,需要干一些与伤害值无关的事情,不用set_trigger_result时,可以分开写。ti_on_agent_killed_or_wounded也同理~
如果是战团源码的话,楼主的这个逻辑请写在skill_overhaul_reduce_damage下

0

主题

26

回帖

8

积分

平民

Rank: 1

UID
3014109
第纳尔
73
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2018-7-16
鲜花(0) 鸡蛋(0)
发表于 2023-5-25 17:38:53 | 显示全部楼层
幼稚园殺手 发表于 2021-10-19 22:26
你这段代码....写了和没写好像没什么区别啊

捉到杀手11111111111
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

Archiver|手机版|小黑屋|骑马与砍杀中文站

GMT+8, 2024-11-19 10:27 , Processed in 0.108304 second(s), 26 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表