本帖最后由 快乐风猫 于 2025-8-13 10:52 编辑
类似火与剑的银行,直接上代码吧,各项基础数值可以自改,这里以简单示例为主
- #银行
- ("bank",[],"bank",
- [
- (jump_to_menu, "mnu_bank"),
- ]),
复制代码- #银行菜单
- ("bank",mnf_disable_all_keys,
- "Welcome to {s10} Bank. Here, you can carry out operations such as depositing, withdrawing, and taking out loans^^Your deposit:{reg1}^The amount of your quota:{reg2}^you debt:{reg3}^you gold:{reg4}",
- "none",
- [
- (str_store_party_name, s10, "$current_town"), #获取中心名字
-
- (party_get_slot, ":deposit", "$current_town", slot_center_deposit), #获取存款
- (assign, reg1, ":deposit"), #储存存款
- (assign, "$temp", ":deposit"), #储存存款
-
- (party_get_slot, ":quota", "$current_town", slot_center_quota), #获取贷款额度
- (assign, reg2, ":quota"), #储存贷款额度
- (assign, "$temp_2", ":quota"), #储存贷款额度
-
- (party_get_slot, ":debt", "$current_town", slot_center_debt), #获取债务
- (assign, reg3, ":debt"), #储存债务
- (assign, "$temp_3", ":debt"), #储存债务
-
- (store_troop_gold, "$temp_4", "trp_player"),
- (assign, reg4, "$temp_4"),
- ],
-
- [
- ("deposit_1000",
- [
- (try_begin),
- (ge, "$temp_4", 1000),
- (else_try),
- (disable_menu_option),
- (try_end),
- ],"deposit 1000",
- [
- (troop_remove_gold, "trp_player", 1000),
- (val_add, "$temp", 1000),
- (party_set_slot, "$current_town", slot_center_deposit, "$temp"),
- ]),
- ("deposit_5000",
- [
- (try_begin),
- (ge, "$temp_4", 5000),
- (else_try),
- (disable_menu_option),
- (try_end),
- ],"deposit 5000",
- [
- (troop_remove_gold, "trp_player", 5000),
- (val_add, "$temp", 5000),
- (party_set_slot, "$current_town", slot_center_deposit, "$temp"),
- ]),
- ("deposit_10000",
- [
- (try_begin),
- (ge, "$temp_4", 10000),
- (else_try),
- (disable_menu_option),
- (try_end),
- ],"deposit 10000",
- [
- (troop_remove_gold, "trp_player", 10000),
- (val_add, "$temp", 10000),
- (party_set_slot, "$current_town", slot_center_deposit, "$temp"),
- ]),
- ("deposit_all",
- [
- (try_begin),
- (ge, "$temp_4", 1),
- (else_try),
- (disable_menu_option),
- (try_end),
- ],"deposit all",
- [
- (troop_remove_gold, "trp_player", "$temp_4"),
- (val_add, "$temp", "$temp_4"),
- (party_set_slot, "$current_town", slot_center_deposit, "$temp"),
- ]),
-
- ("draw_1000",
- [
- (try_begin),
- (ge, "$temp", 1000),
- (else_try),
- (disable_menu_option),
- (try_end),
- ],"draw 1000",
- [
- (troop_add_gold, "trp_player", 1000),
- (val_sub, "$temp", 1000),
- (party_set_slot, "$current_town", slot_center_deposit, "$temp"),
- ]),
- ("draw_5000",
- [
- (try_begin),
- (ge, "$temp", 5000),
- (else_try),
- (disable_menu_option),
- (try_end),
- ],"draw 5000",
- [
- (troop_add_gold, "trp_player", 5000),
- (val_sub, "$temp", 5000),
- (party_set_slot, "$current_town", slot_center_deposit, "$temp"),
- ]),
- ("draw_10000",
- [
- (try_begin),
- (ge, "$temp", 10000),
- (else_try),
- (disable_menu_option),
- (try_end),
- ],"draw 10000",
- [
- (troop_add_gold, "trp_player", 10000),
- (val_sub, "$temp", 10000),
- (party_set_slot, "$current_town", slot_center_deposit, "$temp"),
- ]),
- ("draw_all",
- [
- (try_begin),
- (ge, "$temp", 1),
- (else_try),
- (disable_menu_option),
- (try_end),
- ],"draw all",
- [
- (troop_add_gold, "trp_player", "$temp"),
- (val_sub, "$temp", "$temp"),
- (party_set_slot, "$current_town", slot_center_deposit, "$temp"),
- ]),
-
- ("loans", #贷款
- [
- (eq, "$temp_2", 3000), #有额度
- (eq, "$temp_3", 0), #没有债务
- ],"loans",
- [
- (troop_add_gold, "trp_player", "$temp_2"),
- (party_set_slot, "$current_town", slot_center_quota, 0), #额度用完
- (store_div, ":lixi", "$temp_2", 5),
- (val_add, "$temp_2", ":lixi"),
- (party_set_slot, "$current_town", slot_center_debt, "$temp_2"), #债务3000+(3000/5)
- (party_set_slot, "$current_town", slot_center_bank_debt_days, 1), #开始计算欠款周期
- ]),
-
- ("repay", #还款
- [
- (eq, "$temp_2", 0), #没有额度
- (gt, "$temp_3", 0), #有债务
- (ge, "$temp_4", "$temp_3"), #钱足够
- ],"repay",
- [
- (troop_remove_gold, "trp_player", "$temp_3"),
- (party_set_slot, "$current_town", slot_center_quota, 3000), #恢复额度
- (party_set_slot, "$current_town", slot_center_debt, 0), #债务清零
- (party_set_slot, "$current_town", slot_center_bank_debt_days, 0), #欠款期限清0
- ]),
-
- ("back_to_town_menu",[],"leave",
- [
- (jump_to_menu, "mnu_city_centre"),
- ]),
- ]
- ),
-
- #入城被催债菜单
- ("bank_collect",mnf_disable_all_keys,
- "You have been ambushed {s10}",
- "none",
- [
- (str_store_party_name, s10, "$current_town"), #获取中心名字
- ],
-
- [
- ("continue",[],"continue",
- [
- (call_script, "script_cf_bank_debt_collection"),
- ]),
- ]
- ),
-
-
-
- #银行催债战斗胜利
- ("combat_ok",mnf_disable_all_keys,
- "You've won.",
- "none",
- [],
-
- [
- ("continue",[],"continue",
- [
- (party_set_slot, "$current_town", slot_center_bank_collect, 0), #中心停止收债
- (party_set_slot, "$current_town", slot_center_bank_grace_period_end, 7), #给玩家7天宽限期
- (change_screen_map),
- ]),
- ]
- ),
-
-
-
- #银行催债战斗失败
- ("combat_no",mnf_disable_all_keys,
- "You failed {s12}",
- "none",
- [
- (party_get_slot, ":debt", "$current_town", slot_center_debt),
- (store_troop_gold, ":gold", "trp_player"),
- (try_begin),
- (ge, ":gold", ":debt"), #玩家钱足够还全部贷款
- (troop_remove_gold, "trp_player", ":debt"), #减钱
- (party_set_slot, "$current_town", slot_center_debt, 0), #清空债务
- (party_set_slot, "$current_town", slot_center_quota, 3000), #恢复额度
- (party_set_slot, "$current_town", slot_center_bank_grace_period_end, 0), #设置无宽限期
- (party_set_slot, "$current_town", slot_center_bank_collect, 0), #中心收债停止
- (party_set_slot, "$current_town", slot_center_bank_debt_days, 0), #重置贷款周期天数
- (str_store_string, s12, "@beiqiangjiele"),
- (else_try),
- (lt, ":gold", ":debt"), #如果钱不够还贷款
- (troop_remove_gold, "trp_player", ":gold"), #移除所有钱
- (val_sub, ":debt" , ":gold"), #抵债
- (party_set_slot, "$current_town", slot_center_debt, ":debt"), #剩余债务
- (party_set_slot, "$current_town", slot_center_bank_grace_period_end, 7), #银行给你7天的宽限期
- (party_set_slot, "$current_town", slot_center_bank_collect, 0), #中心收债停止
- (str_store_string, s12, "@beiqiangjiele 1"),
- (try_end),
- ],
-
- [
- ("continue",[],"continue",
- [
- (party_set_slot, "$current_town", slot_center_bank_collect, 0),
- (change_screen_map),
- ]),
- ]
- ),
复制代码
|
- slot_center_bank = 404 #中心银行
- slot_center_deposit = 405 #银行存款
- slot_center_debt = 406 #银行债务
- slot_center_quota = 407 #银行贷款额度
- slot_center_bank_debt_days = 408 #欠款天数
- slot_center_bank_collect = 409 #执行收债
- slot_center_bank_grace_period_end = 410 #宽限期
复制代码
|
- #银行贷款期限/利息叠加
- (24,
- [
- (try_for_range, ":town_no", towns_begin, towns_end),
-
- (party_get_slot, ":deposit", ":town_no", slot_center_deposit), #获取存款
- (party_get_slot, ":debt", ":town_no", slot_center_debt), #获取债务
- (party_get_slot, ":debt_days", ":town_no", slot_center_bank_debt_days), #获取债务期限
- (party_get_slot, ":kuanxianqi", ":town_no", slot_center_bank_grace_period_end), #获取是否有宽限期
-
- (try_begin),
- (gt, ":debt", 0), #如果银行有债务
- (try_begin),
- (gt, ":debt_days", 0), #有债务期限
-
- (try_begin),
- (eq, ":kuanxianqi", 0), # 无宽限期
- (val_add, ":debt_days", 1), # 天数+1
- (else_try),
- (gt, ":kuanxianqi", 0), # 有宽限
- (val_sub, ":kuanxianqi", 1), # 宽限期-1
- (try_end),
- (val_max, ":debt_days", 0),
- (val_max, ":kuanxianqi", 0),
- (party_set_slot, ":town_no", slot_center_bank_debt_days, ":debt_days"), #开始累计期限
- (party_set_slot, ":town_no", slot_center_bank_grace_period_end, ":kuanxianqi"), #更新宽限期
- (try_end),
-
- (party_get_slot, ":debt_days", ":town_no", slot_center_bank_debt_days), #继续获取债务期限
- (party_get_slot, ":kuanxianqi", ":town_no", slot_center_bank_grace_period_end), #继续获取宽限期
- (try_begin),
- (eq, ":kuanxianqi", 0), #宽限期已到
- (gt, ":debt_days", 30), #第31天开始每天累计5%利息
- (store_mul, ":lixi", ":debt", 5),
- (val_div, ":lixi", 100),
- (val_add, ":debt", ":lixi"),
- (party_set_slot, ":town_no", slot_center_debt, ":debt"),
- (try_begin),
- (party_get_slot, ":debt", ":town_no", slot_center_debt), #获取债务
- (ge, ":deposit", ":debt"),
- (val_sub, ":deposit", ":debt"),
- (party_set_slot, ":town_no", slot_center_deposit, ":deposit"),
- (party_set_slot, ":town_no", slot_center_debt, 0),
- (party_set_slot, ":town_no", slot_center_quota, 3000),
- (party_set_slot, ":town_no", slot_center_bank_debt_days, 0), #重置天数
- (party_set_slot, ":town_no", slot_center_bank_grace_period_end, 0), #更新宽限期
- (str_store_party_name_link, s2, ":town_no"),
- (display_message, "@你 在 {s2}银 行 的 贷 款 到 期 了 ,你 没 有 及 时 还 款 ,已 经 从 你 的 个 人 账 户 中 扣 除 。", 0xFFFF2222),
- (else_try),
- (party_set_slot, ":town_no", slot_center_bank_collect, 1), #中心开始收债
- (try_end),
- (try_end),
- (try_end),
- (try_end),
- ]),
复制代码
|
- #银行派人收债
- ("cf_bank_debt_collection",
- [
- (party_slot_ge, "$current_town", slot_center_bank_collect, 1), #中心启动了收债
- (eq, "$g_defending_against_siege", 0), #中心没有被围攻
- (eq, "$sneaked_into_town", 0), #未潜入
- (party_get_slot, ":cur_scene", "$current_town", slot_town_center),
- (modify_visitors_at_site, ":cur_scene"),
- (reset_visitors),
- (set_jump_mission, "mt_bank_combat"),
- (set_jump_entry, 0),
-
-
- (assign, ":have_hero", 0),
- (try_begin),
- (try_for_range, ":npc", companions_begin, companions_end),
- (main_party_has_troop, ":npc"),
- (val_add, ":have_hero", 1),
- (set_visitor, 4, ":npc"), #队伍npc同伴从酒馆出来支援
- (try_end),
- (try_end),
-
- (try_begin),
- (set_visitors, 11, "trp_bank_guard", 2),
- (set_visitors, 27, "trp_bank_guard", 2),
- (set_visitors, 28, "trp_bank_guard", 2),
- (assign, "$town_entered", 1),
- (assign, "$all_doors_locked", 1),
- (try_end),
- (display_message, "@你 遭 遇 了 埋 伏 !银 行 派 人 来 催 收 你 的 贷 款 了 。", 0xFFFF2222),
-
- (try_begin),
- (gt, ":have_hero", 0),
- (display_message, "@支 援 到 了 !你 的 同 伴 从 酒 馆 里 杀 出 来 了 。", 0xFFAAFFAA),
- (try_end),
-
- (jump_to_scene, ":cur_scene"),
- (change_screen_mission),
- ]),
复制代码
|
- #银行催收战斗
- (
- "bank_combat", mtf_battle_mode, -1,
- "Default town visit",
- [(0,mtef_scene_source|mtef_team_0, af_override_horse, aif_start_alarmed, 1, pilgrim_disguise),
- (1,mtef_scene_source|mtef_team_0,0,0,1,[]),
- (2,mtef_scene_source|mtef_team_0,af_override_horse,0,1,[]),
- (3,mtef_scene_source|mtef_team_0,af_override_horse,0,1,[]),
- (4,mtef_visitor_source|mtef_team_0, af_override_horse, aif_start_alarmed, 0, []),
- (5,mtef_scene_source|mtef_team_0,af_override_horse,0,1,[]),
- (6,mtef_scene_source|mtef_team_0,af_override_horse,0,1,[]),
- (7,mtef_scene_source|mtef_team_0,af_override_horse,0,1,[]),
-
- (8,mtef_scene_source,af_override_horse,0,1,[]),
- (9,mtef_visitor_source,af_override_horse,0,1,[]),
- (10,mtef_visitor_source,af_override_horse,0,1,[]),
- (11,mtef_visitor_source,af_override_horse,aif_start_alarmed,1,[]),
- (12,mtef_visitor_source,af_override_horse,0,1,[]),
- (13,mtef_scene_source,0,0,1,[]),
- (14,mtef_scene_source,0,0,1,[]),
- (15,mtef_scene_source,0,0,1,[]),
- (16,mtef_visitor_source,af_override_horse,0,1,[]),
- (17,mtef_visitor_source,af_override_horse,0,1,[]),
- (18,mtef_visitor_source,af_override_horse,0,1,[]),
- (19,mtef_visitor_source,af_override_horse,0,1,[]),
- (20,mtef_visitor_source,af_override_horse,0,1,[]),
- (21,mtef_visitor_source,af_override_horse,0,1,[]),
- (22,mtef_visitor_source,af_override_horse,0,1,[]),
- (23,mtef_visitor_source,af_override_horse,0,1,[]),
- (24,mtef_visitor_source,af_override_horse,0,1,[]),
- (25,mtef_visitor_source,af_override_horse,0,1,[]),
- (26,mtef_visitor_source,af_override_horse,0,1,[]),
- (27,mtef_visitor_source,af_override_horse,aif_start_alarmed,1,[]),
- (28,mtef_visitor_source,af_override_horse,aif_start_alarmed,1,[]),
- (29,mtef_visitor_source,af_override_horse,0,1,[]),
- (30,mtef_visitor_source,af_override_horse,0,1,[]),
- (31,mtef_visitor_source,af_override_horse,0,1,[]),
- (32,mtef_visitor_source,af_override_horse,0,1,[]),
- (33,mtef_visitor_source,af_override_horse,0,1,[]),
- (34,mtef_visitor_source,af_override_horse,0,1,[]),
- (35,mtef_visitor_source,af_override_horse,0,1,[]),
- (36,mtef_visitor_source,af_override_horse,0,1,[]),
- (37,mtef_visitor_source,af_override_horse,0,1,[]),
- (38,mtef_visitor_source,af_override_horse,0,1,[]),
- (39,mtef_visitor_source,af_override_horse,0,1,[]),
- (40,mtef_visitor_source|mtef_team_1,af_override_horse,aif_start_alarmed,1,[]),
- (41,mtef_visitor_source|mtef_team_1,af_override_horse,aif_start_alarmed,1,[]),
- (42,mtef_visitor_source|mtef_team_1,af_override_horse,aif_start_alarmed,1,[]),
- (43,mtef_visitor_source|mtef_team_1,af_override_horse,aif_start_alarmed,1,[]),
- (44,mtef_visitor_source|mtef_team_1,af_override_horse,aif_start_alarmed,1,[]),
- (45,mtef_visitor_source|mtef_team_1,af_override_horse,aif_start_alarmed,1,[]),
- (46,mtef_visitor_source|mtef_team_1,af_override_horse,aif_start_alarmed,1,[]),
- (47,mtef_visitor_source|mtef_team_1,af_override_horse,aif_start_alarmed,1,[]),
- ],
- [
- (ti_on_agent_spawn, 0, 0, [],
- [
- (store_trigger_param_1, ":agent_no"),
- (agent_get_troop_id, ":troop_no", ":agent_no"),
- (neq, ":troop_no", "trp_player"),
- (neg|is_between, ":troop_no", companions_begin, companions_end),
- (agent_set_team, ":agent_no", 1),
-
- (get_player_agent_no, ":player_agent"),
- (agent_get_team, ":agent_team", ":player_agent"),
- (try_begin),
- (is_between, ":troop_no", companions_begin, companions_end),
- (agent_set_team, ":agent_no", ":agent_team"),
- (try_end),
- ]),
- (ti_before_mission_start, 0, 0, [], [(call_script, "script_change_banners_and_chest")]),
- common_inventory_not_available,
-
- (ti_tab_pressed, 0, 0,
- [
- (display_message, "str_cannot_leave_now"),
- ], []),
- (ti_on_leave_area, 0, 0,
- [
- (try_begin),
- (eq, "$g_defending_against_siege", 0),
- (assign,"$g_leave_town",1),
- (try_end),
- ], []),
- (0, 0, ti_once, [],
- [
- (call_script, "script_music_set_situation_with_culture", mtf_sit_ambushed),
- (set_party_battle_mode),
- (party_slot_eq, "$current_town", slot_party_type, spt_town),
- (call_script, "script_town_init_doors", 0),
- ]),
- (1, 4, ti_once,
- [
- (store_mission_timer_a,":cur_time"),
- (ge, ":cur_time", 5),
- (this_or_next|main_hero_fallen),
- (num_active_teams_le,1)
- ],
- [
- (try_begin),
- (main_hero_fallen),
- (jump_to_menu, "mnu_combat_no"),
- (else_try),
- (jump_to_menu, "mnu_combat_ok"),
- (try_end),
- (finish_mission),
- ]),
- ],
- ),
复制代码
|
最后在module_game_menus里搜索alert player that there are new rumors,在上面一行添加
- (try_begin),
- (party_slot_ge, "$current_town", slot_center_bank_collect, 1),
- (jump_to_menu, "mnu_bank_collect"),
- (try_end),
复制代码
- menu_bank|欢 迎 来 到 {s10}银 行 ,你 可 以 在 这 里 进 行 存 款 、取 款 、贷 款 、还 款 等 操 作 ,您 可 以 每 周 从 存 款 中 获 得 2%的 利 息 。^本 行 的 贷 款 周 期 为 30天 ,初 期 利 率 为 20%,超 过 期 限 未 还 款 将 会 优 先 从 您 的 存 款 账 户 扣 ,逾 期 每 天 累 计 5%利 息^^当 前 存 款 :{reg1}金 币^您 在 本 行 拥 有 :{reg2}金 币 的 贷 款 额 度^您 在 本 行 的 债 务 :{reg3}金 币^您 身 上 的 现 金 :{reg4}金 币
- mno_deposit_1000|存 入 1000金 币 。
- mno_deposit_5000|存 入 5000金 币 。
- mno_deposit_10000|存 入 10000金 币 。
- mno_deposit_all|存 入 所 有 金 币 。
- mno_draw_1000|取 出 1000金 币 。
- mno_draw_5000|取 出 5000金 币 。
- mno_draw_10000|取 出 10000金 币 。
- mno_draw_all|取 出 所 有 金 币 。
- mno_loans|贷 款 。
- mno_repay|还 款 。
- menu_bank_collect|你 进 入 了 {s10}城 ,在 街 上 慢 慢 走 着 。^不 知 不 觉 间 ,周 围 的 人 越 来 越 少 ,街 道 安 静 的 出 奇 。^你 开 始 觉 得 不 对 劲 ,总 感 觉 有 东 西 在 暗 处 盯 着 自 己 。^你 警 觉 地 四 处 张 望 ,手 慢 慢 摸 向 武 器 。^下 一 秒 ,你 猛 地 拔 出 武 器 站 在 原 地 ,屏 住 呼 吸 等 着 周 围 的 动 静 。^可 街 道 依 旧 空 荡 没 有 声 音 ,也 没 有 人 出 现 。^但 你 知 道 ,有 人 在 看 着 你 — — 也 许 不 止 一 个 。^你 握 紧 武 器 ,小 心 翼 翼 地 继 续 往 前 走 ,每 一 步 都 踩 得 格 外 轻 。
- menu_combat_ok|你 干 掉 了 来 收 债 的 士 兵 ,只 留 下 一 个 活 口 带 回 消 息 ,想 用 这 种 方 式 争 取 一 点 喘 息 的 时 间 。果 然 ,银 行 很 快 有 了 回 应 — — 同 意 你 的 债 务 延 期 一 周 ,但 会 给 你 增 加 额 外 的 利 息 。
- menu_combat_no|你 被 来 收 债 的 士 兵 狠 狠 揍 了 一 顿 ,意 识 模 糊 中 被 人 拖 走 扔 在 路 边 。^等 你 醒 来 时 ,发 现 自 己 躺 在 某 个 农 民 的 猪 圈 里 ,浑 身 湿 冷 ,满 身 泥 泞 和 猪 粪 的 味 道 。^^你 的 脑 袋 一 阵 阵 发 晕 ,嘴 里 还 有 血 味 ,手 脚 酸 软 ,显 然 已 经 被 打 得 不 轻 ,{s12}
复制代码- qstr_beiqiangjiele|你 发 现 你 的 钱 包 被 丢 在 一 边 ,旁 边 放 着 一 张 债 务 已 结 清 的 证 明 。你 打 开 钱 包 检 查 了 一 下 ,还 好 ,他 们 只 拿 走 了 足 够 偿 还 贷 款 的 金 币 。你 松 了 口 气 ,把 钱 包 收 好 ,虽 然 损 失 了 不 少 钱 ,但 至 少 还 留 了 一 些 。你 站 起 身 来 ,整 理 了 一 下 衣 服 ,开 始 思 考 接 下 来 该 去 哪 里 ,或 者 该 做 些 什 么 。
- qstr_beiqiangjiele_1|你 摇 摇 晃 晃 地 站 起 来 ,发 现 钱 包 被 扔 在 地 上 ,打 开 一 看 里 面 空 空 如 也 ,所 有 的 金 币 都 被 拿 走 用 来 偿 还 你 的 贷 款 。身 旁 扔 着 一 张 宽 限 你 债 务 一 周 的 纸 条 。 你 心 里 一 沉 ,感 觉 压 力 更 大 了 。检 查 了 一 下 身 上 的 东 西 ,确 认 除 了 钱 之 外 没 少 别 的 ,你 便 慢 慢 朝 城 外 走 去 。
复制代码
|
代码合集:
多文化官爵功勋系统
兵种克制/领主阵亡
封建制税收
人口/人口税收系统
正规军巡逻队
刺杀领主
玩家阵亡附魂系统
贴近真实的补给消耗系统
领主私兵
|