deadx2

Untitled

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