Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- quest manwoo_konkurs begin
- state start begin
- function setting()
- return {
- ["mkTytul"] = "Wydarzenie Manwoo",
- ["mkOpis"] = "Jestem już bardzo starym człowiekiem, do tego[ENTER]poważnie choruję i nie ma już dla mnie nadziei.[ENTER]W naszym imperium ustanowiono prawo, że jeśli nie ma[ENTER]spisanego testamentu, cały majątek zabiera imperator.[ENTER]Mało tego, imperator spienięża wszystko i wydaje na[ENTER]budowę armii. Nie chcę, żeby moje przedmioty[ENTER]przepadły w taki sposób. Wolę je rozdać prawdziwym[ENTER]wojownikom, niż oddać tym obibokom![ENTER]Zorganizowałem specjalny konkurs, który nazwałem Manwoo.[ENTER]Wystarczy, że złowisz jakąś rybkę, a dostaniesz nagrodę.[ENTER]Uwierz mi, jest o co walczyć!",
- ["mkPrzyniosles"] = "Ooo, widzę, że masz dla mnie rybę! To świetnie.[ENTER]Zaraz ją zmierzymy... ",
- ["mkZaMala"] = "Hmmm... Przykro mi, ale ta ryba jest zbyt mała,[ENTER]żebym z czystym sumieniem Cię wynagrodził.[ENTER]Proszę, postaraj się złowić większą.",
- ["mkJestDobrze"] = "Ta ryba wygląda dobrze. Jej długość to %s cm.[ENTER]Zasługujesz na nagrodę.",
- ["mkJestOgromna"] = "O bogowie! Ta ryba jest ogromna! Rzadko widuję [ENTER]tak wspaniałe okazy. Jej długość to aż %s cm![ENTER]To z pewnością zasługuje na nagrodę.",
- ["mkTablicaNagrodDobrze"] = {71113, 13049, 50304, 50311, 50312, 50313, 30006, 30010, 50621}, --tablica z nagrodami za przeciętne ryby
- ["mkTablicaNagrodOgromna"] = {50513, 50300, 71001, 71084, 71085, 71095, 71094}, --tablica z nagrodami za największe ryby
- ["mkTablicaWielkosci"] = { --TEJ TABLICY NIE RUSZAMY. Tutaj są wpisane maksymalne długości poszczególnych ryb (na podstawie pliku fishing.txt)
- [27803] = {1000, 2500, 2800},
- [27804] = {2000, 3500, 3800},
- [27805] = {3030, 3500, 4300},
- [27806] = {4000, 6000, 10000},
- [27807] = {6000, 8000, 10000},
- [27808] = {1500, 3000, 3800},
- [27809] = {5000, 7000, 8000},
- [27810] = {4000, 5000, 6000},
- [27811] = {5000, 7000, 8000},
- [27812] = {4000, 6000, 7000},
- [27813] = {4000, 6000, 10000},
- [27814] = {3000, 4000, 5000},
- [27815] = {3500, 5500, 8000},
- [27816] = {3000, 5000, 10000},
- [27817] = {1800, 2200, 3000},
- [27818] = {5000, 8000, 10000},
- [27819] = {1500, 3000, 3800},
- [27820] = {1500, 3000, 3800},
- [27821] = {1000, 1500, 2000},
- [27822] = {4000, 6000, 10000},
- [27823] = {1000, 3000, 3500},
- },
- }
- end
- when 9009.chat."Wydarzenie Manwoo" begin
- local settings = manwoo_konkurs.setting()
- say_title(mob_name(npc.get_race())..":")
- say(settings.mkOpis) --Wyświetlenie zawartości stałej mkOpis
- if game.get_event_flag("manwoo") != 0 then --sprawdzenie czy event jest aktywny
- say("A teraz idź łowić, nagroda czeka.") --jest aktywny
- else
- say("Przyjdź do mnie, kiedy będę miał więcej czasu.") --nie jest
- end
- wait()
- end
- when 9009.take with item.vnum >= 27803 and item.vnum <= 27823 and game.get_event_flag("manwoo") != 0 begin --gdy przeciągniemy rybkę na Rybaka
- local settings = manwoo_konkurs.setting()
- say_title(mob_name(npc.get_race())..":")
- say(settings.mkPrzyniosles) --wyświetlenie zawartości stałej mkPrzyniosles
- say()
- wait()
- --poniższy algorytm został opracowany na podstawie kodu silnika gry. Liczy on maksymalną długość danej ryby.
- local algorytm = ((settings.mkTablicaWielkosci[item.vnum][2] + (settings.mkTablicaWielkosci[item.vnum][3] - settings.mkTablicaWielkosci[item.vnum][2])*10000) / 100000)
- local sock = item.get_socket(0) / 100 --pobieram sobie długość aktualnej ryby i przystosowuję do porównania z algorytmem
- say_title(mob_name(npc.get_race())..":")
- if sock <= (algorytm * 0.333) then --jeśli długość ryby jest mniejsza niż 33% maksymalnej długości
- say(settings.mkZaMala) --wyświetlenie zawartości stałej mkZaMala. Rybak nie przyjmuje rybek mniejszych niż 33% max długości
- say()
- wait()
- return
- elseif sock <= (algorytm * 0.666) and sock > (algorytm * 0.333) then --jeśli długość ryby jest większa niż 33% ale mniejsza lub równa 66% max długości
- say(string.format(settings.mkJestDobrze, (sock))) --wyświetlenie zawartości stałej mkJestDobrze
- local x = number(1, table.getn(settings.mkTablicaNagrodDobrze)) --losowanie przedmiotu z tablicy
- say()
- say_item_vnum(settings.mkTablicaNagrodDobrze[x]) --wyświetlenie wylosowanego przedmiotu
- pc.give_item2(settings.mkTablicaNagrodDobrze[x], 1) --danie przedmiotu
- say()
- wait()
- item.remove() --usunięcie ryby. Zauważ, że jeśli długość jest mniejsza niż 33% to ryba zostaje
- else --jeśli długość ryby jest większa niż 66% max długości
- say(string.format(settings.mkJestOgromna, (sock))) --wyświetlenie zawartości stałej mkJestOgromna
- local x = number(1, table.getn(settings.mkTablicaNagrodOgromna)) --losowanie przedmiotu z tablicy
- say()
- say_item_vnum(settings.mkTablicaNagrodOgromna[x]) --wyświetlenie wylosowanego przedmiotu
- pc.give_item2(settings.mkTablicaNagrodOgromna[x], 1) --danie przedmiotu
- say()
- wait()
- item.remove() ---usunięcie ryby
- end
- end
- when 9009.chat."<GM> Event Manwoo" with pc.is_gm() begin --to jest konsola dla GM. tego skryptu nie ruszamy jak nie umiemy pisać questów.
- say_title("Event Manwoo")
- if game.get_event_flag("manwoo") == 0 then
- say("Wydarzenie Manwoo nie zostało aktywowane. Czy chcesz je włączyć? ")
- local s=select(locale.yes, locale.no)
- if s==2 then return end
- game.set_event_flag("manwoo", 1)
- return
- end
- say("Wydarzenie Manwoo jest aktywne. Czy chcesz je wyłączyć? ")
- local s=select(locale.yes, locale.no)
- if s==2 then return end
- game.set_event_flag("manwoo", 0)
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment