Quote:
1. Ja halt wenn man z.B. auf "Aura Schwert" klickt, muss man die dementsprechende Bücher abgeben. Also das Skill Buch
2. Man sollte auch 10 abgeben können :D
Code:
quest buecher_npc begin
state start begin
when NpcID.chat."Bücherabgabe" begin
say_title("Bücherabgabe")
if pc.get_skill_group() == 0 then
say("Du hast noch keine Fertigkeiten.")
say("Versuche es später erneut.")
return
end
local result = buecher_npc.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 verfügbaren M Skills.")
return
end
local menu_list = {}
table.foreach(name_list, function(i, name) table.insert(menu_list, name) end)
table.insert(menu_list, "Abbrechen")
say("Wähle deinen Skill.")
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]
if pc.getqf("Skill_"..skill_vnum)>=55 then pc.setqf("Skill_"..skill_vnum, 0) end
say_title(skill_name)
say("Du willst also Bücher für "..skill_name)
say("abgeben?")
say("")
say("Abgaberest: "..(55-pc.getqf("Skill_"..skill_vnum)).." Bücher")
if select("Ja","Nein")==2 then return end
local item_count = pc.count_item((50400+skill_vnum))
local item_rest = 55-pc.getqf("Skill_"..skill_vnum)
if item_rest<item_count then item_count = item_rest end
pc.setqf("Skill_"..skill_vnum, pc.getqf("Skill_"..skill_vnum) + item_count)
syschat(item_count.." Bücher abgegeben.")
pc.remove_item((50400+skill_vnum), item_count)
if pc.getqf("Skill_"..skill_vnum)>=55 then
pc.set_skill_level(skill_vnum, 30)
syschat(skill_name.." G")
end
end
function BuildPerfectMasterSkillList(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