Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- quest train_master_skill begin
- state start begin
- when 30182.use begin
- say_title("Zaawansowane Szkolenie Umiejętności")
- if pc.get_skill_group() == 0 then
- say_title("Zaawansowane Szkolenie Umiejętności")
- say("Nie wybrałeś jeszcze drogi duchowej."..pc.get_skill_group())
- return
- end
- if get_time() < pc.getqf("next_time") then -- and not is_test_server() then
- if pc.is_skill_book_no_delay() then
- say("Trening spowoduje usunięcie efektu")
- say("Zwoju Egzorcyzmu.")
- wait()
- say_title("Zaawansowane Szkolenie Umiejętności")
- else
- say("Musisz użyć Zwoju Egzorcyzmu zanim ponownie")
- say("rozpoczniesz trening przed upływem 8 godzin.")
- return
- end
- end
- local result = training_grandmaster_skill.BuildGrandMasterSkillList(pc.get_job(), pc.get_skill_group())
- local vnum_list = result[1]
- local name_list = result[2]
- if table.getn(vnum_list) == 0 then
- say("Nie możesz trenować żadnej umiejętności.")
- return
- end
- say("Proszę wybrać umiejętność, którą chcesz trenować.")
- say("")
- local menu_list = {}
- table.foreach(name_list, function(i, name) table.insert(menu_list, name) end)
- table.insert(menu_list, "Anuluj")
- local s=select_table(menu_list)
- if table.getn(menu_list) == s then
- return
- end
- local skill_name=name_list[s]
- local skill_vnum=vnum_list[s]
- local skill_level = pc.get_skill_level(skill_vnum)
- local cur_alignment = pc.get_real_alignment()
- local need_alignment = 100+50*(skill_level-20)
- test_chat("˛{¦bµ˝´cČ: "..cur_alignment)
- test_chat("»Ýnµ˝´cČ: "..need_alignment)
- local title=string.format("Trening %s Wielki Mistrz", skill_name)
- say_title(title)
- say("Jeśli będziesz używać swoich punktów rangi")
- say("podczas treningu Umiejętności, może się zdarzyć,")
- say("że twoja Ranga stanie się negatywna.")
- if cur_alignment<-19000+need_alignment then
- say_reward("Nie masz wystarczającej ilości punktów Rangi.")
- return
- end
- if cur_alignment<0 then
- say_reward(string.format("Wymagane punkty rangi: %d -> %d", need_alignment, need_alignment*2))
- say_reward("Jeśli trening zakończy się powodzeniem,")
- say_reward("zużyjesz 2 razy więcej punktów Rangi.")
- need_alignment=need_alignment*2
- elseif cur_alignment<need_alignment then
- say_reward(string.format("Wymagane punkty rangi: %d", need_alignment))
- say_reward("Jeśli będziesz teraz trenować, twoja ranga")
- say_reward("stanie się negatywna.")
- else
- say_reward(string.format("Wymagane punkty rangi: %d", need_alignment))
- end
- say("")
- local s=select("Dalej", "Anuluj")
- if s==2 then
- return
- end
- if cur_alignment>=0 and cur_alignment<need_alignment then
- say_title(title)
- say_reward("Kontynuuj")
- say("Jeśli będziesz kontynuował trening umiejętności,")
- say("możliwe jest, że twoje punkty rangi przyjmą ")
- say("wartość ujemną i będziesz miał negatywną Rangę.")
- say("Jeśli chcesz kontynuować, wpisz poniżej słowo")
- say("")
- say_reward("Trenuj")
- say("Jeżeli nie chcesz już trenować, wciśnij 'ENTER'.")
- local s=input()
- if s!="Trenuj" then
- return
- end
- end
- if get_time() < pc.getqf("next_time") then -- and not is_test_server() then
- if pc.is_skill_book_no_delay() then
- pc.remove_skill_book_no_delay()
- else
- say("[°ŞŻĹµĄŻĹ]§ŢŻŕ×˝mżů»~: Ąđ®§¤¤")
- return
- end
- end
- pc.setqf("next_time", get_time()+time_hour_to_sec(number(8, 12)))
- if need_alignment>0 then
- if pc.learn_grand_master_skill(skill_vnum) then
- pc.change_alignment(-need_alignment)
- say_title(title)
- if 30 == pc.get_skill_level(skill_vnum) then
- say_reward("Powodzenie!")
- say("Gratulacje! Udało się!")
- say(string.format("%s jest teraz na poziomie Mistrz.", skill_name))
- say("To oznacza, że osiągnąłeś poziom Wielkiego Mistrza tej")
- say("umiejętności. Dalsze jej szkolenie jest")
- say("niemożliwe.")
- else
- say_reward("Powodzenie!")
- say("Gratulacje! Udało się!")
- say(string.format("%s jest teraz na poziomie Mistrz.", skill_name))
- end
- say_reward("Pomyślnie podnisłeś poziom!")
- say_reward(string.format("Zużyłeś %d punktów rangi.", need_alignment))
- say("")
- else
- say_title(title)
- say_reward("Niepowodzenie!")
- say("Nie udało się ulepszyć umiejętności.")
- say_reward("Straciłeś trochę punktów rangi.")
- say("")
- pc.change_alignment(-number(need_alignment/3, need_alignment/2))
- end
- end
- item.remove()
- end
- function BuildGrandMasterSkillList(job, group)
- GRAND_MASTER_SKILL_LEVEL = 20
- PERFECT_MASTER_SKILL_LEVEL = 30
- local skill_list = special.active_skill_list[job+1][group]
- local ret_vnum_list = {}
- local ret_name_list = {}
- table.foreach(skill_list,
- function(i, skill_vnum)
- local skill_level = pc.get_skill_level(skill_vnum)
- if skill_level >= GRAND_MASTER_SKILL_LEVEL and skill_level < PERFECT_MASTER_SKILL_LEVEL then
- table.insert(ret_vnum_list, skill_vnum)
- local name=locale.GM_SKILL_NAME_DICT[skill_vnum]
- if name == nil then name=skill_vnum end
- table.insert(ret_name_list, name)
- end
- end)
- return {ret_vnum_list, ret_name_list}
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment