quest piatra_spiritului begin
state start begin
when 50513.use begin
say_title( "Piatra spiritului" )
local seelicount = pc.count_item(50513)
if pc.get_skill_group() == 0 then
say ( "Nu aveti abilitãti care pot fi antrenate.[ENTER]" )
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 ( "Ai folosit pergamentul exorcizãrii. Acum poti[ENTER]citi o piatrã a spritiului.[ENTER]" )
wait()
say_title( "Piatra spiritului" )
else
say ( "Trebuie sã astepti o zi pentru a putea citi[ENTER]o piatrã a spiritului sau foloseste[ENTER]pergamentul exorcizãrii.[ENTER]" )
return
end
end
local result = piatra_spiritului.ListaPuteri(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 ( "Nu aveti abilitãti care pot fi antrenate.[ENTER]" )
return
end
say ( "Selectati abilitatea care doriti sã fie antrenatã.[ENTER]" )
local menu_list = {}
table.foreach(name_list, function(i, name) table.insert(menu_list, name) end)
table.insert(menu_list, "Renuntã ")
local s=select_table(menu_list)
if table.getn(menu_list) == s then
return
end
local skill_name=name_list
local skill_vnum=vnum_list
local skill_level = pc.get_skill_level(skill_vnum)
local -cenzurat-_alignment = pc.get_real_alignment()
local need_alignment = 1000+500*(skill_level-30)
local title=string.format("Antreneazã %s", skill_name)
if pc.count_item(50513) != seelicount then
say( "Nu ai piatra spiritului!" )
return
end
say_title(title)
say ( "Pentru a citi o piatra a spritiului ai nevoie[ENTER]de puncte de grad.[ENTER]" )
if -cenzurat-_alignment<-19000+need_alignment then
say_reward ( "Ai prea putine puncte de grad.[ENTER]" )
return
end
if -cenzurat-_alignment<0 then
say_reward ( "Punctele tale de grad vor scãdea dupã[ENTER]dupã citirea pietrei. Vei pierde" )
say_reward (string.format( "între %d si %d puncte de grad.", need_alignment, need_alignment*2))
need_alignment=need_alignment*2
elseif -cenzurat-_alignment<need_alignment then
say_orange (string.format("Puncte de grad necesare: %d", need_alignment))
say_reward ( "Este posibil ca rangul tãu sã fie negativ[ENTER]dupã citirea pietrei." )
else
say_orange(string.format( "Puncte de grad necesare: %d", need_alignment))
end
say("")
local s = select ( "Învatã ", "Renuntã " )
if s == 2 then
return
end
if -cenzurat-_alignment>=0 and -cenzurat-_alignment<need_alignment then
say_title(string.format("%s ", title))
say ( "Pentru a citi piatra spiritului trebuie sã[ENTER]introduci în caseta de mai jos cuvântul" )
say_orange ( "Metin2" )
say_reward ( "Este posibil ca dupã citirea pietrei, rangul[ENTER]tãu sã fie negativ.[ENTER]" )
local s=input()
if s!="Metin2" 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()
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 este perfect antrenat.", skill_name))
say ( "" )
pc.remove_item(50513, 1)
else
say(string.format ( "Antrenamentul a reusit.", skill_name, skill_level-30+1+1))
pc.remove_item(50513, 1)
end
say_orange (string.format( "Punctele de grad au scãzut cu: %d ", need_alignment))
say("")
else
say_title(string.format("%s", title))
say_reward ( "Antrenamentul a esuat." )
say("")
pc.change_alignment(-number(need_alignment/3, need_alignment/2))
pc.remove_item(50513, 1)
end
end
end
function ListaPuteri(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
state start begin
when 50513.use begin
say_title( "Piatra spiritului" )
local seelicount = pc.count_item(50513)
if pc.get_skill_group() == 0 then
say ( "Nu aveti abilitãti care pot fi antrenate.[ENTER]" )
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 ( "Ai folosit pergamentul exorcizãrii. Acum poti[ENTER]citi o piatrã a spritiului.[ENTER]" )
wait()
say_title( "Piatra spiritului" )
else
say ( "Trebuie sã astepti o zi pentru a putea citi[ENTER]o piatrã a spiritului sau foloseste[ENTER]pergamentul exorcizãrii.[ENTER]" )
return
end
end
local result = piatra_spiritului.ListaPuteri(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 ( "Nu aveti abilitãti care pot fi antrenate.[ENTER]" )
return
end
say ( "Selectati abilitatea care doriti sã fie antrenatã.[ENTER]" )
local menu_list = {}
table.foreach(name_list, function(i, name) table.insert(menu_list, name) end)
table.insert(menu_list, "Renuntã ")
local s=select_table(menu_list)
if table.getn(menu_list) == s then
return
end
local skill_name=name_list
local skill_vnum=vnum_list
local skill_level = pc.get_skill_level(skill_vnum)
local -cenzurat-_alignment = pc.get_real_alignment()
local need_alignment = 1000+500*(skill_level-30)
local title=string.format("Antreneazã %s", skill_name)
if pc.count_item(50513) != seelicount then
say( "Nu ai piatra spiritului!" )
return
end
say_title(title)
say ( "Pentru a citi o piatra a spritiului ai nevoie[ENTER]de puncte de grad.[ENTER]" )
if -cenzurat-_alignment<-19000+need_alignment then
say_reward ( "Ai prea putine puncte de grad.[ENTER]" )
return
end
if -cenzurat-_alignment<0 then
say_reward ( "Punctele tale de grad vor scãdea dupã[ENTER]dupã citirea pietrei. Vei pierde" )
say_reward (string.format( "între %d si %d puncte de grad.", need_alignment, need_alignment*2))
need_alignment=need_alignment*2
elseif -cenzurat-_alignment<need_alignment then
say_orange (string.format("Puncte de grad necesare: %d", need_alignment))
say_reward ( "Este posibil ca rangul tãu sã fie negativ[ENTER]dupã citirea pietrei." )
else
say_orange(string.format( "Puncte de grad necesare: %d", need_alignment))
end
say("")
local s = select ( "Învatã ", "Renuntã " )
if s == 2 then
return
end
if -cenzurat-_alignment>=0 and -cenzurat-_alignment<need_alignment then
say_title(string.format("%s ", title))
say ( "Pentru a citi piatra spiritului trebuie sã[ENTER]introduci în caseta de mai jos cuvântul" )
say_orange ( "Metin2" )
say_reward ( "Este posibil ca dupã citirea pietrei, rangul[ENTER]tãu sã fie negativ.[ENTER]" )
local s=input()
if s!="Metin2" 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()
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 este perfect antrenat.", skill_name))
say ( "" )
pc.remove_item(50513, 1)
else
say(string.format ( "Antrenamentul a reusit.", skill_name, skill_level-30+1+1))
pc.remove_item(50513, 1)
end
say_orange (string.format( "Punctele de grad au scãzut cu: %d ", need_alignment))
say("")
else
say_title(string.format("%s", title))
say_reward ( "Antrenamentul a esuat." )
say("")
pc.change_alignment(-number(need_alignment/3, need_alignment/2))
pc.remove_item(50513, 1)
end
end
end
function ListaPuteri(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
Rezolvat. T/C



