自己无聊时做的一个非常简易原始古老的银行系统。(11.17更新)
每个大城市都有银行。
银行的菜单放到了商店菜单下。(Go to the marketplace.)
目前有发工资的功能。
新增贷款功能。代码在28L。这个功能需要重新开档。
没有其他功能,比如利息(主要是利率不知道定多少好)……
顶楼改法及附件不需要重新开档。
附件为1010Native几个相关的文件。整合了银行存取/发工资,自动收税。
28L附件整合了银行存取/贷款/发工资,自动收税。需要重新开档。
先上几幅图片。




T×T代码:(1010版)
menus.txt
蓝色字是方便搜索用的。
menusfile version 1
186 (这里原来是183 -> +3)
menu_start_game_1 18374686479671624192
menu_town_trade 0 You_head_towards_the_marketplace. none 0 7(这里原来是6)
找到下面蓝色的内容。在中间加上红色的内容。
mno_trade_with_horse_merchant 1 561 3 144115188075856057 24 1 Trade_with_the_horse_merchant. 2 521 3 1224979098644774912 144115188075856057 24 2042 1 1224979098644774912 . mno_trade_with_goods_merchant 1 561 3 144115188075856057 23 1 Trade_with_the_goods_merchant. 2 521 3 1224979098644774912 144115188075856057 23 2042 1 1224979098644774912 .
mno_go_to_the_bank 1 541 3 144115188075856057 0 3 Go_to_the_bank. 1 2060 1 864691128455135415 . mno_back_to_town_menu 0 Head_back. 1 2060 1 864691128455135333 .
menu_town_trade_assessment_begin 0 You_overhear_several_discussions_about_the_price_of_trade_goods_across_the_local_area._You_listen_closely,_trying_to_work_out_the_best_deals_around. none 0 1
在文件的最后加上下面这一大段……
menu_bank_menu 0 You're_in_the_town's_bank._You_are_currently_have_{reg1}_denars,_and_{reg2}_denars_in_your_acount._What_do_you_want_to_do? none 4 2149 2 1224979098644774912 360287970189639680 2133 2 72057594037927937 1224979098644774912 2149 2 1224979098644774913 360287970189639686 2133 2 72057594037927938 1224979098644774913 3
mno_deposit_money 0 Deposit. 7 2149 2 1224979098644774912 360287970189639680 4 0 32 2 1224979098644774912 0 2060 1 864691128455135416 5 0 1106 2 216172782113785097 4294945450 3 0 . mno_withdraw_money 0 Withdraw. 7 2149 2 1224979098644774912 360287970189639686 4 0 32 2 1224979098644774912 0 2060 1 864691128455135417 5 0 1106 2 216172782113785098 4294945450 3 0 . mno_back_to_town_menu 0 Head_back. 1 2060 1 864691128455135333 .
menu_deposit_money 0 You_are_currently_have_{reg1}_denars,_and_{reg2}_denars_in_your_acount._How_much_do_you_want_to_deposit? none 4 2149 2 1224979098644774912 360287970189639680 2133 2 72057594037927937 1224979098644774912 2149 2 1224979098644774913 360287970189639686 2133 2 72057594037927938 1224979098644774913 5
mno_deposit_money_all 0 All. 8 2149 2 1224979098644774912 360287970189639680 4 0 32 2 1224979098644774912 0 1529 2 360287970189639680 1224979098644774912 1528 2 360287970189639686 1224979098644774912 5 0 1106 2 216172782113785097 4294945450 3 0 . mno_deposit_money_100000 0 100000_denars. 8 2149 2 1224979098644774912 360287970189639680 4 0 30 2 1224979098644774912 100000 1529 2 360287970189639680 100000 1528 2 360287970189639686 100000 5 0 1106 2 216172782113785097 4294945450 3 0 . mno_deposit_money_10000 0 10000_denars. 8 2149 2 1224979098644774912 360287970189639680 4 0 30 2 1224979098644774912 10000 1529 2 360287970189639680 10000 1528 2 360287970189639686 10000 5 0 1106 2 216172782113785097 4294945450 3 0 . mno_deposit_money_1000 0 1000_denars. 8 2149 2 1224979098644774912 360287970189639680 4 0 30 2 1224979098644774912 1000 1529 2 360287970189639680 1000 1528 2 360287970189639686 1000 5 0 1106 2 216172782113785097 4294945450 3 0 . mno_back_to_bank_menu 0 Head_back. 1 2060 1 864691128455135415 .
menu_withdraw_money 0 You_are_currently_have_{reg1}_denars,_and_{reg2}_denars_in_your_acount._How_much_do_you_want_to_withdraw? none 4 2149 2 1224979098644774912 360287970189639680 2133 2 72057594037927937 1224979098644774912 2149 2 1224979098644774913 360287970189639686 2133 2 72057594037927938 1224979098644774913 5
mno_withdraw_money_all 0 All. 8 2149 2 1224979098644774912 360287970189639686 4 0 32 2 1224979098644774912 0 1529 2 360287970189639686 1224979098644774912 1528 2 360287970189639680 1224979098644774912 5 0 1106 2 216172782113785097 4294945450 3 0 . mno_withdraw_money_100000 0 100000_denars. 8 2149 2 1224979098644774912 360287970189639686 4 0 30 2 1224979098644774912 100000 1529 2 360287970189639686 100000 1528 2 360287970189639680 100000 5 0 1106 2 216172782113785098 4294945450 3 0 . mno_withdraw_money_10000 0 10000_denars. 8 2149 2 1224979098644774912 360287970189639686 4 0 30 2 1224979098644774912 10000 1529 2 360287970189639686 10000 1528 2 360287970189639680 10000 5 0 1106 2 216172782113785098 4294945450 3 0 . mno_withdraw_money_1000 0 1000_denars. 8 2149 2 1224979098644774912 360287970189639686 4 0 30 2 1224979098644774912 1000 1529 2 360287970189639686 1000 1528 2 360287970189639680 1000 5 0 1106 2 216172782113785098 4294945450 3 0 . mno_back_to_bank_menu 0 Head_back. 1 2060 1 864691128455135415 .
发工资功能的txt。找到menu_pay_day,后面的一段覆盖就OK。
menu_pay_day 4608 {s1}. none 38 2031 1 1441151880758558729 1 1 936748722493063285 2133 2 1224979098644774912 72057594037927936 2133 2 72057594037927942 1224979098644774912 2133 2 72057594037927938 144115188075856031 2120 3 72057594037927939 72057594037927942 72057594037927938 2149 2 1224979098644774913 360287970189639680 2149 2 1224979098644774914 360287970189639686 2133 2 72057594037927940 1224979098644774913 2133 2 72057594037927943 1224979098644774914 2105 2 1224979098644774912 144115188075856031 2121 3 72057594037927944 1224979098644774912 1224979098644774913 4 0 2147483680 2 72057594037927944 0 2133 2 144115188075856031 0 1529 2 360287970189639680 1224979098644774912 2121 3 72057594037927941 72057594037927940 72057594037927939 2133 2 72057594037927945 72057594037927943 2320 2 1 1585267068834414903 5 0 30 2 1224979098644774914 72057594037927944 2133 2 144115188075856031 0 1529 2 360287970189639680 1224979098644774913 2133 2 72057594037927941 0 1529 2 360287970189639686 72057594037927944 2121 3 72057594037927945 72057594037927943 72057594037927944 2320 2 1 1585267068834414903 5 0 1529 2 360287970189639686 1224979098644774914 1529 2 360287970189639680 1224979098644774913 2121 3 1224979098644774915 1224979098644774912 1224979098644774914 2106 2 1224979098644774915 1224979098644774913 2133 2 72057594037927941 1224979098644774915 2320 2 1 1585267068834414904 2133 2 144115188075856031 1224979098644774915 1 3 936748722493063470 2 216172782113784188 3 0 2320 2 1 1585267068834414905 1
mno_continue 0 Continue... 1 2040 1 0 .
strings.txt
文件最后加上:
str_no_enough_money1 You_dont_have_enough_money_to_deposit.
str_no_enough_money2 No_enough_money_in_your_account_to_withdraw.
quick_strings.txt
查找qstr_You_paid_{reg3}_of_y替换内容。
qstr_You_paid_{reg3}_of_y You_paid_{reg3}_of_your_{reg4}_denars_cash_&_{reg7}_denars_deposits_to_your_men._You_have_{reg5}_denars_and_{reg9}_denars_deposits_left.
qstr_Your_debt_to_your_me Your_debt_to_your_men_amounted_to_{reg3}_denars,_however_you_only_had_{reg4}_&_{reg7}_deposits._Unpaid_sum_of_{reg5}_denars_is_added_as_debt._Your_party_loses_morale.
qstr_This_week_s_wages:_{ This_week's_wages:_{reg6}_denars^Earlier_debts:_{reg2}_denars^Total_payment:_{reg3}_denars^Current_wealth:_{reg4}_denars^Current_deposits:_{reg7}_denars^^{s1}
汉化:
game_menus.csv
在最后加上下面这些。
mno_go_to_the_bank|进 入 银 行
menu_bank_menu|你 走 进 了 卡 拉 迪 亚 连 锁 银 行 , 你 现 在 有 {reg1}第 纳 尔 , 以 及 {reg2}第 纳 尔 的 存 款 。 你 打 算 ?
mno_deposit_money|存 钱 。
mno_withdraw_money|取 钱 。
menu_deposit_money|你 现 在 有 {reg1}第 纳 尔 , 以 及 {reg2}第 纳 尔 的 存 款 。 你 想 存 多 少 ?
mno_deposit_money_all|全 部 。
mno_deposit_money_100000|100000第 纳 尔 。
mno_deposit_money_10000|10000第 纳 尔 。
mno_deposit_money_1000|1000第 纳 尔 。
menu_withdraw_money|你 现 在 有 {reg1}第 纳 尔 , 以 及 {reg2}第 纳 尔 的 存 款 。 你 想 取 多 少 ?
mno_withdraw_money_all|全 部 。
mno_withdraw_money_100000|100000第 纳 尔 。
mno_withdraw_money_10000|10000第 纳 尔 。
mno_withdraw_money_1000|1000第 纳 尔 。
mno_back_to_bank_menu|后 退 。
下面这两条应该是加入到game_strings.csv的末尾。
str_no_enough_money1|你 现 在 没 有 什 么 钱 可 存 。
str_no_enough_money2|你 的 帐 户 里 现 在 一 分 钱 也 没 有 。
quick_strings.csv,查找并替换相应的内容。
qstr_You_paid_{reg3}_of_y|你 从 你 的 口 袋 (共 {reg4}第 纳 尔)和 银 行 账 户 里(共 {reg7}第 纳 尔)给 你 的 部 下 支 付 了 {reg3}第 纳 尔 工 资。 你 还 有 {reg5}第 纳 尔 及 {reg9} 第 纳 尔 存 款 剩 余 。
qstr_Your_debt_to_your_me|你 应 该 支 付 给 你 的 部 下 工 资 {reg3}第 纳 尔, 但 是, 你 的 口 袋 里 只 有 {reg4}第 纳 尔, 帐 户 上 只 有 {reg7}第 纳 尔。 拖 欠 的 工 资 累 计 到 {reg5}第 纳 尔 , 你 的 部 队 士 气 下 降 。
qstr_This_week_s_wages:_{|本 周 工 资: {reg6}第 纳 尔 ^之 前 拖 欠 工 资: {reg2}第 纳 尔 ^总 共 要 支 付: {reg3}第 纳 尔 ^现 有 资 金: {reg4}第 纳 尔 ^现 有 存 款: {reg7}第 纳 尔 ^^{s1}
py代码……比较简单。
module_game_menus.py
# 在交易界面中加入进入银行
# "town_trade",0,
# "You head towards the marketplace.",
# "none",
# 交易的代码,在最后返回之前加上下面的代码。
("go_to_the_bank",
[
(party_slot_eq,"$current_town",slot_party_type, spt_town),
],"Go to the bank.",
[
(try_begin),
(call_script, "script_cf_enter_center_location_bandit_check"),
(else_try),
(jump_to_menu,"mnu_bank_menu"),
(try_end),
]),
# 文件最后加上下面的内容。
(
# 银行界面菜单
"bank_menu",0,
"You're in the town's bank. You are currently have {reg1} denars, and {reg2} denars in your acount. What do you want to do?",
"none",
[
(store_troop_gold, ":player_wealth", "trp_player"),
(assign, reg1, ":player_wealth"),
(store_troop_gold, ":player_account", "trp_tutorial_maceman"),
(assign, reg2, ":player_account"),
],
[
# 存钱
("deposit_money",
[],
"Deposit.",
[
(store_troop_gold, ":player_wealth", "trp_player"),
(try_begin),
(gt,":player_wealth",0),
(jump_to_menu,"mnu_deposit_money"),
(else_try),
(display_message,"str_no_enough_money1",0xFFFFAAAA),
(try_end),
]),
# 取钱
("withdraw_money",[],
"Withdraw.",
[
(store_troop_gold, ":player_account", "trp_tutorial_maceman"),
(try_begin),
(gt,":player_account",0),
(jump_to_menu,"mnu_withdraw_money"),
(else_try),
(display_message,"str_no_enough_money2",0xFFFFAAAA),
(try_end),
]),
# 回到城市菜单
("back_to_town_menu",[],"Head back.",
[
(jump_to_menu,"mnu_town"),
]),
]
),
# 存钱
("deposit_money",0,
"You are currently have {reg1} denars, and {reg2} denars in your acount. How much do you want to deposit?",
"none",
[
(store_troop_gold, ":player_wealth", "trp_player"),
(assign, reg1, ":player_wealth"),
(store_troop_gold, ":player_account", "trp_tutorial_maceman"),
(assign, reg2, ":player_account"),
],
[
# 全部存入
("deposit_money_all",
[],"All.",
[
# 读取玩家现在有多少¥
(store_troop_gold, ":player_wealth", "trp_player"),
(try_begin),
(gt,":player_wealth",0),
# 移除玩家的¥
(troop_remove_gold, "trp_player",":player_wealth"),
# 将¥给我们的银行家……教程中的木棍男……囧。
(troop_add_gold, "trp_tutorial_maceman",":player_wealth"),
(else_try),
# 身上没钱……
(display_message,"str_no_enough_money1",0xFFFFAAAA),
(try_end),
]),
# 后面的跟前面的完全类似
("deposit_money_100000",
[],"100000 denars.",
[
(store_troop_gold, ":player_wealth", "trp_player"),
(try_begin),
(ge,":player_wealth",100000),
(troop_remove_gold, "trp_player",100000),
(troop_add_gold, "trp_tutorial_maceman", 100000),
(else_try),
(display_message,"str_no_enough_money1",0xFFFFAAAA),
(try_end),
]),
("deposit_money_10000",
[],"10000 denars.",
[
(store_troop_gold, ":player_wealth", "trp_player"),
(try_begin),
(ge,":player_wealth",10000),
(troop_remove_gold, "trp_player",10000),
(troop_add_gold, "trp_tutorial_maceman", 10000),
(else_try),
(display_message,"str_no_enough_money1",0xFFFFAAAA),
(try_end),
]),
("deposit_money_1000",
[],"1000 denars.",
[
(store_troop_gold, ":player_wealth", "trp_player"),
(try_begin),
(ge,":player_wealth",1000),
(troop_remove_gold, "trp_player",1000),
(troop_add_gold, "trp_tutorial_maceman", 1000),
(else_try),
(display_message,"str_no_enough_money1",0xFFFFAAAA),
(try_end),
]),
("back_to_bank_menu",[],"Head back.",
[
(jump_to_menu,"mnu_bank_menu"),
]),
]
),
("withdraw_money",0,
"You are currently have {reg1} denars, and {reg2} denars in your acount. How much do you want to withdraw?",
"none",
[
(store_troop_gold, ":player_wealth", "trp_player"),
(assign, reg1, ":player_wealth"),
(store_troop_gold, ":player_account", "trp_tutorial_maceman"),
(assign, reg2, ":player_account"),
],
[
("withdraw_money_all",
[],"All.",
[
(store_troop_gold, ":player_account", "trp_tutorial_maceman"),
(try_begin),
(gt,":player_account",0),
(troop_remove_gold, "trp_tutorial_maceman",":player_account"),
(troop_add_gold, "trp_player",":player_account"),
(else_try),
(display_message,"str_no_enough_money1",0xFFFFAAAA),
(try_end),
]),
("withdraw_money_100000",
[],"100000 denars.",
[
(store_troop_gold, ":player_account", "trp_tutorial_maceman"),
(try_begin),
(ge,":player_account",100000),
(troop_remove_gold, "trp_tutorial_maceman",100000),
(troop_add_gold, "trp_player", 100000),
(else_try),
(display_message,"str_no_enough_money2",0xFFFFAAAA),
(try_end),
]),
("withdraw_money_10000",
[],"10000 denars.",
[
(store_troop_gold, ":player_account", "trp_tutorial_maceman"),
(try_begin),
(ge,":player_account",10000),
(troop_remove_gold, "trp_tutorial_maceman",10000),
(troop_add_gold, "trp_player", 10000),
(else_try),
(display_message,"str_no_enough_money2",0xFFFFAAAA),
(try_end),
]),
("withdraw_money_1000",
[],"1000 denars.",
[
(store_troop_gold, ":player_account", "trp_tutorial_maceman"),
(try_begin),
(ge,":player_account",1000),
(troop_remove_gold, "trp_tutorial_maceman",1000),
(troop_add_gold, "trp_player", 1000),
(else_try),
(display_message,"str_no_enough_money2",0xFFFFAAAA),
(try_end),
]),
("back_to_bank_menu",[],"Head back.",
[
(jump_to_menu,"mnu_bank_menu"),
]),
]
),
发工资功能的PY代码。
# 代码里面原来就有这段。
(
"pay_day",mnf_scale_picture|mnf_disable_all_keys,
"{s1}.",
"none",
[
(set_background_mesh, "mesh_pic_payment"),
(call_script, "script_calculate_player_faction_wage"),
(assign, ":total_wages", reg0),
(assign, reg6, ":total_wages"),
(assign, reg2, "$g_player_debt_to_party_members"),
(store_add, reg3, reg6, reg2),
(store_troop_gold, ":player_wealth", "trp_player"),
(store_troop_gold, ":player_account", "trp_tutorial_maceman"),
(assign, reg4, ":player_wealth"),
(assign, reg7, ":player_account"),
(val_add, ":total_wages", "$g_player_debt_to_party_members"),
# reg8 = 全部薪水 - 玩家现金
(store_sub, reg8, ":total_wages", ":player_wealth"),
(try_begin),
# 如果reg8 <= 0,玩家现金足够
(le, reg8, 0),
(assign, "$g_player_debt_to_party_members", 0),
(troop_remove_gold, "trp_player",":total_wages"),
(store_sub, reg5, reg4, reg3),
(assign, reg9, reg7),
# 你从你的口袋里(共{reg4}第纳尔)和银行账户里(共{reg7}第纳尔)给你的部下支付了{reg3}第纳尔工资。你有{reg5}第纳尔及{reg9}存款剩余。
(str_store_string, s1, "@You paid {reg3} of your {reg4} denars cash & {reg7} denars deposits to your men. You have {reg5} denars and {reg9} denars deposits left."),
(else_try),
# 如果玩家的钱不够,即reg8 > 0
# 如果银行里的钱 > reg8
# 玩家手里的钱 + 银行里的钱足够
(ge, ":player_wealth", reg8),
(assign, "$g_player_debt_to_party_members", 0),
(troop_remove_gold, "trp_player",":player_wealth"),
(troop_remove_gold, "trp_tutorial_maceman",reg8),
(store_sub, reg9, reg7, reg8),
(assign, reg5, 0),
# 你从你的口袋里(共{reg4}第纳尔)和银行账户里(共{reg7}第纳尔)给你的部下支付了{reg3}第纳尔工资。你有{reg5}第纳尔及{reg9}存款剩余。
(str_store_string, s1, "@You paid {reg3} of your {reg4} denars cash & {reg7} denars deposits to your men. You have {reg5} denars and {reg9} denars deposits left."),
(else_try),
# 如果以上两条都不满足,即玩家手里的钱+银行里的钱都不够
(troop_remove_gold, "trp_tutorial_maceman",":player_account"),
(troop_remove_gold, "trp_player",":player_wealth"),
(store_sub, ":unpaid", ":total_wages", ":player_account"),
(val_sub, ":unpaid", ":player_wealth"),
(assign, reg5, ":unpaid"),
# 你应该支付给你的部下工资{reg3}第纳尔,但是,你的口袋里只有{reg4}第纳尔,帐户上只有{reg7}第纳尔。拖欠的工资累计到{reg5}第纳尔,你的部队士气下降。
(str_store_string, s1, "@Your debt to your men amounted to {reg3} denars, however you only had {reg4} & {reg7} deposits. Unpaid sum of {reg5} denars is added as debt. Your party loses morale."),
(assign, "$g_player_debt_to_party_members", ":unpaid"),
(call_script, "script_objectionable_action", tmt_egalitarian, "str_men_unpaid"),
(try_end),
# 本周工资:{reg6}第纳尔^之前拖欠工资:{reg2}第纳尔^总共要支付:{reg3}第纳尔^现有资金:{reg4}第纳尔^现有存款:{reg7}第纳尔
(str_store_string, s1, "@This week's wages: {reg6} denars^Earlier debts: {reg2} denars^Total payment: {reg3} denars^Current wealth: {reg4} denars^Current deposits: {reg7} denars^^{s1}"),
],
[
("continue",[],"Continue...",
[
(change_screen_return,0),
]
),
]
),
完事收工。

[ 本帖最后由 dltas 于 2008-11-23 21:15 编辑 ]
Native.rar
(2008-11-15 16:28:40, Size: 112 kB, Downloads: 22)
我也来说两句 查看全部评论 相关评论