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 |