骑马与砍杀中文站论坛

标题: 回血、回复弹药等小修改 [打印本页]

作者: 我勒个大超    时间: 2022-12-6 00:57
标题: 回血、回复弹药等小修改
本帖最后由 我勒个大超 于 2023-1-16 04:34 编辑

[strike]炸鸡带不动砍2[/strike]闲来无事回坑潘德,手痒弄了个触发器,大抵是老套的攻击回血、击杀回血加速恢复弹药加属性,我倒是十分钟爱这个方面的触发器,技术力有限,只在mission_templates动了手脚。(只对英雄单位有效)
大抵是没有bug了罢(边玩边测试ing)

[spoiler=内容]单位死亡时触发
1、只有击杀单位为英雄且击杀单位与死亡单位非友军时触发
2、x(击杀单位武器熟练度之和)>y(1到2000间随机数)
且y<1000:
        击杀者对死亡单位五米内一个敌人施加武器伤害并回复造成伤害50%血量
        恢复盾牌耐久
3、当z(弹药相关熟练度)*2>y:击杀者恢复弹药*1
        当z>y:击杀者再恢复弹药*1(弩和火枪为重新填装)
4、当死亡单位为英雄时:
        击杀单位及其坐骑血量回满
        队伍增加2000经验
        增加一点力量/敏捷/智力/魅力
           如果属性增加造成溢出,则改为增加以改属性为前置的随机技能
           如果技能增加造成溢出,则改为增加随机熟练度两点
5、当死亡单位非英雄时:

        击杀单位恢复血量(等级/3),坐骑恢复血量(等级/2%)(非玩家英雄回血效果翻倍)
        当死亡单位等级大于50时:
           击杀单位增加随机熟练度一点[/spoiler]
