Hab deine Testquest mal ein bisschen überarbeitet.. Ist natürlich aber noch lange nicht gut, denke aber einfacher zu erweitern.
Keine Garantie dass sie funktioniert..
Code:
quest testq begin
state start begin
when login begin
timer("haustier", 2)
end
function get_exp_table()
exp_table = { -- Level, exp_to_levelup, exp_pro_mob
{ 0, 0, 0 }, -- dummy entry
{ 1, 50, 1 },
{ 2, 100, 1 },
{ 3, 250, 1 },
{ 4, 450, 1 },
{ 5, 850, 1 },
{ 6, 1200, 1 },
{ 7, 1550, 1 },
{ 8, 1900, 1 },
{ 9, 2400, 1 },
{ 10, 3000, 1 },
}
return exp_table
end
when haustier.timer begin
local pet_level = pc.getqf("p_level")
if(pet_level = nil or pet_level = "") then
return
end
local pet_exp = pc.getqf("p_exp")
local exp_table = get_exp_table()
local pet_exp_percentage = math.floor(exp_table[pet_level][1] / exp_table[pet_level][2])
cmdchat("Pet_Level "..pc.getqf("pet_level"))
cmdchat("Pet_Exp "..pc.getqf("p_exp"))
cmdchat("Pet_ExpInP "..pet_exp_percentage)
timer("haustier", 30)
end
when kill begin
local exp_table = get_exp_table()
local random = number(1, 100)
local chance = 20 -- %
local pet_level = pc.getqf("p_level")
if(pet_level == nil or pet_level = "") then
pc.setqf("p_level", 1)
pet_level = 1
end
if random <= chance then
local exp_to_levelup = exp_table[pet_level][1]
local exp_pro_mob = exp_table[pet_level][2]
local aktuelle_exp = pc.getqf("p_exp")
pc.setqf("p_exp", aktuelle_exp + exp_pro_mob)
if(exp_pro_mob >= exp_to_levelup) then
syschat("Herzlichen Glückwunsch dein Haustier hat Level "..pet_level + 1.." erreicht!")
pc.setqf("p_level", pet_level + 1)
pc.setqf("p_exp", 0)
end
end
end
end
end