OSP Code QoL Bank with interface (just for learning presentations)

Users who are viewing this thread

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
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
 
screenshots
5629275420111220192746039.jpg

5629275420111220192716097.jpg
 
mskimizd said:
What'more,bank safe is also in my future plan. Anybody has some good idea for this bank system?

This is only semi-bank related. But it would be fun to be able to buy insurance in a bank system. Before you head off to trade or something, you could buy insurance for your troops and items in the bank for a set amount of days.
 
Back
Top Bottom