骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索
购买CDKEY 衣谷三国
查看: 1420|回复: 1

[功能与代码] 战团:坐镇伤亡率修改,源码!

[复制链接]

15

主题

13

回帖

13

积分

随仆

Rank: 1

UID
3755365
第纳尔
20
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2025-4-10
鲜花(2) 鸡蛋(0)
发表于 2025-5-22 17:06:55 | 显示全部楼层 |阅读模式
本帖最后由 云归太华 于 2025-5-22 17:38 编辑

今天又扒了扒代码,终于处理掉了坐镇离谱的伤亡问题了!


("inflict_casualties_to_party",
    [
      (party_clear, "p_temp_casualties"),
      (store_script_param_1, ":party"), #Party_id
      (call_script, "script_party_count_fit_regulars", ":party"),
      (assign, ":num_fit", reg(0)), #reg(47) = number of fit regulars.
      (store_script_param_2, ":num_attack_rounds"), #number of attacks
      (try_for_range, ":unused", 0, ":num_attack_rounds"),
        (gt, ":num_fit", 0),
        (store_random_in_range, ":attacked_troop_rank", 0 , ":num_fit"), #attack troop with rank reg(46)
        (assign, reg1, ":attacked_troop_rank"),
        (call_script, "script_get_stack_with_rank", ":party", ":attacked_troop_rank"),
        (assign, ":attacked_stack", reg(0)), #reg(53) = stack no to attack.
        (party_stack_get_troop_id,     ":attacked_troop",":party",":attacked_stack"),
        (store_character_level, ":troop_toughness", ":attacked_troop"),
        (val_add, ":troop_toughness", 5),  #troop-toughness = level + 5
        (try_begin),
          (store_skill_level, ":skill", skl_ironflesh, ":attacked_troop"),
          (val_mul, ":skill", 5),
          (val_add, ":troop_toughness", ":skill"),  
        (try_end),
        (assign, ":casualty_chance", 10000),
        (val_div, ":casualty_chance", ":troop_toughness"), #dying chance
        (try_begin),
          (store_random_in_range, ":rand_num", 0 ,10000),
          (lt, ":rand_num", ":casualty_chance"), #check chance to be a casualty
          (store_random_in_range, ":rand_num2", 0, 2), #check if this troop will be wounded or killed
          (try_begin),
            (troop_is_hero,":attacked_troop"), #currently troop can't be a hero, but no harm in keeping this.
            (store_troop_health, ":troop_hp",":attacked_troop"),
            (val_sub, ":troop_hp", 45),
            (val_max, ":troop_hp", 1),
            (troop_set_health, ":attacked_troop", ":troop_hp"),
          (else_try),
            (lt, ":rand_num2", 1), #wounded
            (party_add_members, "p_temp_casualties", ":attacked_troop", 1),
            (party_wound_members, "p_temp_casualties", ":attacked_troop", 1),
            (party_wound_members, ":party", ":attacked_troop", 1),
          (else_try), #killed
            (party_add_members, "p_temp_casualties", ":attacked_troop", 1),
            (party_remove_members, ":party", ":attacked_troop", 1),
          (try_end),
          (val_sub, ":num_fit", 1), #adjust number of fit regulars.
        (try_end),
      (try_end),
  ]),

真是有点小激动啊,终于找到这狗屎东西了!代码的意思详细的大家可以发给ai翻译,我就简单说说,标蓝的部分是原版的,我翻译为坚韧度,坚韧度原版计算是等级+5,战团等级最高的兵就是丝袜骑士和诺皇了!28级,结果是33坚韧度。
以丝袜为例子,坚韧度为33!
代码中用10000除以33,结果是303!
然后再搞一个0到10000的随机数,随机数小于303,那么就会有伤亡!大致意思就是这个意思!我讲的应该比较明白吧,听懂掌声!
然后我加了一个代码,代码功能就是把铁骨技能算进去了!
新的坚韧度为等级加铁骨技能乘以5!
还是以丝袜和诺皇为例子
新公式!
丝袜的坚韧度为33+5*5=58!
诺皇为33+5*7=68!
天啊,诺皇终于崛起了,唯一一个六级兵啊,你终于雄起了!泪目!

然后是标紫色的部分!
这一段以后就是处理伤亡的部分了,随机数计算之后,士兵的结果是伤还是亡,就有说法了!
第一步代码是去随机数,(store_random_in_range, ":rand_num2", 0, 2),取0到2的随机数,但是是左闭右开,其实就是取0与1!
(lt, ":rand_num2", 1), 这个就是伤的判断,如果取的随机数小于1,那么就是伤!否则就是死!
要想调高伤与死的比例,把随机数范围改大一点就行了!
比如说:(store_random_in_range, ":rand_num2", 0, 2),改成(0,3)!随机数取0,1,2三个数字!
然后(lt, ":rand_num2", 1),改成(lt, ":rand_num2", 2),意思是随机数小于2,就是伤状态!
0,1都满足,伤亡的比例就是2:1了!
原来是1:1!
大致就是这样吧!

0

主题

28

回帖

8

积分

平民

Rank: 1

UID
3147122
第纳尔
151
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2020-3-16
鲜花(0) 鸡蛋(0)
发表于 2025-5-23 17:47:05 | 显示全部楼层
那具体的txt怎么改呢,大佬能放出教程吗
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

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

GMT+8, 2025-9-4 13:28 , Processed in 0.073261 second(s), 20 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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