Man kann die Argumente zur Übergabe an eine Funktion aus einem Table laden lassen. Das kann man für diverse Sachen nutzen, z.B. kann man so sehr leicht Belohnungen verschiedener Art verteilen.
Beispiel:
Code:
function test(a, b, c)
print(a, b, c)
end
local testArgs = {"Hello", "World", "!"}
test(unpack(testArgs))
Beispiel für Nutzung als Belohungsvergabe:
Code:
local reward = {
{func = pc.give_item2, args = {189, 1}},
{func = pc.give_item2, args = {27001, 200}},
{func = affect.add_collect, args = {1, 2000, 60*60*24*365*10}},
{func = pc.change_gold, args = {20000}},
{func = pc.give_exp2, args = {100000}}
}
for _,v in ipairs(reward) do
v.func(unpack(v.args))
end
Code:
local reward = {
[pc.give_item2] = {
{189, 1},
{27001, 1}
},
[affect.add_collect] = {
{1, 2000, 60*60*24*365*10}
},
[pc.change_gold] = {
{20000}
},
[pc.give_exp2] = {
{100000}
}
}
for func,v in pairs(reward) do
for _,args in ipairs(v) do
func(unpack(args))
end
end






