• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Lua Error Init

blazeradis

http://luminera.zapto.org
Joined
Apr 7, 2010
Messages
105
Reaction score
2
[15/02/2012 17:17:32] [Error - LuaScriptInterface::loadFile] data/globalevents/scripts/init.lua:9: unexpected symbol near '{'
[15/02/2012 17:17:32] [Warning - Event::loadScript] Cannot load script (data/globalevents/scripts/init.lua)
[15/02/2012 17:17:32] data/globalevents/scripts/init.lua:9: unexpected symbol near '{'

local config = {
creationTime = 7 * 86400,
checkTime = 7 * 86400,
viceCount = 4,
memberCount = 10
}

function onStartup()
{
db.query("UPDATE `players` SET `online` = 0 WHERE `world_id` = 0;") local data, time, result = {}, os.time(), db.getResult("SELECT `id`, `ownerid`, `creationdata`, `checkdata` FROM `guilds` WHERE `world_id` = " .. getConfigValue('worldId') .. ";")
if(result:getID() ~= -1) then
repeat
data[result:getDataInt("id")] = {result:getDataInt("ownerid"), result:getDataInt("creationdata"), result:getDataInt("checkdata")}
until not(result:next())
result:free()
end

for id, v in ipairs(data) do
local owner, created, check = v[1], v[2], v[3]
if(created < (time - config.creationTime)) then
result = db.getResult("SELECT `id`, `level` FROM `guild_ranks` WHERE `guild_id` = " .. id .. ";")
if(result:getID() ~= -1) then
local rank, ranks = 0, {}
repeat
ranks[result:getDataInt("id")] = result:getDataInt("level")
if(result:getDataInt("level") == 1) then
rank = result:getDataInt("id")
end
until not(result:next())
result:free()

local members = {0, 0, 0, 0}
for k, v in ipairs(ranks) do
result = db.getResult("SELECT COUNT(`id`) AS `count` FROM `players` WHERE `rank_id` = " .. k .. ";")
if(result:getID() ~= -1) then
members[v] = members[v] + result:getDataInt("count")
result:free()
end

if(v == 2) then
result = db.getResult("SELECT `p`.`id` FROM `players` p LEFT JOIN `accounts` a ON `p`.`account_id` = `a`.`id` WHERE `p`.`rank_id` = " .. k .. " AND (`a`.`premdays` = 0 OR (`a`.`lastday` + (`a`.`premdays` * 86400) <= 0));")
if(result:getID() ~= -1) then
local demote = ""
repeat
demote = demote .. result:getDataInt("id") .. ","
members[2] = members[2] - 1
members[1] = members[1] + 1
until not(result:next())
result:free()

if(demote ~= "" and rank ~= 0) then
db.executequery("UPDATE `players` SET `rank_id` = " .. rank .. " WHERE `id` IN (" .. demote:sub(1, -2) .. ");")
end
end
end
end

for i = 1, 3 do
members[4] = members[4] + members
end

if(members[2] < config.viceCount or members[4] < config.memberCount) then
if(check == 0) then
db.executequery("UPDATE `guilds` SET `checkdata` = " .. (time + config.checkTime) .. " WHERE `id` = " .. id .. ";")
elseif(check < time) then
local tmp = ""
for rank, _ in ipairs(ranks) do
tmp = tmp .. rank .. ","
end

db.executequery("UPDATE `players` SET `rank_id` = 0, `guildnick` = '', `guildjoin` = 0 WHERE `rank_id` IN (" .. tmp:sub(1, -2) .. ");")
db.executequery("DELETE FROM `guilds` WHERE `id` = " .. id .. ";")
end
end
end
end
end

db.query("UPDATE `players` SET `online` = 0 WHERE `world_id` = " .. getConfigValue('worldId') .. ";")
return true
end

function onGlobalSave()
if(getGameState() ~= GAMESTATE_CLOSING) then
return onStartup()
end

return true
end
 
Remove the { after function onStartup() on line 9..?

Now it says:
[15/02/2012 18:40:04] [Error - GlobalEvent Interface]
[15/02/2012 18:40:04] data/globalevents/scripts/init.lua:eek:nStartup
[15/02/2012 18:40:04] Description:
[15/02/2012 18:40:04] data/globalevents/scripts/init.lua:9: attempt to call field 'query' (a nil value)
[15/02/2012 18:40:04] stack traceback:
[15/02/2012 18:40:04] data/globalevents/scripts/init.lua:9: in function <data/globalevents/scripts/init.lua:8>
 
Lua:
ocal config = {
creationTime = 7 * 86400,
checkTime = 7 * 86400,
viceCount = 4,
memberCount = 10
}

function onStartup()
{
db.executequery("UPDATE `players` SET `online` = 0 WHERE `world_id` = 0;") local data, time, result = {}, os.time(), db.getResult("SELECT `id`, `ownerid`, `creationdata`, `checkdata` FROM `guilds` WHERE `world_id` = " .. getConfigValue('worldId') .. ";")
if(result:getID() ~= -1) then
repeat
data[result:getDataInt("id")] = {result:getDataInt("ownerid"), result:getDataInt("creationdata"), result:getDataInt("checkdata")}
until not(result:next())
result:free()
end

for id, v in ipairs(data) do
local owner, created, check = v[1], v[2], v[3]
if(created < (time - config.creationTime)) then
result = db.getResult("SELECT `id`, `level` FROM `guild_ranks` WHERE `guild_id` = " .. id .. ";")
if(result:getID() ~= -1) then
local rank, ranks = 0, {}
repeat
ranks[result:getDataInt("id")] = result:getDataInt("level")
if(result:getDataInt("level") == 1) then
rank = result:getDataInt("id")
end
until not(result:next())
result:free()

local members = {0, 0, 0, 0}
for k, v in ipairs(ranks) do
result = db.getResult("SELECT COUNT(`id`) AS `count` FROM `players` WHERE `rank_id` = " .. k .. ";")
if(result:getID() ~= -1) then
members[v] = members[v] + result:getDataInt("count")
result:free()
end

if(v == 2) then
result = db.getResult("SELECT `p`.`id` FROM `players` p LEFT JOIN `accounts` a ON `p`.`account_id` = `a`.`id` WHERE `p`.`rank_id` = " .. k .. " AND (`a`.`premdays` = 0 OR (`a`.`lastday` + (`a`.`premdays` * 86400) <= 0));")
if(result:getID() ~= -1) then
local demote = ""
repeat
demote = demote .. result:getDataInt("id") .. ","
members[2] = members[2] - 1
members[1] = members[1] + 1
until not(result:next())
result:free()

if(demote ~= "" and rank ~= 0) then
db.executequery("UPDATE `players` SET `rank_id` = " .. rank .. " WHERE `id` IN (" .. demote:sub(1, -2) .. ");")
end
end
end
end

for i = 1, 3 do
members[4] = members[4] + members[i]
end

if(members[2] < config.viceCount or members[4] < config.memberCount) then
if(check == 0) then
db.executequery("UPDATE `guilds` SET `checkdata` = " .. (time + config.checkTime) .. " WHERE `id` = " .. id .. ";")
elseif(check < time) then
local tmp = ""
for rank, _ in ipairs(ranks) do
tmp = tmp .. rank .. ","
end

db.executequery("UPDATE `players` SET `rank_id` = 0, `guildnick` = '', `guildjoin` = 0 WHERE `rank_id` IN (" .. tmp:sub(1, -2) .. ");")
db.executequery("DELETE FROM `guilds` WHERE `id` = " .. id .. ";")
end
end
end
end
end

db.query("UPDATE `players` SET `online` = 0 WHERE `world_id` = " .. getConfigValue('worldId') .. ";")
return true
end

function onGlobalSave()
if(getGameState() ~= GAMESTATE_CLOSING) then
return onStartup()
end

return true
end
 
Lua:
ocal config = {
creationTime = 7 * 86400,
checkTime = 7 * 86400,
viceCount = 4,
memberCount = 10
}

function onStartup()
{
db.executequery("UPDATE `players` SET `online` = 0 WHERE `world_id` = 0;") local data, time, result = {}, os.time(), db.getResult("SELECT `id`, `ownerid`, `creationdata`, `checkdata` FROM `guilds` WHERE `world_id` = " .. getConfigValue('worldId') .. ";")
if(result:getID() ~= -1) then
repeat
data[result:getDataInt("id")] = {result:getDataInt("ownerid"), result:getDataInt("creationdata"), result:getDataInt("checkdata")}
until not(result:next())
result:free()
end

for id, v in ipairs(data) do
local owner, created, check = v[1], v[2], v[3]
if(created < (time - config.creationTime)) then
result = db.getResult("SELECT `id`, `level` FROM `guild_ranks` WHERE `guild_id` = " .. id .. ";")
if(result:getID() ~= -1) then
local rank, ranks = 0, {}
repeat
ranks[result:getDataInt("id")] = result:getDataInt("level")
if(result:getDataInt("level") == 1) then
rank = result:getDataInt("id")
end
until not(result:next())
result:free()

local members = {0, 0, 0, 0}
for k, v in ipairs(ranks) do
result = db.getResult("SELECT COUNT(`id`) AS `count` FROM `players` WHERE `rank_id` = " .. k .. ";")
if(result:getID() ~= -1) then
members[v] = members[v] + result:getDataInt("count")
result:free()
end

if(v == 2) then
result = db.getResult("SELECT `p`.`id` FROM `players` p LEFT JOIN `accounts` a ON `p`.`account_id` = `a`.`id` WHERE `p`.`rank_id` = " .. k .. " AND (`a`.`premdays` = 0 OR (`a`.`lastday` + (`a`.`premdays` * 86400) <= 0));")
if(result:getID() ~= -1) then
local demote = ""
repeat
demote = demote .. result:getDataInt("id") .. ","
members[2] = members[2] - 1
members[1] = members[1] + 1
until not(result:next())
result:free()

if(demote ~= "" and rank ~= 0) then
db.executequery("UPDATE `players` SET `rank_id` = " .. rank .. " WHERE `id` IN (" .. demote:sub(1, -2) .. ");")
end
end
end
end

for i = 1, 3 do
members[4] = members[4] + members[i]
end

if(members[2] < config.viceCount or members[4] < config.memberCount) then
if(check == 0) then
db.executequery("UPDATE `guilds` SET `checkdata` = " .. (time + config.checkTime) .. " WHERE `id` = " .. id .. ";")
elseif(check < time) then
local tmp = ""
for rank, _ in ipairs(ranks) do
tmp = tmp .. rank .. ","
end

db.executequery("UPDATE `players` SET `rank_id` = 0, `guildnick` = '', `guildjoin` = 0 WHERE `rank_id` IN (" .. tmp:sub(1, -2) .. ");")
db.executequery("DELETE FROM `guilds` WHERE `id` = " .. id .. ";")
end
end
end
end
end

db.query("UPDATE `players` SET `online` = 0 WHERE `world_id` = " .. getConfigValue('worldId') .. ";")
return true
end

function onGlobalSave()
if(getGameState() ~= GAMESTATE_CLOSING) then
return onStartup()
end

return true
end

Is says:
[15/02/2012 19:31:38] [Error - LuaScriptInterface::loadFile] data/globalevents/scripts/init.lua:9: unexpected symbol near '{'
[15/02/2012 19:31:38] [Warning - Event::loadScript] Cannot load script (data/globalevents/scripts/init.lua)
[15/02/2012 19:31:38] data/globalevents/scripts/init.lua:9: unexpected symbol near '{'
 
my error i paste script bad
says ocal its local
Lua:
local config = {
creationTime = 7 * 86400,
checkTime = 7 * 86400,
viceCount = 4,
memberCount = 10
}
 
function onStartup()
{
db.executequery("UPDATE `players` SET `online` = 0 WHERE `world_id` = 0;") local data, time, result = {}, os.time(), db.getResult("SELECT `id`, `ownerid`, `creationdata`, `checkdata` FROM `guilds` WHERE `world_id` = " .. getConfigValue('worldId') .. ";")
if(result:getID() ~= -1) then
repeat
data[result:getDataInt("id")] = {result:getDataInt("ownerid"), result:getDataInt("creationdata"), result:getDataInt("checkdata")}
until not(result:next())
result:free()
end
 
for id, v in ipairs(data) do
local owner, created, check = v[1], v[2], v[3]
if(created < (time - config.creationTime)) then
result = db.getResult("SELECT `id`, `level` FROM `guild_ranks` WHERE `guild_id` = " .. id .. ";")
if(result:getID() ~= -1) then
local rank, ranks = 0, {}
repeat
ranks[result:getDataInt("id")] = result:getDataInt("level")
if(result:getDataInt("level") == 1) then
rank = result:getDataInt("id")
end
until not(result:next())
result:free()
 
local members = {0, 0, 0, 0}
for k, v in ipairs(ranks) do
result = db.getResult("SELECT COUNT(`id`) AS `count` FROM `players` WHERE `rank_id` = " .. k .. ";")
if(result:getID() ~= -1) then
members[v] = members[v] + result:getDataInt("count")
result:free()
end
 
if(v == 2) then
result = db.getResult("SELECT `p`.`id` FROM `players` p LEFT JOIN `accounts` a ON `p`.`account_id` = `a`.`id` WHERE `p`.`rank_id` = " .. k .. " AND (`a`.`premdays` = 0 OR (`a`.`lastday` + (`a`.`premdays` * 86400) <= 0));")
if(result:getID() ~= -1) then
local demote = ""
repeat
demote = demote .. result:getDataInt("id") .. ","
members[2] = members[2] - 1
members[1] = members[1] + 1
until not(result:next())
result:free()
 
if(demote ~= "" and rank ~= 0) then
db.executequery("UPDATE `players` SET `rank_id` = " .. rank .. " WHERE `id` IN (" .. demote:sub(1, -2) .. ");")
end
end
end
end
 
for i = 1, 3 do
members[4] = members[4] + members[i]
end
 
if(members[2] < config.viceCount or members[4] < config.memberCount) then
if(check == 0) then
db.executequery("UPDATE `guilds` SET `checkdata` = " .. (time + config.checkTime) .. " WHERE `id` = " .. id .. ";")
elseif(check < time) then
local tmp = ""
for rank, _ in ipairs(ranks) do
tmp = tmp .. rank .. ","
end
 
db.executequery("UPDATE `players` SET `rank_id` = 0, `guildnick` = '', `guildjoin` = 0 WHERE `rank_id` IN (" .. tmp:sub(1, -2) .. ");")
db.executequery("DELETE FROM `guilds` WHERE `id` = " .. id .. ";")
end
end
end
end
end
 
db.query("UPDATE `players` SET `online` = 0 WHERE `world_id` = " .. getConfigValue('worldId') .. ";")
return true
end
 
function onGlobalSave()
if(getGameState() ~= GAMESTATE_CLOSING) then
return onStartup()
end
 
return true
end
 
my error i paste script bad
says ocal its local
Lua:
local config = {
creationTime = 7 * 86400,
checkTime = 7 * 86400,
viceCount = 4,
memberCount = 10
}
 
function onStartup()
{
db.executequery("UPDATE `players` SET `online` = 0 WHERE `world_id` = 0;") local data, time, result = {}, os.time(), db.getResult("SELECT `id`, `ownerid`, `creationdata`, `checkdata` FROM `guilds` WHERE `world_id` = " .. getConfigValue('worldId') .. ";")
if(result:getID() ~= -1) then
repeat
data[result:getDataInt("id")] = {result:getDataInt("ownerid"), result:getDataInt("creationdata"), result:getDataInt("checkdata")}
until not(result:next())
result:free()
end
 
for id, v in ipairs(data) do
local owner, created, check = v[1], v[2], v[3]
if(created < (time - config.creationTime)) then
result = db.getResult("SELECT `id`, `level` FROM `guild_ranks` WHERE `guild_id` = " .. id .. ";")
if(result:getID() ~= -1) then
local rank, ranks = 0, {}
repeat
ranks[result:getDataInt("id")] = result:getDataInt("level")
if(result:getDataInt("level") == 1) then
rank = result:getDataInt("id")
end
until not(result:next())
result:free()
 
local members = {0, 0, 0, 0}
for k, v in ipairs(ranks) do
result = db.getResult("SELECT COUNT(`id`) AS `count` FROM `players` WHERE `rank_id` = " .. k .. ";")
if(result:getID() ~= -1) then
members[v] = members[v] + result:getDataInt("count")
result:free()
end
 
if(v == 2) then
result = db.getResult("SELECT `p`.`id` FROM `players` p LEFT JOIN `accounts` a ON `p`.`account_id` = `a`.`id` WHERE `p`.`rank_id` = " .. k .. " AND (`a`.`premdays` = 0 OR (`a`.`lastday` + (`a`.`premdays` * 86400) <= 0));")
if(result:getID() ~= -1) then
local demote = ""
repeat
demote = demote .. result:getDataInt("id") .. ","
members[2] = members[2] - 1
members[1] = members[1] + 1
until not(result:next())
result:free()
 
if(demote ~= "" and rank ~= 0) then
db.executequery("UPDATE `players` SET `rank_id` = " .. rank .. " WHERE `id` IN (" .. demote:sub(1, -2) .. ");")
end
end
end
end
 
for i = 1, 3 do
members[4] = members[4] + members[i]
end
 
if(members[2] < config.viceCount or members[4] < config.memberCount) then
if(check == 0) then
db.executequery("UPDATE `guilds` SET `checkdata` = " .. (time + config.checkTime) .. " WHERE `id` = " .. id .. ";")
elseif(check < time) then
local tmp = ""
for rank, _ in ipairs(ranks) do
tmp = tmp .. rank .. ","
end
 
db.executequery("UPDATE `players` SET `rank_id` = 0, `guildnick` = '', `guildjoin` = 0 WHERE `rank_id` IN (" .. tmp:sub(1, -2) .. ");")
db.executequery("DELETE FROM `guilds` WHERE `id` = " .. id .. ";")
end
end
end
end
end
 
db.query("UPDATE `players` SET `online` = 0 WHERE `world_id` = " .. getConfigValue('worldId') .. ";")
return true
end
 
function onGlobalSave()
if(getGameState() ~= GAMESTATE_CLOSING) then
return onStartup()
end
 
return true
end

I saw that and changed it before i started the server :/
 
function onStartup()

remove the

{
after it, once again.... lol

[17/02/2012 11:20:59] [Error - LuaScriptInterface::loadFile] data/globalevents/scripts/init.lua:14: '}' expected (to close '{' at line 13) near 'until'
[17/02/2012 11:20:59] [Warning - Event::loadScript] Cannot load script (data/globalevents/scripts/init.lua)
[17/02/2012 11:20:59] data/globalevents/scripts/init.lua:14: '}' expected (to close '{' at line 13) near 'until'

???
 
try
Lua:
local config = {
creationTime = 7 * 86400,
checkTime = 7 * 86400,
viceCount = 4,
memberCount = 10
}
 
function onStartup()
db.executequery("UPDATE `players` SET `online` = 0 WHERE `world_id` = 0;") local data, time, result = {}, os.time(), db.getResult("SELECT `id`, `ownerid`, `creationdata`, `checkdata` FROM `guilds` WHERE `world_id` = " .. getConfigValue('worldId') .. ";")
	if(result:getID() ~= -1) then
		repeat
			data[result:getDataInt("id")] = {result:getDataInt("ownerid"), result:getDataInt("creationdata"), result:getDataInt("checkdata")}
		until not(result:next())
		result:free()
	end
 
for id, v in ipairs(data) do
local owner, created, check = v[1], v[2], v[3]
if(created < (time - config.creationTime)) then
result = db.getResult("SELECT `id`, `level` FROM `guild_ranks` WHERE `guild_id` = " .. id .. ";")
if(result:getID() ~= -1) then
local rank, ranks = 0, {}
repeat
ranks[result:getDataInt("id")] = result:getDataInt("level")
if(result:getDataInt("level") == 1) then
rank = result:getDataInt("id")
end
until not(result:next())
result:free()
 
local members = {0, 0, 0, 0}
for k, v in ipairs(ranks) do
result = db.getResult("SELECT COUNT(`id`) AS `count` FROM `players` WHERE `rank_id` = " .. k .. ";")
if(result:getID() ~= -1) then
members[v] = members[v] + result:getDataInt("count")
result:free()
end
 
if(v == 2) then
result = db.getResult("SELECT `p`.`id` FROM `players` p LEFT JOIN `accounts` a ON `p`.`account_id` = `a`.`id` WHERE `p`.`rank_id` = " .. k .. " AND (`a`.`premdays` = 0 OR (`a`.`lastday` + (`a`.`premdays` * 86400) <= 0));")
if(result:getID() ~= -1) then
local demote = ""
repeat
demote = demote .. result:getDataInt("id") .. ","
members[2] = members[2] - 1
members[1] = members[1] + 1
until not(result:next())
result:free()
 
if(demote ~= "" and rank ~= 0) then
db.executequery("UPDATE `players` SET `rank_id` = " .. rank .. " WHERE `id` IN (" .. demote:sub(1, -2) .. ");")
end
end
end
end
 
for i = 1, 3 do
members[4] = members[4] + members[i]
end
 
if(members[2] < config.viceCount or members[4] < config.memberCount) then
if(check == 0) then
db.executequery("UPDATE `guilds` SET `checkdata` = " .. (time + config.checkTime) .. " WHERE `id` = " .. id .. ";")
elseif(check < time) then
local tmp = ""
for rank, _ in ipairs(ranks) do
tmp = tmp .. rank .. ","
end
 
db.executequery("UPDATE `players` SET `rank_id` = 0, `guildnick` = '', `guildjoin` = 0 WHERE `rank_id` IN (" .. tmp:sub(1, -2) .. ");")
db.executequery("DELETE FROM `guilds` WHERE `id` = " .. id .. ";")
end
end
end
end
end
 
db.executequery("UPDATE `players` SET `online` = 0 WHERE `world_id` = " .. getConfigValue('worldId') .. ";")
return true
end
 
function onGlobalSave()
if(getGameState() ~= GAMESTATE_CLOSING) then
return onStartup()
end
 
return true
end
 
try
Lua:
local config = {
creationTime = 7 * 86400,
checkTime = 7 * 86400,
viceCount = 4,
memberCount = 10
}
 
function onStartup()
db.executequery("UPDATE `players` SET `online` = 0 WHERE `world_id` = 0;") local data, time, result = {}, os.time(), db.getResult("SELECT `id`, `ownerid`, `creationdata`, `checkdata` FROM `guilds` WHERE `world_id` = " .. getConfigValue('worldId') .. ";")
	if(result:getID() ~= -1) then
		repeat
			data[result:getDataInt("id")] = {result:getDataInt("ownerid"), result:getDataInt("creationdata"), result:getDataInt("checkdata")}
		until not(result:next())
		result:free()
	end
 
for id, v in ipairs(data) do
local owner, created, check = v[1], v[2], v[3]
if(created < (time - config.creationTime)) then
result = db.getResult("SELECT `id`, `level` FROM `guild_ranks` WHERE `guild_id` = " .. id .. ";")
if(result:getID() ~= -1) then
local rank, ranks = 0, {}
repeat
ranks[result:getDataInt("id")] = result:getDataInt("level")
if(result:getDataInt("level") == 1) then
rank = result:getDataInt("id")
end
until not(result:next())
result:free()
 
local members = {0, 0, 0, 0}
for k, v in ipairs(ranks) do
result = db.getResult("SELECT COUNT(`id`) AS `count` FROM `players` WHERE `rank_id` = " .. k .. ";")
if(result:getID() ~= -1) then
members[v] = members[v] + result:getDataInt("count")
result:free()
end
 
if(v == 2) then
result = db.getResult("SELECT `p`.`id` FROM `players` p LEFT JOIN `accounts` a ON `p`.`account_id` = `a`.`id` WHERE `p`.`rank_id` = " .. k .. " AND (`a`.`premdays` = 0 OR (`a`.`lastday` + (`a`.`premdays` * 86400) <= 0));")
if(result:getID() ~= -1) then
local demote = ""
repeat
demote = demote .. result:getDataInt("id") .. ","
members[2] = members[2] - 1
members[1] = members[1] + 1
until not(result:next())
result:free()
 
if(demote ~= "" and rank ~= 0) then
db.executequery("UPDATE `players` SET `rank_id` = " .. rank .. " WHERE `id` IN (" .. demote:sub(1, -2) .. ");")
end
end
end
end
 
for i = 1, 3 do
members[4] = members[4] + members[i]
end
 
if(members[2] < config.viceCount or members[4] < config.memberCount) then
if(check == 0) then
db.executequery("UPDATE `guilds` SET `checkdata` = " .. (time + config.checkTime) .. " WHERE `id` = " .. id .. ";")
elseif(check < time) then
local tmp = ""
for rank, _ in ipairs(ranks) do
tmp = tmp .. rank .. ","
end
 
db.executequery("UPDATE `players` SET `rank_id` = 0, `guildnick` = '', `guildjoin` = 0 WHERE `rank_id` IN (" .. tmp:sub(1, -2) .. ");")
db.executequery("DELETE FROM `guilds` WHERE `id` = " .. id .. ";")
end
end
end
end
end
 
db.executequery("UPDATE `players` SET `online` = 0 WHERE `world_id` = " .. getConfigValue('worldId') .. ";")
return true
end
 
function onGlobalSave()
if(getGameState() ~= GAMESTATE_CLOSING) then
return onStartup()
end
 
return true
end

Now it says:
[19/02/2012 23:16:33] [Error - GlobalEvent Interface]
[19/02/2012 23:16:33] data/globalevents/scripts/init.lua: onStartup
[19/02/2012 23:16:33] Description:
[19/02/2012 23:16:33] data/globalevents/scripts/init.lua:9: attempt to call field 'executequery' (a nil value)
[19/02/2012 23:16:33] stack traceback:
[19/02/2012 23:16:33] data/globalevents/scripts/init.lua:9: in function <data/globalevents/scripts/init.lua:8>
 
Lua:
local config = {
creationTime = 7 * 86400,
checkTime = 7 * 86400,
viceCount = 4,
memberCount = 10
}
 
function onStartup()
db.query("UPDATE `players` SET `online` = 0 WHERE `world_id` = 0;") local data, time, result = {}, os.time(), db.getResult("SELECT `id`, `ownerid`, `creationdata`, `checkdata` FROM `guilds` WHERE `world_id` = " .. getConfigValue('worldId') .. ";")
	if(result:getID() ~= -1) then
		repeat
			data[result:getDataInt("id")] = {result:getDataInt("ownerid"), result:getDataInt("creationdata"), result:getDataInt("checkdata")}
		until not(result:next())
		result:free()
	end
 
for id, v in ipairs(data) do
local owner, created, check = v[1], v[2], v[3]
if(created < (time - config.creationTime)) then
result = db.getResult("SELECT `id`, `level` FROM `guild_ranks` WHERE `guild_id` = " .. id .. ";")
if(result:getID() ~= -1) then
local rank, ranks = 0, {}
repeat
ranks[result:getDataInt("id")] = result:getDataInt("level")
if(result:getDataInt("level") == 1) then
rank = result:getDataInt("id")
end
until not(result:next())
result:free()
 
local members = {0, 0, 0, 0}
for k, v in ipairs(ranks) do
result = db.getResult("SELECT COUNT(`id`) AS `count` FROM `players` WHERE `rank_id` = " .. k .. ";")
if(result:getID() ~= -1) then
members[v] = members[v] + result:getDataInt("count")
result:free()
end
 
if(v == 2) then
result = db.getResult("SELECT `p`.`id` FROM `players` p LEFT JOIN `accounts` a ON `p`.`account_id` = `a`.`id` WHERE `p`.`rank_id` = " .. k .. " AND (`a`.`premdays` = 0 OR (`a`.`lastday` + (`a`.`premdays` * 86400) <= 0));")
if(result:getID() ~= -1) then
local demote = ""
repeat
demote = demote .. result:getDataInt("id") .. ","
members[2] = members[2] - 1
members[1] = members[1] + 1
until not(result:next())
result:free()
 
if(demote ~= "" and rank ~= 0) then
db.executequery("UPDATE `players` SET `rank_id` = " .. rank .. " WHERE `id` IN (" .. demote:sub(1, -2) .. ");")
end
end
end
end
 
for i = 1, 3 do
members[4] = members[4] + members[i]
end
 
if(members[2] < config.viceCount or members[4] < config.memberCount) then
if(check == 0) then
db.executequery("UPDATE `guilds` SET `checkdata` = " .. (time + config.checkTime) .. " WHERE `id` = " .. id .. ";")
elseif(check < time) then
local tmp = ""
for rank, _ in ipairs(ranks) do
tmp = tmp .. rank .. ","
end
 
db.executequery("UPDATE `players` SET `rank_id` = 0, `guildnick` = '', `guildjoin` = 0 WHERE `rank_id` IN (" .. tmp:sub(1, -2) .. ");")
db.executequery("DELETE FROM `guilds` WHERE `id` = " .. id .. ";")
end
end
end
end
end
 
db.executequery("UPDATE `players` SET `online` = 0 WHERE `world_id` = " .. getConfigValue('worldId') .. ";")
return true
end
 
function onGlobalSave()
if(getGameState() ~= GAMESTATE_CLOSING) then
return onStartup()
end
 
return true
end
 
Lua:
local config = {
creationTime = 7 * 86400,
checkTime = 7 * 86400,
viceCount = 4,
memberCount = 10
}
 
function onStartup()
db.query("UPDATE `players` SET `online` = 0 WHERE `world_id` = 0;") local data, time, result = {}, os.time(), db.getResult("SELECT `id`, `ownerid`, `creationdata`, `checkdata` FROM `guilds` WHERE `world_id` = " .. getConfigValue('worldId') .. ";")
	if(result:getID() ~= -1) then
		repeat
			data[result:getDataInt("id")] = {result:getDataInt("ownerid"), result:getDataInt("creationdata"), result:getDataInt("checkdata")}
		until not(result:next())
		result:free()
	end
 
for id, v in ipairs(data) do
local owner, created, check = v[1], v[2], v[3]
if(created < (time - config.creationTime)) then
result = db.getResult("SELECT `id`, `level` FROM `guild_ranks` WHERE `guild_id` = " .. id .. ";")
if(result:getID() ~= -1) then
local rank, ranks = 0, {}
repeat
ranks[result:getDataInt("id")] = result:getDataInt("level")
if(result:getDataInt("level") == 1) then
rank = result:getDataInt("id")
end
until not(result:next())
result:free()
 
local members = {0, 0, 0, 0}
for k, v in ipairs(ranks) do
result = db.getResult("SELECT COUNT(`id`) AS `count` FROM `players` WHERE `rank_id` = " .. k .. ";")
if(result:getID() ~= -1) then
members[v] = members[v] + result:getDataInt("count")
result:free()
end
 
if(v == 2) then
result = db.getResult("SELECT `p`.`id` FROM `players` p LEFT JOIN `accounts` a ON `p`.`account_id` = `a`.`id` WHERE `p`.`rank_id` = " .. k .. " AND (`a`.`premdays` = 0 OR (`a`.`lastday` + (`a`.`premdays` * 86400) <= 0));")
if(result:getID() ~= -1) then
local demote = ""
repeat
demote = demote .. result:getDataInt("id") .. ","
members[2] = members[2] - 1
members[1] = members[1] + 1
until not(result:next())
result:free()
 
if(demote ~= "" and rank ~= 0) then
db.executequery("UPDATE `players` SET `rank_id` = " .. rank .. " WHERE `id` IN (" .. demote:sub(1, -2) .. ");")
end
end
end
end
 
for i = 1, 3 do
members[4] = members[4] + members[i]
end
 
if(members[2] < config.viceCount or members[4] < config.memberCount) then
if(check == 0) then
db.executequery("UPDATE `guilds` SET `checkdata` = " .. (time + config.checkTime) .. " WHERE `id` = " .. id .. ";")
elseif(check < time) then
local tmp = ""
for rank, _ in ipairs(ranks) do
tmp = tmp .. rank .. ","
end
 
db.executequery("UPDATE `players` SET `rank_id` = 0, `guildnick` = '', `guildjoin` = 0 WHERE `rank_id` IN (" .. tmp:sub(1, -2) .. ");")
db.executequery("DELETE FROM `guilds` WHERE `id` = " .. id .. ";")
end
end
end
end
end
 
db.executequery("UPDATE `players` SET `online` = 0 WHERE `world_id` = " .. getConfigValue('worldId') .. ";")
return true
end
 
function onGlobalSave()
if(getGameState() ~= GAMESTATE_CLOSING) then
return onStartup()
end
 
return true
end


[21/02/2012 13:44:55] [Error - GlobalEvent Interface]
[21/02/2012 13:44:55] data/globalevents/scripts/init.lua: onStartup
[21/02/2012 13:44:55] Description:
[21/02/2012 13:44:55] data/globalevents/scripts/init.lua:9: attempt to call field 'query' (a nil value)
[21/02/2012 13:44:55] stack traceback:
[21/02/2012 13:44:55] data/globalevents/scripts/init.lua:9: in function <data/globalevents/scripts/init.lua:8>
 
try this
Lua:
local config = {
creationTime = 7 * 86400,
checkTime = 7 * 86400,
viceCount = 4,
memberCount = 10
}
 
function onStartup()
db.executeQuery("UPDATE `players` SET `online` = 0 WHERE `world_id` = 0;") local data, time, result = {}, os.time(), db.getResult("SELECT `id`, `ownerid`, `creationdata`, `checkdata` FROM `guilds` WHERE `world_id` = " .. getConfigValue('worldId') .. ";")
	if(result:getID() ~= -1) then
		repeat
			data[result:getDataInt("id")] = {result:getDataInt("ownerid"), result:getDataInt("creationdata"), result:getDataInt("checkdata")}
		until not(result:next())
		result:free()
	end
 
for id, v in ipairs(data) do
local owner, created, check = v[1], v[2], v[3]
if(created < (time - config.creationTime)) then
result = db.getResult("SELECT `id`, `level` FROM `guild_ranks` WHERE `guild_id` = " .. id .. ";")
if(result:getID() ~= -1) then
local rank, ranks = 0, {}
repeat
ranks[result:getDataInt("id")] = result:getDataInt("level")
if(result:getDataInt("level") == 1) then
rank = result:getDataInt("id")
end
until not(result:next())
result:free()
 
local members = {0, 0, 0, 0}
for k, v in ipairs(ranks) do
result = db.getResult("SELECT COUNT(`id`) AS `count` FROM `players` WHERE `rank_id` = " .. k .. ";")
if(result:getID() ~= -1) then
members[v] = members[v] + result:getDataInt("count")
result:free()
end
 
if(v == 2) then
result = db.getResult("SELECT `p`.`id` FROM `players` p LEFT JOIN `accounts` a ON `p`.`account_id` = `a`.`id` WHERE `p`.`rank_id` = " .. k .. " AND (`a`.`premdays` = 0 OR (`a`.`lastday` + (`a`.`premdays` * 86400) <= 0));")
if(result:getID() ~= -1) then
local demote = ""
repeat
demote = demote .. result:getDataInt("id") .. ","
members[2] = members[2] - 1
members[1] = members[1] + 1
until not(result:next())
result:free()
 
if(demote ~= "" and rank ~= 0) then
db.executequery("UPDATE `players` SET `rank_id` = " .. rank .. " WHERE `id` IN (" .. demote:sub(1, -2) .. ");")
end
end
end
end
 
for i = 1, 3 do
members[4] = members[4] + members[i]
end
 
if(members[2] < config.viceCount or members[4] < config.memberCount) then
if(check == 0) then
db.executequery("UPDATE `guilds` SET `checkdata` = " .. (time + config.checkTime) .. " WHERE `id` = " .. id .. ";")
elseif(check < time) then
local tmp = ""
for rank, _ in ipairs(ranks) do
tmp = tmp .. rank .. ","
end
 
db.executequery("UPDATE `players` SET `rank_id` = 0, `guildnick` = '', `guildjoin` = 0 WHERE `rank_id` IN (" .. tmp:sub(1, -2) .. ");")
db.executequery("DELETE FROM `guilds` WHERE `id` = " .. id .. ";")
end
end
end
end
end
 
db.executequery("UPDATE `players` SET `online` = 0 WHERE `world_id` = " .. getConfigValue('worldId') .. ";")
return true
end
 
function onGlobalSave()
if(getGameState() ~= GAMESTATE_CLOSING) then
return onStartup()
end
 
return true
end
 
try this
Lua:
local config = {
creationTime = 7 * 86400,
checkTime = 7 * 86400,
viceCount = 4,
memberCount = 10
}
 
function onStartup()
db.executeQuery("UPDATE `players` SET `online` = 0 WHERE `world_id` = 0;") local data, time, result = {}, os.time(), db.getResult("SELECT `id`, `ownerid`, `creationdata`, `checkdata` FROM `guilds` WHERE `world_id` = " .. getConfigValue('worldId') .. ";")
	if(result:getID() ~= -1) then
		repeat
			data[result:getDataInt("id")] = {result:getDataInt("ownerid"), result:getDataInt("creationdata"), result:getDataInt("checkdata")}
		until not(result:next())
		result:free()
	end
 
for id, v in ipairs(data) do
local owner, created, check = v[1], v[2], v[3]
if(created < (time - config.creationTime)) then
result = db.getResult("SELECT `id`, `level` FROM `guild_ranks` WHERE `guild_id` = " .. id .. ";")
if(result:getID() ~= -1) then
local rank, ranks = 0, {}
repeat
ranks[result:getDataInt("id")] = result:getDataInt("level")
if(result:getDataInt("level") == 1) then
rank = result:getDataInt("id")
end
until not(result:next())
result:free()
 
local members = {0, 0, 0, 0}
for k, v in ipairs(ranks) do
result = db.getResult("SELECT COUNT(`id`) AS `count` FROM `players` WHERE `rank_id` = " .. k .. ";")
if(result:getID() ~= -1) then
members[v] = members[v] + result:getDataInt("count")
result:free()
end
 
if(v == 2) then
result = db.getResult("SELECT `p`.`id` FROM `players` p LEFT JOIN `accounts` a ON `p`.`account_id` = `a`.`id` WHERE `p`.`rank_id` = " .. k .. " AND (`a`.`premdays` = 0 OR (`a`.`lastday` + (`a`.`premdays` * 86400) <= 0));")
if(result:getID() ~= -1) then
local demote = ""
repeat
demote = demote .. result:getDataInt("id") .. ","
members[2] = members[2] - 1
members[1] = members[1] + 1
until not(result:next())
result:free()
 
if(demote ~= "" and rank ~= 0) then
db.executequery("UPDATE `players` SET `rank_id` = " .. rank .. " WHERE `id` IN (" .. demote:sub(1, -2) .. ");")
end
end
end
end
 
for i = 1, 3 do
members[4] = members[4] + members[i]
end
 
if(members[2] < config.viceCount or members[4] < config.memberCount) then
if(check == 0) then
db.executequery("UPDATE `guilds` SET `checkdata` = " .. (time + config.checkTime) .. " WHERE `id` = " .. id .. ";")
elseif(check < time) then
local tmp = ""
for rank, _ in ipairs(ranks) do
tmp = tmp .. rank .. ","
end
 
db.executequery("UPDATE `players` SET `rank_id` = 0, `guildnick` = '', `guildjoin` = 0 WHERE `rank_id` IN (" .. tmp:sub(1, -2) .. ");")
db.executequery("DELETE FROM `guilds` WHERE `id` = " .. id .. ";")
end
end
end
end
end
 
db.executequery("UPDATE `players` SET `online` = 0 WHERE `world_id` = " .. getConfigValue('worldId') .. ";")
return true
end
 
function onGlobalSave()
if(getGameState() ~= GAMESTATE_CLOSING) then
return onStartup()
end
 
return true
end

[21/02/2012 21:38:39] [Error - GlobalEvent Interface]
[21/02/2012 21:38:39] data/globalevents/scripts/init.lua: onStartup
[21/02/2012 21:38:39] Description:
[21/02/2012 21:38:39] data/globalevents/scripts/init.lua:9: attempt to call field 'executeQuery' (a nil value)
[21/02/2012 21:38:39] stack traceback:
[21/02/2012 21:38:39] data/globalevents/scripts/init.lua:9: in function <data/globalevents/scripts/init.lua:8>
 
try
Lua:
local config = {
creationTime = 7 * 86400,
checkTime = 7 * 86400,
viceCount = 4,
memberCount = 10
}
 
function onStartup()
db.escapeString("UPDATE `players` SET `online` = 0 WHERE `world_id` = 0;") local data, time, result = {}, os.time(), db.getResult("SELECT `id`, `ownerid`, `creationdata`, `checkdata` FROM `guilds` WHERE `world_id` = " .. getConfigValue('worldId') .. ";")
	if(result:getID() ~= -1) then
		repeat
			data[result:getDataInt("id")] = {result:getDataInt("ownerid"), result:getDataInt("creationdata"), result:getDataInt("checkdata")}
		until not(result:next())
		result:free()
	end
 
for id, v in ipairs(data) do
local owner, created, check = v[1], v[2], v[3]
if(created < (time - config.creationTime)) then
result = db.getResult("SELECT `id`, `level` FROM `guild_ranks` WHERE `guild_id` = " .. id .. ";")
if(result:getID() ~= -1) then
local rank, ranks = 0, {}
repeat
ranks[result:getDataInt("id")] = result:getDataInt("level")
if(result:getDataInt("level") == 1) then
rank = result:getDataInt("id")
end
until not(result:next())
result:free()
 
local members = {0, 0, 0, 0}
for k, v in ipairs(ranks) do
result = db.getResult("SELECT COUNT(`id`) AS `count` FROM `players` WHERE `rank_id` = " .. k .. ";")
if(result:getID() ~= -1) then
members[v] = members[v] + result:getDataInt("count")
result:free()
end
 
if(v == 2) then
result = db.getResult("SELECT `p`.`id` FROM `players` p LEFT JOIN `accounts` a ON `p`.`account_id` = `a`.`id` WHERE `p`.`rank_id` = " .. k .. " AND (`a`.`premdays` = 0 OR (`a`.`lastday` + (`a`.`premdays` * 86400) <= 0));")
if(result:getID() ~= -1) then
local demote = ""
repeat
demote = demote .. result:getDataInt("id") .. ","
members[2] = members[2] - 1
members[1] = members[1] + 1
until not(result:next())
result:free()
 
if(demote ~= "" and rank ~= 0) then
db.escapeString("UPDATE `players` SET `rank_id` = " .. rank .. " WHERE `id` IN (" .. demote:sub(1, -2) .. ");")
end
end
end
end
 
for i = 1, 3 do
members[4] = members[4] + members[i]
end
 
if(members[2] < config.viceCount or members[4] < config.memberCount) then
if(check == 0) then
db.escapeString("UPDATE `guilds` SET `checkdata` = " .. (time + config.checkTime) .. " WHERE `id` = " .. id .. ";")
elseif(check < time) then
local tmp = ""
for rank, _ in ipairs(ranks) do
tmp = tmp .. rank .. ","
end
 
db.escapeString("UPDATE `players` SET `rank_id` = 0, `guildnick` = '', `guildjoin` = 0 WHERE `rank_id` IN (" .. tmp:sub(1, -2) .. ");")
db.escapeString("DELETE FROM `guilds` WHERE `id` = " .. id .. ";")
end
end
end
end
end
 
db.escapeString("UPDATE `players` SET `online` = 0 WHERE `world_id` = " .. getConfigValue('worldId') .. ";")
return true
end
 
function onGlobalSave()
if(getGameState() ~= GAMESTATE_CLOSING) then
return onStartup()
end
 
return true
end
 
Back
Top