Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- http://vesteris.pl
- endymionmpc@gmail.com
- ]]
- quest biolog begin
- state start begin
- function settings()
- return {
- ['Poziom'] = {30, 40, 50, 60, 70, 80, 85, 90, 95, 100, 105, 110}, -- Poziomy na jakie sa misje
- ['Tytul'] = {
- [30] = {"Analiza Biologa #1"},
- [40] = {"Analiza Biologa #2"},
- [50] = {"Analiza Biologa #3"},
- [60] = {"Analiza Biologa #4"},
- [70] = {"Analiza Biologa #5"},
- [80] = {"Analiza Biologa #6"},
- [85] = {"Analiza Biologa #7"},
- [90] = {"Analiza Biologa #8"},
- [95] = {"Analiza Biologa #9"},
- [100] = {"Analiza Biologa #10"},
- [105] = {"Analiza Biologa #11"},
- [110] = {"Analiza Biologa #12"},
- },
- ['Szukany'] = {
- [30] = {['vnum'] = 30006, ['count'] = 10},
- [40] = {['vnum'] = 30047, ['count'] = 15},
- [50] = {['vnum'] = 30015, ['count'] = 15},
- [60] = {['vnum'] = 30050, ['count'] = 20},
- [70] = {['vnum'] = 30165, ['count'] = 25},
- [80] = {['vnum'] = 30166, ['count'] = 30},
- [85] = {['vnum'] = 30167, ['count'] = 40},
- [90] = {['vnum'] = 30168, ['count'] = 50},
- [95] = {['vnum'] = 50709, ['count'] = 50},
- [100] = {['vnum'] = 50710, ['count'] = 50},
- [105] = {['vnum'] = 50711, ['count'] = 50},
- [110] = {['vnum'] = 50712, ['count'] = 50},
- },
- ['Potwory'] = {
- [30] = {636, 637, 656, 657},
- [40] = {706, 756},
- [50] = {1001},
- [60] = {1107, 1137},
- [70] = {2301, 2302, 2303, 2304, 2305, 2306},
- [80] = {1401, 1601, 1602, 1603, 1402, 1403},
- [85] = {2311, 2312, 2313, 2314, 2315},
- [90] = {1901, 1092, 791, 2091, 2206, 792, 1093, 1304},
- [95] = {3001, 3002, 3003, 3004},
- [100] = {3501, 3502, 3503},
- [105] = {3701, 3702, 3703},
- [110] = {3301, 3302, 3303},
- },
- ['DropItem'] = {
- [30] = {['canDrop'] = true, ['prob'] = 1},
- [40] = {['canDrop'] = true, ['prob'] = 1},
- [50] = {['canDrop'] = true, ['prob'] = 1},
- [60] = {['canDrop'] = true, ['prob'] = 1},
- [70] = {['canDrop'] = true, ['prob'] = 1},
- [80] = {['canDrop'] = true, ['prob'] = 1},
- [85] = {['canDrop'] = true, ['prob'] = 2},
- [90] = {['canDrop'] = true, ['prob'] = 50},
- [95] = {['canDrop'] = true, ['prob'] = 3},
- [110] = {['canDrop'] = true, ['prob'] = 3},
- [105] = {['canDrop'] = true, ['prob'] = 3},
- [110] = {['canDrop'] = true, ['prob'] = 3},
- },
- ['duration'] = {
- [30] = 0*0*0,
- [40] = 0*0*0,
- [50] = 0*0*0,
- [60] = 60*30*1,
- [70] = 60*30*1,
- [80] = 60*60*1,
- [85] = 60*60*1,
- [90] = 60*60*1,
- [95] = 60*60*1,
- [100] = 60*60*1,
- [105] = 60*60*1,
- [110] = 60*60*1,
- },
- ['ProbItem'] = {
- [30] = {['n'] = 60, ['y'] = 90},
- [40] = {['n'] = 60, ['y'] = 90},
- [50] = {['n'] = 55, ['y'] = 90},
- [60] = {['n'] = 55, ['y'] = 90},
- [70] = {['n'] = 55, ['y'] = 90},
- [80] = {['n'] = 55, ['y'] = 90},
- [85] = {['n'] = 55, ['y'] = 90},
- [90] = {['n'] = 40, ['y'] = 80},
- [95] = {['n'] = 40, ['y'] = 80},
- [100] = {['n'] = 40, ['y'] = 80},
- [105] = {['n'] = 40, ['y'] = 80},
- [110] = {['n'] = 40, ['y'] = 80},
- },
- ['Kamien'] = {
- [30] = 30220,
- [40] = 30221,
- [50] = 30222,
- [60] = 30223,
- [70] = 30224,
- [80] = 30225,
- [85] = 30226,
- [90] = 30227,
- [95] = 30228,
- [100] = 30220,
- [105] = 30221,
- [110] = 30222,
- },
- ['StoneProb'] = {
- [30] = 2,
- [40] = 2,
- [50] = 2,
- [60] = 2,
- [70] = 2,
- [80] = 2,
- [85] = 2,
- [90] = 2,
- [95] = 10,
- [100] = 2,
- [105] = 2,
- [110] = 2,
- },
- ['NagrodaBonus'] = {
- [30] = {
- {['aff'] = 560, ['nazwa'] = "+1000 HP na stałe ", ['vnum'] = 1, ['count'] = 1000},
- },
- [40] = {
- {['aff'] = 561, ['nazwa'] = "+5% Silny Przeciwko Potworom na stałe ", ['vnum'] = 63, ['count'] = 5},
- },
- [50] = {
- {['aff'] = 562, ['nazwa'] = "+30 do Wartości Ataku na stałe ", ['vnum'] = 53, ['count'] = 30},
- },
- [60] = {
- {['aff'] = 563, ['nazwa'] = "+30 do Obrony na stałe ", ['vnum'] = 54, ['count'] = 30},
- },
- [70] = {
- {['aff'] = 564, ['nazwa'] = "+5% Szansa na Krytyka na stałe ", ['vnum'] = 15, ['count'] = 5},
- },
- [80] = {
- {['aff'] = 565, ['nazwa'] = "+5% Silny przeciwko Ludziom na stałe ", ['vnum'] = 17, ['count'] = 5},
- },
- [85] = {
- {['aff'] = 565, ['nazwa'] = "+10% Silny przeciwko Nieumarłym na stałe ", ['vnum'] = 21, ['count'] = 10},
- },
- [90] = {
- {['aff'] = 566, ['nazwa'] = "+10% Silny przeciwko Diabłom na stałe ", ['vnum'] = 22, ['count'] = 10},
- },
- [95] = {
- {['aff'] = 565, ['nazwa'] = "+5% Średnie Obrażenia na stałe ", ['vnum'] = 72, ['count'] = 5},
- },
- [100] = {
- {['aff'] = 567, ['nazwa'] = "+5% Silny przeciwko Szamanom na stałe ", ['vnum'] = 62, ['count'] = 5},
- {['aff'] = 567, ['nazwa'] = "+5% Silny przeciwko Sura na stałe ", ['vnum'] = 61, ['count'] = 5},
- },
- [105] = {
- {['aff'] = 568, ['nazwa'] = "+5% Silny przeciwko Wojownikom na stałe ", ['vnum'] = 59, ['count'] = 5},
- {['aff'] = 568, ['nazwa'] = "+5% Silny przeciwko Ninja na stałe ", ['vnum'] = 60, ['count'] = 5},
- },
- [110] = {
- {['aff'] = 569, ['nazwa'] = "+5% do Szybkości Zaklęcia na stałe ", ['vnum'] = 9, ['count'] = 5},
- },
- },
- ['NagrodaYang'] = {
- [30] = {true, 1000000, "1.000.000"},
- [40] = {true, 3000000, "3.000.000"},
- [50] = {true, 5000000, "5.000.000"},
- [60] = {true, 10000000, "10.000.000"},
- [70] = {true, 20000000, "20.000.000"},
- [80] = {true, 20000000, "20.000.000"},
- [85] = {true, 20000000, "20.000.000"},
- [90] = {true, 30000000, "30.000.000"},
- [95] = {true, 30000000, "30.000.000"},
- [100] = {true, 50000000, "30.000.000"},
- [105] = {true, 50000000, "50.000.000"},
- [110] = {true, 50000000, "50.000.000"},
- },
- ['NagrodaExp'] = {
- [30] = {true, 1000000, "1.000.000"},
- [40] = {true, 2000000, "2.000.000"},
- [50] = {true, 5000000, "5.000.000"},
- [60] = {true, 8000000, "8.000.000"},
- [70] = {true, 14000000, "14.000.000"},
- [80] = {true, 50000000, "50.000.000"},
- [85] = {true, 50000000, "50.000.000"},
- [90] = {true, 230000000, "230.000.000"},
- [95] = {true, 230000000, "230.000.000"},
- [100] = {true, 300000000, "300.000.000"},
- [105] = {true, 300000000, "300.000.000"},
- [110] = {true, 300000000, "300.000.000"},
- },
- ['NagrodaItem'] = {
- [30] = {
- ['job_rew'] = {false, 0,0,0,0},
- ['adma'] = {
- {50109,1},
- {108005,3},
- },
- },
- [40] = {
- ['job_rew'] = {false, 0,0,0,0},
- ['adma'] = {
- {50110,1},
- {108005,3},
- },
- },
- [50] = {
- ['job_rew'] = {false, 0,0,0,0},
- ['adma'] = {
- {50111,1},
- {108005,3},
- },
- },
- [60] = {
- ['job_rew'] = {false, 0,0,0,0},
- ['adma'] = {
- {50112,1},
- {108005,3},
- },
- },
- [70] = {
- ['job_rew'] = {false, 0,0,0,0},
- ['adma'] = {
- {50113,1},
- {108005,3},
- },
- },
- [80] = {
- ['job_rew'] = {false, 0,0,0,0},
- ['adma'] = {
- {50114,1},
- {108006,3},
- },
- },
- [85] = {
- ['job_rew'] = {false, 0,0,0,0},
- ['adma'] = {
- {50114,1},
- {108006,3},
- },
- },
- [90] = {
- ['job_rew'] = {false, 0,0,0,0},
- ['adma'] = {
- {50115,1},
- {108006,3},
- },
- },
- [95] = {
- ['job_rew'] = {false, 0,0,0,0},
- ['adma'] = {
- {50115,1},
- {108006,3},
- },
- },
- [100] = {
- ['job_rew'] = {false, 0,0,0,0},
- ['adma'] = {
- {50109,1},
- {108006,3},
- },
- },
- [105] = {
- ['job_rew'] = {false, 0,0,0,0},
- ['adma'] = {
- {50110,2},
- {108006,3},
- },
- },
- [110] = {
- ['job_rew'] = {false, 0,0,0,0},
- ['adma'] = {
- {50111,3},
- {108006,3},
- },
- },
- },
- }
- end
- when login or levelup or letter 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_ex(settings.Tytul[pc.getqf("biologPoziom")][1], "no_flash", "scroll_open_green.tga")
- 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łaśnie 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_title("Biolog Chaegirab:")
- say()
- say("Niebiosa mi Ciebie zesłały!")
- say("Badam wszystkie rodzaje przedmiotów")
- say("w tym 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("")
- say("Aktualnie celem moich badań jest")
- say("")
- 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("")
- --
- cmdchat("sendCollectData herb "..settings.Szukany[pc.getqf("biologPoziom")].vnum.." "..(settings.Szukany[pc.getqf("biologPoziom")].count) - pc.getqf("oddanaIlosc").." "..settings.ProbItem[pc.getqf("biologPoziom")].n.." "..settings.ProbItem[pc.getqf("biologPoziom")].y.." "..pc.getqf("eliksirPoszukiwacza").." "..math.max(0, (pc.getqf("limitCzasowy") - get_time())))
- --
- set_state(wydrop)
- end
- end
- state wydrop begin
- when login begin
- --
- local settings = biolog.settings()
- cmdchat("sendCollectData herb "..settings.Szukany[pc.getqf("biologPoziom")].vnum.." "..(settings.Szukany[pc.getqf("biologPoziom")].count) - pc.getqf("oddanaIlosc").." "..settings.ProbItem[pc.getqf("biologPoziom")].n.." "..settings.ProbItem[pc.getqf("biologPoziom")].y.." "..pc.getqf("eliksirPoszukiwacza").." "..math.max(0, (pc.getqf("limitCzasowy") - get_time())))
- --
- end
- when letter begin
- local settings = biolog.settings()
- send_letter_ex(settings.Tytul[pc.getqf("biologPoziom")][1], "no_flash", "scroll_open_green.tga")
- 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 (is_test_server()) then
- syschat(string.format(
- "vnum %d prob %d monsters %s",
- settings.Szukany[pc.getqf("biologPoziom")].vnum,
- settings.DropItem[pc.getqf("biologPoziom")].prob,
- tostring(settings.Potwory[pc.getqf("biologPoziom")]))
- )
- end
- 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 begin
- if get_time() < pc.getqf("limitCzasowy") and pc.getqf("eliksirPoszukiwacza") < 1 then
- local settings = biolog.settings()
- pc.setqf("limitCzasowy", 0)
- pc.setqf("eliksirPoszukiwacza", 1)
- chat("Możesz już oddać przedmiot biologowi!")
- syschat("Eliksir Poszukiwacza usunął czas oczekiwania w misji!")
- pc.remove_item(item.get_vnum(), 1)
- --
- cmdchat("sendCollectData herb "..settings.Szukany[pc.getqf("biologPoziom")].vnum.." "..(settings.Szukany[pc.getqf("biologPoziom")].count) - pc.getqf("oddanaIlosc").." "..settings.ProbItem[pc.getqf("biologPoziom")].n.." "..settings.ProbItem[pc.getqf("biologPoziom")].y.." "..pc.getqf("eliksirPoszukiwacza").." "..math.max(0, (pc.getqf("limitCzasowy") - get_time())))
- --
- 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 jakości.")
- say("Dziękuję Ci bardzo!")
- say()
- pc.setqf("oddanaIlosc", pc.getqf("oddanaIlosc")+1)
- char_log(0, "COLLECT", "level ("..pc.getqf("biologMisja")..") count ("..pc.getqf("oddanaIlosc")..")")
- 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)
- char_log(0, "COLLECT_ALL_ITEMS", "level ("..pc.getqf("biologMisja")..")")
- --
- cmdchat("clearCollectData herb")
- --
- set_state(kamien)
- else
- say("Potrzebuję jeszcze "..((settings.Szukany[pc.getqf("biologPoziom")].count)-pc.getqf("oddanaIlosc")).." sztuk.")
- pc.setqf("limitCzasowy", get_time()+settings.duration[pc.getqf("biologPoziom")])
- say("Liczę na Ciebie!")
- say("")
- --
- cmdchat("sendCollectData herb "..settings.Szukany[pc.getqf("biologPoziom")].vnum.." "..(settings.Szukany[pc.getqf("biologPoziom")].count) - pc.getqf("oddanaIlosc").." "..settings.ProbItem[pc.getqf("biologPoziom")].n.." "..settings.ProbItem[pc.getqf("biologPoziom")].y.." "..pc.getqf("eliksirPoszukiwacza").." "..math.max(0, (pc.getqf("limitCzasowy") - get_time())))
- --
- 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_ex(settings.Tytul[pc.getqf("biologPoziom")][1], "no_flash", "scroll_open_green.tga")
- 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 Doświadczenia.")
- 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("Bonus: "..settings.NagrodaBonus[pc.getqf("biologPoziom")][i].nazwa)
- affect.add_collect(settings.NagrodaBonus[pc.getqf("biologPoziom")][i].vnum, settings.NagrodaBonus[pc.getqf("biologPoziom")][i].count, 60*60*24*365*60)
- end
- char_log(0, "COLLECT_FINISH", "level ("..pc.getqf("biologMisja")..")")
- pc.setqf("biologMisja", pc.getqf("biologMisja")+1)
- clear_letter()
- set_state(start)
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement