- 好友
- 5
- 在线时间
- 0 小时
- 最后登录
- 2025-10-14
见习骑士

- UID
- 3199602
- 第纳尔
- 1172
- 精华
- 0
- 互助
- 36
- 荣誉
- 0
- 贡献
- 1
- 魅力
- 227
- 注册时间
- 2020-9-4
 鲜花( 62)  鸡蛋( 0)
|
本帖最后由 奥杜因阿卡托什 于 2025-10-14 00:42 编辑
上面的办法,给物品、部队、部队模板、阵营这些用已经足够了,然而还有兵种却还有一个问题。加上之后,会发现兵种树顶端的兵,莫名多了一截升级。这就是因为升级树也是在troop之外添加的,和它冲突了。
因此,给troop添加新数组,需要让两位出来。比如
- ["watchman","Watchman","Watchmen",#眼线
- tf_guarantee_boots|tf_guarantee_armor,
- no_scene,reserved,fac_commoners,
- [itm_shirt, itm_linen_tunic, itm_burlap_tunic, itm_leather_apron, itm_tabard, itm_butchering_knife, itm_dagger, itm_sword_medieval_b_small, itm_sword_medieval_c, itm_straw_hat, itm_head_wrappings, itm_headcloth, itm_felt_hat, itm_felt_hat_b, itm_wrapping_boots, itm_woolen_hose, itm_blue_hose, itm_ankle_boots, itm_pitch_fork, itm_military_fork, itm_battle_fork, itm_boar_spear, itm_simple_bow, itm_practice_arrows_2, itm_arrows],
- str_9|agi_7|int_5|cha_5|level(9), wp_one_handed (60) | wp_two_handed (60) | wp_polearm (60) | wp_archery (70) | wp_crossbow (60) | wp_throwing (70),
- knows_ironflesh_1|knows_power_draw_1|knows_athletics_1|knows_horse_archery_1|knows_looting_1|knows_tracking_1|knows_pathfinding_1|knows_spotting_1|knows_first_aid_1|knows_trade_1,
- mercenary_face_1, mercenary_face_2, "none",
- 0, 0, tff_reconnaissance, #侦察
- ],
复制代码 前面这两个0,0就是给升级树留的位。
然而这还不够,升级树在写的时候并没有考虑会有人给它留位的情况,所以用的插值,会导致有升级的兵数组比没升级的兵多两位,填入的数位置也不同了。因此,找到header_troops.py,反到最下面def upgrade(troops,troop1_id,troop2_id):和def upgrade2(troops,troop1_id,troop2_id,troop3_id):,看到这两个升级树函数的最后一行,都用的是
- cur_troop[14:14] = [troop2_no, 0]
复制代码 这个表示插值,会往14位后凭空插入两行。我们给它改成替换,用上预留的两位
- cur_troop[14:14] = [troop2_no, 0]
复制代码 就行了。
其余的差不多,记得因为多留了两位,process里需要18位,
- def save_troops():
- file = open(export_dir + "troops.txt","w")
- file.write("troopsfile version 2\n")
- file.write("%d "%len(troops))
- for troop in troops:
- troop_len = len(troop)
- if troop_len == 11:
- troop[11:11] = [0, 0, 0, 0, 0, 0, 0, 0]
- elif troop_len == 12:
- troop[12:12] = [0, 0, 0, 0, 0, 0, 0]
- elif troop_len == 13:
- troop[13:13] = [0, 0, 0, 0, 0, 0]
- elif troop_len == 14:
- troop[14:14] = [0, 0, 0, 0, 0]
- elif troop_len == 15:
- troop[15:15] = [0, 0, 0, 0]
- elif troop_len == 16:
- troop[16:16] = [0, 0, 0]
- elif troop_len == 17:
- troop[17:17] = [0, 0]
- elif troop_len == 18:
- troop[18:18] = [0]
复制代码
而脚本里的def set_troop_function()只要写16位就行。不是18位也是由于那两个升级树。
- def set_troop_function():
- troop_function = []
- for i_troop in xrange(len(troops)):
- troop_function.append((troop_set_slot, i_troop, slot_troop_function, troops[i_troop][16]))
- return troop_function[:]
复制代码
|
|