Hello
Problem with the Sage skills system:
Everything seems to work as it should, except:
For some reason it was in .lua format
Tell me how the quest file is fundamentally different.lua from .quest?
Thank you.
Problem with the Sage skills system:
Everything seems to work as it should, except:
- After installing sage skill, use the effects of a skill improved by 1

- The quest of the stone to improve skills P1-P2-...P10-S does not work. The quest closes after clicking Yes.

For some reason it was in .lua format
Tell me how the quest file is fundamentally different.lua from .quest?
Thank you.
Code:
quest training_sagemaster_skill begin
state start begin
function BuildSageMasterSkillList(job, group)
PERFECT_MASTER_SKILL_LEVEL = 40
SAGE_MASTER_SKILL_LEVEL = 50
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 >= PERFECT_MASTER_SKILL_LEVEL and skill_level < SAGE_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
when 50569.use begin
say_title(item_name(50569))
say("")
if pc.get_skill_group() == 0 then
say("You didn't start an apprenticeship yet.")
return
end
--if get_time() < pc.getqf("next_time") then
--if not pc.is_skill_book_no_delay() then
--say("When your training is done, you have to")
--say("rest for 5 hours.")
--say("")
--return
--end
--end
local result = training_sagemaster_skill.BuildSageMasterSkillList(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("No skill was learned yet through the skill")
say("training of the Perfect Grand Masters.")
say("")
return
end
say("Please choose the skill you want to learn:")
say("")
local menu_list = {}
table.foreach(name_list, function(i, name) table.insert(menu_list, name) end)
table.insert(menu_list, "Close")
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)
local title = string.format("%s Perfect Grand Master", skill_name)
say_title(item_name(50569))
say("")
say("When your waste your Good/Evils points during")
say("the training it's possible that you can be")
say("downgraded, even under the level of a Ronin.")
say("")
say("Do you want to continue?")
say("")
local s = select("Yes", "No")
if s == 2 then
return
end
if cur_alignment <- 19000+need_alignment then
say_title(title)
say("")
say_reward("You don't have enough alignment points")
say_reward("for a Grand Master training.")
say("")
return
end
--if get_time() < pc.getqf("next_time") then
--if pc.is_skill_book_no_delay() then
--pc.remove_skill_book_no_delay()
--else
--return
--end
--end
--pc.setqf("next_time", get_time()+60*60*5)
if s == 1 then
if pc.learn_sage_master_skill(skill_vnum) then
say_title(title)
say("")
if pc.get_skill_level(skill_vnum) == 50 then
say(string.format("%s became a sage Master.", skill_name))
else
say(string.format("You raised %s to P%d.", skill_name, skill_level-40+1+1))
end
say("My body is full of power. Something comes out here!")
say_reward("You have completed higher level of training successfully.")
say("")
else
say_title(title)
say("")
say_reward("That did not work. Darn!")
say("")
end
end
pc.remove_item(50569, 1)
end
end
end
Last edited: