PHP Code:
quest achievement_update begin
state start begin
-- // shop
when 20087.chat."Achievement Shop" begin
local points = pc.getqf("achieve")
local category = {"Waffen","Rüstungen","Reittiere","Items","Truhen","Ringe"}
local list = {
-- Kategorie 1
{
-- Name Vnum reward points
{"Schwert", 19, 1},
{"Dolch", 1009, 1},
{"Klinge", 3009, 1},
},
-- Kategorie 2
{
{"Schwarzstahlpanzer+9", 11299, 75},
{"Schwarzwindanzug+9", 11499, 75},
{"Magieplattenpanzer+9", 11699, 75},
{"Schwarze Kleidung+9", 11899, 75},
},
-- Kategorie 3
{
{"Lehrlings Keiler", 52001, 15},
{"Lehrlings Wolf", 52004, 30},
{"Lehrlings Tiger", 52010, 45},
{"Lehrlings Loewe", 52007, 60},
},
-- Kategorie 4
{
{"Stück Kristall", 30204, 100},
{"Wasserstein", 27991, 500},
},
-- Kategorie 5
{
{"Mode Truhe Männer", 100011, 75},
{"Mode Truhe Frauen", 100012, 75, 75},
{"Frisuren Truhe Männer", 100013, 75},
{"Frisuren Truhe Frauen", 100014, 75},
},
-- Kategorie 6
{
{"Halbmondring", 71135, 100},
{"Ring des Kampfes", 71143, 100},
{"Ring des Feuers", 71149, 100},
{"Ring des Wassers", 71148, 100},
{"Lolli", 71136, 100},
}
}
local s = select3(category)
local menu = {}
for i = 1, table.getn(list[s]) do
table.insert(menu, list[s][i][1])
end
say_title("Achievement Shop")
say("Wähle ein Item aus:")
say()
local t = select3(menu)
local reward_item = list[s][t][2]
local reward_count = list[s][t][3]
say_title("Achievement Shop")
say_reward("Achievementpoints: "..points)
say()
say("Gewähltes Item: "..item_name(reward_item))
say_reward(string.format("Das Item kostet %d Achievementpoints", reward_count))
say()
if points < reward_count then
return say("Du hast nicht genügend Achievementpoints")
end
if select("Eintauschen","Abbrechen") == 2 then return end
pc.setqf("achieve", points - reward_count)
pc.give_item2(reward_item)
end
-- // get points
when login begin
mob_data = {
-- Vnum Points qf cmdchat
{3290, 10, "3290", "achievement ".. mob_name(3290) .."_getötet#".. pc.getqf("3290") + 1 .."%".. pc.getqf("achieve") + 10},
{3491, 20, "3491", "achievement ".. mob_name(3491) .."_getötet#".. pc.getqf("3491") + 1 .."%".. pc.getqf("achieve") + 20},
{3091, 40, "3091", "achievement ".. mob_name(3091) .."_getötet#".. pc.getqf("3091") + 1 .."%".. pc.getqf("achieve") + 40},
{3791, 30, "3791", "achievement ".. mob_name(3791) .."_getötet#".. pc.getqf("3791") + 1 .."%".. pc.getqf("achieve") + 30},
{3891, 50, "3891", "achievement ".. mob_name(3891) .."_getötet#".. pc.getqf("3891") + 1 .."%".. pc.getqf("achieve") + 50},
{3690, 30, "3690", "achievement ".. mob_name(3690) .."_getötet#".. pc.getqf("3690") + 1 .."%".. pc.getqf("achieve") + 30},
{3691, 30, "3691", "achievement ".. mob_name(3691) .."_getötet#".. pc.getqf("3691") + 1 .."%".. pc.getqf("achieve") + 30},
{3390, 40, "3390", "achievement ".. mob_name(3390) .."_getötet#".. pc.getqf("3390") + 1 .."%".. pc.getqf("achieve") + 40},
{3391, 40, "3391", "achievement ".. mob_name(3391) .."_getötet#".. pc.getqf("3391") + 1 .."%".. pc.getqf("achieve") + 40},
{3596, 50, "3596", "achievement ".. mob_name(3596) .."_getötet#".. pc.getqf("3596") + 1 .."%".. pc.getqf("achieve") + 50},
}
item_data = {
{12010, 5, "12010", "achievement Edelstein-Panzer%".. pc.getqf("achieve") + 5},
{12020, 5, "12020", "achievement Edelstein-Anzug%".. pc.getqf("achieve") + 5},
{12030, 5, "12030", "achievement Edelstein-Panzer%".. pc.getqf("achieve") + 5},
{12040, 5, "12040", "achievement Edelstein-Kleid%".. pc.getqf("achieve") + 5},
{42030, 5, "42030", "achievement Nebel-Panzer%".. pc.getqf("achieve") + 5},
{44030, 5, "44030", "achievement Nebel-Anzug%".. pc.getqf("achieve") + 5},
{46030, 5, "46030", "achievement Nebel-Panzer%".. pc.getqf("achieve") + 5},
{48030, 5, "48030", "achievement Nebel-Kleid%".. pc.getqf("achieve") + 5},
{42040, 5, "42040", "achievement Toxin-Panzer%".. pc.getqf("achieve") + 5},
{44040, 5, "44040", "achievement Toxin-Anzug%".. pc.getqf("achieve") + 5},
{46040, 5, "46040", "achievement Toxin-Panzer%".. pc.getqf("achieve") + 5},
{48040, 5, "48040", "achievement Toxin-Kleid%".. pc.getqf("achieve") + 5},
{42050, 5, "42050", "achievement Frost-Panzer%".. pc.getqf("achieve") + 5},
{44050, 5, "44050", "achievement Frost-Anzug%".. pc.getqf("achieve") + 5},
{46050, 5, "46050", "achievement Frost-Panzer%".. pc.getqf("achieve") + 5},
{48050, 5, "48050", "achievement Frost-Kleid%".. pc.getqf("achieve") + 5},
}
level_data = {
-- Level points qf cmdchat
{5, 5, "level5", "achievement Level_5_erreicht%".. pc.getqf("achieve") + 5},
{30, 5, "level30", "achievement Level_30_erreicht%".. pc.getqf("achieve") + 5},
{50, 5, "level50", "achievement Level_50_erreicht%".. pc.getqf("achieve") + 5},
{70, 5, "level70", "achievement Level_70_erreicht%".. pc.getqf("achieve") + 5},
{80, 5, "level80", "achievement Level_80_erreicht%".. pc.getqf("achieve") + 5},
{90, 5, "level90", "achievement Level_90_erreicht%".. pc.getqf("achieve") + 5},
{100, 5, "level100", "achievement Level_100_erreicht%".. pc.getqf("achieve") + 5},
{110, 10, "level110", "achievement Level_110_erreicht%".. pc.getqf("achieve") + 10},
{120, 20, "level120", "achievement Level_120_erreicht%".. pc.getqf("achieve") + 20},
{130, 30, "level130", "achievement Level_130_erreicht%".. pc.getqf("achieve") + 30},
{140, 40, "level140", "achievement Level_140_erreicht%".. pc.getqf("achieve") + 40},
{150, 50, "level150", "achievement Level_150_erreicht%".. pc.getqf("achieve") + 50},
}
end
when kill with not npc.is_pc() begin
local vid = npc.get_vid()
local function in_table(arg)
for i = 1, table.getn(mob_data) do
if mob_data[i][1] == arg then
return i
end
end
return false
end
local d = in_table(vid)
if d ~= false then
pc.setqf(mob_data[d][3], pc.getqf(mob_data[d][3]) + tonumber(mob_data[d][2]))
cmdchat(mob_data[d][4])
end
end
when use begin
local vnum = item.get_vnum()
local function in_table(arg)
for i = 1, table.getn(mob_data) do
if mob_data[i][1] == arg then
return i
end
end
return false
end
local d = in_table(vnum)
if d ~= false and pc.getqf(tostring(item_data[d][3]) == 0 then
pc.setqf(item_data[d][3], 1)
pc.setqf(item_data[d][3], pc.getqf(item_data[d][3]) + tonumber(item_data[d][2]))
cmdchat(item_data[d][4])
end
end
when levelup begin
local lvl = pc.get_level()
local function in_table(arg)
for i = 1, table.getn(mob_data) do
if mob_data[i][1] == arg then
return i
end
end
return false
end
local d = in_table(lvl)
if d ~= false and pc.getqf(tostring(level_data[d][3]) == 0 then
pc.setqf(level_data[d][3], 1)
pc.setqf(level_data[d][3], pc.getqf(level_data[d][3]) + tonumber(level_data[d][2]))
cmdchat(level_data[d][4])
end
end
end
end