View difference between Paste ID: aTU9HWwj and 5vAf56xY
SHOW: | | - or go back to the newest paste.
1
--**Quest by Luzzo
2
--**Data: 13/01/2015
3
4
quest yang_special_bank begin
5
	state start begin
6
		function GetScriptData(data)
7
			local bank_data = {['yang_limit'] = 2000000000, 					-- limite di yang prelevabili e depositabili
8
							  ['rates'] = 1, 			-- tasso di interesse calcolato sul giorno
9
							  ['day_rates_limit'] = 7,				-- limite di giorni su cui calcolare il tasso
10-
							  ['min_lev'] = 25,						-- livello minimo per usare la banca,
10+
							  ['min_lev'] = 25,	}					-- livello minimo per usare la banca,
11
							  
12
			return rawget(bank_data, data)		
13
		end
14
		
15
		function DepositYang(yang)
16-
			pc.setqf("yang_bank",yang_special_bank.GetBankYang()+yang)
16+
			pc.setqf("yang_bank",yang)
17
		end
18
		
19
		function GetBankYang()
20
			return pc.getqf("yang_bank")
21
		end
22
		
23
		function GetBankBalance()
24
			local yang = yang_special_bank.GetBankYang()
25
			if yang > 0 and yang_special_bank.check_day() > 0 then
26-
				for x = 0, yang_special_bank.check_day() do
26+
				for x = 1, yang_special_bank.check_day() do
27-
					yang =+ math.floor(yang*math.min(yang_special_bank.check_day(),yang_special_bank.GetScriptData('day_rates_limit'))*0.01)
27+
					yang = yang + math.floor(yang*math.min(yang_special_bank.check_day(),yang_special_bank.GetScriptData('day_rates_limit'))*0.01)
28
				end
29
				return yang
30
			elseif yang == 0 then
31
				return 0
32
			elseif yang_special_bank.check_day() == 0 then
33
				return yang
34
			else
35
				return 0
36
			end
37
		end
38
		
39
		function SetBankTime()
40
			pc.setqf("bank_time",get_time())
41
		end
42
		
43
		function ResetBankTime()
44
			pc.setqf("bank_time",0)
45
		end
46
		
47
		function GetBankTime()
48
			return pc.getqf("bank_time")
49
		end
50
		
51
		function check_day()
52
			if yang_special_bank.GetBankTime() != 0 then
53
				local day = get_time() - yang_special_bank.GetBankTime()
54
				return math.floor(day / (24*60*60))
55
			end
56
			return 0
57
		end
58
		
59
		when 9003.chat."Centro interessi" with pc.get_level() >= yang_special_bank.GetScriptData('min_lev') begin
60
					
61
			say_title("Centro interessi")
62
			say("Avventuriero puoi depositare")
63
			say("una somma pari o inferiore.")
64
			say("a "..yang_special_bank.GetScriptData('yang_limit').." yang.")
65
			say("Oppure puoi ritirare i tuoi risparmi.")
66
			say_reward("Il tuo saldo attuale e':"..yang_special_bank.GetBankYang())
67
			say_reward("Cosa vuoi fare?")
68
			local bank_self  = select("Ritirare","Depositare","Esci")
69
			if bank_self == 3 then
70
				return
71
			end
72
			if bank_self == 1 then
73
				say_title("Centro Interessi")
74-
				say_reward("Giorni di interesse:"..check_day())
74+
75
				say_reward("Giorni di interesse:"..yang_special_bank.check_day())
76
				say_reward("Saldo:"..yang_special_bank.GetBankYang())
77
				say_reward("Saldo con interessi:"..yang_special_bank.GetBankBalance())
78
				say("")
79
				say_reward("Vuoi ritirare?")
80
				local tmoney = select("Ritira","Esci")
81
				if tmoney == 2 then
82
					return
83
				end
84
				say_title("Centro Interessi - Ritiro")
85
				
86
				if yang_special_bank.GetBankBalance() == 0 then --controllo che ci siano soldi depositati
87
					say("")
88
					say_reward("Non puoi ritirare.Non possiedi yang.")					
89
					return
90
				end
91-
				if pc.get_gold()+yang_special_bank.GetBankBalance() then --controllo che non si bugghino gli yang con il ritiro
91+
92
				if pc.get_gold()+yang_special_bank.GetBankBalance() >  yang_special_bank.GetScriptData('yang_limit') then --controllo che non si bugghino gli yang con il ritiro
93
					say("")
94
					say_reward("Non puoi ritirare.Possiedi troppi yang.")					
95
					return
96
				end
97
				
98
				if yang_special_bank.GetBankBalance() > yang_special_bank.GetScriptData('yang_limit') then --controllo che non si superi il limite
99
					say("")
100
					say_reward("Hai superato il limite di ritiro.")
101
					say_reward("Ricevi:"..yang_special_bank.GetScriptData('yang_limit').." yang.")
102-
					pc.changegold(yang_special_bank.GetScriptData('yang_limit'))
102+
103
					pc.change_money(yang_special_bank.GetScriptData('yang_limit'))
104
					yang_special_bank.DepositYang(0)
105
					return
106
				end
107-
				say("")				
107+
108-
				say_reward("Ricevi:"..yang_special_bank.GetBankBalance().." yang.")
108+
				say("")					
109-
				yang_special_bank.ResetBankTime()
109+
				say_reward("Ricevi:"..yang_special_bank.GetBankBalance().." yang.")				
110-
				pc.changegold(yang_special_bank.GetBankBalance())
110+
				pc.change_money(yang_special_bank.GetBankBalance())				
111
				yang_special_bank.ResetBankTime()				
112
				yang_special_bank.DepositYang(0)				
113
				return
114
			elseif bank_self == 2 then
115
				say_title("Centro Interessi")
116
				say("")
117
				
118
				if yang_special_bank.GetBankYang() > 0 then --Controllo che non ci siano già depositi
119
					say_reward("Possiedi gia' una cifra depositata")
120
					say_reward("non puoi depositare ancora.")
121
					say_reward("Ritira per effettuare un nuovo deposito")
122
					return
123
				end
124
				
125
				say_reward("Inserisci la somma da depositare.")
126
				say_reward("Lascia vuoto il campo per uscire.")
127
				local y_deposit = tonumber(input())
128
				
129
				if y_deposit == nil then  -- controllo che l'input non sia vuoto
130
					return 
131
				end
132
				
133
				if y_deposit < 1 or y_deposit > yang_special_bank.GetScriptData('yang_limit') then   --controllo che l'inserimento sia valido
134
					say_reward("Hai inserito una cifra non valida")
135
					say_reward("Devi inserire una cifra tra")
136
					say_reward("1 e "..yang_special_bank.GetScriptData('yang_limit').." yang")
137
					return
138
				end
139-
				if pc.get_gold() > y_deposit then   --controllo che il player abbia abbastanza yang
139+
140
				if pc.get_gold() < y_deposit then   --controllo che il player abbia abbastanza yang
141
					say_reward("Non possiedi questa cifra.")					
142
					return
143
				end
144-
				pc.changegold(-y_deposit)
144+
145
				pc.change_money(-y_deposit)
146
				yang_special_bank.DepositYang(y_deposit)
147
				yang_special_bank.SetBankTime()	
148
				say_reward("Complimenti!Hai fatto un ottimo")
149
				say_reward("investimento.Aspetta che il ")
150
				say_reward("duro lavoro dia i suoi frutti.")					
151
				
152
			end
153
		end
154
	end
155
end