mskimizd
Sergeant at Arms
Hello everyone!I am mskimizd.I just started to learn to do some interface through the module_presentations.py.
This is my first works. A simple bank system. Now it only hasdeposit,loan and withdrawals function.
Deposit and loan has interest,but it is temporarily settled. I plan to let it become floating in the future.
What'more,bank safe is also in my future plan. Anybody has some good idea for this bank system?
Here is my code.I am just a beginner of presentation.So,if the code has some problem,welcome point out.
module_game_menus.py
put it on your town menu item
module_game_menus.py
module_constants.py
module_presentations.py
module_strings.py
module_simple_triggers.py
module_scripts.py
This is my first works. A simple bank system. Now it only hasdeposit,loan and withdrawals function.
Deposit and loan has interest,but it is temporarily settled. I plan to let it become floating in the future.
What'more,bank safe is also in my future plan. Anybody has some good idea for this bank system?
Here is my code.I am just a beginner of presentation.So,if the code has some problem,welcome point out.
module_game_menus.py
put it on your town menu item
Code:
("bank", ## ZZ bank
[],
"Go to bank",
[
(assign,"$g_Loan_Deposit",0),
(assign,"$g_pay_get",0),
(assign,"$g_bank_talk",99),
(assign,"$g_interest_deposit",5),
(assign,"$g_interest_debt",20),
(start_presentation, "prsnt_bank"),
]),
module_game_menus.py
Code:
("notification_interest_debt",0,
"You need to pay interest for you debt.Your debt now is {reg1}.And interest needed to paied is{reg2}>^You can pay it now.Or justlet it add to debt.",
"none",
[
(troop_get_slot,":debt","trp_player",slot_troop_debt),
(assign,reg1,":debt"),
(assign,reg2, "$g_notification_menu_var1"),
],
[
("pay_it_now",
[
(store_troop_gold,":cash","trp_player"),
(ge,":cash",reg2),
],
"Pay it now.",
[
(troop_remove_gold, "trp_player",reg2),
(change_screen_return),
]),
("add_to_debt",[],"Add to debt.",
[
(val_add,reg1,reg2),
(troop_set_slot,"trp_player",slot_troop_debt,reg1),
(change_screen_return),
]),
]),
module_constants.py
Code:
slot_troop_debt = 301 ## ZZ bank
slot_troop_deposit = 302 ## ZZ bank
module_presentations.py
Code:
## ZZ bank presentation begin
("bank", prsntf_manual_end_only, mesh_load_window,[
(ti_on_presentation_load,
[
(set_fixed_point_multiplier, 1000),
#(call_script, "script_presentation_load"),
(assign,"$g_num_temp",0),
(assign,"$g_num_temp_1",0),
(assign,"$g_num_temp_2",0),
(assign,"$g_num_temp_3",0),
(assign,"$g_num_temp_4",0),
(assign,"$g_num_temp_5",0),
(str_store_string,s1,"@BANK OF ^VOLENCIA"),
(create_text_overlay,"$g_presentation_obj_1",s1,tf_center_justify|tf_with_outline),
(overlay_set_color, "$g_presentation_obj_1", 0xFFFFFFFF),
(position_set_x, pos1, 450),
(position_set_y, pos1, 630),
(overlay_set_position, "$g_presentation_obj_1", pos1),
(position_set_x, pos1, 2000),
(position_set_y, pos1, 2000),
(overlay_set_size, "$g_presentation_obj_1", pos1),
(create_mesh_overlay_with_tableau_material, "$g_presentation_obj_2", -1, "tableau_troop_note_mesh", "trp_swadian_merchant"),
(position_set_x, pos1, 50),
(position_set_y, pos1, 80),
(overlay_set_position, "$g_presentation_obj_2", pos1),
(position_set_x, pos1, 700),
(position_set_y, pos1, 700),
(overlay_set_size, "$g_presentation_obj_2", pos1),
(create_game_button_overlay, "$g_presentation_obj_3", "str_back", 0),
(position_set_x, pos1, 870),
(position_set_y, pos1, 300),
(overlay_set_position, "$g_presentation_obj_3", pos1),
(create_mesh_overlay_with_tableau_material, "$g_presentation_obj_4", -1, "tableau_troop_note_mesh", "trp_player"),
(position_set_x, pos1, 30),
(position_set_y, pos1, 420),
(overlay_set_position, "$g_presentation_obj_4", pos1),
(position_set_x, pos1, 700),
(position_set_y, pos1, 700),
(overlay_set_size, "$g_presentation_obj_4", pos1),
#(create_image_button_overlay, "$g_presentation_obj_4", "mesh_white_plane", "mesh_white_plane"),
#(overlay_set_color, "$g_presentation_obj_4", 0),
#(position_set_x, pos1, 7500),
#(position_set_y, pos1, 24000),
#(overlay_set_size, "$g_presentation_obj_4", pos1),
#(position_set_x, pos1, 340),
#(position_set_y, pos1, 400),
#(overlay_set_position, "$g_presentation_obj_4", pos1),
#(overlay_set_alpha, "$g_presentation_obj_4", 0x80),
#(overlay_set_color, "$g_presentation_obj_4", 0xffff00),
(call_script,"script_player_info_bank"),
(create_text_overlay,"$g_presentation_obj_5",s2,tf_left_align),
(position_set_x, pos1, 350),
(position_set_y, pos1, 400),
(overlay_set_position, "$g_presentation_obj_5", pos1),
(position_set_x, pos1, 1500),
(position_set_y, pos1, 1500),
(overlay_set_size, "$g_presentation_obj_5", pos1),
(create_combo_label_overlay, "$g_presentation_obj_6"),
(position_set_x, pos1, 775),
(position_set_y, pos1, 670),
(overlay_set_position, "$g_presentation_obj_6", pos1),
(overlay_add_item, "$g_presentation_obj_6", "@Deposit"),
(overlay_add_item, "$g_presentation_obj_6", "@Loan"),
(overlay_set_val, "$g_presentation_obj_6", "$g_Loan_Deposit"),
(try_begin),
(eq ,"$g_Loan_Deposit",0),
(create_combo_button_overlay, "$g_presentation_obj_7"),
(position_set_x, pos1, 775),
(position_set_y, pos1, 615),
(overlay_set_position, "$g_presentation_obj_7", pos1),
(overlay_add_item, "$g_presentation_obj_7", "@Give Deposit"),
(overlay_add_item, "$g_presentation_obj_7", "@Get Deposit"),
(overlay_set_val, "$g_presentation_obj_7", "$g_pay_get"),
(try_end),
(try_begin),
(eq ,"$g_Loan_Deposit",1),
(create_combo_button_overlay, "$g_presentation_obj_8"),
(position_set_x, pos1, 775),
(position_set_y, pos1, 615),
(overlay_set_position, "$g_presentation_obj_8", pos1),
(overlay_add_item, "$g_presentation_obj_8", "@Return Loan"),
(overlay_add_item, "$g_presentation_obj_8", "@Get Loan"),
(overlay_set_val, "$g_presentation_obj_8", "$g_pay_get"),
(try_end),
(create_slider_overlay, "$g_presentation_obj_9", 0,9),
(position_set_x, pos1, 800),
(position_set_y, pos1, 540),
(overlay_set_position, "$g_presentation_obj_9", pos1),
(create_slider_overlay, "$g_presentation_obj_10", 0,9),
(position_set_x, pos1, 800),
(position_set_y, pos1, 500),
(overlay_set_position, "$g_presentation_obj_10", pos1),
(create_slider_overlay, "$g_presentation_obj_11", 0,9),
(position_set_x, pos1, 800),
(position_set_y, pos1, 460),
(overlay_set_position, "$g_presentation_obj_11", pos1),
(create_slider_overlay, "$g_presentation_obj_12", 0,9),
(position_set_x, pos1, 800),
(position_set_y, pos1, 420),
(overlay_set_position, "$g_presentation_obj_12", pos1),
(create_slider_overlay, "$g_presentation_obj_13", 0,9),
(position_set_x, pos1, 800),
(position_set_y, pos1, 380),
(overlay_set_position, "$g_presentation_obj_13", pos1),
(create_number_box_overlay, "$g_presentation_obj_14", 0,10),
(position_set_x, pos1, 600),
(position_set_y, pos1, 540),
(overlay_set_position, "$g_presentation_obj_14", pos1),
(create_number_box_overlay, "$g_presentation_obj_15", 0,10),
(position_set_x, pos1, 600),
(position_set_y, pos1, 500),
(overlay_set_position, "$g_presentation_obj_15", pos1),
(create_number_box_overlay, "$g_presentation_obj_16", 0,10),
(position_set_x, pos1, 600),
(position_set_y, pos1, 460),
(overlay_set_position, "$g_presentation_obj_16", pos1),
(create_number_box_overlay, "$g_presentation_obj_17", 0,10),
(position_set_x, pos1, 600),
(position_set_y, pos1, 420),
(overlay_set_position, "$g_presentation_obj_17", pos1),
(create_number_box_overlay, "$g_presentation_obj_18", 0,10),
(position_set_x, pos1, 600),
(position_set_y, pos1, 380),
(overlay_set_position, "$g_presentation_obj_18", pos1),
(create_game_button_overlay, "$g_presentation_obj_19", "@Yes", 0),
(position_set_x, pos1, 670),
(position_set_y, pos1, 300),
(overlay_set_position, "$g_presentation_obj_19", pos1),
(try_begin),
(eq,"$g_bank_talk",0),
(assign,reg1,"$g_interest_deposit"),
(create_text_overlay, "$g_presentation_obj_21","str_deposit",tf_left_align),
(position_set_x, pos1, 300),
(position_set_y, pos1, 150),
(overlay_set_position, "$g_presentation_obj_21", pos1),
(position_set_x, pos1, 1000),
(position_set_y, pos1, 1000),
(overlay_set_size, "$g_presentation_obj_21", pos1),
(else_try),
(eq,"$g_bank_talk",1),
(store_mul,reg1,1000,"$player_honor"),
(assign,reg2,"$g_interest_debt"),
(create_text_overlay, "$g_presentation_obj_22","str_loan",tf_left_align),
(position_set_x, pos1, 300),
(position_set_y, pos1, 150),
(overlay_set_position, "$g_presentation_obj_22", pos1),
(position_set_x, pos1, 1000),
(position_set_y, pos1, 1000),
(overlay_set_size, "$g_presentation_obj_22", pos1),
(else_try),
(eq,"$g_bank_talk",11),
(create_text_overlay, "$g_presentation_obj_23","str_answer_1",tf_left_align),
(position_set_x, pos1, 300),
(position_set_y, pos1, 150),
(overlay_set_position, "$g_presentation_obj_23", pos1),
(position_set_x, pos1, 1000),
(position_set_y, pos1, 1000),
(overlay_set_size, "$g_presentation_obj_23", pos1),
(else_try),
(eq,"$g_bank_talk",12),
(create_text_overlay, "$g_presentation_obj_24","str_answer_2",tf_left_align),
(position_set_x, pos1, 300),
(position_set_y, pos1, 150),
(overlay_set_position, "$g_presentation_obj_24", pos1),
(position_set_x, pos1, 1000),
(position_set_y, pos1, 1000),
(overlay_set_size, "$g_presentation_obj_24", pos1),
(else_try),
(eq,"$g_bank_talk",13),
(create_text_overlay, "$g_presentation_obj_25","str_answer_3",tf_left_align),
(position_set_x, pos1, 300),
(position_set_y, pos1, 150),
(overlay_set_position, "$g_presentation_obj_25", pos1),
(position_set_x, pos1, 1000),
(position_set_y, pos1, 1000),
(overlay_set_size, "$g_presentation_obj_25", pos1),
(else_try),
(eq,"$g_bank_talk",14),
(create_text_overlay, "$g_presentation_obj_25","str_answer_4",tf_left_align),
(position_set_x, pos1, 300),
(position_set_y, pos1, 150),
(overlay_set_position, "$g_presentation_obj_25", pos1),
(position_set_x, pos1, 1000),
(position_set_y, pos1, 1000),
(overlay_set_size, "$g_presentation_obj_25", pos1),
(else_try),
(create_text_overlay, "$g_presentation_obj_20","str_welcome_word",tf_left_align),
(position_set_x, pos1, 300),
(position_set_y, pos1, 150),
(overlay_set_position, "$g_presentation_obj_20", pos1),
(position_set_x, pos1, 1000),
(position_set_y, pos1, 1000),
(overlay_set_size, "$g_presentation_obj_20", pos1),
(try_end),
(presentation_set_duration, 999999),
]),
(ti_on_presentation_event_state_change,
[
(store_trigger_param_1, ":object"),
(store_trigger_param_2, ":value"),
(try_begin),
(eq,":object", "$g_presentation_obj_3"),
(presentation_set_duration, 0),
(else_try),
(eq,":object", "$g_presentation_obj_6"),
(assign,"$g_Loan_Deposit",":value"),
(assign,"$g_bank_talk",":value"),
(start_presentation, "prsnt_bank"),
(else_try),
(eq,":object", "$g_presentation_obj_7"),
(assign,"$g_pay_get",":value"),
(start_presentation, "prsnt_bank"),
(else_try),
(eq,":object", "$g_presentation_obj_8"),
(assign,"$g_pay_get",":value"),
(start_presentation, "prsnt_bank"),
(else_try),
(eq,":object", "$g_presentation_obj_19"),
(call_script,"script_assemble_the_number"),
(try_begin),
(eq,"$g_Loan_Deposit",0),
(try_begin),
(eq,"$g_pay_get",0),
(store_troop_gold,":cash","trp_player"),
(try_begin),
(ge,":cash","$g_num_temp"),
(troop_get_slot,":deposit","trp_player",slot_troop_deposit),
(val_add,":deposit","$g_num_temp"),
(troop_set_slot,"trp_player",slot_troop_deposit,":deposit"),
(troop_remove_gold, "trp_player", "$g_num_temp"),
(assign,"$g_num_temp",0),
(start_presentation, "prsnt_bank"),
(else_try),
(display_message,"@you don't have enough money"),
(assign,"$g_bank_talk",11),
(start_presentation, "prsnt_bank"),
(try_end),
(else_try),
(eq,"$g_pay_get",1),
(troop_get_slot,":deposit","trp_player",slot_troop_deposit),
(try_begin),
(ge,":deposit","$g_num_temp"),
(val_sub,":deposit","$g_num_temp"),
(troop_set_slot,"trp_player",slot_troop_deposit,":deposit"),
(troop_add_gold, "trp_player", "$g_num_temp"),
(assign,"$g_num_temp",0),
(start_presentation, "prsnt_bank"),
(else_try),
(display_message,"@you don't have enough deposit"),
(assign,"$g_bank_talk",12),
(start_presentation, "prsnt_bank"),
(try_end),
(try_end),
(else_try),
(eq,"$g_Loan_Deposit",1),
(try_begin),
(eq,"$g_pay_get",0),
(store_troop_gold,":cash","trp_player"),
(try_begin),
(ge,":cash","$g_num_temp"),
(troop_get_slot,":debt","trp_player",slot_troop_debt),
(try_begin),
(ge,":debt","$g_num_temp"),
(val_sub,":debt","$g_num_temp"),
(troop_set_slot,"trp_player",slot_troop_debt,":debt"),
(troop_remove_gold, "trp_player", "$g_num_temp"),
(assign,"$g_num_temp",0),
(start_presentation, "prsnt_bank"),
(else_try),
(display_message,"@you pay too much debt"),
(assign,"$g_bank_talk",13),
(start_presentation, "prsnt_bank"),
(try_end),
(else_try),
(display_message,"@you don't have enough money "),
(assign,"$g_bank_talk",11),
(start_presentation, "prsnt_bank"),
(try_end),
(else_try),
(eq,"$g_pay_get",1),
(store_mul,":loannum",1000,"$player_honor"),
(try_begin),
(ge,":loannum","$g_num_temp"),
(troop_get_slot,":debt","trp_player",slot_troop_debt),
(val_add,":debt","$g_num_temp"),
(troop_set_slot,"trp_player",slot_troop_debt,":debt"),
(troop_add_gold, "trp_player", "$g_num_temp"),
(assign,"$g_num_temp",0),
(start_presentation, "prsnt_bank"),
(else_try),
(display_message,"@you can't take so much loan once"),
(assign,"$g_bank_talk",14),
(start_presentation, "prsnt_bank"),
(try_end),
(try_end),
(try_end),
(else_try),
(this_or_next|eq,":object", "$g_presentation_obj_14"),
(eq,":object", "$g_presentation_obj_9"),
(overlay_set_val, "$g_presentation_obj_9", ":value"),
(overlay_set_val, "$g_presentation_obj_14", ":value"),
(assign,"$g_num_temp_1",":value"),
(else_try),
(this_or_next|eq,":object", "$g_presentation_obj_15"),
(eq,":object", "$g_presentation_obj_10"),
(overlay_set_val, "$g_presentation_obj_10", ":value"),
(overlay_set_val, "$g_presentation_obj_15", ":value"),
(assign,"$g_num_temp_2",":value"),
(else_try),
(this_or_next|eq,":object", "$g_presentation_obj_16"),
(eq,":object", "$g_presentation_obj_11"),
(overlay_set_val, "$g_presentation_obj_11", ":value"),
(overlay_set_val, "$g_presentation_obj_16", ":value"),
(assign,"$g_num_temp_3",":value"),
(else_try),
(this_or_next|eq,":object", "$g_presentation_obj_17"),
(eq,":object", "$g_presentation_obj_12"),
(overlay_set_val, "$g_presentation_obj_12", ":value"),
(overlay_set_val, "$g_presentation_obj_17", ":value"),
(assign,"$g_num_temp_4",":value"),
(else_try),
(this_or_next|eq,":object", "$g_presentation_obj_18"),
(eq,":object", "$g_presentation_obj_13"),
(overlay_set_val, "$g_presentation_obj_13", ":value"),
(overlay_set_val, "$g_presentation_obj_18", ":value"),
(assign,"$g_num_temp_5",":value"),
(try_end),
]),
(ti_on_presentation_run,
[
(set_fixed_point_multiplier, 1000),
#(call_script, "script_presentation_run"),
]),
]),
## ZZ bank presentation end
module_strings.py
Code:
## ZZ bank lord talk begin
("welcome_word", "Welcome sir {s1}, This is the BANK OF VOLENCIA.^You can do someting like deposit or loan here.^And we have several banks in other cities.^You can do the same operatin there,too."),
("deposit", "Here is the Deposit Interface.^You can put some deposit to your account.^Or get some money from your account.^Pay attation to your cash and money in account.^Don't get or put too much money.^Now the interest is {reg1}% per week."),
("loan", "Here is the Loan Interface.^You can get loan Or teturn loan here.^Pay attation to your cash and loan.^Don't get or return too much money.^Now you can get loan of {reg1}.^And the interest is {reg2}% per week.^And you can get another loan next week."),
("answer_1", "I am afraid that you don't have so many cash.^Please enter a new number."),
("answer_2", "I am afraid that you don't have so much money in your bank account.^Please enter a new number."),
("answer_3", "I am afraid that you have return too much money for you debt.^Please enter a new number."),
("answer_4", "I am afraid that you can't get such a big loan now.^Please enter a new number."),
("bank_sucess", "Operation sucess.Please check your account."),
## ZZ bank lord talk end
module_simple_triggers.py
Code:
## ZZ bank interest on deposits begin
(24 * 7,
[
(troop_get_slot,":deposit","trp_player",slot_troop_deposit),
(try_begin),
(gt, ":deposit", 0),
(val_mul,":deposit",50),
(store_div,":interest_deposit",":deposit",1000),
(troop_add_gold, "trp_player",":interest_deposit"),
(try_end),
]),
(24 * 7,
[
(troop_get_slot,":debt","trp_player",slot_troop_debt),
(try_begin),
(gt, ":debt", 0),
(val_mul,":debt",200),
(store_div,":interest_debt",":debt",1000),
(call_script, "script_add_notification_menu", "mnu_notification_interest_debt", ":interest_debt", 0),
(try_end),
]),
## ZZ bank interest on deposits end
module_scripts.py
Code:
## ZZ script for player iformnation of bank begin
("player_info_bank",
[
(str_store_troop_name,s1,"trp_player"),
(store_troop_gold,":cash","trp_player"),
(assign,reg1,":cash"),
(troop_get_slot,":deposit","trp_player",slot_troop_deposit),
(assign,reg2,":deposit"),
(troop_get_slot,":deposit","trp_player",slot_troop_debt),
(assign,reg3,":deposit"),
(assign,reg4,"$player_honor"),
(str_store_string,s2,"@Name:{s1}^Cash: {reg1}^Deposit: {reg2}^Debt: {reg3}^Honor:{reg4}"),
]),
("assemble_the_number",
[
(val_mul,"$g_num_temp_1",10000),
(val_mul,"$g_num_temp_2",1000),
(val_mul,"$g_num_temp_3",100),
(val_mul,"$g_num_temp_4",10),
(val_add,"$g_num_temp","$g_num_temp_1"),
(val_add,"$g_num_temp","$g_num_temp_2"),
(val_add,"$g_num_temp","$g_num_temp_3"),
(val_add,"$g_num_temp","$g_num_temp_4"),
(val_add,"$g_num_temp","$g_num_temp_5"),
]),
## ZZ script for player iformnation of bank end