1.首先是这张图片,领主自建骑士时会触发。 代码在presentations.txt里的prsnt_order_founded,就是画图,没啥好说的,自己看。
2.然后是菜单文件menus.txt,在notification_order_founded这个里面,就是触发上面这个图画的代码,然后再关闭掉,更没啥好说的。
3.重要的逻辑都放在了simple_triggers.txt里,如下,我用注释解释一下我能看懂的地方
384.000000, #每384小时执行一次下面的代码 [ (store_current_day, ":var_0"), #获取玩家游戏的天数变量0 (gt, ":var_0", 365), #如果变量0,也就是天数大于365 (store_character_level, ":var_1", "trp_player"), #获取玩家等级,存为变量1 (gt, ":var_1", 30), #如果变量1大于等于30, (store_random_in_range, ":var_2", 0, 100), #生成随机数,范围在0到100之间,存为变量2 (neg|ge, ":var_2", 5), # 如果变量2小于5 (assign, ":var_3", 0), #将变量3赋值为0 (try_for_range, ":var_4", "fac_dragon_knights", "fac_player_knights"), #取龙骑士阵营到玩家自建骑士之间的所有值,循环遍历赋值给变量4 (faction_get_slot, ":var_5", ":var_4", 68), #获取该阵营的68号slot,存为变量5 (assign, ":var_6", 0), #将变量6赋值为0 (try_for_range, ":var_7", "p_town_1", "p_village_1"), #遍历所有城镇和城堡,赋值给变量7 (party_slot_eq, ":var_7", 289, ":var_5"),#如果该城镇或城堡已经建立了骑士团分部 (assign, ":var_6", 1),#将变量6赋值为1 (try_end), (eq, ":var_6", 0),#如果变量6等于0 (val_add, ":var_3", 1), #变量3加1 (try_end), (gt, ":var_3", 0),#如果变量3大于0 (assign, ":var_8", 0),#将变量8赋值为0 #接下来一小段差不多 (store_random_in_range, ":var_9", 0, ":var_3"), (val_add, ":var_9", 1), (try_for_range, ":var_4", "fac_dragon_knights", "fac_player_knights"), (eq, ":var_8", 0), (faction_get_slot, ":var_5", ":var_4", 68), (assign, ":var_6", 0), (try_for_range, ":var_7", "p_town_1", "p_village_1"), (party_slot_eq, ":var_7", 289, ":var_5"), (assign, ":var_6", 1), (try_end), (eq, ":var_6", 0),#如果变量6等于0 (val_sub, ":var_9", 1),#变量9的值减1 (eq, ":var_9", 0),#如果变量9等于0 (assign, ":var_8", ":var_4"),#将变量4的值赋给变量8 (try_end), (assign, ":var_10", 0),#将变量10赋值为0 (try_for_range, ":var_11", "fac_kingdom_1", "fac_kingdoms_end"),#在王国阵营间遍历 (faction_slot_eq, ":var_11", slot_faction_state, 0),#如果该阵营还没有被消灭 (faction_get_slot, ":var_12", ":var_11", slot_faction_leader),#获取该阵营的领袖id (assign, ":var_6", 0),#将变量6赋值为0 (try_for_range, ":var_7", "p_town_1", "p_village_1"),#在所有城镇和城堡之间遍历,部队id赋值给变量7 (eq, ":var_6", 0), (party_slot_eq, ":var_7", slot_town_lord, ":var_12"),#如果该城镇或城堡的领主恰好是国王 (party_slot_eq, ":var_7", 289, 0), (party_slot_eq, ":var_7", slot_center_is_besieged_by, -1),#如果该城镇或城堡没有被围攻 (assign, ":var_6", 1), (try_end), (eq, ":var_6", 1), (val_add, ":var_10", 1), (try_end), (gt, ":var_10", 0), (assign, ":var_13", 0), (assign, ":var_14", 0), (store_random_in_range, ":var_15", 0, ":var_10"), (val_add, ":var_15", 1), (try_for_range, ":var_11", "fac_kingdom_1", "fac_kingdoms_end"), (eq, ":var_13", 0), (faction_slot_eq, ":var_11", slot_faction_state, 0), (faction_get_slot, ":var_12", ":var_11", slot_faction_leader), (assign, ":var_6", 0), (try_for_range, ":var_7", "p_town_1", "p_village_1"), (eq, ":var_6", 0), (party_slot_eq, ":var_7", slot_town_lord, ":var_12"), (party_slot_eq, ":var_7", 289, 0), (party_slot_eq, ":var_7", slot_center_is_besieged_by, -1), (assign, ":var_6", 1), (val_sub, ":var_15", 1), (eq, ":var_15", 0), (assign, ":var_13", ":var_12"), (assign, ":var_14", ":var_7"), (try_end), (try_end), (faction_get_slot, ":var_16", ":var_8", 68), (party_set_slot, ":var_14", 289, ":var_16"), (call_script, "script_add_notification_menu", "mnu_notification_order_founded", ":var_8", ":var_14"), #这里就是调用脚本,让那个被选中的国王创建一个骑士团礼堂。 ]),
以上就是国王自建一个现有骑士团礼堂的机制(就是龙骑士、狮子、狮鹫这些现有的)。
还有紧接着底下还有个简单触发器也是差不多,在那里调用了生成领主自建骑士的脚本script_generate_minor_order,脚本很复杂,就是定义了一些领主自建骑士属性和装备的代码。
直接看结论:
1.领主建立骑士团礼堂的概率极低,需要满足玩家达到30级或以上,游戏时间超过365天,且这个触发器300多个小时才触发一次。在这些的基础上,还要再加个1/20的概率;
2.国王只能建立现有的骑士团礼堂,狮鹫、乌木护手之类的也算现有的,普通领主则可以自建新骑士团;且这个国王必须是当前阵营的领袖,言外之意就是说,如果玩家利用黑科技招揽了一个国王,再给他封地,这个国王也不能建立骑士团礼堂了;
3.复国者作为领主时不能建立骑士团礼堂,但如果复国成功成为国王后则有可能建立已有的骑士团;
4.城镇或城堡被围攻时,不能触发该功能。
5.封NPC为领主后,NPC有几率建立新骑士团。
领主自建骑士的起名机制
脚本随机从str_minor_order_adj_yellow到str_minor_order_adj_eternal之间取一个字符串,分别是
str_minor_order_adj_yellow|黄 str_minor_order_adj_golden|黄 金 str_minor_order_adj_blue|蓝 str_minor_order_adj_azure|天 蓝 str_minor_order_adj_black|黑 str_minor_order_adj_dark|深 黑 str_minor_order_adj_red|红 str_minor_order_adj_scarlet|深 红 str_minor_order_adj_white|白 str_minor_order_adj_silver|银 str_minor_order_adj_green|绿 str_minor_order_adj_emerald|祖 母 绿 str_minor_order_adj_glorious|荣 耀 的 str_minor_order_adj_radiant|灿 烂 的 str_minor_order_adj_steadfast|坚 定 地 str_minor_order_adj_eternal|不 朽 的,
这就是骑士名字的第一个前缀; 然后第二个前缀是从
str_minor_order_noun_eagle|鹰 str_minor_order_noun_lion|狮 str_minor_order_noun_boar|猪 str_minor_order_noun_dragon|龙 str_minor_order_noun_lily|百 合 花 str_minor_order_noun_cross|十 字 str_minor_order_noun_stallion|雄 马 str_minor_order_noun_stag|牧 鹿 str_minor_order_noun_castle|城 堡 str_minor_order_noun_wolf|狼 str_minor_order_noun_dolphin|海 豚 str_minor_order_noun_pimpernel|海 绿
这之间取。 也就是说,领主的自建骑士的名字和这些脱不了干系了。所以你会看见“坚定地猪骑士”、“深红海绿骑士”之类特别逗比的名字。
什么?你觉得这些你都不喜欢?那你自己改汉化文件去。比如把第一部分的汉化内容全改为“异端”,第二部分全改为“黑”,那领主的自建骑士就只能叫“异端黑骑士”了。