Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- quest training_grandmaster_skill begin
- state start begin
- when 40004.use begin
- say_title("Kamien[??°?µ???] Duchowy")
- if pc.get_skill_group() == 0 then
- say("Nie wybrales jeszcze swojej 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("Uczenie sie spowoduje usuniecie")
- say("efektu Zwoju Egzorcyzmu")
- say("")
- wait()
- say_title("Kamien[??°?µ???] Duchowy")
- else
- say("Musisz poczekac 24h lub uzyc Zwoju egzorcyzmu zanim bedziesz szkolil swoje umiejetnosci ponownie!")
- 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 masz zadnych umiejetnosci do szkolenia![??°?µ???]")
- return
- end
- say("Wybierz umiejetnosc [??°?µ???]ktora chcesz szkolic")
- 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 = 1000+500*(skill_level-30)
- test_chat("Ranga: "..cur_alignment)
- test_chat("Potrzebujesz punktow rangi: "..need_alignment)
- local title=string.format("Szkolenie umiejetnosci %s", skill_name)
- say_title(title)
- say("Czy chcesz szkolic ta umiejetnosc?")
- say("Szkolenie odbierze twoje punkty dobra!")
- say("")
- if cur_alignment<-19000+need_alignment then
- say_reward("Nie masz wystarczajaco duzo rangi!")
- return
- end
- if cur_alignment<0 then
- say_reward(string.format("Potrzebujesz: %d -> %d punktow rangi!", need_alignment, need_alignment*2))
- say_reward("Jesli szkolenie powiedzie sie, zostanie odebrane 2x wiecej punktow!")
- need_alignment=need_alignment*2
- elseif cur_alignment<need_alignment then
- say_reward(string.format("Potrzebujesz: %d punktow rangi", need_alignment))
- say_reward("")
- else
- say_reward(string.format("Potrzebujesz: %d punktow rangi", need_alignment))
- end
- say("")
- local s=select("Kontynuuj")
- if s==2 then
- return
- end
- if cur_alignment>=0 and cur_alignment<need_alignment then
- say_title(string.format("%s", title))
- say("Niestety, twoje punkty rangi")
- say("sa na minusie.")
- say("Aby szkolic umiejetnosc musisz")
- say("wpisac w to pole:")
- say("")
- say_reward("Trenuj")
- say("")
- say("UWAGA! Duze litery sie licza!")
- 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(string.format("%s", title))
- if 40 == pc.get_skill_level(skill_vnum) then
- say(string.format("%s [°???µ???]", skill_name))
- else
- say(string.format("[°???µ???]", skill_name, skill_level-30+1+1))
- end
- say("")
- say_reward("Udalo sie, twoja umiejetnosci zostala wyszkolona!")
- say_reward(string.format("Zostalo odjetych %d punktow rangi.", need_alignment))
- say("")
- else
- say_title(string.format("%s", title))
- say("Nie udalo sie!")
- say("")
- say_reward("Zadne punkty rangi nie zostaly odebrane!")
- say("")
- pc.change_alignment(-number(need_alignment/3, need_alignment/2))
- end
- end
- item.remove()
- end
- function BuildGrandMasterSkillList(job, group)
- GRAND_MASTER_SKILL_LEVEL = 30
- PERFECT_MASTER_SKILL_LEVEL = 40
- local skill_list = special.active_skill_list[job+1][group]
- local ret_vnum_list = {}
- local ret_name_list = {}
- -- test_chat(string.format("job=%d, group=%d", job, group))
- table.foreach(skill_list,
- function(i, skill_vnum)
- local skill_level = pc.get_skill_level(skill_vnum)
- -- test_chat(string.format("[%d]=%d", skill_vnum, skill_level))
- 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}
- --return {ret_vnum_list, ret_name_list}
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment