Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- quest lotto begin
- state KONFIGURACJA begin
- -- Ilosc losowanych liczb
- function IloscLiczb() return 6 end
- -- Maksymalna liczba jaka mozna wytypowac
- function MaxLiczba() return 49 end
- -- Koszt jednego zakladu
- function KosztZakladu() return 500000 end
- -- Dodatek do puli nagrod
- function DodatekDoPuli() return 10000000 end
- -- Minimalny czas trwania jednego losowania i typowania liczb (w godzinach)
- function CzasLosowania() return 24 end
- end
- state start begin
- when login with game.get_event_flag("lotto_Losowanie") == 1 and pc.getqf("lotto_LiczbaNr"..lotto.ilosc_liczb()) != 0 begin
- local pula = game.get_event_flag("lotto_PulaNagrod")
- notice("Maszyna losujaca wybrala juz liczby...")
- if pula != 0 then
- notice("Dzisiejsza pula nagrod to "..pula.." Yang!")
- else
- notice("Pula nagrod niestety zostala juz zdobyta przez innego gracza.")
- notice("Niemniej jednak nadal mozesz wygrac az "..lotto.DodatekDoPuli().." Yang!")
- end
- end
- when 20094.chat."GM: Zakoncz rozdawanie nagrod" with pc.is_gm() and game.get_event_flag("lotto_Losowanie") == 1 begin
- local old_time = game.get_event_flag("lotto_CzasTrwania")
- local new_time = get_time()
- if old_time > new_time then
- say("Musisz poczekac jeszcze "..math.ceil((old_time-new_time)/3600).."h by moc zakonczyc ")
- say("odbieranie nagrod przez graczy.")
- say()
- return
- end
- say("Na pewno wylaczyc rozdawanie nagrod?")
- if select("Tak", "Nie") == 1 then
- game.set_event_flag("lotto_CzasTrwania", get_time()+lotto.CzasLosowania()*60*60)
- game.set_event_flag("lotto_Losowanie", 0)
- for i = 1, 6 do
- game.set_event_flag("lotto_LiczbaNr"..i, 0)
- end
- end
- end
- when 20094.chat."GM: Wylosuj liczby" with pc.is_gm() and game.get_event_flag("lotto_Losowanie") == 0 begin
- local old_time = game.get_event_flag("lotto_CzasTrwania")
- local new_time = get_time()
- if old_time > new_time then
- say("Musisz poczekac jeszcze "..math.ceil((old_time-new_time)/3600).."h by moc zakonczyc ")
- say("typowanie liczb przez graczy.")
- say()
- return
- end
- local max = lotto.MaxLiczba()
- local ilosc = lotto.IloscLiczb()
- say("Na pewno wylosowac liczby?")
- local liczby
- local tab = {}
- local zakres = {}
- if select("Tak", "Anuluj") == 1 then
- for i = 1, max do
- table.insert(zakres, i)
- end
- for i = 1, ilosc do
- for j = 1, max do
- if tab[i-1] == j then
- table.remove(zakres, j)
- table.insert(zakres, j, 0)
- end
- end
- local a = zakres[number(1, table.getn(zakres))]
- while a == 0 do
- a = zakres[number(1, table.getn(zakres))]
- end
- if table.getn(tab) == 0 then
- liczby = tostring(a)
- else
- liczby = liczby..", "..tostring(a)
- end
- table.insert(tab, a)
- game.set_event_flag("lotto_LiczbaNr"..i, a)
- end
- local pula = game.get_event_flag("lotto_PulaNagrod")+lotto.DodatekDoPuli()
- say("Wylosowane liczby to "..liczby)
- game.set_event_flag("lotto_PulaNagrod", pula)
- game.set_event_flag("lotto_Losowanie", 1)
- game.set_event_flag("lotto_CzasTrwania", get_time()+lotto.CzasLosowania()*60*60)
- notice_all("Maszyna losujaca zaczyna wybieranie liczb...")
- notice_all("Dzisiejsza pula nagrod to "..pula.." Yang!")
- end
- end
- when 20094.chat."Typowanie liczb" with game.get_event_flag("lotto_Losowanie") == 0 begin
- local max = lotto.MaxLiczba()
- local ilosc = lotto.IloscLiczb()
- local koszt = lotto.KosztZakladu()
- say_title(delay(8).."Loteria")
- if pc.getqf("lotto_LiczbaNr"..ilosc) != 0 then
- say("Posiadasz juz wytypowane liczby. Sa to:")
- say(color256(0,255,0)..pc.getqf("lotto_LiczbaNr1")..", "..pc.getqf("lotto_LiczbaNr2")..", "..pc.getqf("lotto_LiczbaNr3")..", "..pc.getqf("lotto_LiczbaNr4")..", "..pc.getqf("lotto_LiczbaNr5")..", "..pc.getqf("lotto_LiczbaNr6")..color256(196, 196, 196))
- say("Aby moc wytypowac nowe musisz poczekac ")
- say("do nastepnego losowania.")
- say()
- return
- elseif pc.get_gold() < koszt then
- say("Aby moc wziac udzial w losowaniu nalezy zaplacic ")
- say(koszt.." Yang, ktore powedruja do puli nagrod.")
- say("Niestety nie posiadasz tyle pieniedzy.")
- say()
- return
- end
- say("Witaj w loterii serwera Metin2")
- say("Za chwile zostaniesz poproszony o podanie szesciu")
- say("liczb. Liczby te beda braly udzial w losowaniu.")
- say("Oto cztery najwazniejsze zasady:")
- say("* Mistrz Gry nie wybiera liczb, sa one losowe")
- say("* Mozna tylko raz typowac liczby w danym losowaniu")
- say("* Liczby nie moga sie powtarzac ")
- say("* Koszt jednorazowego typowania to "..koszt.." Yang")
- say()
- say("Chcesz wziac udzial w typowaniu liczb?")
- say()
- if select("Tak", "Anuluj") == 1 then
- pc.change_gold(-koszt)
- game.set_event_flag("lotto_PulaNagrod", game.get_event_flag("lotto_PulaNagrod")+koszt)
- local tab = {}
- local liczby
- for i=1, ilosc do
- local a = 0
- while not tonumber(a) or a < 1 or a > max or a == "" do
- say_title("Loteria")
- local dlugosc = table.getn(tab)
- if dlugosc == 0 then
- say("Jeszcze nie wprowadzono zadnej liczby.")
- else
- say("Do tej pory wprowadzono nastepujace liczby:")
- say(color256(0,255,0)..liczby..color256(196, 196, 196))
- end
- say("Podaj liczbe nr "..i..":")
- say_reward("Zakres to 1-"..max)
- a = tonumber(input())
- if not tonumber(a) or a == "" then
- say_title("Loteria")
- say("Podany zostal niewlasciwy znak. Sprobuj ponownie.")
- say()
- wait()
- elseif a < 1 or a > max then
- say_title("Loteria")
- say("Liczba musi byc z zakresu 1-"..max..". Sprobuj ponownie.")
- say()
- wait()
- else
- for j=1, dlugosc do
- if a == tab[j] then
- a = 0
- say_title("Loteria")
- say("Ta liczba zostala juz podana. Sprobuj ponownie.")
- say()
- wait()
- end
- end
- if a != 0 then
- table.insert(tab, a)
- pc.setqf("lotto_LiczbaNr"..i, a)
- if i == 1 then
- liczby = tostring(a)
- else
- liczby = liczby..", "..tostring(a)
- end
- end
- end
- end
- end
- say_title("Loteria")
- say("Oto podane przez Ciebie liczby")
- say()
- say(color256(0,255,0)..liczby..color256(196, 196, 196))
- say()
- say("Aby poznac wynik typowania zglos sie do mnie gdy")
- say("Mistrz Gry uruchomi maszyne losujaca.")
- say()
- end
- end
- when 20094.chat."Sprawdz moje liczby" with game.get_event_flag("lotto_Losowanie") == 1 begin
- local ilosc = lotto.IloscLiczb()
- local koszt = lotto.KosztZakladu()
- local glowna = lotto.DodatekDoPuli()
- local pula = game.get_event_flag("lotto_PulaNagrod")
- say_title("Loteria")
- if pc.getqf("lotto_LiczbaNr6") == 0 then
- say("Przykro mi, nie masz wytypowanych liczb.")
- say("Moze nastepnym razem Ci sie uda!")
- say()
- return
- elseif pula == 0 then
- say("Dzis juz ktos trafil szostke! Szansa na wygranie")
- say("glownej nagrody przepadla. Mozesz jednak wygrac ")
- say("nagrode pocieszenia w wysokosci "..glowna.." Yang!")
- else
- say("Pula dzisiejszego losowania wynosi "..pula.." Yang.")
- end
- say("Czas sprawdzic Twoje liczby.")
- say()
- wait()
- pc.setqf("lotto_LiczbaNr3", game.get_event_flag("lotto_LiczbaNr3"))
- say_title("Loteria")
- local trafione = {}
- local ilosc_trafionych = 0
- for i = 1, ilosc do
- table.insert(trafione, 0)
- end
- for i = 1, ilosc do
- local liczba = pc.getqf("lotto_LiczbaNr"..i)
- for j = 1, ilosc do
- if liczba == game.get_event_flag("lotto_LiczbaNr"..j) then
- table.remove(trafione, i)
- table.insert(trafione, i, 1)
- end
- end
- if trafione[i] == 1 then
- say(color256(0,255,0).."Liczba "..liczba..": trafiona!"..color256(196, 196, 196))
- ilosc_trafionych = ilosc_trafionych+1
- else
- say(color256(255,0,0).."Liczba "..liczba..": chybiona."..color256(196, 196, 196))
- end
- end
- say()
- say()
- local gold = pc.get_gold()
- local glowna = lotto.DodatekDoPuli()
- local nagrody = {koszt, math.floor(glowna/20), math.floor(glowna/10), math.floor(glowna/4), math.floor(glowna/2), glowna}
- if ilosc_trafionych == 0 then
- say("Przykro nam, dzisiaj Ci sie nie powiodlo.")
- say("Nie zalamuj sie, moze nastepnym razem sie uda!")
- elseif ilosc_trafionych == 6 and pula != 0 then
- say(color256(0,255,0).."Trafiles szostke! Wygrywasz "..pula.." Yang!"..color256(196, 196, 196))
- notice_all("Gracz "..pc.get_name().." trafil szostke! Dzieki temu wygral "..pula.." Yang. Gratulujemy!")
- if gold + pula > 2000000000 then
- say()
- say_reward("Po wyplaceniu pieniedzy Twoje kont moze ulec")
- say_reward("zbugowaniu. Aby otrzymac kwote wroc do mnie")
- say_reward("gdy bedziesz posiadac mniej Yang.")
- pc.setqf("lotto_Wyplata", pula)
- else
- pc.change_gold(pula)
- end
- game.set_event_flag("lotto_PulaNagrod", 0)
- else
- local liczb = "liczby."
- if ilosc_trafionych == 1 then
- liczb = "liczbe."
- elseif ilosc_trafionych >= 5 then
- liczb = "liczb."
- end
- local nagroda = nagrody[ilosc_trafionych]
- say("Udalo Ci sie trafic "..ilosc_trafionych.." "..liczb)
- say("W nagrode otrzymujesz "..nagroda.." Yang. Gratulujemy!")
- if ilosc_trafionych == 6 then
- say("Niestety ktos ubiegl Cie i zgarnal glowna nagrode.")
- say("Nie martw sie, nastepnym razem Ty rozbijesz bank!")
- end
- if nagroda + gold > 2000000000 then
- say()
- say_reward("Po wyplaceniu pieniedzy Twoje kont moze ulec")
- say_reward("zbugowaniu. Aby otrzymac kwote wroc do mnie")
- say_reward("gdy bedziesz posiadac mniej Yang.")
- pc.setqf("lotto_Wyplata", nagroda)
- else
- pc.change_gold(nagroda)
- end
- end
- say()
- for i = 1, 6 do
- pc.setqf("lotto_LiczbaNr"..i, 0)
- end
- end
- when 20094.chat."Wyplata pieniedzy" with pc.getqf("lotto_Wyplata") != 0 begin
- local wyplata = pc.getqf("lotto_Wyplata")
- local gold = pc.get_gold()
- say_title("Loteria")
- if wyplata + gold > 2000000000 then
- say("Nadaj posiadasz za duzo pieniedzy. Mozesz posiadac ")
- say("maksymalnie "..2000000000-gold.." Yang a posiadasz "..gold..".")
- say("Wroc do mnie, gdy bedzie mozliwa wyplata.")
- else
- say("Prosze, oto Twoje "..wyplata.." Yang.")
- pc.change_gold(wyplata)
- pc.setqf("lotto_Wyplata", 0)
- end
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment