JachuPL

[Quest] Nowe Manwoo

Jan 21st, 2014
409
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.89 KB | None | 0 0
  1. quest manwoo_konkurs begin
  2.     state start begin
  3.         function setting()
  4.             return {
  5.                 ["mkTytul"] = "Wydarzenie Manwoo",
  6.                 ["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ć!",            
  7.                 ["mkPrzyniosles"] = "Ooo, widzę, że masz dla mnie rybę! To świetnie.[ENTER]Zaraz ją zmierzymy... ",
  8.                 ["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ą.",
  9.                 ["mkJestDobrze"] = "Ta ryba wygląda dobrze. Jej długość to %s cm.[ENTER]Zasługujesz na nagrodę.",
  10.                 ["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ę.",
  11.                 ["mkTablicaNagrodDobrze"] = {71113, 13049, 50304, 50311, 50312, 50313, 30006, 30010, 50621},    --tablica z nagrodami za przeciętne ryby
  12.                 ["mkTablicaNagrodOgromna"] = {50513, 50300, 71001, 71084, 71085, 71095, 71094},     --tablica z nagrodami za największe ryby
  13.                 ["mkTablicaWielkosci"] = {      --TEJ TABLICY NIE RUSZAMY. Tutaj są wpisane maksymalne długości poszczególnych ryb (na podstawie pliku fishing.txt)
  14.                     [27803] = {1000, 2500, 2800},
  15.                     [27804] = {2000, 3500, 3800},
  16.                     [27805] = {3030, 3500, 4300},
  17.                     [27806] = {4000, 6000, 10000},
  18.                     [27807] = {6000, 8000, 10000},
  19.                     [27808] = {1500, 3000, 3800},
  20.                     [27809] = {5000, 7000, 8000},
  21.                     [27810] = {4000, 5000, 6000},
  22.                     [27811] = {5000, 7000, 8000},
  23.                     [27812] = {4000, 6000, 7000},
  24.                     [27813] = {4000, 6000, 10000},
  25.                     [27814] = {3000, 4000, 5000},
  26.                     [27815] = {3500, 5500, 8000},
  27.                     [27816] = {3000, 5000, 10000},
  28.                     [27817] = {1800, 2200, 3000},
  29.                     [27818] = {5000, 8000, 10000},
  30.                     [27819] = {1500, 3000, 3800},
  31.                     [27820] = {1500, 3000, 3800},
  32.                     [27821] = {1000, 1500, 2000},
  33.                     [27822] = {4000, 6000, 10000},
  34.                     [27823] = {1000, 3000, 3500},
  35.                 },
  36.             }
  37.         end
  38.        
  39.         when 9009.chat."Wydarzenie Manwoo" begin
  40.             local settings = manwoo_konkurs.setting()
  41.             say_title(mob_name(npc.get_race())..":")
  42.             say(settings.mkOpis)                    --Wyświetlenie zawartości stałej mkOpis
  43.             if game.get_event_flag("manwoo") != 0 then  --sprawdzenie czy event jest aktywny
  44.                 say("A teraz idź łowić, nagroda czeka.") --jest aktywny
  45.             else
  46.                 say("Przyjdź do mnie, kiedy będę miał więcej czasu.")  --nie jest
  47.             end
  48.             wait()
  49.         end
  50.        
  51.         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
  52.             local settings = manwoo_konkurs.setting()
  53.             say_title(mob_name(npc.get_race())..":")
  54.             say(settings.mkPrzyniosles) --wyświetlenie zawartości stałej mkPrzyniosles
  55.             say()
  56.             wait()
  57.             --poniższy algorytm został opracowany na podstawie kodu silnika gry. Liczy on maksymalną długość danej ryby.
  58.             local algorytm = ((settings.mkTablicaWielkosci[item.vnum][2] + (settings.mkTablicaWielkosci[item.vnum][3] - settings.mkTablicaWielkosci[item.vnum][2])*10000) / 100000)
  59.             local sock = item.get_socket(0) / 100   --pobieram sobie długość aktualnej ryby i przystosowuję do porównania z algorytmem
  60.             say_title(mob_name(npc.get_race())..":")
  61.             if sock <= (algorytm * 0.333) then  --jeśli długość ryby jest mniejsza niż 33% maksymalnej długości
  62.                 say(settings.mkZaMala)          --wyświetlenie zawartości stałej mkZaMala. Rybak nie przyjmuje rybek mniejszych niż 33% max długości
  63.                 say()
  64.                 wait()
  65.                 return
  66.             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
  67.                 say(string.format(settings.mkJestDobrze, (sock)))                   --wyświetlenie zawartości stałej mkJestDobrze
  68.                 local x = number(1, table.getn(settings.mkTablicaNagrodDobrze))     --losowanie przedmiotu z tablicy
  69.                 say()
  70.                 say_item_vnum(settings.mkTablicaNagrodDobrze[x])                    --wyświetlenie wylosowanego przedmiotu
  71.                 pc.give_item2(settings.mkTablicaNagrodDobrze[x], 1)                 --danie przedmiotu
  72.                 say()
  73.                 wait()
  74.                 item.remove()                                                       --usunięcie ryby. Zauważ, że jeśli długość jest mniejsza niż 33% to ryba zostaje
  75.             else                                                                    --jeśli długość ryby jest większa niż 66% max długości
  76.                 say(string.format(settings.mkJestOgromna, (sock)))                  --wyświetlenie zawartości stałej mkJestOgromna
  77.                 local x = number(1, table.getn(settings.mkTablicaNagrodOgromna))    --losowanie przedmiotu z tablicy
  78.                 say()
  79.                 say_item_vnum(settings.mkTablicaNagrodOgromna[x])                   --wyświetlenie wylosowanego przedmiotu
  80.                 pc.give_item2(settings.mkTablicaNagrodOgromna[x], 1)                --danie przedmiotu
  81.                 say()
  82.                 wait()
  83.                 item.remove()                                                       ---usunięcie ryby
  84.             end
  85.         end
  86.        
  87.         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.
  88.             say_title("Event Manwoo")
  89.             if game.get_event_flag("manwoo") == 0 then
  90.                 say("Wydarzenie Manwoo nie zostało aktywowane. Czy chcesz je włączyć? ")
  91.                 local s=select(locale.yes, locale.no)
  92.                 if s==2 then return end
  93.                 game.set_event_flag("manwoo", 1)
  94.                 return
  95.             end
  96.             say("Wydarzenie Manwoo jest aktywne. Czy chcesz je wyłączyć? ")
  97.             local s=select(locale.yes, locale.no)
  98.             if s==2 then return end
  99.             game.set_event_flag("manwoo", 0)
  100.         end
  101.     end
  102. end
Advertisement
Add Comment
Please, Sign In to add comment