Advertisement
deadx2

Untitled

Aug 10th, 2017
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 14.36 KB | None | 0 0
  1. --[[
  2.     http://vesteris.pl
  3.     endymionmpc@gmail.com
  4. ]]
  5.  
  6. quest biolog begin
  7.     state start begin
  8.         function settings()
  9.             return {
  10.                         ['Poziom'] = {30, 40, 50, 60, 70, 80, 85, 90}, -- Poziomy na jakie sa misje
  11.                         ['Tytul'] = {
  12.                                     [30] = {"Analiza Biologa - Zęby Orka"},
  13.                                     [40] = {"Analiza Biologa - Księgi Klątw"},
  14.                                     [50] = {"Analiza Biologa - Pamiątki Po Demonie"},
  15.                                     [60] = {"Analiza Biologa - Matowe Lody"},
  16.                                     [70] = {"Analiza Biologa - Konary Zelkova"},
  17.                                     [80] = {"Analiza Biologa - Certyfikaty Tugyisa"},
  18.                                     [85] = {"Analiza Biologa - Konary Duchodrzewa"},
  19.                                     [90] = {"Analiza Biologa - Notatki Przywódcy"},
  20.                                     },
  21.                         ['Szukany'] = {
  22.                                         [30] = {['vnum'] = 30006, ['count'] = 10},
  23.                                         [40] = {['vnum'] = 30047, ['count'] = 15},
  24.                                         [50] = {['vnum'] = 30015, ['count'] = 15},
  25.                                         [60] = {['vnum'] = 30050, ['count'] = 20},
  26.                                         [70] = {['vnum'] = 30165, ['count'] = 25},
  27.                                         [80] = {['vnum'] = 30166, ['count'] = 30},
  28.                                         [85] = {['vnum'] = 30167, ['count'] = 40},
  29.                                         [90] = {['vnum'] = 30168, ['count'] = 50},
  30.                                         },
  31.                         ['Potwory'] = {
  32.                                         [30] = {636, 637, 656, 657},
  33.                                         [40] = {706, 756},
  34.                                         [50] = {1001},
  35.                                         [60] = {1107, 1137},
  36.                                         [70] = {2303, 2304, 2305, 2301, 2311, 2313, 2314, 2315},
  37.                                         [80] = {1401, 1601, 1602, 1603, 1402, 1403},
  38.                                         [85] = {2311, 2312, 2313, 2314, 2315},
  39.                                         [90] = {1901, 1092, 1091, 791, 2091, 2206, 792, 1093, 1304, 2402, 2404, 2412, 2413, 2403, 2401, 2411},
  40.                                         },
  41.                         ['DropItem'] = {
  42.                                         [30] = {['canDrop'] = false, ['prob'] = 1},
  43.                                         [40] = {['canDrop'] = false, ['prob'] = 1},
  44.                                         [50] = {['canDrop'] = false, ['prob'] = 1},
  45.                                         [60] = {['canDrop'] = false, ['prob'] = 1},
  46.                                         [70] = {['canDrop'] = false, ['prob'] = 1},
  47.                                         [80] = {['canDrop'] = true, ['prob'] = 5},
  48.                                         [85] = {['canDrop'] = true, ['prob'] = 5},
  49.                                         [90] = {['canDrop'] = true, ['prob'] = 90},
  50.                                         },
  51.                         ['duration'] = {
  52.                                         [30]  =  60*60*1,
  53.                                         [40]  =  60*60*1,
  54.                                         [50]  =  60*60*2,
  55.                                         [60]  =  60*60*2,
  56.                                         [70]  =  60*60*3,
  57.                                         [80]  =  60*60*3,
  58.                                         [85]  =  60*60*4,
  59.                                         [90]  =  60*60*5,
  60.                                     },
  61.                         ['ProbItem'] = {
  62.                                     [30] = {['n'] = 40, ['y'] = 90},
  63.                                     [40] = {['n'] = 40, ['y'] = 90},
  64.                                     [50] = {['n'] = 40, ['y'] = 90},
  65.                                     [60] = {['n'] = 40, ['y'] = 90},
  66.                                     [70] = {['n'] = 40, ['y'] = 90},
  67.                                     [80] = {['n'] = 20, ['y'] = 50},
  68.                                     [85] = {['n'] = 30, ['y'] = 70},
  69.                                     [90] = {['n'] = 50, ['y'] = 100},
  70.                                     },
  71.                         ['Kamien'] = {
  72.                                         [30] = 30220,
  73.                                         [40] = 30221,
  74.                                         [50] = 30222,
  75.                                         [60] = 30223,
  76.                                         [70] = 30224,
  77.                                         [80] = 30225,
  78.                                         [85] = 30226,
  79.                                         [90] = 30227,
  80.                                         },
  81.                         ['StoneProb'] = {
  82.                                     [30] = 10,
  83.                                     [40] = 5,
  84.                                     [50] = 8,
  85.                                     [60] = 3,
  86.                                     [70] = 16,
  87.                                     [80] = 20,
  88.                                     [85] = 2,
  89.                                     [90] = 3,
  90.                                     },
  91.                         ['NagrodaBonus'] = {
  92.                                             [30] = {
  93.                                                         {['aff'] = 560, ['nazwa'] = "+15% prędkości poruszania się ", ['vnum'] = 8, ['count'] = 15},
  94.                                                     },
  95.                                             [40] = {
  96.                                                         {['aff'] = 561, ['nazwa'] = "+15% prędkości poruszania się ", ['vnum'] = 8, ['count'] = 15},
  97.                                                     },
  98.                                             [50] = {
  99.                                                         {['aff'] = 562, ['nazwa'] = "+15% prędkości poruszania się ", ['vnum'] = 8, ['count'] = 15},
  100.                                                     },
  101.                                             [60] = {
  102.                                                         {['aff'] = 563, ['nazwa'] = "+15% prędkości poruszania się ", ['vnum'] = 8, ['count'] = 15},
  103.                                                     },
  104.                                             [70] = {
  105.                                                         {['aff'] = 564, ['nazwa'] = "+15% prędkości poruszania się ", ['vnum'] = 8, ['count'] = 15},
  106.                                                     },
  107.                                             [80] = {
  108.                                                         {['aff'] = 565, ['nazwa'] = "+15% prędkości poruszania się ", ['vnum'] = 8, ['count'] = 15},
  109.                                                     },
  110.                                             [85] = {
  111.                                                         {['aff'] = 566, ['nazwa'] = "+15% prędkości poruszania się ", ['vnum'] = 8, ['count'] = 15},
  112.                                                     },
  113.                                             [90] = {
  114.                                                         {['aff'] = 567, ['nazwa'] = "+15% prędkości poruszania się ", ['vnum'] = 8, ['count'] = 15},
  115.                                                     },
  116.                                             },
  117.                         ['NagrodaYang'] = {
  118.                                             [30] = {true, 2000000, "2.000.000"},
  119.                                             [40] = {true, 5000000, "5.000.000"},
  120.                                             [50] = {true, 8000000, "8.000.000"},
  121.                                             [60] = {true, 11000000, "11.000.000"},
  122.                                             [70] = {true, 14000000, "14.000.000"},
  123.                                             [80] = {true, 17000000, "17.000.000"},
  124.                                             [85] = {true, 20000000, "20.000.000"},
  125.                                             [90] = {true, 23000000, "23.000.000"},
  126.                                             },
  127.                         ['NagrodaExp'] = {
  128.                                             [30] = {true, 2000000, "2.000.000"},
  129.                                             [40] = {true, 5000000, "5.000.000"},
  130.                                             [50] = {true, 8000000, "8.000.000"},
  131.                                             [60] = {true, 11000000, "11.000.000"},
  132.                                             [70] = {true, 14000000, "14.000.000"},
  133.                                             [80] = {true, 17000000, "17.000.000"},
  134.                                             [85] = {true, 20000000, "20.000.000"},
  135.                                             [90] = {true, 23000000, "23.000.000"},
  136.                                             },
  137.                         ['NagrodaItem'] = {
  138.                                             [30] = {
  139.                                                     ['job_rew'] = {true, 11246,11446,11646,11846},
  140.                                                     ['adma'] = {
  141.                                                             {50109,1},
  142.                                                             },
  143.                                                     },
  144.                                             [40] = {
  145.                                                     ['job_rew'] = {false, 0,0,0,0},
  146.                                                     ['adma'] = {
  147.                                                             {50110,1},
  148.                                                             },
  149.                                                     },
  150.                                             [50] = {
  151.                                                     ['job_rew'] = {false, 0,0,0,0},
  152.                                                     ['adma'] = {
  153.                                                             {50111,1},
  154.                                                             },
  155.                                                     },
  156.                                             [60] = {
  157.                                                     ['job_rew'] = {false, 0,0,0,0},
  158.                                                     ['adma'] = {
  159.                                                             {50112,1},
  160.                                                             },
  161.                                                     },
  162.                                             [70] = {
  163.                                                     ['job_rew'] = {false, 0,0,0,0},
  164.                                                     ['adma'] = {
  165.                                                             {50113,1},
  166.                                                             },
  167.                                                     },
  168.                                             [80] = {
  169.                                                     ['job_rew'] = {false, 0,0,0,0},
  170.                                                     ['adma'] = {
  171.                                                             {50114,1},
  172.                                                             },
  173.                                                     },
  174.                                             [85] = {
  175.                                                     ['job_rew'] = {false, 0,0,0,0},
  176.                                                     ['adma'] = {
  177.                                                             {50113,1},
  178.                                                             {50114,1},
  179.                                                             },
  180.                                                     },
  181.                                             [90] = {
  182.                                                     ['job_rew'] = {false, 0,0,0,0},
  183.                                                     ['adma'] = {
  184.                                                             {50112,1},
  185.                                                             {50113,1},
  186.                                                             {50114,1},
  187.                                                             },
  188.                                                     },
  189.                                             },
  190.                     }
  191.         end
  192.         when login or levelup or levelup begin
  193.             local settings = biolog.settings()
  194.             if pc.get_level() >= settings.Poziom[pc.getqf("biologMisja")+1] then
  195.                 pc.setqf("biologPoziom", settings.Poziom[pc.getqf("biologMisja")+1])
  196.                 set_state(rozmowa)
  197.             end
  198.         end
  199.     end
  200.    
  201.     state rozmowa begin
  202.         when letter begin
  203.             local settings = biolog.settings()
  204.             target.vid("__TARGET__", find_npc_by_vnum(20084), "AnalizaBiologa")
  205.             send_letter(settings.Tytul[pc.getqf("biologPoziom")][1])
  206.         end
  207.        
  208.         when info or button begin
  209.             local settings = biolog.settings()
  210.             say_title(settings.Tytul[pc.getqf("biologPoziom")][1])
  211.             say()
  212.             say("Biolog Chaegirab, uczeń Baek-Goa,")
  213.             say("właśnie Cie szukał. Proszę idź ")
  214.             say("do niego i zaoferuj mu swoją pomoc.")
  215.             say()
  216.         end
  217.        
  218.         when __TARGET__.target.click or 20084.chat."Znajdź Biologa" begin
  219.             local settings = biolog.settings()
  220.             target.delete("__TARGET__")
  221.             say("Biolog Chaegirab:")
  222.             say("Niebiosa, proszę pomóż mi... ")
  223.             say("Badam wszystkie rodzaje roślin w tym ")
  224.             say("imperium. Jest bardzo dużo rzeczy, ")
  225.             say("które muszą zostać zbadane. Nie mam ")
  226.             say("czasu abym mógł sam wybrać się na wyprawę. ")
  227.             say("Proszę, pomóż mi. ")
  228.             wait()
  229.             say("Aktualnie celem moich badań jest")
  230.             say_item_vnum(settings.Szukany[pc.getqf("biologPoziom")].vnum)
  231.             say("Muszę przeprowadzić kilka eksperymentów,")
  232.             say("dlatego potrzebuje egzemplarzy tego przedmiotu.")
  233.             say("Przynieś mi ".. settings.Szukany[pc.getqf("biologPoziom")].count .." tego przedmiotu.")
  234.             say("")
  235.             set_state(wydrop)
  236.         end
  237.     end
  238.    
  239.     state wydrop begin
  240.         when letter begin
  241.             local settings = biolog.settings()
  242.             send_letter(settings.Tytul[pc.getqf("biologPoziom")][1])
  243.         end
  244.        
  245.         when info or button begin
  246.             local settings = biolog.settings()
  247.             say_title(settings.Tytul[pc.getqf("biologPoziom")][1])
  248.             say()
  249.             say("Aktualnie szukany przedmiot:")
  250.             say_item_vnum(settings.Szukany[pc.getqf("biologPoziom")].vnum)
  251.             say("Pozostała ilość do oddania: ".. ((settings.Szukany[pc.getqf("biologPoziom")].count)-pc.getqf("oddanaIlosc")))
  252.             say()
  253.         end
  254.        
  255.         when kill with not npc.is_pc() begin
  256.             local settings = biolog.settings()
  257.             if settings.DropItem[pc.getqf("biologPoziom")].canDrop then
  258.                 if table_is_in(settings.Potwory[pc.getqf("biologPoziom")], npc.get_race()) then
  259.                     if number(1,100) <= settings.DropItem[pc.getqf("biologPoziom")].prob then
  260.                         game.drop_item_with_ownership(settings.Szukany[pc.getqf("biologPoziom")].vnum)
  261.                     end
  262.                 end
  263.             end
  264.         end
  265.        
  266.         when 71035.use or 39023.use or 76020.use or 70021.use begin
  267.             if get_time() < pc.getqf("limitCzasowy") and pc.getqf("eliksirPoszukiwacza") < 1 then
  268.                     pc.setqf("limitCzasowy", 0)
  269.                     pc.setqf("eliksirPoszukiwacza", 1)
  270.                     chat("Możesz już oddać przedmiot biologowi!")
  271.                     syschat("Błogosławieństwo Anioła zostaje usunięte!")
  272.                     pc.remove_item(item.get_vnum(), 1)
  273.             else
  274.                 syschat("Nie możesz użyć teraz tego przedmiotu.")
  275.                 return
  276.             end
  277.         end
  278.        
  279.         when 20084.chat."Oddaj przedmiot!" begin
  280.             local settings = biolog.settings()
  281.             if pc.count_item(settings.Szukany[pc.getqf("biologPoziom")].vnum) == 0 then
  282.                 say_title("Biolog Chaegirab:")
  283.                 say()
  284.                 say("Nie przy sobie odpowiedniego przedmiotu.")
  285.                 return
  286.             end
  287.            
  288.             if pc.getqf("limitCzasowy") > get_time() then
  289.                 local time = (pc.getqf("limitCzasowy")-get_time())/3600
  290.                 local h = math.floor(time)
  291.                 local min = (time-h)*60
  292.                 local m = math.floor(min)
  293.                 say_title("Biolog Chaegirab:")
  294.                 say()
  295.                 say("Możesz oddac przedmiot za "..h.." godzin, "..m.." minut.")
  296.                 say()
  297.                 return
  298.             end        
  299.             say_title("Biolog Chaegirab:")
  300.             say()
  301.             say("Oh! Znalazłeś obiekt moich ostatnich badań...")
  302.             say("Pozwól, że rzucę na niego okiem.")
  303.             say("Poczekaj jeszcze chwilkę.")
  304.             say("")
  305.             pc.remove_item(settings.Szukany[pc.getqf("biologPoziom")].vnum, 1)
  306.             wait()
  307.             local szansa
  308.             if pc.getqf("eliksirPoszukiwacza") == 1 then
  309.                 szansa = settings.ProbItem[pc.getqf("biologPoziom")].y
  310.                 pc.setqf("eliksirPoszukiwacza", 0)
  311.             else
  312.                 szansa = settings.ProbItem[pc.getqf("biologPoziom")].n
  313.             end
  314.                 if number(1,100) <= szansa then
  315.                     say_title("Biolog Chaegirab:")
  316.                     say()
  317.                     say_green("Ten przedmiot jest doskonałej jakości.")
  318.                     say("Dziękuję Ci bardzo!")
  319.                     say()
  320.                     pc.setqf("oddanaIlosc", pc.getqf("oddanaIlosc")+1)
  321.                     if pc.getqf("oddanaIlosc") == settings.Szukany[pc.getqf("biologPoziom")].count then
  322.                         say("To już wszystkie przedmioty, które potrzebowałem!")
  323.                         say("Jednak do ukończenia badań potrzebuję jeszcze jednego przedmiotu...")
  324.                         say_item_vnum(settings.Kamien[pc.getqf("biologPoziom")])
  325.                         say("Powodzenia w poszukiwaniach!")
  326.                         say()
  327.                         pc.setqf("oddanaIlosc", 0)
  328.                         pc.setqf("limitCzasowy", 0)
  329.                         set_state(kamien)
  330.                     else
  331.                         say("Potrzebuję jeszcze "..((settings.Szukany[pc.getqf("biologPoziom")].count)-pc.getqf("oddanaIlosc")).." sztuk.")
  332.                         say()
  333.                         pc.setqf("limitCzasowy", get_time()+settings.duration[pc.getqf("biologPoziom")])
  334.                         say("Liczę na Ciebie!")
  335.                     end
  336.                 else
  337.                     say_title("Biolog Chaegirab:")
  338.                     say()
  339.                     say_red("Wybacz, ale ten przedmiot jest zbyt zniszczony.")
  340.                     say()
  341.                     return
  342.                 end
  343.         end
  344.     end
  345.    
  346.     state kamien begin
  347.         when letter begin
  348.             local settings = biolog.settings()
  349.             send_letter(settings.Tytul[pc.getqf("biologPoziom")][1])
  350.         end
  351.        
  352.         when info or button begin
  353.             local settings = biolog.settings()
  354.             say_title(settings.Tytul[pc.getqf("biologPoziom")][1])
  355.             say()
  356.             say("Aktualnie szukany przedmiot:")
  357.             say_item_vnum(settings.Kamien[pc.getqf("biologPoziom")])
  358.             say()
  359.         end
  360.        
  361.         when kill with not npc.is_pc() begin
  362.             local settings = biolog.settings()
  363.             if table_is_in(settings.Potwory[pc.getqf("biologPoziom")], npc.get_race()) then
  364.                 if number(1,100) <= settings.StoneProb[pc.getqf("biologPoziom")] then
  365.                     game.drop_item_with_ownership(settings.Kamien[pc.getqf("biologPoziom")])
  366.                 end
  367.             end
  368.         end
  369.         when 20084.chat."Oddaj przedmiot!" begin
  370.             local settings = biolog.settings()
  371.             if pc.count_item(settings.Kamien[pc.getqf("biologPoziom")]) < 1 then
  372.                 say_title("Biolog Chaegirab:")
  373.                 say()
  374.                 say("Nie przy sobie odpowiedniego przedmiotu.")
  375.                 return
  376.             end
  377.            
  378.             say_title("Biolog Chaegirab:")
  379.             say()
  380.             say("Oh! Znalazłeś obiekt moich ostatnich badań...")
  381.             say("Nie wiem jak mogę Ci się odwdzięczyć...")
  382.             say("Mam nadzieję, że ta nagroda Cie usatysfakcjonuje.")
  383.             say("")
  384.             pc.remove_item(settings.Kamien[pc.getqf("biologPoziom")], 1)
  385.             if settings.NagrodaYang[pc.getqf("biologPoziom")][1] == true then
  386.                 pc.change_gold(settings.NagrodaYang[pc.getqf("biologPoziom")][2])
  387.                 say_reward("Otrzymałeś "..settings.NagrodaYang[pc.getqf("biologPoziom")][3].." Yang.")
  388.             end
  389.             if settings.NagrodaExp[pc.getqf("biologPoziom")][1] then
  390.                 pc.give_exp2(settings.NagrodaExp[pc.getqf("biologPoziom")][2])
  391.                 say_reward("Otrzymałeś "..settings.NagrodaExp[pc.getqf("biologPoziom")][3].." Punktów Doświadczenia.")
  392.             end
  393.             if settings.NagrodaItem[pc.getqf("biologPoziom")].job_rew[1] then
  394.                 say_reward("Otrzymałeś "..item_name(settings.NagrodaItem[pc.getqf("biologPoziom")].job_rew[pc.get_job()+2]))
  395.                 pc.give_item2(settings.NagrodaItem[pc.getqf("biologPoziom")].job_rew[pc.get_job()+2], 1)
  396.             end
  397.             for i = 1, table.getn(settings.NagrodaItem[pc.getqf("biologPoziom")].adma) do
  398.                 say_reward("Otrzymałeś "..item_name(settings.NagrodaItem[pc.getqf("biologPoziom")].adma[i][1]))
  399.                 pc.give_item2(settings.NagrodaItem[pc.getqf("biologPoziom")].adma[i][1], settings.NagrodaItem[pc.getqf("biologPoziom")].adma[i][2])
  400.             end
  401.             for i = 1, table.getn(settings.NagrodaBonus[pc.getqf("biologPoziom")]) do
  402.                 say_reward("Otrzymałeś bonus: "..settings.NagrodaBonus[pc.getqf("biologPoziom")][i].nazwa)
  403.                 affect.add_new_bonus(settings.NagrodaBonus[pc.getqf("biologPoziom")][i].aff, settings.NagrodaBonus[pc.getqf("biologPoziom")][i].vnum, settings.NagrodaBonus[pc.getqf("biologPoziom")][i].count, 60*60*24*365*60)
  404.             end
  405.             pc.setqf("biologMisja", pc.getqf("biologMisja")+1)
  406.             clear_letter()
  407.             set_state(start)
  408.         end
  409.     end
  410. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement