✅ scrip reverscrip

destroyer231

Mordragor Chronicles
Member
Messages
10
Points
128
hola buenas tardes me podrian ayudar a convertir este escrip a reverscrip porfavor ya q lo ocupo por q mi ot tiene muchas cuentas ybplayer y no todos se conectan

Code:
-- <globalevent type="startup" name="CleanDatabase" script="cleanDatabase.lua" />

--[[
    Este script realiza limpezas na database toda vez que o servidor é iniciado, com o intuito principal de não sobrecarrega-lá.
    Ele funciona conforme a configuração:
        - Deletando personagens inativos há X meses.
        - Deletando contas que estão vazias (que não tem personagens criados) há X meses.
        - Deixando as casas livres caso o seu dono não entre no jogo por mais de X dias.
        - Deletando os invites de casas feitos por ex-moradores caso a casa não tenha dono.
        - Deletando guilds que foram criadas há X dias e que tem menos de Y membros.
    Crédito: luanluciano93, Leu e Cjaker.
]]--

local inactiveMonthsToDeleteCharacter = 1 -- quantos meses o player precisa ficar inativo para ser deletado.
local emptyAccountMonths = 1 -- quantos meses uma conta precisa ficar sem nenhum character criado para ser deletada.
local inactiveDaysToCleanHouse = 7 -- quantos dias o player precisa ficar inativo para perder a house.
local inactiveDaysToCleanGuildWithFewPlayers = 10 -- quantos dias após a criação da guild irá verificar a quantidade mínima de players.
local minimumGuildMembers = 5 -- quantidade minima de membros para a guild não entrar na verificação.

local function executeDatabase(fromClause)
    local totalClear = 0
    local resultId = db.storeQuery("SELECT COUNT(*) AS `count` FROM ".. fromClause)
    if resultId ~= false then
        totalClear = result.getNumber(resultId, 'count')
        result.free(resultId)
        if totalClear > 0 then
            db.query("DELETE FROM ".. fromClause)
        end
    end
    return totalClear
end

local function doCheckInactivePlayer() -- deleta automaticamente o dados das tabelas "houses, player_items, player_depotitems, player_deaths, guilds, player_storage"
    local timeStamp = os.time() - (86400 * (inactiveMonthsToDeleteCharacter * 30))
    local fromClause = "`players` WHERE `group_id` = 1 AND lastlogin <= ".. timeStamp
    return executeDatabase(fromClause)
end

local function doCheckEmptyAccounts() -- deleta automaticamente o dados das tabelas  "player_viplist"
    local timeStamp = os.time() - (86400 * (emptyAccountMonths * 30))
    local fromClause = "`accounts` WHERE `accounts`.`creation` <= ".. timeStamp .." AND NOT EXISTS (SELECT `id` FROM `players` WHERE `accounts`.`id` = `players`.`account_id`)"
    return executeDatabase(fromClause)
end

local function doCheckInactiveHouses()
    local timeStamp = os.time() - (86400 * (inactiveDaysToCleanHouse * 24))
    local totalClear = 0
  
    local resultId = db.storeQuery("SELECT `houses`.`owner`, `houses`.`id` FROM `houses`, `players` WHERE `houses`.`owner` != 0 AND `houses`.`owner` = `players`.`id` AND `players`.`lastlogin` <= " .. timeStamp .. ";")
    if resultId ~= false then       
        repeat
            local owner = result.getNumber(resultId, "owner")
            local houseId = result.getNumber(resultId, "id")
            local house = House(houseId)

            if house and (owner > 0) then
                house:setOwnerGuid(0)
                totalClear = totalClear + 1
            end
        until not result.next(resultId)
        result.free(resultId)
    end
    return totalClear
end

local function doCheckInactiveHouseLists() -- Apagando "house_lists" do player
    local fromClause = "`house_lists` WHERE EXISTS (SELECT `id` FROM `houses` WHERE `house_lists`.`house_id` = `houses`.`id` AND `houses`.`owner` = 0)"
    return executeDatabase(fromClause)
end

local function doCheckInactiveGuilds() -- deleta automaticamente o dados das tabelas  "guild_invites, guild_membership, guild_ranks"
    local timeStamp = os.time() - (86400 * (inactiveDaysToCleanGuildWithFewPlayers * 24))
    local fromClause = "`guilds` WHERE `guilds`.`creationdata` <= ".. timeStamp .." AND (SELECT COUNT(*) from `guild_membership` WHERE `guild_membership`.`guild_id` = `guilds`.`id`) < " .. minimumGuildMembers .. ""
    return executeDatabase(fromClause)
end

