Am editat putin questul de la sistemul de energie.
Questul functioneaza perfect dar in syserr imi apare o avertizare, nu stiu ce am gresit. Avertizarea apare cand dau prima data click pe alchimist cu un cont nou. Sigur al gresit ceva la inceput.
WriteRunningStateToSyserr: LUA_ERROR: quest energy_system.energy_start click
Quest:
Cod: Selectaţi tot
quest energy_system begin
state start begin
when 20001.chat."Cristal fermecat" begin
chat("Poti obtine cristale fermecate de la nivelul 35.")
chat("Schimba caracterul.")
set_state(energy_start)
return 0
end
end
state energy_start begin
function setting ()
return
{
["prob_acc_table"] =
{
["35to50"] = {10,25,45,65,80,88,94,97,99,100},
["51to70"] = {20,40,60,75,85,91,96,98,99,100},
["upto70"] = {30,55,70,80,90,95,97,98,99,100}
},
["item_num_table"] ={0,1,2,3,4,6,8,10,12,15},
["energy_stone"] = 51001,
["charging_stone"] = 51002,
}
end
function getItemNum ( str, r )
local setting = energy_system.setting()
for i = 1, 10 do
if r < setting.prob_acc_table[str][i] then
return setting.item_num_table[i]
end
end
return 0
end
when 20001.take begin
if pc.get_level() < 35 then
chat("Trebuie sa ai nivel 35.")
return
end
local item_vnum = item.vnum
local levelLimit = item.get_level_limit(item_vnum)
local setting = energy_system.setting()
if levelLimit == nil then
say_title("Alchimist")
say("Poti aduce arme, armuri si accesorii (nivel 49+)")
wait()
elseif item.get_type() == ITEM_WEAPON and item.get_sub_type() == WEAPON_ARROW then
say_title("Alchimist")
say("Poti aduce arme, armuri si accesorii (nivel 49+)")
wait()
elseif item.is_binded() then
say_title("Alchimist")
say("Acest item este blocat.")
wait()
elseif levelLimit < 35 then
-- kind of impossible condition?
say_title("Alchimist")
say("Poti aduce arme, armuri si accesorii (nivel 49+)")
else
say_title(mob_name(20001))
say(item_name(item_vnum))
say("Schimbi obiectul cu cristale?")
local s = select("Da","Nu")
if s == 1 then
item.remove()
local r = number (1, 100)
local n
if levelLimit >= 49 and levelLimit <= 74 then
n = energy_system.getItemNum ("35to50",r)
elseif levelLimit > 75 and levelLimit <= 90 then
n = energy_system.getItemNum ("51to70",r)
else
n = energy_system.getItemNum ("upto70",r)
end
if (n == 0) then
chat("Obiectul este praf, nu iti pot oferi cristale fermecate.")
else
pc.give_item2(setting.energy_stone, n)
chat("Ai primit "..n.." cristale fermecate.")
end
end
end
end
end
end


