Tipologie server:
*Resursă folosită: quest
Cod: Selectaţi tot
quest training_grandmaster_skill begin
state start begin
when 50513.use begin
say(" ")
say_title("Antrenamentul deprinderilor al marilor maeºtrii")
local seelicount = pc.count_item(50513)
if pc.get_skill_group() == 0 then
say ( "Nu aveþi abilitãþi care pot fi antrenate.[ENTER]" )
return
end
if pc.is_polymorphed() then
say(" ")
say("Nu poþi folosi piatra spiritului când eºti transformat.")
return
end
if pc.count_item(71002) >= 1 then
say(" ")
say_reward("ªterge pergament reset skill din inventar.")
say_item("Pergament reset skill", 71002, "")
return
end
if pc.count_item(71003) >= 1 then
say(" ")
say_reward("ªterge pergament reset skill din inventar.")
say_item("Pergament reset skill", 71003, "")
return
end
if pc.count_item(71103) >= 1 then
say(" ")
say_reward("ªterge redistribuire vit din inventar.")
say_item("Redistribuire VIT", 71103, "")
return
end
if pc.count_item(71104) >= 1 then
say(" ")
say_reward("ªterge redistribuire int din inventar.")
say_item("Redistribuire INT", 71104, "")
return
end
if pc.count_item(71105) >= 1 then
say(" ")
say_reward("ªterge redistribuire str din inventar.")
say_item("Redistribuire STR", 71105, "")
return
end
if pc.count_item(71106) >= 1 then
say(" ")
say_reward("ªterge redistribuire dex din inventar.")
say_item("Redistribuire DEX", 71106, "")
return
end
if pc.count_item(71048) >= 1 then
say(" ")
say_reward("ªterge vraja schimbarii din inventar.")
say_item("Vraja schimbarii", 71048, "")
return
end
if pc.count_item(71054) >= 1 then
say(" ")
say_reward("ªterge tinctura regatelor din inventar.")
say_item("Tinctura regatelor", 71054, "")
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 ( "Dacã ai citit Pergamentul Exorcizãrii poþi continua[ENTER]cu învãþatul fãrã a mai fi nevoie sã astepþi.[ENTER]" )
wait()
say_title( "Antrenamentul deprinderilor al marilor maeºtrii" )
else
say ( "Dupã ce îþi termini antrenamentul trebuie sã[ENTER]faci o pauzã de o jumãtate de zi.[ENTER]Mai încearcã odatã mai târziu sau foloseºte un[ENTER]pergament de exorcizare." )
return
end
end
local result = training_grandmaster_skill.BuildGrandMasterSkillList(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_title(title)
say ( "Nu aveþi abilitãþi care pot fi antrenate.[ENTER]" )
return
end
-- addimage(- 85, - 130, "voucher.tga")
say ( "Alege te rog o deprindere în care doreºti sã-þi[ENTER]însuºeºti titlul de mare maestru." )
local menu_list = {}
table.foreach(name_list, function(i, name) table.insert(menu_list, name) end)
table.insert(menu_list, "Renunþã ")
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 -cenzurat-_alignment = pc.get_real_alignment()
local need_alignment = 1000+500*(skill_level-30)
test_chat("Gradul actual: "..-cenzurat-_alignment)
test_chat("Grad necesar: "..need_alignment)
local title=string.format("Antreneazã %s", skill_name, skill_level-30+1)
if skill_level-30+1==10 then
title=string.format("%s auf P trainieren1222", skill_name)
end
if pc.count_item(50513) != seelicount then
say("OPRESTE-TE SI LASA BUGURILE!")
return
end
say_title(title)
say ("Ridicarea la nivelul de grand master foloseºte[ENTER]puncte de rang. Aºa cã este posibil ca nivelul[ENTER]rangului tãu sã scadã la o valoare negativã.")
say ( " " )
if -cenzurat-_alignment<-19000+need_alignment then
say_reward ( "Ai prea puþine puncte de grad.[ENTER]" )
return
end
if -cenzurat-_alignment<0 then
say_reward (string.format( "Puncte necesare de rang: %d -> %d", need_alignment, need_alignment*2))
say_gold ( "Rangul tãu are o valoare negativã. Asta înseamnã[ENTER]cã vei folosi dublul punctelor de rang pentru a[ENTER]te ridica la grand master faþã de cineva care are[ENTER]valoare pozitivã." )
need_alignment=need_alignment*2
elseif -cenzurat-_alignment<need_alignment then
say_reward (string.format("Puncte necesare de rang: %d", need_alignment))
say_gold ( "Dacã te antrenezi acum, punctele rangului tãu[ENTER]vor avea valoarea negativã." )
else
say_orange(string.format( "Puncte necesare de rang: %d", need_alignment))
end
say("")
local s=select("Învaþã", "Renunþã")
if s==2 then
return
end
if -cenzurat-_alignment>=0 and -cenzurat-_alignment<need_alignment then
say_title(string.format("%s ", title))
say_reward ( "Confirmã." )
say ( "Dacã creºti acum o deprindere de mare maestru,[ENTER]rangul tãu ar putea sã scadã la negativ,[ENTER]deoarece momentan ai un grad prea mic.[ENTER]Când se întâmplã asta, rangul tãu va deveni" )
say ( "negativ ºi poþi fi atacat de rãzboinici regatului.[ENTER]Dacã încã mai doreºti sã te antrenezi, introdu[ENTER]cuvântul 'Antrena' în linia de comandã." )
say_orange ( "Antrena " )
say ( "Dacã nu vrei sã te antrenezi, apasã tasta 'ENTER'" )
local s=input()
if s!="Antrena" then
return
end
end
if get_time() < pc.getqf("next_time") then
if pc.is_skill_book_no_delay() then
pc.remove_skill_book_no_delay()
else
say("Introdu corect Antrena ")
return
end
end
if pc.count_item(50513)>=1 then
pc.remove_item("50513", 1)
else return 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 succes", title))
if 40 == pc.get_skill_level(skill_vnum) then
say (string.format("%s este perfect antrenat.", skill_name))
say ( "" )
else
say(string.format ( "Antrenamentul a reuºit.", skill_name, skill_level-30+1+1))
end
say("")
say_orange (string.format( "Punctele de grad au scãzut cu: %d ", need_alignment))
say("")
say("")
else
say_title(string.format("%s", title))
say_reward ( "Eroare!" )
say("Nu ai reuºit sã-þi îmbunãtãþeºti deprinderile.")
local rang = number(need_alignment/3, need_alignment/2)
say_orange("Ai pierdut câteva puncte de rang ºi ai folosit")
say_item("Piatra Spiritului", 50513, "")
say("")
pc.change_alignment(-rang)
end
end
end
function BuildGrandMasterSkillList(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 = {}
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 asta am in questlib.lua linia 91
*Syserr:
Poză:
*Detalii suplimentare:
