骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

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

[原创] Age of Sword & SorceryBeta 2.0: Guilds & Magic 术士流小bug修改

[复制链接]

1

主题

9

回帖

8

积分

平民

Rank: 1

UID
3260086
第纳尔
94
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2021-8-8
鲜花(1) 鸡蛋(0)
发表于 2021-8-8 18:52:22 | 显示全部楼层 |阅读模式
本帖最后由 haixing 于 2021-8-8 20:02 编辑

Age of Sword & SorceryBeta 2.0: Guilds & Magic 法师流小bug修改
这几天刚刚入手这个国外的mod,体验了一把术士流,遇到了两个bug然后修改了,下面展示修改历程,末尾附上自己修改好的文件,可以直接拿去覆盖
无法增加magic_power的问题

问题描述

在玩法师流的时候,发现开始只有950的magic power, 可以在战场上使用,学技能,但是没有任何可以增加的途径。

猜想应该是在扎营的时候可以用次元石来增加magic power, 次元石可以在术士工会花450买,但是点击充能后只消耗次元石但是没有增加magic power。

问题发现

利用MBCodeEditor反汇编后得到module_game_menus.py,查找magic_charge,逻辑如下:
```python
[
    ("magic_charge", [],
    "Charge magic power [1 Erenite stone]",
    [
        (try_begin),
            (player_has_item, "itm_erenite_stone"),
            (troop_remove_item, "trp_player", "itm_erenite_stone", 1),
            (store_proficiency_level, "$magic_skill", "trp_player", wpt_crossbow),
            (assign, "$magic_power_multiplier", 0),
            (val_mul, "$magic_power_multiplier", "$magic_skill"),
            (assign, "$magic_power_add", 50),
            (val_mul, "$magic_power_add", "$magic_power_multiplier"),
            (troop_add_gold, "trp_magic_power", "$magic_power_add"),
        (else_try),
            (display_log_message, "@you do not have an Erenite Stone in which to charge your powers with.", 0xFF0000),
        (try_end),
    ]
```
显然,作者的意图最终增加的magic power为(弩熟练度*magic_power_multiplier*magic_power_add),但是可能是疏忽把magic_power_multiplier设置成了0.

可以更改逻辑如下:
```python
[
    ("magic_charge", [],
    "Charge magic power [1 Erenite stone]",
    [
        (try_begin),
            (player_has_item, "itm_erenite_stone"),
            (troop_remove_item, "trp_player", "itm_erenite_stone", 1),
            (store_proficiency_level, "$magic_skill", "trp_player", wpt_crossbow),
            (assign, "$magic_power_multiplier", 1),
            (val_mul, "$magic_power_multiplier", "$magic_skill"),
            (assign, "$magic_power_add", 2),
            (val_mul, "$magic_power_add", "$magic_power_multiplier"),
            (troop_add_gold, "trp_magic_power", "$magic_power_add"),
        (else_try),
            (display_log_message, "@You do not have an Erenite Stone in which to charge your powers with.", 0xFF0000),
        (try_end),
    ]
```
这样,每一次充能就是两倍的弩熟练度,不改变游戏的平衡性


解决方案

在menus.txt,查找"1_Erenite_stone"(原始文件708行),原始代码替换成下面代码(建议提前备份):

```txt
mno_magic_charge  0  Charge_magic_power_[1_Erenite_stone]  12 4 0 150 1 288230376151711878 1531 3 360287970189639680 288230376151711878 1 2176 3 144115188075857175 360287970189639680 4 2133 2 144115188075857321 1 2107 2 144115188075857321 144115188075857175 2133 2 144115188075857322 2 2107 2 144115188075857322 144115188075857321 1528 2 360287970189641696 144115188075857322 5 0 1105 2 1585267068834415666 16711680 3 0  .  mno_necrom  0  Necromancy  1 2060 1 864691128455135585  .  mno_planar  0  Planarmancy  1 1105 2 1585267068834415667 16711680  .  mno_thauma  0  Thaumaturgy  1 2060 1 864691128455135586  .  mno_arcmet  0  Arcanemetallurgy  1 1105 2 1585267068834415667 16711680  .  mno_enchan  0  Enchanting  1 1105 2 1585267068834415667 16711680  .  mno_druidy  0  Druidry  1 1105 2 1585267068834415667 16711680  .  mno_back  0  Return.  1 2060 1 864691128455135257  .
```

其中,"[1_Erenite_stone]  12 4 0"中的"4 0"代表逻辑里面的(try_begin), 后面有一个"5 0 1105 2","5 0"代表(else_try),

修改的是两个"assign"位置,其格为" * 2107 2",其中"*"代表你要赋的值,这里我设置成1,2,意味着你能加入工会以后,每一次充能能获得至少500的magic power

以上,成果解决无法增加magic_power的问题
法师入会无限缴费问题

在弩的熟练度达到250后,可以交3250入会,但是目前可以无限交钱但是效果不变(当前只能购买更高级的法杖和消耗品)

还是反汇编,加上"判断是否入会"的逻辑后,成功修复bug

在conversation.txt中,搜索"Yes,_I_wish_to_join_the_Society",改成下面的:
```txt
dlga_society_lodge_master_talk:society_lodge_master_join 69631 180 1 31 2 144115188075857176 0 Yes,_I_wish_to_join_the_Society.  181  0 NO_VOICEOVER
```
也就是添加了"31 2 144115188075857176 0",并把前面的"180 0"的"0"改成"1", 添加的语句翻译为:
```python
(eq, "$var_1304", 0),
```
即如果没有加入工会(判断寄存器var_1304中的值是否等于0,该寄存器的值代表是否入会,如果是则后续有代码置为1),显示"Yes,_I_wish_to_join_the_Society"

我把我修改好的conversation.txt和menus.txt提供给大家

conversation.txt

1.27 MB, 下载次数: 52

menus.txt

556.91 KB, 下载次数: 44

鲜花鸡蛋

256659573  在2021-8-8 21:01  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

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

GMT+8, 2024-12-20 15:56 , Processed in 0.105882 second(s), 20 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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