[spoiler=py源码]      (ti_on_agent_killed_or_wounded,0,0,[],        [
          (store_trigger_param_1, ":dead_agent"),
          (store_trigger_param_2, ":killer_agent"),
          (agent_is_alive,":killer_agent"),
          (agent_is_human,":killer_agent"),
          (agent_is_human,":dead_agent"),
          (agent_get_troop_id, ":killer_troop", ":killer_agent"),
          (troop_is_hero, ":killer_troop"),
          (agent_get_team,":killer_team", ":killer_agent"),
          (agent_get_team,":dead_team", ":dead_agent"),
          (neg|eq, ":killer_team", ":dead_team"),
          (store_random_in_range, ":probability", 1, 2001),
          (assign, ":ammo_item", -1),
          (assign, ":lrweapon_slot",-1),
          (assign, ":damage",-1),
          (try_for_range,":slot_no",0,4),
            (agent_get_item_slot,":item",":killer_agent",":slot_no"),
            (ge,":item",0),
            (item_get_type,":type",":item"),
            (try_begin),
              (this_or_next|eq,":type",5),
              (this_or_next|eq,":type",6),
              (this_or_next|eq,":type",10),
              (eq,":type",18),
              (assign, ":ammo_item", ":item"),
              (assign, ":ammo_slot", ":slot_no"),
              (item_get_type,":ammo_type",":ammo_item"),
            (try_end),
            (try_begin),
              (this_or_next|eq,":type",9),
              (this_or_next|eq,":type",16),
              (eq,":type",17),
              (assign, ":lrweapon_item", ":item"),
              (assign, ":lrweapon_slot", ":slot_no"),
              (item_get_type,":lrweapon_type",":lrweapon_item"),
            (try_end),
          (try_end),
          (try_begin),
            (ge,":ammo_item",0),
            (try_begin),
              (eq, ":ammo_type", 5),
              (store_proficiency_level,":askill",":killer_troop",3),
            (else_try),
              (eq, ":ammo_type", 6),
              (store_proficiency_level,":askill",":killer_troop",4),
            (else_try),
              (eq, ":ammo_type", 10),
              (store_proficiency_level,":askill",":killer_troop",5),
            (else_try),
              (eq, ":ammo_type", 18),
              (store_proficiency_level,":askill",":killer_troop",6),
            (try_end),
            (val_mul, ":askill", 2),
            (ge, ":askill", ":probability"),
            (agent_get_item_cur_ammo, ":cur", ":killer_agent", ":ammo_slot"),
            (val_add, ":cur", 1),
            (try_begin),
              (this_or_next|eq, ":ammo_type", 5),
              (eq, ":ammo_type", 10),
              (val_div, ":askill", 2),
              (ge, ":askill", ":probability"),
              (val_add, ":cur", 1),
            (try_end),
            (agent_set_ammo,":killer_agent",":ammo_item",":cur"),
          (try_end),
          (try_begin),
            (ge,":lrweapon_item",0),
            (try_begin),
              (eq, ":lrweapon_type", 9),
              (store_proficiency_level,":lskill",":killer_troop",4),
            (else_try),
              (this_or_next|eq,":lrweapon_type",16),
              (eq,":lrweapon_type",17),
              (store_proficiency_level,":lskill",":killer_troop",6),
            (try_end),
            (ge, ":lskill", ":probability"),
            (agent_get_item_cur_ammo, ":cur", ":killer_agent", ":lrweapon_slot"),
            (val_add, ":cur", 1),
            (agent_set_ammo,":killer_agent",":lrweapon_item", ":cur"),
          (try_end),
          (assign, ":skill_sum",0),
          (try_for_range,":skill_no",0,6),
            (store_proficiency_level,":skill",":killer_troop",":skill_no"),
            (val_add, ":skill_sum", ":skill"),
          (try_end),
          (try_begin),
            (ge, ":skill_sum", ":probability"),
            (le, ":probability",1000),
            (agent_get_position, pos0, ":dead_agent"),
            (try_for_agents,":agent"),
              (agent_get_team,":agent_team", ":agent"),
              (neg|eq, ":killer_team", ":agent_team"),
              (agent_get_position, pos1, ":agent"),
              (get_distance_between_positions_in_meters, ":distance", pos0, pos1),
              (ge, 5, ":distance"),
              (assign, ":aim", ":agent"),
            (try_end),
            (agent_deliver_damage_to_agent_advanced, ":damage", ":killer_agent", ":aim",0),
            (val_div, ":damage", 2),
            (agent_refill_wielded_shield_hit_points, ":killer_agent"),
          (try_end),
          (store_character_level,":level",":killer_troop"),
          (agent_get_troop_id, ":dead_troop", ":dead_agent"),
          (try_begin),
            (troop_is_hero, ":dead_troop"),
            (store_random_in_range, ":id", 0, 4),
            (store_attribute_level,":attributes",":killer_troop",":id"),
            (try_begin),
              (le, ":attributes",63),
              (troop_raise_attribute, ":killer_troop", ":id", 1),
            (else_try),
              (try_begin),
                (eq, ":id", 0),
                (store_random_in_range, ":sid", 33, 37),
              (else_try),
                (eq, ":id", 1),
                (store_random_in_range, ":sid", 22, 28),
              (else_try),
                (eq, ":id", 2),
                (store_random_in_range, ":sid", 7, 18),
              (else_try),
                (eq, ":id", 1),
                (store_random_in_range, ":sid", 0, 3),
              (try_end),
              (store_skill_level, ":skill_level", ":sid", ":killer_troop"),
              (try_begin),
                (le, ":skill_level",10),
                (troop_raise_skill, ":killer_troop", ":sid", 1),
              (else_try),
                (store_random_in_range, ":wptid", 0, 7),
                (troop_raise_proficiency_linear, ":killer_troop", ":wptid", 2),
              (try_end),
            (try_end),
            (assign, ":hp", 100),
            (assign, ":val", 0),
            (agent_get_party_id, ":killer_party", ":killer_agent"),
            (ge, ":killer_party", 0),
            (party_add_xp, ":killer_party", 2000),
          (else_try),
            (try_begin),
              (store_character_level, ":dead_level",":dead_troop"),
              (ge, ":dead_level", 50),
              (store_random_in_range, ":wptid1", 0, 7),
              (troop_raise_proficiency_linear, ":killer_troop", ":wptid1", 1),
            (try_end),
            (store_div, ":ahp", ":level", 3),
            (store_agent_hit_points, ":hp", ":killer_agent",1),
            (try_begin),
              (agent_is_non_player, ":killer_agent"),
              (val_mul, ":ahp", 2),
            (try_end),
            (val_add, ":hp", ":ahp"),
            (assign, ":val", 1),
            (ge, ":damage", 0),
            (val_add, ":hp", ":damage"),
          (try_end),
          (agent_set_hit_points, ":killer_agent", ":hp",":val"),
          (agent_get_horse, ":horse",":killer_agent"),
          (ge, ":horse", 0),
          (store_agent_hit_points, ":horse_hp", ":horse"),
          (try_begin),
            (eq, ":val", 0),
            (assign, ":horse_hp", 100),
          (else_try),
            (val_div, ":level", 2),
            (val_add, ":horse_hp", ":level"),
          (try_end),
          (agent_set_hit_points, ":horse", ":horse_hp"),
        ]
        ),
