Inder gkmanage.quest wird versucht eine Funktion in einen String zu schreiben und nicht dessen Rückgabewert, da die Klammern hinten fehlen!
Es wird also versucht, pc.get_player_id in einen String schreiben. Das kann jedoch garnicht funktionieren, da die Funktion niemals ausgeführt wird und so keine Rückgabe erzeugt.
Demnach:
Überall wo du einen nennen wir es mal einen versuchten Funktionsaufruf in der gkmanage.quest findest (pc.get_player_id, pc.get_guild, ...) setzt du einfach Klammern dahinter.
tl;dr: pc.get_player_id -> pc.get_player_id
()
Sollte so funktionieren:
Code:
quest gkmanager begin
state start begin
when letter begin
cmdchat("gkmanage QID|"..q.getcurrentquestindex())
end
function ChangeSide()
cmdchat("getinputbegin")
local side = tonumber(input(cmdchat("gkmanage SIDE")))
cmdchat("getinputend")
return side
end
when login with pc.is_guild_master() begin
local leaderon = mysql_query("update player.guild set leader_on = 1 where master = "..pc.get_player_id()..";")
local gkmember = mysql_query("select count(*) from guild where guild_id = "..pc.get_guild().." ;")[1][1]
end
when logout or disconect begin
local leaderon = mysql_query("update player.guild set leader_on = 0 where master = "..pc.get_player_id()..";")
end
when 20092.chat."ADQWQQ" begin
local gkname = mysql_query("SELECT guild.name, guild.win, guild.loss, guild.member_count FROM guild WHERE guild.ladder_point > 0 AND member_count > 7 AND guild.leader_on = 1 ORDER BY guild.win DESC limit 0,5 ;")
table.foreachi(gkname,function(nr,player) cmdchat("gkmanage INFO|"..nr.."|"..player[1].."|"..player[2].."|"..player[3].."|"..player[4]) end)
cmdchat("gkmanage OPEN")
setskin(NOWINDOW)
end
when button or info begin
cmdchat("getinputbegin")
local cmd = input(cmdchat("gkmanage INPUT"))
cmdchat("getinputend")
if cmd == "OPEN" then
local gkname = mysql_query("SELECT guild.name, guild.win, guild.loss, guild.member_count FROM guild WHERE guild.ladder_point > 0 AND member_count > 7 AND guild.leader_on = 1 ORDER BY guild.win DESC limit 0,5 ;")
table.foreachi(gkname,function(nr,player) cmdchat("gkmanage INFO|"..nr.."|"..player[1].."|"..player[2].."|"..player[3].."|"..player[4]) end)
cmdchat("gkmanage OPEN")
elseif cmd == "BACK" then
-- if sideback <= 0 then return end
local seiten = gkmanager.ChangeSide()
local sideba = seiten*5
local sideed = seiten*5
local sideback = sideba-5
local sideeback = sideed
cmdchat("gkmanage BACKSIDE")
local gkname2 = mysql_query("SELECT guild.name, guild.win, guild.loss, guild.member_count FROM guild WHERE guild.ladder_point > 0 AND member_count > 7 AND guild.leader_on = 1 ORDER BY guild.win DESC limit "..sideback..", "..sideeback..";")
table.foreachi(gkname2,function(nr,player) cmdchat("gkmanage INFO|"..nr.."|"..player[1].."|"..player[2].."|"..player[3].."|"..player[4]) end)
elseif cmd == "VORN" then
local seiten = gkmanager.ChangeSide()
local sideb = seiten*5
local sidee = seiten*5+5
local gkover = mysql_query("select count(*) from guild;")[1][1]
if sidee > gkover then return end
local gkname = mysql_query("SELECT guild.name, guild.win, guild.loss, guild.member_count FROM guild WHERE guild.ladder_point > 0 AND member_count > 7 AND guild.leader_on = 1 ORDER BY guild.win DESC limit "..sideb..", "..sidee..";")
table.foreachi(gkname,function(nr,player) cmdchat("gkmanage INFO|"..nr.."|"..player[1].."|"..player[2].."|"..player[3].."|"..player[4]) end)
end
end
end
end
Quest ist übrigens nicht so toll geschrieben. MySQL Rückgaben werden Zwischengespeichert obwohl diese nicht verwendet werden etc. Außerdem wäre das ganze per Source eindeutig besser, schneller und einfacher in der Verwendung.