-- Executando as funções de limpeza ao iniciar o servidor.
function onStartup()
    print("[[ DATABASE CLEAN ]]")

    local inactivePlayer = doCheckInactivePlayer()
    if inactivePlayer > 0 then
        print(">> ".. inactivePlayer .. " deleted inactive players.")
    end

    local emptyAccounts = doCheckEmptyAccounts()
    if emptyAccounts > 0 then
        print(">> ".. emptyAccounts .." empty deleted accounts.")
    end

    local inactiveHouses = doCheckInactiveHouses()
    if inactiveHouses > 0 then
        print(">> ".. inactiveHouses .." houses that were expropriated.")
    end

    local inactiveHouseLists = doCheckInactiveHouseLists()
    if inactiveHouseLists > 0 then
        print(">> ".. inactiveHouseLists .." deleted inactive house lists.")
    end

    local inactiveGuilds = doCheckInactiveGuilds()
    if inactiveGuilds > 0 then
        print(">> ".. inactiveGuilds .." deleted inactive guilds.")
    end

    addEvent(saveServer, 10000)
end
 
Last edited by a moderator:
Solution
Prueba:

local dleDb = GlobalEvent("dleDb")
local inactiveMonthsToDeleteCharacter = 1 -- quantos meses o player precisa ficar inativo para ser deletado.
local emptyAccountMonths = 1 -- quantos meses uma conta precisa ficar sem nenhum character criado para ser deletada.
local inactiveDaysToCleanHouse = 7 -- quantos dias o player precisa ficar inativo para perder a house.
local inactiveDaysToCleanGuildWithFewPlayers = 10 -- quantos dias após a criação da guild irá verificar a quantidade mínima de players.
local minimumGuildMembers = 5 -- quantidade minima de membros para a guild não entrar na verificação.

