Eai, fiz um globalevents que apaga os chars que estão inativos a 60 dias.
Em globalevents/scripts crie um arquivo e nele coloque isto:
--< Created by Digaao for xtibia >--
function onTimer()
local rguild = true -- se o player for dono de uma guild apagar a guild
local nologin = false -- deletar quem nunca logou (nao importa o tempo)
local time = 60 * 24 * 60 * 60 -- tempo em segundos de inatividade para deletar
local nlogin = ""
if nologin == false then
nlogin = " AND `p`.`lastlogin` > 0 "
end
local tmp = db.getResult("SELECT `p`.`id` AS id, `g`.`id` AS guild, `g`.`ownerid` AS `dono` FROM `players` p LEFT JOIN `guild_ranks` gr ON `p`.`rank_id` = `gr`.`id` LEFT JOIN `guilds` g ON `gr`.`guild_id` = `g`.`id` WHERE `p`.`lastlogin` < " .. os.time() - time .. nlogin .. ";")
if tmp:getID() ~= -1 then
repeat
local guid = tmp:getDataInt("id")
local guild = tmp:getDataInt("guild")
local dono = tmp:getDataInt("dono")
local house = getHouseByPlayerGUID(guid)
if type(house) == "number" and house > 0 then
cleanHouse(house)
setHouseOwner(house, NO_OWNER_PHRASE,true)
end
db.executeQuery("DELETE FROM player_skills WHERE player_id = " .. guid .. ";")
db.executeQuery("DELETE FROM guild_invites WHERE player_id = " .. guid .. ";")
db.executeQuery("DELETE FROM player_items WHERE player_id = " .. guid .. ";")
db.executeQuery("DELETE FROM player_depotitems WHERE player_id = " .. guid .. ";")
db.executeQuery("DELETE FROM player_spells WHERE player_id = " .. guid .. ";")
db.executeQuery("DELETE FROM player_storage WHERE player_id = " .. guid .. ";")
db.executeQuery("DELETE FROM player_viplist WHERE player_id = " .. guid .. ";")
db.executeQuery("DELETE FROM player_deaths WHERE player_id = " .. guid .. ";")
if rguild == true and guid == dono then
local tg = db.getResult("SELECT id FROM guild_ranks WHERE guild_id = " .. guild .. ";")
if tg:getID() ~= -1 then
repeat
local rank = tg:getDataInt("id")
db.executeQuery("UPDATE players SET rank_id = 0 AND guildnick = '' WHERE rank_id = " .. rank .. ";")
until not tg:next()
tg:free()
end
db.executeQuery("DELETE FROM guild_ranks WHERE guild_id = " .. guild .. ";")
db.executeQuery("DELETE FROM guild_invites WHERE guild_id = " .. guild .. ";")
db.executeQuery("DELETE FROM guilds WHERE id = " .. guild .. ";")
end
db.executeQuery("DELETE FROM players WHERE id = " .. guid .. ";")
until not tmp:next()
tmp:free()
end
return true
end
E no arquivo globalevents.xml coloque esta tag:
<globalevent name="inativos" time="00:00" event="script" value="nome do seu script.lua"/>
Bom é isso, lembrando que em alguns ots algumas coisas mudam, se der algum erro como:
[Warning - Event::loadScript] Event onTime not found
Vá no script procure function onTimer() e troque por function onTime().
E se ocorrer um erro assim:
attempt to call field 'executeQuery' (a nil value)
Vá no script e troque todos os db.executeQuery por db.query
Bom é isso 
As Vezes construímos sonhos em cima de grandes pessoas, o tempo pas-
sa e descobrimos que grande mesmo eram os sonhos e as pessoas pe-
quenas demais para torná-los reais!