Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --**Quest by Luzzo
- --**Data: 13/01/2015
- quest yang_special_bank begin
- state start begin
- function GetScriptData(data)
- local bank_data = {['yang_limit'] = 2000000000, -- limite di yang prelevabili e depositabili
- ['rates'] = 1, -- tasso di interesse calcolato sul giorno
- ['day_rates_limit'] = 7, -- limite di giorni su cui calcolare il tasso
- ['min_lev'] = 25, } -- livello minimo per usare la banca,
- return rawget(bank_data, data)
- end
- function DepositYang(yang)
- pc.setqf("yang_bank",yang)
- end
- function GetBankYang()
- return pc.getqf("yang_bank")
- end
- function GetBankBalance()
- local yang = yang_special_bank.GetBankYang()
- if yang > 0 and yang_special_bank.check_day() > 0 then
- for x = 1, yang_special_bank.check_day() do
- yang = yang + math.floor(yang*math.min(yang_special_bank.check_day(),yang_special_bank.GetScriptData('day_rates_limit'))*0.01)
- end
- return yang
- elseif yang == 0 then
- return 0
- elseif yang_special_bank.check_day() == 0 then
- return yang
- else
- return 0
- end
- end
- function SetBankTime()
- pc.setqf("bank_time",get_time())
- end
- function ResetBankTime()
- pc.setqf("bank_time",0)
- end
- function GetBankTime()
- return pc.getqf("bank_time")
- end
- function check_day()
- if yang_special_bank.GetBankTime() != 0 then
- local day = get_time() - yang_special_bank.GetBankTime()
- return math.floor(day / (24*60*60))
- end
- return 0
- end
- when 9003.chat."Centro interessi" with pc.get_level() >= yang_special_bank.GetScriptData('min_lev') begin
- say_title("Centro interessi")
- say("Avventuriero puoi depositare")
- say("una somma pari o inferiore.")
- say("a "..yang_special_bank.GetScriptData('yang_limit').." yang.")
- say("Oppure puoi ritirare i tuoi risparmi.")
- say_reward("Il tuo saldo attuale e':"..yang_special_bank.GetBankYang())
- say_reward("Cosa vuoi fare?")
- local bank_self = select("Ritirare","Depositare","Esci")
- if bank_self == 3 then
- return
- end
- if bank_self == 1 then
- say_title("Centro Interessi")
- say("")
- say_reward("Giorni di interesse:"..yang_special_bank.check_day())
- say_reward("Saldo:"..yang_special_bank.GetBankYang())
- say_reward("Saldo con interessi:"..yang_special_bank.GetBankBalance())
- say("")
- say_reward("Vuoi ritirare?")
- local tmoney = select("Ritira","Esci")
- if tmoney == 2 then
- return
- end
- say_title("Centro Interessi - Ritiro")
- if yang_special_bank.GetBankBalance() == 0 then --controllo che ci siano soldi depositati
- say("")
- say_reward("Non puoi ritirare.Non possiedi yang.")
- return
- end
- 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
- say("")
- say_reward("Non puoi ritirare.Possiedi troppi yang.")
- return
- end
- if yang_special_bank.GetBankBalance() > yang_special_bank.GetScriptData('yang_limit') then --controllo che non si superi il limite
- say("")
- say_reward("Hai superato il limite di ritiro.")
- say_reward("Ricevi:"..yang_special_bank.GetScriptData('yang_limit').." yang.")
- yang_special_bank.ResetBankTime()
- pc.change_money(yang_special_bank.GetScriptData('yang_limit'))
- yang_special_bank.DepositYang(0)
- return
- end
- say("")
- say_reward("Ricevi:"..yang_special_bank.GetBankBalance().." yang.")
- pc.change_money(yang_special_bank.GetBankBalance())
- yang_special_bank.ResetBankTime()
- yang_special_bank.DepositYang(0)
- return
- elseif bank_self == 2 then
- say_title("Centro Interessi")
- say("")
- if yang_special_bank.GetBankYang() > 0 then --Controllo che non ci siano già depositi
- say_reward("Possiedi gia' una cifra depositata")
- say_reward("non puoi depositare ancora.")
- say_reward("Ritira per effettuare un nuovo deposito")
- return
- end
- say_reward("Inserisci la somma da depositare.")
- say_reward("Lascia vuoto il campo per uscire.")
- local y_deposit = tonumber(input())
- if y_deposit == nil then -- controllo che l'input non sia vuoto
- return
- end
- if y_deposit < 1 or y_deposit > yang_special_bank.GetScriptData('yang_limit') then --controllo che l'inserimento sia valido
- say_reward("Hai inserito una cifra non valida")
- say_reward("Devi inserire una cifra tra")
- say_reward("1 e "..yang_special_bank.GetScriptData('yang_limit').." yang")
- return
- end
- if pc.get_gold() < y_deposit then --controllo che il player abbia abbastanza yang
- say_reward("Non possiedi questa cifra.")
- return
- end
- pc.change_money(-y_deposit)
- yang_special_bank.DepositYang(y_deposit)
- yang_special_bank.SetBankTime()
- say_reward("Complimenti!Hai fatto un ottimo")
- say_reward("investimento.Aspetta che il ")
- say_reward("duro lavoro dia i suoi frutti.")
- end
- end
- end
- end
Add Comment
Please, Sign In to add comment