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

GlobalEvent Guild Clean

pugamoline

uint32_t patch_mem(char *
Joined
Nov 15, 2011
Messages
189
Reaction score
19
hi :)

this script remove inactive players from guild at 7 days.


Lua:
-- [[> Automated Remove Inactive Players From Guild //PUGAMOLINE <]] --

function getLastLoginDiff(name) 
    if type(name) ~= "string" then 
        return name 
    end 
     
    local res = db.getResult("SELECT `lastlogin` FROM `players` WHERE `name` = '"..name.."';") 
    if res:getID() ~= -1 then 
        return os.time()-res:getDataInt('lastlogin') 
    end 
end 

local days = 7

function onStartup() 
    local guild = db.getResult("SELECT `id`, `ownerid` FROM `guilds`;") 
    if guild:getID() == -1 then 
        return true 
    end 
    repeat 
        local id, owner = guild:getDataInt("id"), guild:getDataInt("ownerid") 
        local diff = getLastLoginDiff(getPlayerNameByGUID(owner)) 
        if diff >= 7*24*60*60 then 
            db.executeQuery("DELETE FROM `guilds` WHERE `id` = "..id..";") 
        end 
    until not(guild:next()) 
    guild:free() 
    return true 
end

<globalevent name="guildclean" type="start" event="script" value="guildclean.lua"/>

Rep me ++
 
Changing the variable 'days' won't affect the time limit to remove characters fron guild.

Should be like this
Lua:
local days = 7
 
function onStartup() 
    local guild = db.getResult("SELECT `id`, `ownerid` FROM `guilds`;") 
    if guild:getID() == -1 then 
        return true 
    end 
    repeat 
        local id, owner = guild:getDataInt("id"), guild:getDataInt("ownerid") 
        local diff = getLastLoginDiff(getPlayerNameByGUID(owner)) 
        if diff >= days*24*60*60 then 
            db.executeQuery("DELETE FROM `guilds` WHERE `id` = "..id..";") 
        end 
    until not(guild:next()) 
    guild:free() 
    return true 
end
 
please help error

[30/6/2012 10:11:37] [Error - GlobalEvent Interface]
[30/6/2012 10:11:37] data/globalevents/scripts/guildclean.lua:eek:nStartup
[30/6/2012 10:11:37] Description:
[30/6/2012 10:11:37] (luaGetPlayerNameByGUID) Player not found

[30/6/2012 10:11:37] [Error - GlobalEvent Interface]
[30/6/2012 10:11:37] data/globalevents/scripts/guildclean.lua:eek:nStartup
[30/6/2012 10:11:37] Description:
[30/6/2012 10:11:37] data/globalevents/scripts/guildclean.lua:24: attempt to compare number with nil
[30/6/2012 10:11:37] stack traceback:
[30/6/2012 10:11:37] data/globalevents/scripts/guildclean.lua:24: in function <data/globalevents/scripts/guildclean.lua:16>
 
Paste your script here, since you have probably changed something.
 
Back
Top