####################################################################################################################################### ####################################################################################################################################### ####################################################################################################################################### ##说明 ####################################################################################################################################### ####################################################################################################################################### ####################################################################################################################################### 这次应该修复了妓女的头发问题,顺便实现了妓女衣服随机穿的效果,妓女的脸和发型也会小范围变化。 修复战场扩展命令的汉化 修复战场扩展命令阵型功能 修复和囚禁的领主求和以后的阵营关系处理 添加了 lliihhaaoo 设计的杀人统计功能 增加城堡换平民装备的开关 增加受伤功能开关 移动关闭NPC争吵开关 移动战场信息开关 ####################################################################################################################################### ####################################################################################################################################### ####################################################################################################################################### ##汉化修改 ####################################################################################################################################### ####################################################################################################################################### ####################################################################################################################################### qstr_{s11}___Formation_ty|{s11} - 阵 型 命 令 qstr_{s12}___Weapon_order|{s12} - 武 器 命 令 qstr_{s13}___Shield_order|{s13} - 盾 牌 命 令 qstr_{s14}___Attack_order|{s14} - 进 攻 命 令 qstr_{s11}___Ranks|{s11} - 列 阵 qstr_{s12}___Shieldwall|{s12} - 盾 墙 qstr_{s13}___Wedge|{s13} - 楔 形 阵 qstr_{s14}___Square|{s14} - 方 阵 qstr_{s15}___No_Formation|{s15} - 解 散 阵 型 qstr_{s16}___Escape_Menu|{s16} - 退 出 菜 单 qstr_{s11}___One_Handers|{s11} - 单 手 武 器 qstr_{s12}___Two_Handers|{s12} - 双 手 武 器 qstr_{s13}___Polearms|{s13} - 长 杆 武 器 qstr_{s14}___Ranged|{s14} - 远 程 武 器 qstr_{s11}___Use_Shields|{s11} - 使 用 盾 牌 qstr_{s12}___No_Shields|{s12} - 禁 用 盾 牌 qstr_{s13}___Free|{s13} - 自 由 使 用 盾 牌 qstr_{s11}___End_Order|{s11} - 自 由 行 动 qstr_{s12}___Skirmish|{s12} - 回 避 近 战 qstr_{s13}___Volley_Fire|{s13} - 射 手 齐 射 qstr_{s14}___Brace_Polear|{s14} - 架 起 长 矛 添加 qstr_{s20}^{s1}_s_kill_st|{s20}^{s1}: {reg1} 添加 str_minimap_states|开 启 战 场 小 地 图 及 统 计 信 息 str_minimap_states_d|勾 选 此 项 后,将 显 示 战 场 小 地 图 及 统 计 信 息。 str_disable_npc_complaints|禁 用 NPC争 吵 str_disable_npc_complaints_d|勾 选 此 项 后,NPC将 不 会 再 互 相 争 吵 并 因 此 离 队。 str_auto_civilian_cloth|开 启 城 堡 自 动 换 装 功 能 str_auto_civilian_cloth_d|勾 选 此 项 后,进 入 城 堡 时 将 自 动 更 换 便 装。 str_activate_injured|开 启 受 伤 功 能 str_activate_injured_d|勾 选 此 项 后,在 战 场 被 击 昏 以 后 有 一 定 几 率 受 伤, 需 要 去 酒 馆 找 医 生 治 疗。 长 期 没 有 食 物 以 后 会 饿 昏。 替换 menu_battle_debrief|{s11} 伤 亡:^^我 军 伤 亡: {s8}{s10}^^敌 军 伤 亡: {s9}^^杀 敌 统 计:{s20} ####################################################################################################################################### ####################################################################################################################################### ####################################################################################################################################### ##py修改 ####################################################################################################################################### ####################################################################################################################################### ####################################################################################################################################### @pbod_mission_templates.py ####################################################################################################################################### 替换 ## windmelodie edited for 16th key order caba_order_triggers = [ (ti_before_mission_start, 0, 0, [], [ (party_set_slot, "p_main_party", slot_party_gk_order, 0), (party_set_slot, "p_main_party_backup", slot_party_gk_order, 0), (party_set_slot, 2, slot_party_gk_order_hold_over_there, 0), (try_for_range, ":team", 0, 4), (try_for_range, ":i", slot_team_d0_order_weapon, slot_team_d0_order_shield + 9), (team_set_slot, ":team", ":i", clear), (try_end), (try_end), ]), (0, 0, 0, [ (this_or_next|game_key_clicked, gk_group0_hear), (this_or_next|game_key_clicked, gk_group1_hear), (this_or_next|game_key_clicked, gk_group2_hear), (this_or_next|game_key_clicked, gk_group3_hear), (this_or_next|game_key_clicked, gk_group4_hear), (this_or_next|game_key_clicked, gk_group5_hear), (this_or_next|game_key_clicked, gk_group6_hear), (this_or_next|game_key_clicked, gk_group7_hear), (this_or_next|game_key_clicked, gk_group8_hear), (this_or_next|game_key_clicked, gk_everyone_hear), (this_or_next|game_key_clicked, gk_reverse_order_group), (game_key_clicked, gk_everyone_around_hear), (neg|main_hero_fallen) ], [ (party_set_slot, "p_main_party", slot_party_gk_order, 0), (start_presentation, "prsnt_caba_order_display"), ]), (0, 0, 0, [(this_or_next|key_clicked, "$key_order_10"),(key_clicked, key_escape)], [(party_set_slot, "p_main_party", slot_party_gk_order, 0),(is_presentation_active, "prsnt_caba_order_display"),(presentation_set_duration, 0)]), (0, 0, 0, [(game_key_clicked, gk_order_1),(neg|main_hero_fallen)], [ (store_mission_timer_c_msec, "$when_f1_first_detected"), #CABA? (try_begin), (neg|party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_1), (neg|party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_2), (neg|party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_3), (neg|party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_4), (party_set_slot, "p_main_party", slot_party_gk_order, gk_order_1), (party_set_slot, 2, slot_party_gk_order_hold_over_there, 0), #also "holdit" (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_1), #HOLD (party_set_slot, 2, slot_party_gk_order_hold_over_there, 1), #as "holdit" #(call_script, "script_player_order_formations", mordr_hold), #(party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_2), #Lines formation (call_script, "script_player_order_formations", mordr_charge), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_3), #Ranged order (call_script, "script_order_volley_begin_end", end, "$fplayer_team_no"), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_4), #WEAPON order (call_script, "script_order_set_display_text", clear), (call_script, "script_order_set_team_slot", clear, "$fplayer_team_no"), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (try_end), ]), (0, 0, 0, [(game_key_clicked, gk_order_2),(neg|main_hero_fallen)], [ (try_begin), (neg|party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_1), (neg|party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_2), (neg|party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_3), (neg|party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_4), (party_set_slot, "p_main_party", slot_party_gk_order, gk_order_2), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_1), #FOLLOW (call_script, "script_player_order_formations", mordr_follow), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_2), #Lines formation (call_script, "script_player_order_formations", mordr_charge), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_3), #Ranged order (call_script, "script_order_volley_begin_end", end, "$fplayer_team_no"), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_4), #WEAPON order (call_script, "script_order_set_display_text", clear), (call_script, "script_order_set_team_slot", clear, "$fplayer_team_no"), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (try_end), ]), (0, 0, 0, [(game_key_clicked, gk_order_3),(neg|main_hero_fallen)], [ (try_begin), (neg|party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_1), (neg|party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_2), (neg|party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_3), (neg|party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_4), (party_set_slot, "p_main_party", slot_party_gk_order, gk_order_3), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_1), #CHARGE (call_script, "script_player_order_formations", mordr_charge), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_2), #Lines formation (call_script, "script_player_order_formations", mordr_charge), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_3), #Ranged order (call_script, "script_order_volley_begin_end", end, "$fplayer_team_no"), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_4), #WEAPON order (call_script, "script_order_set_display_text", clear), (call_script, "script_order_set_team_slot", clear, "$fplayer_team_no"), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (try_end), ]), (0, 0, 0, [(game_key_clicked, gk_order_4),(neg|main_hero_fallen)], [ (try_begin), (neg|party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_1), (neg|party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_2), (neg|party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_3), (neg|party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_4), (party_set_slot, "p_main_party", slot_party_gk_order, gk_order_4), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_1), #STAND GROUND (call_script, "script_player_order_formations", mordr_stand_ground), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_2), #Lines formation (call_script, "script_player_order_formations", mordr_charge), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_3), #Ranged order (call_script, "script_order_volley_begin_end", end, "$fplayer_team_no"), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_4), #ANY WEAPON (call_script, "script_order_set_display_text", clear), (call_script, "script_order_set_team_slot", clear, "$fplayer_team_no"), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (try_end), ]), (0, 0, 0, [(game_key_clicked, gk_order_5),(neg|main_hero_fallen)], [ (try_begin), (party_slot_eq, "p_main_party", slot_party_gk_order, 0), (this_or_next|eq, "$g_next_menu", "mnu_simple_encounter"), #mst_lead_charge (eq, "$g_next_menu", "mnu_join_battle"), (party_set_slot, "p_main_party", slot_party_gk_order, gk_order_5), (start_presentation, "prsnt_caba_order_display"), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_1), #RETREAT (call_script, "script_player_order_formations", mordr_retreat), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_2), #Lines formation (call_script, "script_player_order_formations", mordr_charge), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_3), #Ranged order (call_script, "script_order_volley_begin_end", end, "$fplayer_team_no"), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_4), #MOUNT (party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_5), #FORMATION - RANKS (call_script, "script_division_reset_places"), ## CABA - check this new script (agent_get_position, pos49, "$fplayer_agent_no"), (try_for_range, ":division", 0, 9), (class_is_listening_order, "$fplayer_team_no", ":division"), (store_add, ":slot", slot_team_d0_target_team, ":division"), (team_set_slot, "$fplayer_team_no", ":slot", -1), (store_add, ":slot", slot_team_d0_size, ":division"), (team_slot_ge, "$fplayer_team_no", ":slot", 1), (store_add, ":slot", slot_team_d0_fclock, ":division"), (team_set_slot, "$fplayer_team_no", ":slot", 1), #Fake out at position (call_script, "script_battlegroup_get_position", Temp_Pos, "$fplayer_team_no", ":division"), (agent_set_position, "$fplayer_agent_no", Temp_Pos), (call_script, "script_player_attempt_formation", ":division", formation_ranks, 1), (try_end), (agent_set_position, "$fplayer_agent_no", pos49), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_6), #One-Hander (call_script, "script_order_set_display_text", onehand), (call_script, "script_order_weapon_type_switch", onehand, "$fplayer_team_no"), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, "$key_order_7"), #Shield (call_script, "script_order_set_display_text", shield), (call_script, "script_order_weapon_type_switch", shield, "$fplayer_team_no"), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, "$key_order_8"), #End Special Order (call_script, "script_order_end_active_order", "$fplayer_team_no"), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (try_end), ]), (0, 0, 0, [(game_key_clicked, gk_order_6),(neg|main_hero_fallen)], [ (try_begin), (party_slot_eq, "p_main_party", slot_party_gk_order, 0), (party_set_slot, "p_main_party", slot_party_gk_order, gk_order_6), (start_presentation, "prsnt_caba_order_display"), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_1), #ADVANCE (call_script, "script_player_order_formations", mordr_advance), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_2), #SPREAD OUT (call_script, "script_player_order_formations", mordr_spread_out), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_4), #DISMOUNT (call_script, "script_player_order_formations", mordr_dismount), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_5), #FORMATION - SHIELDWALL (call_script, "script_division_reset_places"), (agent_get_position, pos49, "$fplayer_agent_no"), (try_for_range, ":division", 0, 9), (class_is_listening_order, "$fplayer_team_no", ":division"), (store_add, ":slot", slot_team_d0_target_team, ":division"), (team_set_slot, "$fplayer_team_no", ":slot", -1), (store_add, ":slot", slot_team_d0_size, ":division"), (team_slot_ge, "$fplayer_team_no", ":slot", 1), (store_add, ":slot", slot_team_d0_fclock, ":division"), (team_set_slot, "$fplayer_team_no", ":slot", 1), #Fake out at position (call_script, "script_battlegroup_get_position", Temp_Pos, "$fplayer_team_no", ":division"), (agent_set_position, "$fplayer_agent_no", Temp_Pos), (call_script, "script_player_attempt_formation", ":division", formation_shield, 1), (try_end), (agent_set_position, "$fplayer_agent_no", pos49), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_6), #Two-Handers (call_script, "script_order_set_display_text", twohands), (call_script, "script_order_weapon_type_switch", twohands, "$fplayer_team_no"), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, "$key_order_7"), #No Shield (call_script, "script_order_set_display_text", noshield), (call_script, "script_order_weapon_type_switch", noshield, "$fplayer_team_no"), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, "$key_order_8"), #Begin Skirmish (call_script, "script_order_set_display_text", begin + 8), (call_script, "script_order_skirmish_begin_end", begin, "$fplayer_team_no"), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (try_end), ]), (0, 0, 0, [(key_clicked, "$key_order_7"),(neg|main_hero_fallen)], [ (try_begin), (party_slot_eq, "p_main_party", slot_party_gk_order, 0), (party_set_slot, "p_main_party", slot_party_gk_order, "$key_order_7"), (start_presentation, "prsnt_caba_order_display"), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_1), #FALL BACK (call_script, "script_player_order_formations", mordr_fall_back), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_2), #STAND CLOSER (call_script, "script_player_order_formations", mordr_stand_closer), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_5), #FORMATION - WEDGE (call_script, "script_division_reset_places"), (agent_get_position, pos49, "$fplayer_agent_no"), (try_for_range, ":division", 0, 9), (class_is_listening_order, "$fplayer_team_no", ":division"), (store_add, ":slot", slot_team_d0_target_team, ":division"), (team_set_slot, "$fplayer_team_no", ":slot", -1), (store_add, ":slot", slot_team_d0_size, ":division"), (team_slot_ge, "$fplayer_team_no", ":slot", 1), (store_add, ":slot", slot_team_d0_fclock, ":division"), (team_set_slot, "$fplayer_team_no", ":slot", 1), #Fake out at position (call_script, "script_battlegroup_get_position", Temp_Pos, "$fplayer_team_no", ":division"), (agent_set_position, "$fplayer_agent_no", Temp_Pos), (call_script, "script_player_attempt_formation", ":division", formation_wedge, 1), (try_end), (agent_set_position, "$fplayer_agent_no", pos49), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_6), #Polearms (call_script, "script_order_set_display_text", polearm), (call_script, "script_order_weapon_type_switch", polearm, "$fplayer_team_no"), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, "$key_order_7"), #Free Shield (call_script, "script_order_set_display_text", free), (call_script, "script_order_set_team_slot", free, "$fplayer_team_no"), #(call_script, "script_order_weapon_type_switch", free, "$fplayer_team_no"), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, "$key_order_8"), #Volley (call_script, "script_order_set_display_text", begin + 10), (call_script, "script_order_volley_begin_end", begin, "$fplayer_team_no"), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (try_end), ]), (0, 0, 0, [(key_clicked, "$key_order_8"),(neg|main_hero_fallen)], [ #f7 (try_begin), (party_slot_eq, "p_main_party", slot_party_gk_order, 0), (party_set_slot, "p_main_party", slot_party_gk_order, "$key_order_8"), (start_presentation, "prsnt_caba_order_display"), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_5), #FORMATION - SQUARE (call_script, "script_division_reset_places"), (agent_get_position, pos49, "$fplayer_agent_no"), (try_for_range, ":division", 0, 9), (class_is_listening_order, "$fplayer_team_no", ":division"), (store_add, ":slot", slot_team_d0_target_team, ":division"), (team_set_slot, "$fplayer_team_no", ":slot", -1), (store_add, ":slot", slot_team_d0_size, ":division"), (team_slot_ge, "$fplayer_team_no", ":slot", 1), (store_add, ":slot", slot_team_d0_fclock, ":division"), (team_set_slot, "$fplayer_team_no", ":slot", 1), #Fake out at position (call_script, "script_battlegroup_get_position", Temp_Pos, "$fplayer_team_no", ":division"), (agent_set_position, "$fplayer_agent_no", Temp_Pos), (call_script, "script_player_attempt_formation", ":division", formation_square, 1), (try_end), (agent_set_position, "$fplayer_agent_no", pos49), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_6), #ranged (call_script, "script_order_set_display_text", ranged), (call_script, "script_order_weapon_type_switch", ranged, "$fplayer_team_no"), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, "$key_order_8"), #Brace Spear (call_script, "script_order_set_display_text", begin + 12), (call_script, "script_order_sp_brace_begin_end", begin, "$fplayer_team_no"), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (try_end), ]), (0, 0, 0, [(key_clicked, "$key_order_9"),(neg|main_hero_fallen)], [ #F8 (try_begin), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_5), #FORMATION - CANCEL (call_script, "script_player_order_formations", mordr_charge), (party_set_slot, "p_main_party", slot_party_gk_order, 0), (try_end), ]), ] @module_constants.py ####################################################################################################################################### #zs:kill_stat add by windmelodie slot_troop_kill_cnt = 200 # Must use a number large than last troop slot 141. I use 200 here. @formations_scripts.py ####################################################################################################################################### (team_get_slot, ":fformation", ":fteam", ":slot"), (call_script, "script_form_infantry", ":fteam", ":fdivision", ":fleader", ":formation_extra_spacing", ":fformation"), 替换 # script_form_archers by motomataru # Input: (pos1), team, division, agent number of team leader, spacing, formation # Output: none # Form in line, staggered if formation = formation_ranks # Creates formation starting at pos1 ("form_archers", [ (store_script_param, ":fteam", 1), (store_script_param, ":fdivision", 2), (store_script_param, ":fleader", 3), (store_script_param, ":formation_extra_spacing", 4), (store_script_param, ":archers_formation", 5), #add by windmelodie for no limit begin (store_add, ":slot", slot_team_d0_formation_space, ":fdivision"), (team_get_slot, ":fformation", ":fteam", ":slot"), (try_begin), (neg|eq,":fformation",formation_wedge), (call_script, "script_form_infantry", ":fteam", ":fdivision", ":fleader", ":formation_extra_spacing", ":fformation"), (else_try), #add by windmelodie for no limit end (store_mul, ":extra_space", ":formation_extra_spacing", 50), (store_add, ":distance", formation_minimum_spacing, ":extra_space"), #minimum distance between troops (store_add, ":slot", slot_team_d0_first_member, ":fdivision"), (team_set_slot, ":fteam", ":slot", -1), (assign, ":total_move_y", 0), #staggering variable (try_for_agents, ":agent"), (call_script, "script_cf_valid_formation_member", ":fteam", ":fdivision", ":fleader", ":agent"), (agent_set_scripted_destination, ":agent", pos1, 1), (try_begin), #First Agent (store_add, ":slot", slot_team_d0_first_member, ":fdivision"), (neg|team_slot_ge, ":fteam", ":slot", 0), (team_set_slot, ":fteam", ":slot", ":agent"), (try_end), (position_move_x, pos1, ":distance", 0), (try_begin), (eq, ":archers_formation", formation_ranks), (val_add, ":total_move_y", 75), (try_begin), (le, ":total_move_y", 150), (position_move_y, pos1, 75, 0), (else_try), (position_move_y, pos1, -150, 0), (assign, ":total_move_y", 0), (try_end), (try_end), (try_end), (try_end), ]), 替换 # script_form_cavalry by motomataru # Input: (pos1), team, division, agent number of team leader, spacing # Output: none # Form in wedge, (now not) excluding horse archers # Creates formation starting at pos1 ("form_cavalry", [ (store_script_param, ":fteam", 1), (store_script_param, ":fdivision", 2), (store_script_param, ":fleader", 3), (store_script_param, ":formation_extra_spacing", 4), #add by windmelodie for no limit begin (store_add, ":slot", slot_team_d0_formation_space, ":fdivision"), (team_get_slot, ":fformation", ":fteam", ":slot"), (try_begin), (neg|eq,":fformation",formation_wedge), (call_script, "script_form_infantry", ":fteam", ":fdivision", ":fleader", ":formation_extra_spacing", ":fformation"), (else_try), #add by windmelodie for no limit end (store_mul, ":extra_space", ":formation_extra_spacing", 50), (store_add, ":x_distance", formation_minimum_spacing_horse_width, ":extra_space"), (store_add, ":y_distance", formation_minimum_spacing_horse_length, ":extra_space"), (store_add, ":slot", slot_team_d0_first_member, ":fdivision"), (team_set_slot, ":fteam", ":slot", -1), (assign, ":max_level", 0), (try_for_agents, ":agent"), (call_script, "script_cf_valid_formation_member", ":fteam", ":fdivision", ":fleader", ":agent"), (agent_get_troop_id, ":troop_id", ":agent"), (store_character_level, ":troop_level", ":troop_id"), (gt, ":troop_level", ":max_level"), (assign, ":max_level", ":troop_level"), (end_try), (assign, ":column", 1), (assign, ":rank_dimension", 1), (store_mul, ":neg_y_distance", ":y_distance", -1), (store_mul, ":neg_x_distance", ":x_distance", -1), (store_div, ":wedge_adj", ":x_distance", 2), (store_div, ":neg_wedge_adj", ":neg_x_distance", 2), (val_add, ":max_level", 1), (assign, ":form_left", 1), (try_for_range_backwards, ":rank_level", 0, ":max_level"), #put troops with highest exp in front (try_for_agents, ":agent"), (agent_get_troop_id, ":troop_id", ":agent"), (store_character_level, ":troop_level", ":troop_id"), (eq, ":troop_level", ":rank_level"), (call_script, "script_cf_valid_formation_member", ":fteam", ":fdivision", ":fleader", ":agent"), (agent_set_scripted_destination, ":agent", pos1, 1), (try_begin), #First Agent (store_add, ":slot", slot_team_d0_first_member, ":fdivision"), (neg|team_slot_ge, ":fteam", ":slot", 0), (team_set_slot, ":fteam", ":slot", ":agent"), (try_end), (try_begin), (eq, ":form_left", 1), (position_move_x, pos1, ":neg_x_distance", 0), (else_try), (position_move_x, pos1, ":x_distance", 0), (try_end), (val_add, ":column", 1), (gt, ":column", ":rank_dimension"), (position_move_y, pos1, ":neg_y_distance", 0), (try_begin), (neq, ":form_left", 1), (assign, ":form_left", 1), (position_move_x, pos1, ":neg_wedge_adj", 0), (else_try), (assign, ":form_left", 0), (position_move_x, pos1, ":wedge_adj", 0), (try_end), (assign, ":column", 1), (val_add, ":rank_dimension", 1), (end_try), (end_try), (end_try), ]), 替换 # script_cf_battlegroup_valid_formation by Caba'drin # Input: team, division, formation # Output: reg0: troop count/1 if too few troops/0 if wrong type ("cf_battlegroup_valid_formation", [ (store_script_param, ":fteam", 1), (store_script_param, ":fdivision", 2), (store_script_param, ":fformation", 3), (assign, ":valid_type", 0), (store_add, ":slot", slot_team_d0_type, ":fdivision"), (team_get_slot, ":sd_type", ":fteam", ":slot"), (try_begin), #Eventually make this more complex with the sub-divisions (this_or_next|eq, ":sd_type", sdt_cavalry), (eq, ":sd_type", sdt_harcher), (assign, ":size_minimum", formation_min_cavalry_troops), (try_begin), (eq, ":fformation", formation_wedge), (assign, ":valid_type", 1), (try_end), (else_try), (eq, ":sd_type", sdt_archer), (assign, ":size_minimum", formation_min_foot_troops), (try_begin), (this_or_next|eq, ":fformation", formation_ranks), (eq, ":fformation", formation_default), (assign, ":valid_type", 1), (try_end), (else_try), (store_add, ":slot", slot_team_d0_order_sp_brace, ":fdivision"), (team_slot_eq, ":fteam", ":slot", 0), ##CABA - not braced (assign, ":size_minimum", formation_min_foot_troops), (neq, ":fformation", formation_none), (assign, ":valid_type", 1), #all types valid (try_end), (try_begin), (eq, ":valid_type", 0), (assign, ":num_troops", 0), (else_try), (store_add, ":slot", slot_team_d0_size, ":fdivision"), (team_get_slot, ":num_troops", ":fteam", ":slot"), (lt, ":num_troops", ":size_minimum"), (neg|faction_slot_eq,"fac_mod_variables",slot_Mod_formation_nolimit,1), (assign, ":num_troops", 1), (try_end), (assign, reg0, ":num_troops"), (gt, ":num_troops", 1) ]), @module_strings.py ####################################################################################################################################### 末尾添加 ("minimap_states", "active minimap states"), ("minimap_states_d", "active minimap states"), ("disable_npc_complaints", "disable NPC complaints"), ("disable_npc_complaints_d", "disable NPC complaints"), ("auto_civilian_cloth", "auto civilian cloth change"), ("auto_civilian_cloth_d", "active auto civilian cloth change"), ("activate_injured", "active injured function"), ("activate_injured_d", "active injured function"), ("kill_count", "active kill count"), ("kill_count_d", "active kill count"), ("formation_nolimit", "active formation limit"), ("formation_nolimit_d", "active formation limit"), @module_presentations.py ####################################################################################################################################### ## windmelodie mod options begin ("more_mod_options", 0, mesh_load_window, [ (ti_on_presentation_load, [ (presentation_set_duration, 999999), (set_fixed_point_multiplier, 1000), (str_clear, s0), (create_text_overlay, reg0, s0, tf_scrollable), (position_set_x, pos1, 50), (position_set_y, pos1, 50), (overlay_set_position, reg0, pos1), (position_set_x, pos1, 550), (position_set_y, pos1, 630), (overlay_set_area_size, reg0, pos1), (set_container_overlay, reg0), (assign, ":num_options", 15), (val_add, ":num_options", 2), #For extra space for headings (assign, ":cur_y_shift", 40), (store_div, ":line_y_shift", ":cur_y_shift", 2), (store_mul, ":headings_y", ":cur_y_shift", ":num_options"), (store_sub, ":inputs_y", ":headings_y", 5), ## Headings (position_set_x, pos1, 50), (val_sub, ":headings_y", 30), #Open polearm broken (create_text_overlay, reg0, "str_polearm_broken", tf_vertical_align_center), (position_set_y, pos1, ":headings_y"), (overlay_set_position, reg0, pos1), (val_sub, ":headings_y", ":cur_y_shift"), (assign, "$g_presentation_obj_banner_selection_2", reg0), #For Mouse-Overs #open polearm broken report (create_text_overlay, reg0, "str_polearm_broken_report", tf_vertical_align_center), (position_set_y, pos1, ":headings_y"), (overlay_set_position, reg0, pos1), (val_sub, ":headings_y", ":cur_y_shift"), #adjust polearm broken chance factor (create_text_overlay, reg0, "str_polearm_broken_chance_factor", tf_vertical_align_center), (position_set_y, pos1, ":headings_y"), (overlay_set_position, reg0, pos1), (val_sub, ":headings_y", ":cur_y_shift"), (store_add, ":line_1_y", ":headings_y", ":line_y_shift"), #LINE 1 Here #open minimap (create_text_overlay, reg0, "str_minimap_states", tf_vertical_align_center), (position_set_y, pos1, ":headings_y"), (overlay_set_position, reg0, pos1), (val_sub, ":headings_y", ":cur_y_shift"), #disable npc complaints (create_text_overlay, reg0, "str_disable_npc_complaints", tf_vertical_align_center), (position_set_y, pos1, ":headings_y"), (overlay_set_position, reg0, pos1), (val_sub, ":headings_y", ":cur_y_shift"), #auto_civilian_cloth (create_text_overlay, reg0, "str_auto_civilian_cloth", tf_vertical_align_center), (position_set_y, pos1, ":headings_y"), (overlay_set_position, reg0, pos1), (val_sub, ":headings_y", ":cur_y_shift"), #activate_injured (create_text_overlay, reg0, "str_activate_injured", tf_vertical_align_center), (position_set_y, pos1, ":headings_y"), (overlay_set_position, reg0, pos1), (val_sub, ":headings_y", ":cur_y_shift"), (store_add, ":line_2_y", ":headings_y", ":line_y_shift"), #LINE 2 Here ## Lines (create_mesh_overlay, reg0, "mesh_white_plane"), (position_set_x, pos1, 23500), (position_set_y, pos1, 100), (overlay_set_size, reg0, pos1), (position_set_x, pos1, 50), (position_set_y, pos1, ":line_1_y"), (overlay_set_position, reg0, pos1), (overlay_set_color, reg0, 0), (create_mesh_overlay, reg0, "mesh_white_plane"), (position_set_x, pos1, 23500), (position_set_y, pos1, 100), (overlay_set_size, reg0, pos1), (position_set_x, pos1, 50), (position_set_y, pos1, ":line_2_y"), (overlay_set_position, reg0, pos1), (overlay_set_color, reg0, 0), ## Inputs (position_set_x, pos1, 450), (val_sub, ":inputs_y", 30), (create_check_box_overlay, "$g_presentation_obj_name_kingdom_1", "mesh_checkbox_off", "mesh_checkbox_on"), #polearm_broken (position_set_y, pos1, ":inputs_y"), (overlay_set_position, "$g_presentation_obj_name_kingdom_1", pos1), (val_sub, ":inputs_y", ":cur_y_shift"), (create_check_box_overlay, reg0, "mesh_checkbox_off", "mesh_checkbox_on"), #polearm_broken_report (position_set_y, pos1, ":inputs_y"), (overlay_set_position, reg0, pos1), (val_sub, ":inputs_y", ":cur_y_shift"), (val_sub, ":inputs_y", 9), (create_number_box_overlay, reg0, 0, 300), (position_set_y, pos1, ":inputs_y"), (overlay_set_position, reg0, pos1),#polearm_broken_chance_factor (val_add, ":inputs_y", 9), (val_sub, ":inputs_y", ":cur_y_shift"), (create_check_box_overlay, reg0, "mesh_checkbox_off", "mesh_checkbox_on"), #minimap_states| (position_set_y, pos1, ":inputs_y"), (overlay_set_position, reg0, pos1), (val_sub, ":inputs_y", ":cur_y_shift"), (create_check_box_overlay, reg0, "mesh_checkbox_off", "mesh_checkbox_on"), #disable_npc_complaints (position_set_y, pos1, ":inputs_y"), (overlay_set_position, reg0, pos1), (val_sub, ":inputs_y", ":cur_y_shift"), (create_check_box_overlay, reg0, "mesh_checkbox_off", "mesh_checkbox_on"), #auto_civilian_cloth| (position_set_y, pos1, ":inputs_y"), (overlay_set_position, reg0, pos1), (val_sub, ":inputs_y", ":cur_y_shift"), (create_check_box_overlay, reg0, "mesh_checkbox_off", "mesh_checkbox_on"), #activate_injured (position_set_y, pos1, ":inputs_y"), (overlay_set_position, reg0, pos1), (val_sub, ":inputs_y", ":cur_y_shift"), (set_container_overlay, -1), #Set Values of Caba'drin Order Preferences (assign,":overlay","$g_presentation_obj_name_kingdom_1"), (faction_get_slot,":polearm_broken","fac_mod_variables",slot_Mod_polearm_broken), (overlay_set_val, ":overlay", ":polearm_broken"), (val_add, ":overlay", 1), (faction_get_slot,":polearm_broken_report","fac_mod_variables",slot_Mod_polearm_broken_report), (overlay_set_val, ":overlay", ":polearm_broken_report"), (val_add, ":overlay", 1), (faction_get_slot,":polearm_broken_chance_factor","fac_mod_variables",slot_Mod_polearm_broken_chance_factor), (overlay_set_val, ":overlay", ":polearm_broken_chance_factor"), (val_add, ":overlay", 1), (assign, ":minimap","$minimap_state"), (val_sub, ":minimap", 1), (overlay_set_val, ":overlay", ":minimap"), (val_add, ":overlay", 1), (overlay_set_val, ":overlay", "$disable_npc_complaints"), (val_add, ":overlay", 1), (faction_get_slot,":polearm_broken","fac_mod_variables",slot_Mod_auto_civilian_cloth), (overlay_set_val, ":overlay", ":polearm_broken"), (val_add, ":overlay", 1), (faction_get_slot,":polearm_broken","fac_mod_variables",slot_Mod_activate_injured), (overlay_set_val, ":overlay", ":polearm_broken"), (val_add, ":overlay", 1), ## Mouse-over Tips (create_text_overlay, reg0, "str_more_mod_options", tf_center_justify|tf_with_outline), (overlay_set_color, reg0, 0xFFFFFFFF), (position_set_x, pos1, 800), (position_set_y, pos1, 600), (overlay_set_position, reg0, pos1), (position_set_x, pos1, 2000), (position_set_y, pos1, 2000), (overlay_set_size, reg0, pos1), (str_store_string, s0, "@Mouse-over options for further information."), (create_text_overlay, "$g_presentation_obj_banner_selection_1", s0, tf_double_space|tf_scrollable), (position_set_x, pos1, 650), (position_set_y, pos1, 400), (overlay_set_position, "$g_presentation_obj_banner_selection_1", pos1), (position_set_x, pos1, 800), (position_set_y, pos1, 800), (overlay_set_size, "$g_presentation_obj_banner_selection_1", pos1), (position_set_x, pos1, 300), (position_set_y, pos1, 150), (overlay_set_area_size, "$g_presentation_obj_banner_selection_1", pos1), ## Button (position_set_x, pos1, 900), (position_set_y, pos1, 25), (create_game_button_overlay, "$g_presentation_obj_name_kingdom_2", "@Done", tf_center_justify), (overlay_set_position, "$g_presentation_obj_name_kingdom_2", pos1), (position_set_x, pos1, 740), (create_game_button_overlay, reg0, "@Restore Defaults", tf_center_justify), (overlay_set_position, reg0, pos1), ]), (ti_on_presentation_event_state_change, [ (store_trigger_param_1, ":object"), (store_trigger_param_2, ":value"), (try_begin), #Button Done (assign,":overlay","$g_presentation_obj_name_kingdom_2"), (eq, ":object",":overlay"), (presentation_set_duration, 0), (else_try), #Button default (val_add, ":overlay", 1), (eq, ":object", ":overlay"), (call_script, "script_mod_options_default"), (start_presentation, "prsnt_more_mod_options"), (else_try), #polearm_broken (assign,":overlay","$g_presentation_obj_name_kingdom_1"), (eq, ":object", ":overlay"), (faction_set_slot,"fac_mod_variables",slot_Mod_polearm_broken,":value"), (else_try), #polearm_broken_report (val_add, ":overlay", 1), (eq, ":object", ":overlay"), (faction_set_slot,"fac_mod_variables",slot_Mod_polearm_broken_report,":value"), (else_try), #polearm_broken_chance_factor (val_add, ":overlay", 1), (eq, ":object", ":overlay"), (faction_set_slot,"fac_mod_variables",slot_Mod_polearm_broken_chance_factor,":value"), (else_try), #minimap_states (val_add, ":overlay", 1), (eq, ":object", ":overlay"), (val_add,":value",1), (assign, "$minimap_state",":value"), (else_try), #disable_npc_complaints (val_add, ":overlay", 1), (eq, ":object", ":overlay"), (assign, "$disable_npc_complaints",":value"), (else_try), #auto_civilian_cloth (val_add, ":overlay", 1), (eq, ":object", ":overlay"), (faction_set_slot,"fac_mod_variables",slot_Mod_auto_civilian_cloth,":value"), (else_try), #activate_injured (val_add, ":overlay", 1), (eq, ":object", ":overlay"), (faction_set_slot,"fac_mod_variables",slot_Mod_activate_injured,":value"), ]), (ti_on_presentation_mouse_enter_leave, #Mouse-Over Pref-Tips [ (store_trigger_param_1, ":object"), (store_trigger_param_2, ":enter_leave"), #0 if mouse enters, 1 if mouse leaves (try_begin), (eq, ":enter_leave", 1), (overlay_set_text, "$g_presentation_obj_banner_selection_1", "@Mouse-over options for further information."), (else_try), (eq, ":enter_leave", 0), (assign, ":overlay", "$g_presentation_obj_name_kingdom_1"), #Input (assign, ":overlay_2", "$g_presentation_obj_banner_selection_2"), #Heading (try_begin), (lt, ":object", ":overlay_2"), (overlay_set_text, "$g_presentation_obj_banner_selection_1", "@Mouse-over options for further information."), (else_try), #polearm_broken (this_or_next|eq, ":object", ":overlay_2"), (eq, ":object", ":overlay"), (overlay_set_text, "$g_presentation_obj_banner_selection_1", "str_polearm_broken_d"), (else_try), #polearm_broken_report (val_add, ":overlay", 1), (val_add, ":overlay_2", 1), (this_or_next|eq, ":object", ":overlay_2"), (eq, ":object", ":overlay"), (overlay_set_text, "$g_presentation_obj_banner_selection_1", "str_polearm_broken_report_d"), (else_try), #polearm_broken_chance_factor (val_add, ":overlay", 1), (val_add, ":overlay_2", 1), (this_or_next|eq, ":object", ":overlay_2"), (eq, ":object", ":overlay"), (overlay_set_text, "$g_presentation_obj_banner_selection_1", "str_polearm_broken_chance_factor_d"), (else_try), #minimap_state (val_add, ":overlay", 1), (val_add, ":overlay_2", 1), (this_or_next|eq, ":object", ":overlay_2"), (eq, ":object", ":overlay"), (overlay_set_text, "$g_presentation_obj_banner_selection_1", "str_minimap_states_d"), (else_try), #disable_npc_complaints (val_add, ":overlay", 1), (val_add, ":overlay_2", 1), (this_or_next|eq, ":object", ":overlay_2"), (eq, ":object", ":overlay"), (overlay_set_text, "$g_presentation_obj_banner_selection_1", "str_disable_npc_complaints_d"), (else_try), #auto_civilian_cloth (val_add, ":overlay", 1), (val_add, ":overlay_2", 1), (this_or_next|eq, ":object", ":overlay_2"), (eq, ":object", ":overlay"), (overlay_set_text, "$g_presentation_obj_banner_selection_1", "str_auto_civilian_cloth_d"), (else_try), #activate_injured (val_add, ":overlay", 1), (val_add, ":overlay_2", 1), (this_or_next|eq, ":object", ":overlay_2"), (eq, ":object", ":overlay"), (overlay_set_text, "$g_presentation_obj_banner_selection_1", "str_activate_injured_d"), (try_end), (try_end), ]), ]), ## windmelodie mod options end @module_scripts.py ####################################################################################################################################### 替换 #script_count_mission_casualties_from_agents # INPUT: none # OUTPUT: none ("count_mission_casualties_from_agents", [(party_clear, "p_player_casualties"), (party_clear, "p_enemy_casualties"), (party_clear, "p_ally_casualties"), (assign, "$any_allies_at_the_last_battle", 0), #(assign, "$num_routed_us", 0), #these should not assign to 0 here to protect routed agents to spawn again in next turns. #(assign, "$num_routed_allies", 0), #(assign, "$num_routed_enemies", 0), #zs:kill_stat: clear p_main_party troops battle kill count first add by windmelodie (party_get_num_companion_stacks, ":num_stacks", "p_main_party"), (try_for_range, ":i_stack", 0, ":num_stacks"), (party_stack_get_troop_id, ":stack_troop", "p_main_party", ":i_stack"), (troop_set_slot, ":stack_troop", slot_troop_kill_cnt, 0), (try_end), #initialize all routed counts of troops (try_for_agents, ":cur_agent"), (agent_is_human, ":cur_agent"), (agent_get_party_id, ":agent_party", ":cur_agent"), (agent_get_troop_id, ":agent_troop_id", ":cur_agent"), (troop_set_slot, ":agent_troop_id", slot_troop_player_routed_agents, 0), (troop_set_slot, ":agent_troop_id", slot_troop_ally_routed_agents, 0), (troop_set_slot, ":agent_troop_id", slot_troop_enemy_routed_agents, 0), (try_end), (try_for_agents, ":cur_agent"), (agent_is_human, ":cur_agent"), (agent_get_party_id, ":agent_party", ":cur_agent"), #zs:kill_stat add by windmelodie (try_begin), (eq, ":agent_party", "p_main_party"), # (agent_get_kill_count, ":kill_cnt", ":cur_agent"), (agent_get_kill_count, ":ko_cnt", ":cur_agent", 1), (val_add, ":kill_cnt", ":ko_cnt"),# now save kill_count + ko_count to kill_count # (agent_get_troop_id, ":agent_troop_id", ":cur_agent"), (troop_get_slot, ":troop_kill_cnt", ":agent_troop_id", slot_troop_kill_cnt), (val_add, ":troop_kill_cnt", ":kill_cnt"), (troop_set_slot, ":agent_troop_id", slot_troop_kill_cnt, ":troop_kill_cnt"), (try_end), (try_begin), (neq, ":agent_party", "p_main_party"), ############################################################################################################ ##### Custom Commander(CC) ############################################################################################################ 替换 # script_mod_options_default by windmelodie ("mod_options_default", [ (faction_set_slot,"fac_mod_variables",slot_Mod_polearm_broken,1), (faction_set_slot,"fac_mod_variables",slot_Mod_polearm_broken_report,0), (faction_set_slot,"fac_mod_variables",slot_Mod_polearm_broken_chance_factor,100), (assign, "$minimap_state",2), (assign, "$disable_npc_complaints", 0), (faction_set_slot,"fac_mod_variables",slot_Mod_auto_civilian_cloth,1), (faction_set_slot,"fac_mod_variables",slot_Mod_activate_injured,1), (faction_set_slot,"fac_mod_variables",slot_Mod_kill_count,0), (faction_set_slot,"fac_mod_variables",slot_Mod_formation_nolimit,0), ]), 替换 ## CC yifeng changed by windmelodie (try_begin), (faction_slot_eq,"fac_mod_variables",slot_Mod_auto_civilian_cloth,1), (mission_tpl_entry_set_override_flags, "mt_visit_town_castle", 0, af_override_all), (call_script, "script_init_civilian_item"), (assign, ":have_civilian_cloth", 0), # find civilian cloth (assign, ":dest_cloth", "itm_tabard"), # default (troop_get_inventory_capacity, ":inv_size", "trp_player"), (assign, ":end_cond", ":inv_size"), (try_for_range, ":i_slot", 0, ":end_cond"), (troop_get_inventory_slot, ":item_id", "trp_player", ":i_slot"), (ge, ":item_id", 0), (item_get_type, ":i_type", ":item_id"), (eq, ":i_type", itp_type_body_armor), (item_slot_eq, ":item_id", slot_item_civilian_item, 1), (assign, ":dest_cloth", ":item_id"), (assign, ":have_civilian_cloth", 1), (assign, ":end_cond", 0), # stop (try_end), (try_begin), # cur equiped cloth is civilian, display nothing (eq, ":i_slot", ek_body), (else_try), (eq, ":have_civilian_cloth", 1), (display_message, "@You have changed your cloth into a casual cloth which is in your inventory."), (else_try), (display_message, "@You have no casual clothes, the castle guard provides you a common casual cloth temporarily."), (try_end), (mission_tpl_entry_add_override_item, "mt_visit_town_castle", 0, ":dest_cloth"), (try_end), ## CC 替换 #hunger mod scripts changed by windmelodie ("hungry-damages_1429", [(try_begin), (faction_slot_eq,"fac_mod_variables",slot_Mod_activate_injured,1), (troop_raise_attribute, "$g_player_troop", ca_agility, -6), (troop_raise_attribute, "trp_player", ca_strength, -9), (assign, "$malus_de_faim", 1), (try_end), ]), 替换 # Injured system changed by windmelodie #arm ("bless_bras", [(try_begin), (faction_slot_eq,"fac_mod_variables",slot_Mod_activate_injured,1), (assign, "$blesse_au_bras", 1), (troop_raise_attribute, "$g_player_troop", ca_agility, -1), (troop_raise_attribute, "trp_player", ca_strength, -1), # (troop_raise_skill, "$g_player_troop", skl_power_strike, -6), # (troop_raise_skill, "$g_player_troop", skl_power_throw, -5), # (troop_raise_skill, "$g_player_troop", skl_power_draw, -5), (try_end), ]), # foot ("bless_jambe", [(try_begin), (faction_slot_eq,"fac_mod_variables",slot_Mod_activate_injured,1), (assign, "$blesse_a_jambe", 1), (troop_raise_attribute, "$g_player_troop", ca_agility, -1), (troop_raise_attribute, "trp_player", ca_strength, -1), # (troop_raise_skill, "$g_player_troop", skl_ironflesh, -2), # (troop_raise_skill, "$g_player_troop", skl_riding, -2), # (troop_raise_skill, "$g_player_troop", skl_athletics, -5), (try_end), ]), # head ("bless_tete", [(try_begin), (faction_slot_eq,"fac_mod_variables",slot_Mod_activate_injured,1), (assign, "$blesse_a_tete", 1), (troop_raise_attribute, "trp_player", ca_intelligence, -1), (troop_raise_attribute, "trp_player", ca_agility, -1), # (troop_raise_skill, "$g_player_troop", skl_tactics, -5), # (troop_raise_skill, "$g_player_troop", skl_trade, -4), # (troop_raise_skill, "$g_player_troop", skl_ironflesh, -2), (try_end), ]), @module_game_menus.py ####################################################################################################################################### (str_store_string, s10, "@^^Ally Casualties:{s0}"), (try_end), 之后添加 #zs:kill_stat add by windmelodie (str_clear, s20), (party_get_num_companion_stacks, ":num_stacks", "p_main_party"), (try_for_range, ":i_stack", 0, ":num_stacks"), (party_stack_get_troop_id, ":stack_troop", "p_main_party", ":i_stack"), (str_store_troop_name, s1, ":stack_troop"), (troop_get_slot, reg1, ":stack_troop", slot_troop_kill_cnt),#":troop_kill_cnt" (str_store_string, s20, "@{s20}^{s1}'s kill stat: {reg1}"),# local: qstr_{s20}^{s1}_s_kill_st| (try_end), 替换 ( "battle_debrief",mnf_scale_picture|mnf_disable_all_keys, "{s11}^^Your Casualties:{s8}{s10}^^Enemy Casualties:{s9}^^Kill Stat:{s20}",#zs:kill_stat: local: menu_battle_debrief| "none", [ 替换 #minimap_info disabled by windmelodie ("open_minimap_info",[(neq, "$minimap_state",2),(eq, 1, 0)],"Open Minimap Info", [(assign, "$minimap_state",2), ]), ("close_minimap_info",[(neq, "$minimap_state",1),(eq, 1, 0)],"Close Minimap Info", [(assign, "$minimap_state",1), ]), 替换 #npc cmplaints disabled by windmelodie ("disable_npc_complaints",[(eq, "$disable_npc_complaints", 0),(eq, 1, 0)],"Close npc complaints.", [(assign, "$disable_npc_complaints", 1),]), ("enable_npc_complaints",[(eq, "$disable_npc_complaints", 1),(eq, 1, 0)],"Open npc complaints.", [(assign, "$disable_npc_complaints", 0),]), @module_dialogs.py ####################################################################################################################################### 替换 [anyone|plyr,"lord_truce_offer", [ (call_script, "script_diplomacy_start_peace_between_kingdoms", "$g_encountered_party_faction", "$players_kingdom", 1), ], "I accept. Let us stop making war upon each other, for the time being anyway", "close_window",[]], 为 #windmelodie changed for ask peace in jail [anyone|plyr,"lord_truce_offer", [ (call_script, "script_diplomacy_start_peace_between_kingdoms", "$g_talk_troop_faction", "$players_kingdom", 1), ], "I accept. Let us stop making war upon each other, for the time being anyway", "close_window",[]], @module_troops.py ####################################################################################################################################### ["ribaude_1", "sporting_lady", "{!}sporting_lady", tf_guarantee_armor|tf_female|tf_randomize_face, scn_town_1_tavern|entry(4), reserved, fac_commoners, [itm_ddddd,itm_sarranid_lady_dress_b,itm_woolen_hose,itm_court_dress,itm_ddddd,itm_khergit_lady_dress,itm_khergit_lady_dress_b,itm_sarranid_common_dress,itm_sarranid_common_dress_b], def_attrib|level(2), wp(20), knows_inventory_management_10, 0x0000000006002004151865041b80b76400000000001c29590000000000000000,0x000000001d002007141065041b8cb7fd00000000001c2fd80000000000000000], ["ribaude_2", "sporting_lady", "{!}sporting_lady", tf_guarantee_armor|tf_female|tf_randomize_face, scn_town_1_tavern|entry(5), reserved, fac_commoners, [itm_bride_dress,itm_woolen_hose,itm_red_dress,itm_brown_dress,itm_sarranid_lady_dress,itm_sarranid_lady_dress_b,itm_lady_dress_green], def_attrib|level(2), wp(20), knows_inventory_management_10, 0x000000000000100150004052ca6596cb00000000001c25070000000000000000,0x00000000140010065002806a088414cb00000000001c25070000000000000000], ["ribaude_3", "sporting_lady", "{!}sporting_lady", tf_guarantee_armor|tf_female|tf_randomize_face, scn_town_1_tavern|entry(8), reserved, fac_commoners, [itm_aoqun02,itm_woolen_hose,itm_nvyi,itm_nvyi1,itm_nvyi2,itm_nvyi4,itm_nvyi5,itm_korean_skirt121,itm_aoqun03], def_attrib|level(2), wp(20), knows_inventory_management_10, 0x000000003f006006462a6278c38132c200000000001c36c40000000000000000,0x000000003f00600c4623624843c1b00000000000001db6440000000000000000], 妓女1原 0x000000019d10100414986424c380b76400000000001c29490000000000000000 妓女1改 0x0000000006002004151865041b80b76400000000001c29590000000000000000 0x000000001d002007141065041b8cb7fd00000000001c2fd80000000000000000 妓女2原 0x000000000000100450004052ca6596cb00000000001c25070000000000000000 妓女2改 0x000000000000100150004052ca6596cb00000000001c25070000000000000000 0x00000000140010065002806a088414cb00000000001c25070000000000000000 妓女3原 0x000000003f10100f462a6278c38132c200000000001c36c40000000000000000 妓女3改 0x000000003f006006462a6278c38132c200000000001c36c40000000000000000 0x000000003f00600c4623624843c1b00000000000001db6440000000000000000 @pbod_presentations.py ####################################################################################################################################### ## windmelodie edited for 16th key order ("caba_order_display", prsntf_read_only,0,[ (ti_on_presentation_load, [(set_fixed_point_multiplier, 1000), (try_for_range, ":i", 0, 9), (troop_set_slot, order_frame_presobj, ":i", -1), (try_end), (neg|party_slot_eq, "p_main_party", slot_party_gk_order, 99), (call_script, "script_init_key_config"), # #WSE Operations - game_key_get_key # (game_key_get_key, reg0, gk_order_4), # (call_script, "script_str_store_key_name", s10, reg0), #F4 # (game_key_get_key, reg0, gk_order_5), # (call_script, "script_str_store_key_name", s11, reg0), #F5 # (game_key_get_key, reg0, gk_order_6), # (call_script, "script_str_store_key_name", s12, reg0), #F6 (str_store_string, s10, "str_0x3e"), #F4 (str_store_string, s11, "str_0x3f"), #F5 (str_store_string, s12, "str_0x40"), #F6...no way other than WSE to get the string for what is assigned to a game key (call_script, "script_str_store_key_name", s13, "$key_order_7"), #F7 (call_script, "script_str_store_key_name", s14, "$key_order_8"), #F8 (call_script, "script_str_store_key_name", s15, "$key_order_9"), #F9 (call_script, "script_str_store_key_name", s16, "$key_order_10"), #F10 (assign, ":y_position", 443), (try_begin), #Figure out which orders to display, set strings (party_slot_eq, "p_main_party", slot_party_gk_order, 0), (try_begin), (this_or_next|eq, "$g_next_menu", "mnu_simple_encounter"), #mst_lead_charge (eq, "$g_next_menu", "mnu_join_battle"), (str_store_string, s1, "@{s11} - Formation type orders"), (str_store_string, s2, "@{s12} - Weapon orders"), (str_store_string, s3, "@{s13} - Shield orders"), (str_store_string, s4, "@{s14} - Attack orders"), (str_store_string, s5, "@{s16} - Escape Menu"), (assign, ":num_orders", 5), (else_try), (str_store_string, s1, "@{s11} - Weapon orders"), (str_store_string, s2, "@{s12} - Shield orders"), (str_store_string, s3, "@{s13} - Attack orders"), (str_store_string, s4, "@{s16} - Escape Menu"), (assign, ":num_orders", 4), (try_end), (assign, ":y_position", 443), #470 (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_5), (str_store_string, s1, "@{s11} - Ranks"), (str_store_string, s2, "@{s12} - Shieldwall"), (str_store_string, s3, "@{s13} - Wedge"), (str_store_string, s4, "@{s14} - Square"), (str_store_string, s5, "@{s15} - No Formation"), (str_store_string, s6, "@{s16} - Escape Menu"), (assign, ":num_orders", 6), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, gk_order_6), (str_store_string, s1, "@{s11} - One Handers"), (str_store_string, s2, "@{s12} - Two Handers"), (str_store_string, s3, "@{s13} - Polearms"), (str_store_string, s4, "@{s14} - Ranged"), (str_store_string, s5, "@{s16} - Escape Menu"), (assign, ":num_orders", 5), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, "$key_order_7"), (str_store_string, s1, "@{s11} - Use Shields"), (str_store_string, s2, "@{s12} - No Shields"), (str_store_string, s3, "@{s13} - Free"), (str_store_string, s4, "@{s16} - Escape Menu"), (assign, ":num_orders", 4), (else_try), (party_slot_eq, "p_main_party", slot_party_gk_order, "$key_order_8"), (str_store_string, s1, "@{s11} - End Order"), (str_store_string, s2, "@{s12} - Skirmish"), (str_store_string, s3, "@{s13} - Volley Fire"), (str_store_string, s4, "@{s14} - Brace Polearms"), (str_store_string, s5, "@{s16} - Escape Menu"), (assign, ":num_orders", 5), (try_end), (party_get_slot, ":starting_order", "p_main_party", slot_party_gk_order), (party_set_slot, "p_main_party_backup", slot_party_gk_order, ":starting_order"), (try_for_range, ":i", 0, ":num_orders"), (store_add, ":string", ":i", 1), (str_store_string_reg, s0, ":string"), (create_text_overlay, ":overlay", s0), (overlay_set_color, ":overlay", 0xFFFFFF), (position_set_x, pos1, 1000), (position_set_y, pos1, 1000), (overlay_set_size, ":overlay", pos1), (position_set_x, pos1, 0), (position_set_y, pos1, ":y_position"), (overlay_set_position, ":overlay", pos1), (troop_set_slot, order_frame_presobj, ":i", ":overlay"), (val_sub, ":y_position", 30), (try_end), (store_mul, ":add_back", 30, ":num_orders"), (val_add, ":y_position", ":add_back"), (val_sub, ":y_position", 3), (try_for_range, ":i", 0, ":num_orders"), (create_mesh_overlay, ":overlay", "mesh_order_frame"), (position_set_x, pos1, 700),#712 (position_set_y, pos1, 700),#780 (overlay_set_size, ":overlay", pos1), (position_set_x, pos1, 0), (position_set_y, pos1, ":y_position"), (overlay_set_position, ":overlay", pos1), (overlay_set_display, ":overlay", 0), (val_sub, ":y_position", 30), (try_end), (try_begin), (neg|party_slot_eq, "p_main_party", slot_party_gk_order, 0), (create_mesh_overlay, ":overlay", "mesh_white_plane"), (overlay_set_color, ":overlay", 0), (overlay_set_alpha, ":overlay", 0x10), (position_set_x, pos1, 14000), (position_set_y, pos1, 4500), (overlay_set_size, ":overlay", pos1), (position_set_x, pos1, 0), (position_set_y, pos1, 498), (overlay_set_position, ":overlay", pos1), (try_end), (presentation_set_duration, 999999), ]), (ti_on_presentation_run, [(store_trigger_param_1, ":cur_time"), (gt, ":cur_time", 100), #0.1 Second after Pres. Start (try_begin), (this_or_next|key_clicked, "$key_order_10"), #current exit key (this_or_next|key_clicked, key_escape), (this_or_next|game_key_clicked, gk_order_1), (this_or_next|game_key_clicked, gk_order_2), (this_or_next|game_key_clicked, gk_order_3), #Order Keys not used by Expanded Orders (this_or_next|game_key_clicked, gk_order_4), (this_or_next|game_key_clicked, gk_group0_hear), (this_or_next|game_key_clicked, gk_group1_hear), (this_or_next|game_key_clicked, gk_group2_hear), (this_or_next|game_key_clicked, gk_group3_hear), (this_or_next|game_key_clicked, gk_group4_hear), (this_or_next|game_key_clicked, gk_group5_hear), (this_or_next|game_key_clicked, gk_group6_hear), (this_or_next|game_key_clicked, gk_group7_hear), (this_or_next|game_key_clicked, gk_group8_hear), (this_or_next|game_key_clicked, gk_everyone_hear), (this_or_next|game_key_clicked, gk_everyone_around_hear), (game_key_clicked, gk_reverse_order_group), (presentation_set_duration, 0), (else_try), (assign, ":key", -1), (try_begin), (game_key_clicked, gk_order_5), (assign, ":key", 5), (else_try), (game_key_clicked, gk_order_6), (assign, ":key", 6), (else_try), (key_clicked, "$key_order_7"), (assign, ":key", 7), (else_try), (key_clicked, "$key_order_8"), (assign, ":key", 8), (else_try), (key_clicked, "$key_order_9"), (assign, ":key", 9), (try_end), (neq, ":key", -1), (try_begin), (party_slot_eq, "p_main_party_backup", slot_party_gk_order, 0), (presentation_set_duration, 0), (else_try), (try_begin), (party_slot_eq, "p_main_party_backup", slot_party_gk_order, gk_order_5), (assign, ":min_key", 5), (assign, ":max_key", 9), (else_try), (party_slot_eq, "p_main_party_backup", slot_party_gk_order, gk_order_6), (assign, ":min_key", 5), (assign, ":max_key", 8), (else_try), (party_slot_eq, "p_main_party_backup", slot_party_gk_order, "$key_order_7"), (assign, ":min_key", 5), (assign, ":max_key", 7), (else_try), (party_slot_eq, "p_main_party_backup", slot_party_gk_order, "$key_order_8"), (assign, ":min_key", 5), (assign, ":max_key", 8), (try_end), (store_sub, ":num_orders", ":max_key", ":min_key"), (val_add, ":num_orders", 1), (store_sub, ":key_pressed", ":key", ":min_key"), (is_between, ":key_pressed", 0, ":num_orders"), (val_add, ":num_orders", 1), #For the cancel box (try_for_range, ":i", 0, ":num_orders"), (troop_get_slot, ":overlay", order_frame_presobj, ":i"), (neq, ":i", ":key_pressed"), (overlay_animate_to_alpha, ":overlay", 400, 0x00), (val_add, ":overlay", ":num_orders"), (overlay_animate_to_alpha, ":overlay", 400, 0x00), (else_try), (overlay_animate_to_alpha, ":overlay", 1100, 0x00), (val_add, ":overlay", ":num_orders"), (overlay_animate_to_alpha, ":overlay", 1100, 0x00), (try_end), (presentation_set_duration, 200), #100 (try_end), (try_end), ]), ]),