local function dleDb.executeDatabase(fromClause)
local totalClear = 0
local resultId = db.storeQuery("SELECT COUNT(*) AS...
Prueba:

local dleDb = GlobalEvent("dleDb")
local inactiveMonthsToDeleteCharacter = 1 -- quantos meses o player precisa ficar inativo para ser deletado.
local emptyAccountMonths = 1 -- quantos meses uma conta precisa ficar sem nenhum character criado para ser deletada.
local inactiveDaysToCleanHouse = 7 -- quantos dias o player precisa ficar inativo para perder a house.
local inactiveDaysToCleanGuildWithFewPlayers = 10 -- quantos dias após a criação da guild irá verificar a quantidade mínima de players.
local minimumGuildMembers = 5 -- quantidade minima de membros para a guild não entrar na verificação.

local function dleDb.executeDatabase(fromClause)
local totalClear = 0
local resultId = db.storeQuery("SELECT COUNT(*) AS `count` FROM ".. fromClause)
if resultId ~= false then
totalClear = result.getNumber(resultId, 'count')
result.free(resultId)
if totalClear > 0 then
db.query("DELETE FROM ".. fromClause)
end
end
return totalClear
end

local function dleDb.doCheckInactivePlayer() -- deleta automaticamente o dados das tabelas "houses, player_items, player_depotitems, player_deaths, guilds, player_storage"
local timeStamp = os.time() - (86400 * (inactiveMonthsToDeleteCharacter * 30))
local fromClause = "`players` WHERE `group_id` = 1 AND lastlogin <= ".. timeStamp
return executeDatabase(fromClause)
end

local function dleDb.doCheckEmptyAccounts() -- deleta automaticamente o dados das tabelas "player_viplist"
local timeStamp = os.time() - (86400 * (emptyAccountMonths * 30))
local fromClause = "`accounts` WHERE `accounts`.`creation` <= ".. timeStamp .." AND NOT EXISTS (SELECT `id` FROM `players` WHERE `accounts`.`id` = `players`.`account_id`)"
return executeDatabase(fromClause)
end

local function dleDb.doCheckInactiveHouses()
local timeStamp = os.time() - (86400 * (inactiveDaysToCleanHouse * 24))
local totalClear = 0

local resultId = db.storeQuery("SELECT `houses`.`owner`, `houses`.`id` FROM `houses`, `players` WHERE `houses`.`owner` != 0 AND `houses`.`owner` = `players`.`id` AND `players`.`lastlogin` <= " .. timeStamp .. ";")
if resultId ~= false then
repeat
local owner = result.getNumber(resultId, "owner")
local houseId = result.getNumber(resultId, "id")
local house = House(houseId)

if house and (owner > 0) then
house:setOwnerGuid(0)
totalClear = totalClear + 1
end
until not result.next(resultId)
result.free(resultId)
end
return totalClear
end

local function dleDb.doCheckInactiveHouseLists() -- Apagando "house_lists" do player
local fromClause = "`house_lists` WHERE EXISTS (SELECT `id` FROM `houses` WHERE `house_lists`.`house_id` = `houses`.`id` AND `houses`.`owner` = 0)"
return executeDatabase(fromClause)
end

local function dleDb.doCheckInactiveGuilds() -- deleta automaticamente o dados das tabelas "guild_invites, guild_membership, guild_ranks"
local timeStamp = os.time() - (86400 * (inactiveDaysToCleanGuildWithFewPlayers * 24))
local fromClause = "`guilds` WHERE `guilds`.`creationdata` <= ".. timeStamp .." AND (SELECT COUNT(*) from `guild_membership` WHERE `guild_membership`.`guild_id` = `guilds`.`id`) < " .. minimumGuildMembers .. ""
return executeDatabase(fromClause)
end

-- Executando as funções de limpeza ao iniciar o servidor.
function onStartup()
print("[[ DATABASE CLEAN ]]")

local inactivePlayer = doCheckInactivePlayer()
if inactivePlayer > 0 then
print(">> ".. inactivePlayer .. " deleted inactive players.")
end

local emptyAccounts = doCheckEmptyAccounts()
if emptyAccounts > 0 then
print(">> ".. emptyAccounts .." empty deleted accounts.")
end

local inactiveHouses = doCheckInactiveHouses()
if inactiveHouses > 0 then
print(">> ".. inactiveHouses .." houses that were expropriated.")
end

local inactiveHouseLists = doCheckInactiveHouseLists()
if inactiveHouseLists > 0 then
print(">> ".. inactiveHouseLists .." deleted inactive house lists.")
end

local inactiveGuilds = doCheckInactiveGuilds()
if inactiveGuilds > 0 then
print(">> ".. inactiveGuilds .." deleted inactive guilds.")
end

addEvent(saveServer, 10000)
end
dleDb:register()[/CODE]

Sino prueba:

local dleDb = GlobalEvent("dleDb")
local inactiveMonthsToDeleteCharacter = 1 -- quantos meses o player precisa ficar inativo para ser deletado.
local emptyAccountMonths = 1 -- quantos meses uma conta precisa ficar sem nenhum character criado para ser deletada.
local inactiveDaysToCleanHouse = 7 -- quantos dias o player precisa ficar inativo para perder a house.
local inactiveDaysToCleanGuildWithFewPlayers = 10 -- quantos dias após a criação da guild irá verificar a quantidade mínima de players.
local minimumGuildMembers = 5 -- quantidade minima de membros para a guild não entrar na verificação.

local function dleDb.executeDatabase(fromClause)
local totalClear = 0
local resultId = db.storeQuery("SELECT COUNT(*) AS `count` FROM ".. fromClause)
if resultId ~= false then
totalClear = result.getNumber(resultId, 'count')
result.free(resultId)
if totalClear > 0 then
db.query("DELETE FROM ".. fromClause)
end
end
return totalClear
end

local function doCheckInactivePlayer() -- deleta automaticamente o dados das tabelas "houses, player_items, player_depotitems, player_deaths, guilds, player_storage"
local timeStamp = os.time() - (86400 * (inactiveMonthsToDeleteCharacter * 30))
local fromClause = "`players` WHERE `group_id` = 1 AND lastlogin <= ".. timeStamp
return executeDatabase(fromClause)
end

local function doCheckEmptyAccounts() -- deleta automaticamente o dados das tabelas "player_viplist"
local timeStamp = os.time() - (86400 * (emptyAccountMonths * 30))
local fromClause = "`accounts` WHERE `accounts`.`creation` <= ".. timeStamp .." AND NOT EXISTS (SELECT `id` FROM `players` WHERE `accounts`.`id` = `players`.`account_id`)"
return executeDatabase(fromClause)
end

local function doCheckInactiveHouses()
local timeStamp = os.time() - (86400 * (inactiveDaysToCleanHouse * 24))
local totalClear = 0

local resultId = db.storeQuery("SELECT `houses`.`owner`, `houses`.`id` FROM `houses`, `players` WHERE `houses`.`owner` != 0 AND `houses`.`owner` = `players`.`id` AND `players`.`lastlogin` <= " .. timeStamp .. ";")
if resultId ~= false then
repeat
local owner = result.getNumber(resultId, "owner")
local houseId = result.getNumber(resultId, "id")
local house = House(houseId)

if house and (owner > 0) then
house:setOwnerGuid(0)
totalClear = totalClear + 1
end
until not result.next(resultId)
result.free(resultId)
end
return totalClear
end

local function doCheckInactiveHouseLists() -- Apagando "house_lists" do player
local fromClause = "`house_lists` WHERE EXISTS (SELECT `id` FROM `houses` WHERE `house_lists`.`house_id` = `houses`.`id` AND `houses`.`owner` = 0)"
return executeDatabase(fromClause)
end

local function doCheckInactiveGuilds() -- deleta automaticamente o dados das tabelas "guild_invites, guild_membership, guild_ranks"
local timeStamp = os.time() - (86400 * (inactiveDaysToCleanGuildWithFewPlayers * 24))
local fromClause = "`guilds` WHERE `guilds`.`creationdata` <= ".. timeStamp .." AND (SELECT COUNT(*) from `guild_membership` WHERE `guild_membership`.`guild_id` = `guilds`.`id`) < " .. minimumGuildMembers .. ""
return executeDatabase(fromClause)
end

-- Executando as funções de limpeza ao iniciar o servidor.
function onStartup()
print("[[ DATABASE CLEAN ]]")

local inactivePlayer = doCheckInactivePlayer()
if inactivePlayer > 0 then
print(">> ".. inactivePlayer .. " deleted inactive players.")
end

local emptyAccounts = doCheckEmptyAccounts()
if emptyAccounts > 0 then
print(">> ".. emptyAccounts .." empty deleted accounts.")
end

local inactiveHouses = doCheckInactiveHouses()
if inactiveHouses > 0 then
print(">> ".. inactiveHouses .." houses that were expropriated.")
end

local inactiveHouseLists = doCheckInactiveHouseLists()
if inactiveHouseLists > 0 then
print(">> ".. inactiveHouseLists .." deleted inactive house lists.")
end

local inactiveGuilds = doCheckInactiveGuilds()
if inactiveGuilds > 0 then
print(">> ".. inactiveGuilds .." deleted inactive guilds.")
end

addEvent(saveServer, 10000)
end
dleDb:register()[/CODE]
 
Solution

Tibia Server Lists

#1 FEATURED US Ultron OT 1,530 / 5,000Online EXPStages PROTO8.6 ENGINEUltron OT RANK PTS5.9 +100% VOTES0 #2 FEATURED US Nefera 0 / 0Offline EXPx1 PROTO15.20 ENGINECrystal Server RANK PTS5.1 +100% VOTES0 #3 FEATURED ES Deixis 1 / 0Online EXPStages PROTO1098 ENGINETFS RANK PTS3.7 +100% VOTES1 #4 FEATURED ES Maeli 5 / 150Online EXPx10 PROTO10.98 ENGINETFS 1.4.2 RANK PTS3.7 +100% VOTES0 #5 MX Marlboro War 32 / 300Online EXP999 PROTO8.6 ENGINETFS 0.3.7 RANK PTS5.5 -33% VOTES0 #6 BR Tibinha YurOts 17 / 150Online EXPStages PROTO7.4 ENGINEYurOTS 1.5 RANK PTS5.2 -14% VOTES0 #7 US Halera 3 / 0Online EXPStages PROTO10.98 ENGINETFS 1.4.2 RANK PTS4.9 -83% VOTES0 #8 BR Exordion Legacy 51 / 2,000Online EXPx2 PROTO7.72 ENGINEExordion RANK PTS4.9 +100% VOTES0 #9 PL Lubelski 7 / 1,000Online EXP200 PROTO7.6 ENGINELubelskiOTS 2.56.0 RANK PTS4.6 -15% VOTES0 #10 ES JustRL FreeTC 1530 45 / 250Online EXPx2 PROTO15.30 ENGINECrystal Server RANK PTS4.3 +100% VOTES0 #11 DE DBU Online 0 / 400Online EXP11 PROTO8.6 ENGINETFS 1.0 RANK PTS4.3 +100% VOTES0 #12 PL ReWar 0 / 2,000Online EXPcustom PROTO8.6 ENGINEOther RANK PTS4.3 0% VOTES0 #13 PL Velesta 0 / 1,000Offline EXP20 PROTO8.0 ENGINETFS 1.4.2 RANK PTS4.3 -99% VOTES0 #14 ES Farlia Global 2026 0 / 333Offline EXPx5 PROTO15.25 ENGINEFarliaServ 1.525 RANK PTS3.9 -22% VOTES0 #15 SE MortalisOT Custom 0 / 500Offline EXP100x -1.2x PROTO10.98 ENGINEMortalisOT V1 RANK PTS3.8 +100% VOTES0 #16 US Rommania 0 / 500Online EXPstages, x10 PROTO7.4 ENGINETFS 0.4 RANK PTS3.6 +100% VOTES0 #17 US BerethaOnline 1 / 2,000Online EXPStages PROTO10.98 ENGINETFS RANK PTS3.5 +100% VOTES0
Top