- 好友
- 0
- 在线时间
- 8 小时
- 最后登录
- 2026-4-18
随仆

- UID
- 2557955
- 第纳尔
- 134
- 精华
- 0
- 互助
- 0
- 荣誉
- 0
- 贡献
- 0
- 魅力
- 0
- 注册时间
- 2015-7-9
 鲜花( 1)  鸡蛋( 0)
|
本帖最后由 afl001 于 2026-4-18 21:55 编辑
party_add_xp_to_stack 既然对电脑效果存疑,干脆写一条不通过经验,直接按比例直接给电脑部队单个兵种升级用的函数
#(call_script, "script_party_upgrade_stack",arg1,arg2,arg3,arg4),
#arg1=partyID
#arg2=stack序号(非兵种ID)
#arg3=升级比例:1-100
#arg4=升到路线1兵种比例:1-100(路线2兵种为100-这个数;若只有1个路线,此比例无效
#返回
#reg0=升级兵种1
#reg1=升级兵种2
#reg2=升级兵种1人数
#reg3=升级兵种2人数
("party_upgrade_stack",
[
(store_script_param, ":party_no", 1),
(store_script_param, ":stack_no", 2),
(store_script_param, ":upgrade_ratio", 3),
(store_script_param, ":path_1_ratio", 4),
(party_stack_get_troop_id, ":stack_troop", ":party_no", ":stack_no"),
(party_stack_get_size, ":stack_size", ":party_no", ":stack_no"),
(store_mul, ":stack_upgrade_num", ":stack_size", ":upgrade_ratio"),
(val_div, ":stack_upgrade_num", 100),
(troop_get_upgrade_troop, ":path_1_troop", ":stack_troop", 0),
(troop_get_upgrade_troop, ":path_2_troop", ":stack_troop", 1),
(assign, ":return_0", -1),
(assign, ":return_1", -1),
(assign, ":return_2", -1),
(assign, ":return_3", -1),
(try_begin),
(gt, ":stack_troop", -1),
(neg|troop_is_hero, ":stack_troop"),
(gt, ":stack_upgrade_num", 0),
(this_or_next|gt, ":path_1_troop", -1),
(gt, ":path_2_troop", -1),
(assign, ":upgrade_type", 0),
(try_begin),
(gt, ":path_1_troop", -1),
(le, ":path_2_troop", -1),
(assign, ":upgrade_type", 1),
(else_try),
(le, ":path_1_troop", -1),
(gt, ":path_2_troop", -1),
(assign, ":path_1_troop", ":path_2_troop"),
(assign, ":upgrade_type", 1),
(else_try),
(gt, ":path_1_troop", -1),
(gt, ":path_2_troop", -1),
(assign, ":upgrade_type", 2),
(try_end),
(try_begin),
(eq, ":upgrade_type", 1),
(party_remove_members, ":party_no", ":stack_troop", ":stack_upgrade_num"),
(party_add_members, ":party_no", ":path_1_troop", ":stack_upgrade_num"),
(assign, ":return_0", ":path_1_troop"),
(assign, ":return_2", ":stack_upgrade_num"),
(else_try),
(eq, ":upgrade_type", 2),
(store_mul, ":path_1_upgrade_num", ":stack_upgrade_num", ":path_1_ratio"),
(val_div, ":path_1_upgrade_num", 100),
(store_sub, ":path_2_upgrade_num", ":stack_upgrade_num", ":path_1_upgrade_num"),
(try_begin),
(gt, ":path_1_upgrade_num", 0),
(party_remove_members, ":party_no", ":stack_troop", ":path_1_upgrade_num"),
(party_add_members, ":party_no", ":path_1_troop", ":path_1_upgrade_num"),
(assign, ":return_0", ":path_1_troop"),
(assign, ":return_2", ":path_1_upgrade_num"),
(try_end),
(try_begin),
(gt, ":path_2_upgrade_num", 0),
(party_remove_members, ":party_no", ":stack_troop", ":path_2_upgrade_num"),
(party_add_members, ":party_no", ":path_2_troop", ":path_2_upgrade_num"),
(assign, ":return_1", ":path_2_troop"),
(assign, ":return_3", ":path_2_upgrade_num"),
(try_end),
(try_end),
(try_end),
(assign, reg0, ":return_0"),
(assign, reg1, ":return_1"),
(assign, reg2, ":return_2"),
(assign, reg3, ":return_3"),
]),
|
|