- 好友
- 3
- 在线时间
- 1015 小时
- 最后登录
- 2024-11-18
骑士
- UID
- 2737520
- 第纳尔
- 15387
- 精华
- 0
- 互助
- 18
- 荣誉
- 4
- 贡献
- 0
- 魅力
- 8
- 注册时间
- 2016-4-2
鲜花( 185) 鸡蛋( 0)
|
发表于 2018-2-8 18:31:34
|
显示全部楼层
【BUG】新军每天获得经验代码有逻辑错误(我就直接把反编译的代码放上来)
simple trigger里面的
(24.000000,
[
(neg|eq, "$soldier_way_mod", 1),
(call_script, "script_get_max_skill_of_player_party", "skl_trainer"),
(assign, ":var_0", reg0),
(val_mul, ":var_0", 120),
(try_for_parties, ":var_1", "trp_hx_custom_toop1", "trp_hx_custom_toop_end"),
(troop_get_slot, ":var_2", ":var_1", 532),
(eq, ":var_2", 11),
(troop_get_slot, ":var_3", ":var_1", 534),
(party_get_num_companion_stacks, ":var_4", "p_main_party"),
(assign, ":var_5", 0),
(try_for_parties, ":var_6", 0, ":var_4"),
(party_stack_get_troop_id, ":var_7", "p_main_party", ":var_6"),
(eq, ":var_7", ":var_1"),
(party_stack_get_size, ":var_5", "p_main_party", ":var_6"),
(try_end),
(val_mul, ":var_0", ":var_5"),
(val_max, ":var_3", ":var_5"),
(val_max, ":var_3", 1),
(val_div, ":var_0", ":var_3"),
(add_xp_to_troop, ":var_0", ":var_1"),
(troop_get_xp, ":var_8", ":var_1"),
(troop_set_slot, ":var_1", 685, ":var_8"),
(try_end),
]),标红的地方是经验获取bug的产生原因。
在多只新军部队存在的情况下,var_0的值会越来越小(除非全部新军都带在身上),只要中间一种新军没带在身上,var_0(基础经验值)就直接变0,后面的新军就拿不到经验了。
建议:
在for循环的开始部分加一句(assign, ":temp_var", ":var_0"),然后红色和绿色标明的代码就别用var_0了,用这个temp_var。
这个bug已经有很多人反映过了,如果制作组还没找到原因的话请参考以上方案进行修复。
嗯,也别跟我说找不到对应的代码在哪里
|
鲜花鸡蛋长枪扫荡神州女 在2018-2-11 13:22 送朵鲜花 并说:我非常同意你的观点,送朵鲜花鼓励一下
|