Code:
quest regenbogenstein begin
state start begin
function BuildPerfectMasterSkillList(job, group)
GRAND_MASTER_SKILL_LEVEL = 30
PERFECT_MASTER_SKILL_LEVEL = 40
GM_SKILL_NAME_DICT = {
[1] = "Dreiwege-Schnitt",
[2] = "Schwertwirbel",
[3] = "Kampfrausch",
[4] = "Aura des Schwertes",
[5] = "Sausen",
[6] = "Zerschneiden",
[16] = "Durchschlag",
[17] = "Heftiges Schlagen",
[18] = "Stampfer",
[19] = "Starker Körper",
[20] = "Schwertschlag",
[21] = "Blitzschlag",
[31] = "Hinterhalt",
[32] = "Blitzangriff",
[33] = "Degenwirbel",
[34] = "Tarnung",
[35] = "Giftwolke",
[36] = "Angriffssprung",
[46] = "Wiederholter Schuss",
[47] = "Pfeilregen",
[48] = "Feuerpfeil",
[49] = "Federschreiten",
[50] = "Giftpfeil",
[51] = "Wutausbruch",
[61] = "Fingerschlag",
[62] = "Drachenwirbel",
[63] = "Verzauberte Klinge",
[64] = "Furcht",
[65] = "Verzauberte Rüstung",
[66] = "Zauber aufheben",
[76] = "Dunkler Schlag",
[77] = "Flammenschlag",
[78] = "Geist der Flamme",
[79] = "Dunkler Schutz",
[80] = "Geisterschlag",
[81] = "Dunker Stein",
[91] = "Fliegender Talisman",
[92] = "Drachenschießen",
[93] = "Drachengebrüll",
[94] = "Segen",
[95] = "*Reflektieren",
[96] = "Hilfe des Drachen",
[106] = "Blitzwurf",
[107] = "Blitz heraufbeschwören",
[108] = "Blitzkralle",
[109] = "Kurieren",
[110] = "Schnelligkeit",
[111] = "Angriff+"
}
active_skill_list = {
{
{ 1, 2, 3, 4, 5},
{ 16, 17, 18, 19, 20}
},
{
{31, 32, 33, 34, 35},
{46, 47, 48, 49, 50}
},
{
{61, 62, 63, 64, 65, 66},
{76, 77, 78, 79, 80, 81}
},
{
{91, 92, 93, 94, 95, 96},
{106, 107, 108, 109, 110, 111}
}
}
local skill_list = 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=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
if pc.get_skill_group() == 0 then
say_title("Regenbogenstein")
say("Du hast noch keine Fertigkeiten.")
say("Versuche es später erneut.")
return
end
say_title("Regenbogenstein")
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_title("Regenbogenstein")
say("")
say("Möchtest du "..skill_name.." wirklich auf P skillen?")
if select("Ja", "Nein")==2 then return end
if pc.count_item(50512)>0 then
pc.set_skill_level(skill_vnum, 59)
say(skill_name.." wurde auf P gesetzt.")
else
say("Buguser bekommen keine P-Skills! ")
end
pc.remove_item(50512, 1)
end
end
end