*Problemă/Întrebare:PIATRA SPIRITULUI Tipologie server: *Resursă folosită: *ServerFiles utilizat: *Syserr: Poză: *Detalii suplimentare:Buna Seara , am o problema , am implementat peste 10 quest-uri piatra spirit , problema este , cand dau pe el , imi da sa aleg vraja pe care vreau sa o fac "P" , dar dupa ce dau pe vraja, nu se intampla nimic , ma poate ajuta cineva va rog frumos ! ! !
Trebuie sa stii si simplul lucru ca daca instalezi un quest si nu merge, trebuie scos si apoi bagat altul. Sterge-le pe toate din object si apoi reincearca.
quest super_ss begin
state start begin
when Your_Item_ID.use begin
if pc.get_skill_group() == 0 then
say("None of your skills are available to")
say("try to increase their level to Perfect Master")
return
end
local result = super_ss.BuildGrandMasterSkillList(pc.get_job(), pc.get_skill_group())
local vnum_list = result[1]
local name_list = result[2]
say_title("Super Soul Stone: ")
say("Choose the Skill you want to upgrade")
say("to Perfect Master.")
say("")
local menu_list = {}
table.foreach(name_list, function(i, name) table.insert(menu_list, name) end)
table.insert(menu_list, "Cancel")
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 title=string.format("Super Soul Stone: %s", skill_name)
say_title(string.format("%s", title))
say("")
say("Perfect Master training is very rare here")
say("It's a chance you have this stone with you.")
say("It is very rare.")
say("")
say_reward("The upgrade will not reduce your Rank")
say_reward("thanks to this special stone.")
say("")
local s=select("Continue", "Cancel")
if s==2 then
return
else
if pc.count_item("50526") == 0 then
say("Your Soul Stone seems to have disappeared from")
say("your inventory. Try again later with a Super SS.")
return
end
pc.set_skill_level(skill_vnum, 40)
say_title(string.format("%s", title))
say("")
say("Congratulations! You did it! Your skill is")
say("now Perfect Master.")
say("")
item.remove()
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
quest training_gRangmaster_skill begin
state start begin
when 50513.use begin
say_title("Piatra Spiritului")
if pc.get_skill_group() == 0 then
say("Nu ai nicio aptitudine"..pc.get_skill_group())
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("Aceast lucru vă permite")
say("perfecţionarea competenţelor.")
say("")
wait()
say_title("Piatra Spiritului")
else
say("Trebuie să aşteptaţi.")
return
end
end
local result = training_gRangmaster_skill.BuildGRangMasterSkillList(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 iti poti perfectiona competentele!")
return
end
say("Alegeti o competenta din urmatoarele.")
say("")
local menu_list = {}
table.foreach(name_list, function(i, name) table.insert(menu_list, name) end)
table.insert(menu_list, "Renunta")
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("Punctre rang:"..-cenzurat-_alignment)
test_chat("Rang negativ prea mare:"..need_alignment)
local title=string.format("%s a reuşit", skill_name, skill_level-30+1)
say_title(title)
say("Atunci când citiţi piatra spiritului")
say("pierzi punctaj din grad!")
say("")
if -cenzurat-_alignment<-19000+need_alignment then
say_reward("Puncte insuficiente.")
return
end
if -cenzurat-_alignment<0 then
say_reward(string.format("Puncte necesare: %d -> %d", need_alignment, need_alignment*2))
say_reward("pentru a mari competenta")
need_alignment=need_alignment*2
elseif -cenzurat-_alignment<need_alignment then
say_reward(string.format("Puncte necesare: %d", need_alignment))
say_reward("Rang negativ prea mare")
else
say_reward(string.format("Puncte necesare: %d", need_alignment))
end
say("")
local s=select("Mai mult", "Renunta")
if s==2 then
return
end
if -cenzurat-_alignment>=0 and -cenzurat-_alignment<need_alignment then
say_title(string.format("Piatra Spiritului", title))
say("A venit timpul!!")
say("Pentru antrenament,")
say("Va rugam sa scrieti : Antrenament")
say("")
say("")
say_reward("Antrenament")
say("")
say("")
local s=input()
if s!="Antrenament" 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()
else
say("Sa vedeam ce-ai reusit")
return
end
end
pc.setqf("next_time", get_time()+time_hour_to_sec(number(8, 12)))
if need_alignment>0 then
if pc.learn_gRang_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 deja Perfect", skill_name))
else
say(string.format("%s Succes", skill_name, skill_level-30+1+1))
end
say("")
say_reward("Succes!")
say_reward(string.format("Puncte luate %d ", need_alignment))
say("")
else
say_title(string.format("%s ", title))
say("Acest lucru nu este elaborat ,din pacate.")
say("")
say_reward("Ai esuat!")
say("Mai Incearca")
pc.change_alignment(-number(need_alignment/3, need_alignment/2))
end
end
item.remove()
end
function BuildGRangMasterSkillList(job, group)
GRang_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 >= GRang_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
quest training_gRangmaster_skill begin
state start begin
when 50513.use begin
say_title("Piatra Spiritului")
if pc.get_skill_group() == 0 then
say("Nu ai nicio aptitudine"..pc.get_skill_group())
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("Aceast lucru vă permite")
say("perfecţionarea competenţelor.")
say("")
wait()
say_title("Piatra Spiritului")
else
say("Trebuie să aşteptaţi.")
return
end
end
local result = training_gRangmaster_skill.BuildGRangMasterSkillList(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 iti poti perfectiona competentele!")
return
end
say("Alegeti o competenta din urmatoarele.")
say("")
local menu_list = {}
table.foreach(name_list, function(i, name) table.insert(menu_list, name) end)
table.insert(menu_list, "Renunta")
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("Punctre rang:"..-cenzurat-_alignment)
test_chat("Rang negativ prea mare:"..need_alignment)
local title=string.format("%s a reuşit", skill_name, skill_level-30+1)
say_title(title)
say("Atunci când citiţi piatra spiritului")
say("pierzi punctaj din grad!")
say("")
if -cenzurat-_alignment<-19000+need_alignment then
say_reward("Puncte insuficiente.")
return
end
if -cenzurat-_alignment<0 then
say_reward(string.format("Puncte necesare: %d -> %d", need_alignment, need_alignment*2))
say_reward("pentru a mari competenta")
need_alignment=need_alignment*2
elseif -cenzurat-_alignment<need_alignment then
say_reward(string.format("Puncte necesare: %d", need_alignment))
say_reward("Rang negativ prea mare")
else
say_reward(string.format("Puncte necesare: %d", need_alignment))
end
say("")
local s=select("Mai mult", "Renunta")
if s==2 then
return
end
if -cenzurat-_alignment>=0 and -cenzurat-_alignment<need_alignment then
say_title(string.format("Piatra Spiritului", title))
say("A venit timpul!!")
say("Pentru antrenament,")
say("Va rugam sa scrieti : Antrenament")
say("")
say("")
say_reward("Antrenament")
say("")
say("")
local s=input()
if s!="Antrenament" 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()
else
say("Sa vedeam ce-ai reusit")
return
end
end
pc.setqf("next_time", get_time()+time_hour_to_sec(number(8, 12)))
if need_alignment>0 then
if pc.learn_gRang_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 deja Perfect", skill_name))
else
say(string.format("%s Succes", skill_name, skill_level-30+1+1))
end
say("")
say_reward("Succes!")
say_reward(string.format("Puncte luate %d ", need_alignment))
say("")
else
say_title(string.format("%s ", title))
say("Acest lucru nu este elaborat ,din pacate.")
say("")
say_reward("Ai esuat!")
say("Mai Incearca")
pc.change_alignment(-number(need_alignment/3, need_alignment/2))
end
end
item.remove()
end
function BuildGRangMasterSkillList(job, group)
GRang_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 >= GRang_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
Când încerci să ajuți ar fi ok să verifici și conținutul pe care-l copiezi din alte topicuri (ex: -cenzurat-_alignment)
quest training_gRangmaster_skill begin
state start begin
when 50513.use begin
say_title("Piatra Spiritului")
if pc.get_skill_group() == 0 then
say("Nu ai nicio aptitudine"..pc.get_skill_group())
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("Aceast lucru vă permite")
say("perfecţionarea competenţelor.")
say("")
wait()
say_title("Piatra Spiritului")
else
say("Trebuie să aşteptaţi.")
return
end
end
local result = training_gRangmaster_skill.BuildGRangMasterSkillList(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 iti poti perfectiona competentele!")
return
end
say("Alegeti o competenta din urmatoarele.")
say("")
local menu_list = {}
table.foreach(name_list, function(i, name) table.insert(menu_list, name) end)
table.insert(menu_list, "Renunta")
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("Punctre rang:"..-cenzurat-_alignment)
test_chat("Rang negativ prea mare:"..need_alignment)
local title=string.format("%s a reuşit", skill_name, skill_level-30+1)
say_title(title)
say("Atunci când citiţi piatra spiritului")
say("pierzi punctaj din grad!")
say("")
if -cenzurat-_alignment<-19000+need_alignment then
say_reward("Puncte insuficiente.")
return
end
if -cenzurat-_alignment<0 then
say_reward(string.format("Puncte necesare: %d -> %d", need_alignment, need_alignment*2))
say_reward("pentru a mari competenta")
need_alignment=need_alignment*2
elseif -cenzurat-_alignment<need_alignment then
say_reward(string.format("Puncte necesare: %d", need_alignment))
say_reward("Rang negativ prea mare")
else
say_reward(string.format("Puncte necesare: %d", need_alignment))
end
say("")
local s=select("Mai mult", "Renunta")
if s==2 then
return
end
if -cenzurat-_alignment>=0 and -cenzurat-_alignment<need_alignment then
say_title(string.format("Piatra Spiritului", title))
say("A venit timpul!!")
say("Pentru antrenament,")
say("Va rugam sa scrieti : Antrenament")
say("")
say("")
say_reward("Antrenament")
say("")
say("")
local s=input()
if s!="Antrenament" 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()
else
say("Sa vedeam ce-ai reusit")
return
end
end
pc.setqf("next_time", get_time()+time_hour_to_sec(number(8, 12)))
if need_alignment>0 then
if pc.learn_gRang_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 deja Perfect", skill_name))
else
say(string.format("%s Succes", skill_name, skill_level-30+1+1))
end
say("")
say_reward("Succes!")
say_reward(string.format("Puncte luate %d ", need_alignment))
say("")
else
say_title(string.format("%s ", title))
say("Acest lucru nu este elaborat ,din pacate.")
say("")
say_reward("Ai esuat!")
say("Mai Incearca")
pc.change_alignment(-number(need_alignment/3, need_alignment/2))
end
end
item.remove()
end
function BuildGRangMasterSkillList(job, group)
GRang_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 >= GRang_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
Când încerci să ajuți ar fi ok să verifici și conținutul pe care-l copiezi din alte topicuri (ex: -cenzurat-_alignment)
imi pare rau titane ca nu am stat sa scriu quest de la 0 e ok asa?
quest training_gRangmaster_skill begin
state start begin
when 50513.use begin
say_title("Piatra Spiritului")
if pc.get_skill_group() == 0 then
say("Nu ai nicio aptitudine"..pc.get_skill_group())
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("Aceast lucru vă permite")
say("perfecţionarea competenţelor.")
say("")
wait()
say_title("Piatra Spiritului")
else
say("Trebuie să aşteptaţi.")
return
end
end
local result = training_gRangmaster_skill.BuildGRangMasterSkillList(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 iti poti perfectiona competentele!")
return
end
say("Alegeti o competenta din urmatoarele.")
say("")
local menu_list = {}
table.foreach(name_list, function(i, name) table.insert(menu_list, name) end)
table.insert(menu_list, "Renunta")
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("Punctre rang:"..-cenzurat-_alignment)
test_chat("Rang negativ prea mare:"..need_alignment)
local title=string.format("%s a reuşit", skill_name, skill_level-30+1)
say_title(title)
say("Atunci când citiţi piatra spiritului")
say("pierzi punctaj din grad!")
say("")
if -cenzurat-_alignment<-19000+need_alignment then
say_reward("Puncte insuficiente.")
return
end
if -cenzurat-_alignment<0 then
say_reward(string.format("Puncte necesare: %d -> %d", need_alignment, need_alignment*2))
say_reward("pentru a mari competenta")
need_alignment=need_alignment*2
elseif -cenzurat-_alignment<need_alignment then
say_reward(string.format("Puncte necesare: %d", need_alignment))
say_reward("Rang negativ prea mare")
else
say_reward(string.format("Puncte necesare: %d", need_alignment))
end
say("")
local s=select("Mai mult", "Renunta")
if s==2 then
return
end
if -cenzurat-_alignment>=0 and -cenzurat-_alignment<need_alignment then
say_title(string.format("Piatra Spiritului", title))
say("A venit timpul!!")
say("Pentru antrenament,")
say("Va rugam sa scrieti : Antrenament")
say("")
say("")
say_reward("Antrenament")
say("")
say("")
local s=input()
if s!="Antrenament" 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()
else
say("Sa vedeam ce-ai reusit")
return
end
end
pc.setqf("next_time", get_time()+time_hour_to_sec(number(8, 12)))
if need_alignment>0 then
if pc.learn_gRang_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 deja Perfect", skill_name))
else
say(string.format("%s Succes", skill_name, skill_level-30+1+1))
end
say("")
say_reward("Succes!")
say_reward(string.format("Puncte luate %d ", need_alignment))
say("")
else
say_title(string.format("%s ", title))
say("Acest lucru nu este elaborat ,din pacate.")
say("")
say_reward("Ai esuat!")
say("Mai Incearca")
pc.change_alignment(-number(need_alignment/3, need_alignment/2))
end
end
item.remove()
end
function BuildGRangMasterSkillList(job, group)
GRang_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 >= GRang_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
Când încerci să ajuți ar fi ok să verifici și conținutul pe care-l copiezi din alte topicuri (ex: -cenzurat-_alignment)
imi pare rau titane ca nu am stat sa scriu quest de la 0 e ok asa?
Facem off-topic degeaba, nu am vrut să punctez faptul că nu e scris de tine questul, ci că nu funcționează cel mai probabil datorită faptului că a fost copiat și postat de n ori și și-a schimbat forma. (o să-l testez eu mâine și dacă există într-adevăr vreo problemă o să o rezolv)