Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- quest biolog begin
- state start begin
- function settings()
- return {
- ['Poziom'] = {1, 15, 30, 50, 75, 100, 125, 150},
- ['Tytul'] = {
- [1] = {"Analiza Biologa - Nefryty"},
- [15] = {"Analiza Biologa - Magiczne Pylki"},
- [30] = {"Analiza Biologa - Haczyki"},
- [50] = {"Analiza Biologa - Fioletowe Luski"},
- [75] = {"Analiza Biologa - Diamenty"},
- [100] = {"Analiza Biologa - Mroczne Zwoje"},
- [125] = {"Analiza Biologa - Ogniste Kamienie"},
- [150] = {"Analiza Biologa - Szpony"},
- },
- ['Szukany'] = {
- [1] = {['vnum'] = 30006, ['count'] = 10},
- [15] = {['vnum'] = 30047, ['count'] = 15},
- [30] = {['vnum'] = 30015, ['count'] = 20},
- [50] = {['vnum'] = 30050, ['count'] = 30},
- [75] = {['vnum'] = 30165, ['count'] = 40},
- [100] = {['vnum'] = 30166, ['count'] = 50},
- [125] = {['vnum'] = 30167, ['count'] = 60},
- [150] = {['vnum'] = 30168, ['count'] = 20},
- },
- ['Potwory'] = {
- [1] = {101, 102, 103, 104, 105, 106, 107, 171, 172, 173, 174, 175, 176, 177},
- [15] = {401, 402, 403, 431, 432, 551, 552},
- [30] = {12, 13, 14, 15},
- [50] = {1107, 1137},
- [75] = {3001, 3002, 3003, 3004, 3005},
- [100] = {3701, 3702, 3703, 3704, 3705},
- [125] = {3555, 3554, 3553, 3552, 3551},
- [150] = {17},
- },
- ['DropItem'] = {
- [1] = {['canDrop'] = false, ['prob'] = 1},
- [15] = {['canDrop'] = false, ['prob'] = 1},
- [30] = {['canDrop'] = false, ['prob'] = 1},
- [50] = {['canDrop'] = false, ['prob'] = 1},
- [75] = {['canDrop'] = false, ['prob'] = 1},
- [100] = {['canDrop'] = true, ['prob'] = 5},
- [125] = {['canDrop'] = true, ['prob'] = 5},
- [150] = {['canDrop'] = true, ['prob'] = 90},
- },
- ['duration'] = {
- [1] = 0,
- [15] = 0,
- [30] = 60*10,
- [50] = 60*30,
- [75] = 60*45,
- [100] = 60*60,
- [125] = 60*60*3,
- [150] = 60*60*5,
- },
- ['ProbItem'] = {
- [1] = {['n'] = 40, ['y'] = 100},
- [15] = {['n'] = 40, ['y'] = 100},
- [30] = {['n'] = 40, ['y'] = 100},
- [50] = {['n'] = 40, ['y'] = 100},
- [75] = {['n'] = 40, ['y'] = 100},
- [100] = {['n'] = 40, ['y'] = 100},
- [125] = {['n'] = 40, ['y'] = 100},
- [150] = {['n'] = 65, ['y'] = 100},
- },
- ['Kamien'] = {
- [1] = 30220,
- [15] = 30221,
- [30] = 30222,
- [50] = 30223,
- [75] = 30224,
- [100] = 30225,
- [125] = 30226,
- [150] = 30227,
- },
- ['StoneProb'] = {
- [1] = 3,
- [15] = 2,
- [30] = 1,
- [50] = 1,
- [75] = 1,
- [100] = 1,
- [125] = 1,
- [150] = 60,
- },
- ['NagrodaBonus'] = {
- [1] = {
- {['aff'] = 560, ['nazwa'] = "+50 Obrony ", ['vnum'] = 54, ['count'] = 50},
- {['aff'] = 568, ['nazwa'] = "+5% Szansy Na Krytyczne Uderzenie ", ['vnum'] = 15, ['count'] = 5},
- },
- [15] = {
- {['aff'] = 561, ['nazwa'] = "+15% Predkosci Poruszania Sie ", ['vnum'] = 8, ['count'] = 15},
- {['aff'] = 569, ['nazwa'] = "+5% Szansy Na Przeszywajace Uderzenie ", ['vnum'] = 16, ['count'] = 5},
- },
- [30] = {
- {['aff'] = 562, ['nazwa'] = "+20% Regeneracji HP ", ['vnum'] = 10, ['count'] = 20},
- {['aff'] = 570, ['nazwa'] = "+6% Szansy Na Otrucie ", ['vnum'] = 12, ['count'] = 6},
- },
- [50] = {
- {['aff'] = 563, ['nazwa'] = "+2000 Max HP ", ['vnum'] = 1, ['count'] = 2000},
- {['aff'] = 571, ['nazwa'] = "+100 Wartosci Ataku", ['vnum'] = 8, ['count'] = 15},
- },
- [75] = {
- {['aff'] = 564, ['nazwa'] = "+20% Szybkosci Zaklecia ", ['vnum'] = 9, ['count'] = 20},
- {['aff'] = 572, ['nazwa'] = "+100 Wartosci Ataku Magicznego ", ['vnum'] = 55, ['count'] = 100},
- {['aff'] = 573, ['nazwa'] = "+10% Silny Przeciwko Potworom ", ['vnum'] = 63, ['count'] = 10},
- },
- [100] = {
- {['aff'] = 565, ['nazwa'] = "+15% Silny Przeciwko Ludziom ", ['vnum'] = 17, ['count'] = 15},
- {['aff'] = 574, ['nazwa'] = "+10% Odpornosci Na Trucizne ", ['vnum'] = 41, ['count'] = 10%},
- },
- [125] = {
- {['aff'] = 566, ['nazwa'] = "+10% Odpornosci Na Wojowników", ['vnum'] = 78, ['count'] = 10},
- {['aff'] = 575, ['nazwa'] = "+10% Odpornosci Na Sury ", ['vnum'] = 79, ['count'] = 10},
- {['aff'] = 576, ['nazwa'] = "+10% Odpornosci Na Ninje", ['vnum'] = 80, ['count'] = 10},
- {['aff'] = 577, ['nazwa'] = "+10% Odpornosci Na Szamanów", ['vnum'] = 81, ['count'] = 10},
- {['aff'] = 578, ['nazwa'] = "+10% Szansy Na Blok Ciosów ", ['vnum'] = 39, ['count'] = 10},
- },
- [150] = {
- {['aff'] = 567, ['nazwa'] = "+7% Obrazen Umiejetnosci ", ['vnum'] = 71, ['count'] = 7},
- {['aff'] = 567, ['nazwa'] = "+15% Srednich Obrazen ", ['vnum'] = 72, ['count'] = 15},
- },
- },
- ['NagrodaYang'] = {
- [1] = {true, 200000, "200.000"},
- [15] = {true, 500000, "500.000"},
- [30] = {true, 1500000, "1.500.000"},
- [50] = {true, 5000000, "5.000.000"},
- [75] = {true, 75000000, "7.500.000"},
- [100] = {true, 10000000, "10.000.000"},
- [125] = {true, 20000000, "20.000.000"},
- [150] = {true, 50000000, "50.000.000"},
- },
- ['NagrodaExp'] = {
- [1] = {true, 6000, "6.000"},
- [15] = {true, 25000, "25.000"},
- [30] = {true, 150000, "150.000"},
- [50] = {true, 3500000, "3.500.000"},
- [75] = {true, 15000000, "15.000.000"},
- [100] = {true, 6500000, "65.000.000"},
- [125] = {true, 250000000, "250.000.000"},
- [150] = {true, 0, "0"},
- },
- ['NagrodaItem'] = {
- [1] = {
- ['job_rew'] = {true, 11229,11429,11629,11829},
- ['adma'] = {
- {0,0},
- },
- },
- [15] = {
- ['job_rew'] = {false, 0,0,0,0},
- ['adma'] = {
- {0,0},
- },
- },
- [30] = {
- ['job_rew'] = {false, 0,0,0,0},
- ['adma'] = {
- {0,0},
- },
- },
- [50] = {
- ['job_rew'] = {false, 0,0,0,0},
- ['adma'] = {
- {0,0},
- },
- },
- [75] = {
- ['job_rew'] = {false, 0,0,0,0},
- ['adma'] = {
- {0,0},
- },
- },
- [100] = {
- ['job_rew'] = {false, 0,0,0,0},
- ['adma'] = {
- {0,0},
- },
- },
- [125] = {
- ['job_rew'] = {false, 0,0,0,0},
- ['adma'] = {
- {0,0},
- },
- },
- [150] = {
- ['job_rew'] = {false, 0,0,0,0},
- ['adma'] = {
- {0,0},
- },
- },
- },
- }
- end
- when login or levelup or levelup begin
- local settings = biolog.settings()
- if pc.get_level() >= settings.Poziom[pc.getqf("biologMisja")+1] then
- pc.setqf("biologPoziom", settings.Poziom[pc.getqf("biologMisja")+1])
- set_state(rozmowa)
- end
- end
- end
- state rozmowa begin
- when letter begin
- local settings = biolog.settings()
- target.vid("__TARGET__", find_npc_by_vnum(20084), "AnalizaBiologa")
- send_letter(settings.Tytul[pc.getqf("biologPoziom")][1])
- end
- when info or button begin
- local settings = biolog.settings()
- say_title(settings.Tytul[pc.getqf("biologPoziom")][1])
- say()
- say("Biolog Chaegirab, uczeñ Baek-Goa,")
- say("w³anie Cie szuka³. Proszê id ")
- say("do niego i zaoferuj mu swojı pomoc.")
- say()
- end
- when __TARGET__.target.click or 20084.chat."Znajd Biologa" begin
- local settings = biolog.settings()
- target.delete("__TARGET__")
- say("Biolog Chaegirab:")
- say("Niebiosa, proszê pomóż mi... ")
- say("Badam wszystkie rodzaje rolin w tym ")
- say("imperium. Jest bardzo dużo rzeczy, ")
- say("które muszı zostaĉ zbadane. Nie mam ")
- say("czasu abym móg³ sam wybraĉ siê na wyprawê. ")
- say("Proszê, pomóż mi. ")
- wait()
- say("Aktualnie celem moich badañ jest")
- say_item_vnum(settings.Szukany[pc.getqf("biologPoziom")].vnum)
- say("Muszê przeprowadziĉ kilka eksperymentów,")
- say("dlatego potrzebuje egzemplarzy tego przedmiotu.")
- say("Przynie mi ".. settings.Szukany[pc.getqf("biologPoziom")].count .." tego przedmiotu.")
- say("")
- set_state(wydrop)
- end
- end
- state wydrop begin
- when letter begin
- local settings = biolog.settings()
- send_letter(settings.Tytul[pc.getqf("biologPoziom")][1])
- end
- when info or button begin
- local settings = biolog.settings()
- say_title(settings.Tytul[pc.getqf("biologPoziom")][1])
- say()
- say("Aktualnie szukany przedmiot:")
- say_item_vnum(settings.Szukany[pc.getqf("biologPoziom")].vnum)
- say("Pozosta³a iloĉ do oddania: ".. ((settings.Szukany[pc.getqf("biologPoziom")].count)-pc.getqf("oddanaIlosc")))
- say()
- end
- when kill with not npc.is_pc() begin
- local settings = biolog.settings()
- if settings.DropItem[pc.getqf("biologPoziom")].canDrop then
- if table_is_in(settings.Potwory[pc.getqf("biologPoziom")], npc.get_race()) then
- if number(1,100) <= settings.DropItem[pc.getqf("biologPoziom")].prob then
- game.drop_item_with_ownership(settings.Szukany[pc.getqf("biologPoziom")].vnum)
- end
- end
- end
- end
- when 71035.use or 76020.use or 70021.use begin
- if get_time() < pc.getqf("limitCzasowy") and pc.getqf("eliksirPoszukiwacza") < 1 then
- pc.setqf("limitCzasowy", 0)
- pc.setqf("eliksirPoszukiwacza", 1)
- chat("Możesz już oddaĉ przedmiot biologowi!")
- syschat("B³ogos³awieñstwo Anio³a zostaje usuniête!")
- pc.remove_item(item.get_vnum(), 1)
- else
- syschat("Nie możesz użyĉ teraz tego przedmiotu.")
- return
- end
- end
- when 20084.chat."Oddaj przedmiot!" begin
- local settings = biolog.settings()
- if pc.count_item(settings.Szukany[pc.getqf("biologPoziom")].vnum) == 0 then
- say_title("Biolog Chaegirab:")
- say()
- say("Nie przy sobie odpowiedniego przedmiotu.")
- return
- end
- if pc.getqf("limitCzasowy") > get_time() then
- local time = (pc.getqf("limitCzasowy")-get_time())/3600
- local h = math.floor(time)
- local min = (time-h)*60
- local m = math.floor(min)
- say_title("Biolog Chaegirab:")
- say()
- say("Możesz oddac przedmiot za "..h.." godzin, "..m.." minut.")
- say()
- return
- end
- say_title("Biolog Chaegirab:")
- say()
- say("Oh! Znalaz³e obiekt moich ostatnich badañ...")
- say("Pozwól, że rzucê na niego okiem.")
- say("Poczekaj jeszcze chwilkê.")
- say("")
- pc.remove_item(settings.Szukany[pc.getqf("biologPoziom")].vnum, 1)
- wait()
- local szansa
- if pc.getqf("eliksirPoszukiwacza") == 1 then
- szansa = settings.ProbItem[pc.getqf("biologPoziom")].y
- pc.setqf("eliksirPoszukiwacza", 0)
- else
- szansa = settings.ProbItem[pc.getqf("biologPoziom")].n
- end
- if number(1,100) <= szansa then
- say_title("Biolog Chaegirab:")
- say()
- say_green("Ten przedmiot jest doskona³ej jakoci.")
- say("Dziêkujê Ci bardzo!")
- say()
- pc.setqf("oddanaIlosc", pc.getqf("oddanaIlosc")+1)
- if pc.getqf("oddanaIlosc") == settings.Szukany[pc.getqf("biologPoziom")].count then
- say("To już wszystkie przedmioty, które potrzebowa³em!")
- say("Jednak do ukoñczenia badañ potrzebujê jeszcze jednego przedmiotu...")
- say_item_vnum(settings.Kamien[pc.getqf("biologPoziom")])
- say("Powodzenia w poszukiwaniach!")
- say()
- pc.setqf("oddanaIlosc", 0)
- pc.setqf("limitCzasowy", 0)
- set_state(kamien)
- else
- say("Potrzebujê jeszcze "..((settings.Szukany[pc.getqf("biologPoziom")].count)-pc.getqf("oddanaIlosc")).." sztuk.")
- say()
- pc.setqf("limitCzasowy", get_time()+settings.duration[pc.getqf("biologPoziom")])
- say("Liczê na Ciebie!")
- end
- else
- say_title("Biolog Chaegirab:")
- say()
- say_red("Wybacz, ale ten przedmiot jest zbyt zniszczony.")
- say()
- return
- end
- end
- end
- state kamien begin
- when letter begin
- local settings = biolog.settings()
- send_letter(settings.Tytul[pc.getqf("biologPoziom")][1])
- end
- when info or button begin
- local settings = biolog.settings()
- say_title(settings.Tytul[pc.getqf("biologPoziom")][1])
- say()
- say("Aktualnie szukany przedmiot:")
- say_item_vnum(settings.Kamien[pc.getqf("biologPoziom")])
- say()
- end
- when kill with not npc.is_pc() begin
- local settings = biolog.settings()
- if table_is_in(settings.Potwory[pc.getqf("biologPoziom")], npc.get_race()) then
- if number(1,100) <= settings.StoneProb[pc.getqf("biologPoziom")] then
- game.drop_item_with_ownership(settings.Kamien[pc.getqf("biologPoziom")])
- end
- end
- end
- when 20084.chat."Oddaj przedmiot!" begin
- local settings = biolog.settings()
- if pc.count_item(settings.Kamien[pc.getqf("biologPoziom")]) < 1 then
- say_title("Biolog Chaegirab:")
- say()
- say("Nie przy sobie odpowiedniego przedmiotu.")
- return
- end
- say_title("Biolog Chaegirab:")
- say()
- say("Oh! Znalaz³e obiekt moich ostatnich badañ...")
- say("Nie wiem jak mogê Ci siê odwdziêczyĉ...")
- say("Mam nadziejê, że ta nagroda Cie usatysfakcjonuje.")
- say("")
- pc.remove_item(settings.Kamien[pc.getqf("biologPoziom")], 1)
- if settings.NagrodaYang[pc.getqf("biologPoziom")][1] == true then
- pc.change_gold(settings.NagrodaYang[pc.getqf("biologPoziom")][2])
- say_reward("Otrzyma³e "..settings.NagrodaYang[pc.getqf("biologPoziom")][3].." Yang.")
- end
- if settings.NagrodaExp[pc.getqf("biologPoziom")][1] then
- pc.give_exp2(settings.NagrodaExp[pc.getqf("biologPoziom")][2])
- say_reward("Otrzyma³e "..settings.NagrodaExp[pc.getqf("biologPoziom")][3].." Punktów Dowiadczenia.")
- end
- if settings.NagrodaItem[pc.getqf("biologPoziom")].job_rew[1] then
- say_reward("Otrzyma³e "..item_name(settings.NagrodaItem[pc.getqf("biologPoziom")].job_rew[pc.get_job()+2]))
- pc.give_item2(settings.NagrodaItem[pc.getqf("biologPoziom")].job_rew[pc.get_job()+2], 1)
- end
- for i = 1, table.getn(settings.NagrodaItem[pc.getqf("biologPoziom")].adma) do
- say_reward("Otrzyma³e "..item_name(settings.NagrodaItem[pc.getqf("biologPoziom")].adma[i][1]))
- pc.give_item2(settings.NagrodaItem[pc.getqf("biologPoziom")].adma[i][1], settings.NagrodaItem[pc.getqf("biologPoziom")].adma[i][2])
- end
- for i = 1, table.getn(settings.NagrodaBonus[pc.getqf("biologPoziom")]) do
- say_reward("Otrzyma³e bonus: "..settings.NagrodaBonus[pc.getqf("biologPoziom")][i].nazwa)
- 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)
- end
- pc.setqf("biologMisja", pc.getqf("biologMisja")+1)
- clear_letter()
- set_state(start)
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment