WIe kann man die quest so umschreiben, dass man zum Beispiel bei Kampfrausch & Starke Körper aussuchen kann, ob man das auf M10 bzw. G1 skillen kann?
Code
- quest regenbogenstein begin
- state start begin
- function BuildPerfectMasterSkillList(job, group)
- MASTER_SKILL_LEVEL = 20
- 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 >= 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
- when 50512.use begin
- local count = pc.count_item(50512)
- pc.setqf("regen_count", count)
- if pc.get_skill_group() == 0 then
- say("Du hast noch keine Fertigkeiten.")
- say("Versuche es später erneut.")
- return
- end
- local result = regenbogenstein.BuildPerfectMasterSkillList(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("Du hast keine Großmeister-Fertigkeiten.")
- return
- end
- local menu_list = {}
- table.foreach(name_list, function(i, name) table.insert(menu_list, name) end)
- table.insert(menu_list, "Abbrechen")
- 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]
- say("Möchtest du "..skill_name.." wirklich auf P skillen?")
- local wahl = select("Ja", "Nein")
- if wahl == 1 then
- if pc.count_item(50512) == pc.getqf("regen_count") then
- pc.set_skill_level(skill_vnum, 59)
- say(skill_name.."wurde auf Perfekten Meister gesetzt.")
- else
- say("Buguser bekommen keine P-Skills ! ")
- end
- elseif wahl == 2 then
- return
- end
- pc.remove_item(50512, 1)
- end
- end
- end