[/spoiler]
[spoiler=txt代码]-26.000000 0.000000 0.000000  0  167 2071 1 1224979098644774912 2072 1 1224979098644774913 1702 1 1224979098644774913 1704 1 1224979098644774913 1704 1 1224979098644774912 1718 2 1224979098644774914 1224979098644774913 1507 1 1224979098644774914 1770 2 1224979098644774915 1224979098644774913 1770 2 1224979098644774916 1224979098644774912 2147483679 2 1224979098644774915 1224979098644774916 2136 3 1224979098644774917 1 2001 2133 2 1224979098644774918 -1 2133 2 1224979098644774919 -1 2133 2 1224979098644774920 -1 6 3 1224979098644774921 0 4 1804 3 1224979098644774922 1224979098644774913 1224979098644774921 30 2 1224979098644774922 0 1570 2 1224979098644774923 1224979098644774922 4 0 1073741855 2 1224979098644774923 5 1073741855 2 1224979098644774923 6 1073741855 2 1224979098644774923 10 31 2 1224979098644774923 18 2133 2 1224979098644774918 1224979098644774922 2133 2 1224979098644774924 1224979098644774921 1570 2 1224979098644774925 1224979098644774918 3 0 4 0 1073741855 2 1224979098644774923 9 1073741855 2 1224979098644774923 16 31 2 1224979098644774923 17 2133 2 1224979098644774926 1224979098644774922 2133 2 1224979098644774919 1224979098644774921 1570 2 1224979098644774927 1224979098644774926 3 0 3 0 4 0 30 2 1224979098644774918 0 4 0 31 2 1224979098644774925 5 2176 3 1224979098644774928 1224979098644774914 3 5 0 31 2 1224979098644774925 6 2176 3 1224979098644774928 1224979098644774914 4 5 0 31 2 1224979098644774925 10 2176 3 1224979098644774928 1224979098644774914 5 5 0 31 2 1224979098644774925 18 2176 3 1224979098644774928 1224979098644774914 6 3 0 2107 2 1224979098644774928 2 30 2 1224979098644774928 1224979098644774917 1977 3 1224979098644774929 1224979098644774913 1224979098644774924 2105 2 1224979098644774929 1 4 0 1073741855 2 1224979098644774925 5 31 2 1224979098644774925 10 2108 2 1224979098644774928 2 30 2 1224979098644774928 1224979098644774917 2105 2 1224979098644774929 1 3 0 1776 3 1224979098644774913 1224979098644774918 1224979098644774929 3 0 4 0 30 2 1224979098644774926 0 4 0 31 2 1224979098644774927 9 2176 3 1224979098644774930 1224979098644774914 4 5 0 1073741855 2 1224979098644774927 16 31 2 1224979098644774927 17 2176 3 1224979098644774930 1224979098644774914 6 3 0 30 2 1224979098644774930 1224979098644774917 1977 3 1224979098644774929 1224979098644774913 1224979098644774919 2105 2 1224979098644774929 1 1776 3 1224979098644774913 1224979098644774926 1224979098644774929 3 0 2133 2 1224979098644774931 0 6 3 1224979098644774932 0 6 2176 3 1224979098644774933 1224979098644774914 1224979098644774932 2105 2 1224979098644774931 1224979098644774933 3 0 4 0 30 2 1224979098644774931 1224979098644774917 2147483680 2 1224979098644774917 1000 1710 2 0 1224979098644774912 12 1 1224979098644774934 1770 2 1224979098644774935 1224979098644774934 2147483679 2 1224979098644774915 1224979098644774935 1710 2 1 1224979098644774934 711 3 1224979098644774936 0 1 30 2 5 1224979098644774936 2133 2 1224979098644774937 1224979098644774934 3 0 1827 4 1224979098644774920 1224979098644774913 1224979098644774937 0 2108 2 1224979098644774920 2 1692 1 1224979098644774913 3 0 2171 2 1224979098644774938 1224979098644774914 1718 2 1224979098644774939 1224979098644774912 4 0 1507 1 1224979098644774939 2136 3 1224979098644774940 0 4 2172 3 1224979098644774941 1224979098644774914 1224979098644774940 4 0 2147483680 2 1224979098644774941 63 1520 3 1224979098644774914 1224979098644774940 1 5 0 4 0 31 2 1224979098644774940 0 2136 3 1224979098644774942 33 37 5 0 31 2 1224979098644774940 1 2136 3 1224979098644774942 22 28 5 0 31 2 1224979098644774940 2 2136 3 1224979098644774942 7 18 5 0 31 2 1224979098644774940 1 2136 3 1224979098644774942 0 3 3 0 2170 3 1224979098644774943 1224979098644774942 1224979098644774914 4 0 2147483680 2 1224979098644774943 10 1521 3 1224979098644774914 1224979098644774942 1 5 0 2136 3 1224979098644774944 0 7 1523 3 1224979098644774914 1224979098644774944 2 3 0 3 0 2133 2 1224979098644774945 100 2133 2 1224979098644774946 0 1716 2 1224979098644774947 1224979098644774913 30 2 1224979098644774947 0 1674 2 1224979098644774947 2000 5 0 4 0 2171 2 1224979098644774948 1224979098644774939 30 2 1224979098644774948 50 2136 3 1224979098644774949 0 7 1523 3 1224979098644774914 1224979098644774949 1 3 0 2123 3 1224979098644774950 1224979098644774938 3 1720 3 1224979098644774945 1224979098644774913 1 4 0 1707 1 1224979098644774913 2107 2 1224979098644774950 2 3 0 2105 2 1224979098644774945 1224979098644774950 2133 2 1224979098644774946 1 30 2 1224979098644774920 0 2105 2 1224979098644774945 1224979098644774920 3 0 1721 3 1224979098644774913 1224979098644774945 1224979098644774946 1714 2 1224979098644774951 1224979098644774913 30 2 1224979098644774951 0 1720 2 1224979098644774952 1224979098644774951 4 0 31 2 1224979098644774946 0 2133 2 1224979098644774952 100 5 0 2108 2 1224979098644774938 2 2105 2 1224979098644774952 1224979098644774938 3 0 1721 2 1224979098644774951 1224979098644774952  
[/spoiler]

































作者: 舞阳城下    时间: 2022-12-6 23:17
有通用所有MOD的吗
作者: 我勒个大超    时间: 2022-12-6 23:17
舞阳城下 发表于 2022-12-6 23:17
有通用所有MOD的吗

不出意外的话应该是的
作者: 舞阳城下    时间: 2022-12-6 23:18
我勒个大超 发表于 2022-12-6 23:17
不出意外的话应该是的

好的,谢谢
作者: 一念无云    时间: 2022-12-10 19:51
很不错.
        
作者: 枯萌    时间: 2022-12-20 06:32
大佬麻烦问下怎么用啊
作者: 我勒个大超    时间: 2022-12-28 21:58
枯萌 发表于 2022-12-20 06:32
大佬麻烦问下怎么用啊

站内应该有很多教程的才对
作者: 我勒个大超    时间: 2022-12-28 22:01
枯萌 发表于 2022-12-20 06:32
大佬麻烦问下怎么用啊

https://bbs.mountblade.com.cn/thread-509858-1-1.html
这个帖子可以看看
作者: 2226957549    时间: 2023-1-16 13:07
我勒个大超 发表于 2022-12-28 22:01
https://bbs.mountblade.com.cn/thread-509858-1-1.html
这个帖子可以看看

大佬我看了你推荐的帖子,那个帖子里面行数是加4,你这个是加1吗

作者: 我勒个大超    时间: 2023-1-16 20:55
2226957549 发表于 2023-1-16 13:07
大佬我看了你推荐的帖子,那个帖子里面行数是加4,你这个是加1吗

嗯,他的有4个触发器我这个只有1个
作者: 2366666    时间: 2023-4-2 18:09
本帖最后由 2366666 于 2023-4-2 19:35 编辑

大佬,我用弓骑兵AI自动添加器打了一个AI。mission有俩个文件,分别是mission_templates和mission_templates.txt.bakkkk。我想问这个代码是打到原版文件里面还是新的里面呢
作者: 2366666    时间: 2023-4-2 19:55
2366666 发表于 2023-4-2 18:09
大佬,我用弓骑兵AI自动添加器打了一个AI。mission有俩个文件,分别是mission_templates和mission_template ...

可能是新的,原版的我打了一遍,进游戏测试没有效果
作者: yangfandna    时间: 2023-4-26 13:07
高手
作者: skyreach    时间: 2023-5-4 11:37
大佬,这源码干嘛的呢?需要复制进哪个文档不?
作者: 支人善刃    时间: 2023-5-9 23:01
汇报一下红字
SCRIPT ERROR ON OPCODE 1776: Invalid Item Kind ID: 51602328; LINE NO:77:
At Mission_Template mst_bandit_lair trigger no:0 consequences.
At Mission_Template mst_bandit_lair trigger no:0 consequences.
At Mission_Template mst_bandit_lair trigger no:0 consequences.


SCRIPT ERROR ON OPCODE 1776: Invalid Item Kind ID: 20216; LINE NO:77
At MissionTemplate mst_lead_charge trigger no:0 consequences
At MissionTemplate mst_lead_charge trigger no:0 consequences
At MissionTemplate mst_lead_charge trigger no:0 consequences

作者: 支人善刃    时间: 2023-5-9 23:09
这个红字问题能解决的话戳我一下
作者: 小奉先    时间: 2024-4-15 23:15

请问一下楼主,如果要去掉杀敌对领主随机加属性,应该删哪一段代码
作者: 樱舞怨歌    时间: 2024-10-13 20:13
友方英雄吗 还是全体




欢迎光临 骑马与砍杀中文站论坛 (https://bbs.mountblade.com.cn/) Powered by Discuz! X3.4