• 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!

Anyone know what this SCRIPT is..?

Bacheer

New Member
Joined
Jun 18, 2009
Messages
246
Reaction score
0
Location
Sweden
Yoo! Like the title says.. Does anyone know what this script is what or good for?
It were on the server when I get It, anyways... It's also getting errors in the Consule...

Is It necassary to keep this script or I can just remove it?
*IF I don't would remove it, then what i must to do for fixing the errors?

The errors:
2qjjgxi.jpg


Please help me! I'll give rep++ for help!

Init.Lua
PHP:
local config = {
	creationTime = 7 * 86400,
	checkTime = 7 * 86400,
	viceCount = 4,
	memberCount = 10
}

function onStartup()
	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.query("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.query("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.query("UPDATE `players` SET `rank_id` = 0, `guildnick` = '', `guildjoin` = 0 WHERE `rank_id` IN (" .. tmp:sub(1, -2) .. ");")
						db.query("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

Globalevents.xml
PHP:
<globalevent name="init" type="startup" event="script" value="init.lua"/>
 
name of your exe can be anything, even shit666 and it doesnt tell us anything

I thought It maybe does becouse it's not tfs.. anyway, THIS part of the script looks wierd or doesnt it?:O


PHP:
        end 
    end 

    db.query("UPDATE `players` SET `online` = 0 WHERE `world_id` = " .. getConfigValue('worldId') .. ";") 
    return true 
end
 
I don't get why you had to open another thread with even a worse thread name.
Your server simply doesn't contain that function. Either I need the sources to check how that is named or check your libs or you shouldn't use TFS scripts.
 
I don't get why you had to open another thread with even a worse thread name.
Your server simply doesn't contain that function. Either I need the sources to check how that is named or check your libs or you shouldn't use TFS scripts.

What about my libs? the file is empty... What i should do there?
 
take
LUA:
local config = {
    creationTime = 7 * 86400,
    checkTime = 7 * 86400,
    viceCount = 4,
    memberCount = 10
}
 
function onStartup()
    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.query("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.query("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.query("UPDATE `players` SET `rank_id` = 0, `guildnick` = '', `guildjoin` = 0 WHERE `rank_id` IN (" .. tmp:sub(1, -2) .. ");")
                        db.query("DELETE FROM `guilds` WHERE `id` = " .. id .. ";")
                    end
                end
            end
        end
    end
 
    db.query("UPDATE `players` SET `online` = 0 WHERE `world_id` = 0;")
    return true
end
 
function onGlobalSave()
    if(getGameState() ~= GAMESTATE_CLOSING) then
        return onStartup()
    end
 
    return true
end
 
Back
Top