[Encerrado] Database Com Players Inativos

Jefferson19921992

Suporte
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 02/11/11Posts: 74Char no Tibia: Sarcon Sham

Alguns jogadores, criam conta, e se por acaso não gostam do servidor, eles saem. E assim o servidor vai crescendo... E crescendo...

E chega um ponto que a database fica muito pesado. Tipo: o servidor tem 200 players online, e na database tem 5 mil jogadores.

-----MAIS DA METADE NUNCA MAIS ENTRA NO SERVIDOR----

Preciso de um programa que acabe com isso tipo: um programa que indica qual o ultimo dia que o player logou o char. E no caso se n puder deletar altomaticamente, eu posso deletar manualmente...

Agradescido a quem ajduar... =D

Jefferson

misalgms

MiziM
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/11/08Posts: 20Char no Tibia: God

Qual a sua DB MySQL ou SQLite ?

 

Se for MySQL use query para poder excluir contas com determinadas características, indo no PhpMyAdmin na aba SQL para poder inserir a query.

 

* Deletar players inativos a 20 dias ou leveis 50-.

DELETE FROM players WHERE level < 50 AND lastlogin < UNIX_TIMESTAMP() - 20*24*60*60

 

* Deletar players que nunca logaram.

DELETE FROM `players` WHERE `lastlogin`=0;

 

Para mais comandos tem um topico legal aqui no Xtibia: aqui

Tibia Fast ~ 8.6x

www.tibiafast.com

Jefferson19921992

Suporte
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 02/11/11Posts: 74Char no Tibia: Sarcon Sham

Qual a sua DB MySQL ou SQLite ?

 

Se for MySQL use query para poder excluir contas com determinadas características, indo no PhpMyAdmin na aba SQL para poder inserir a query.

 

* Deletar players inativos a 20 dias ou leveis 50-.

DELETE FROM players WHERE level < 50 AND lastlogin < UNIX_TIMESTAMP() - 20*24*60*60

 

* Deletar players que nunca logaram.

DELETE FROM `players` WHERE `lastlogin`=0;

 

Para mais comandos tem um topico legal aqui no Xtibia: aqui

 

Rapidex a resposta eim!! :D

Eu n tenho site... É SQlite

 

Mais uma!! Eu devo colocar os cmds que vc mandar (se tiver) no talkaction, movements, ou action?

misalgms

MiziM
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/11/08Posts: 20Char no Tibia: God

Mano tem uma talkaction se não me engano e do datapack do emporia da vapus, vou tentar postar aqui para você que com ela da para você executar query in game, num sei se vai rular em SQLite:

 

Em talkactions adicione:

<talkaction log="yes" words="/dbquery" access="6" script="dbquery.lua"/>

 

crie o arquivo dbquery.lua com o codigo:

 

function onSay(cid, words, param)

db.executeQuery(param)

return TRUE
end

 

Assim você tenta in-game:

/dbquery QUERY CODE

Tibia Fast ~ 8.6x

www.tibiafast.com

Jefferson19921992

Suporte
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 02/11/11Posts: 74Char no Tibia: Sarcon Sham

Vlw broo, mas

 

como isso ae funfa?

 

 

 

misalgms

MiziM
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/11/08Posts: 20Char no Tibia: God

Então mano, in-game você no GOD executa o comando /dbquery seguido da query.

Tibia Fast ~ 8.6x

www.tibiafast.com

Jefferson19921992

Suporte
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 02/11/11Posts: 74Char no Tibia: Sarcon Sham

Desculpe, eu sou meio lerdo... Mais eu digito /dbquery seguido >>>query<<<

O que seria? query?

misalgms

MiziM
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/11/08Posts: 20Char no Tibia: God

Query é aquilo que eu te mandei no primeiro post, é um comando para o SQL executar:

 

Exemplo:

Deletar players que nunca logaram.

DELETE FROM `players` WHERE `lastlogin`=0;

Então in-game ficaria assim /dbquery DELETE FROM `players` WHERE `lastlogin`=0

Tibia Fast ~ 8.6x

www.tibiafast.com

Jefferson19921992

Suporte
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 02/11/11Posts: 74Char no Tibia: Sarcon Sham

ah só.. pdc... Mais isso vai deletar os players como?

 

Vo ficar sem resposta???

Leoprotons

Rock nas Veia, e nas Véia tambêm!!!
avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 14/08/10Posts: 186

Adicione um global event usado no elf war.

 

 

 

<globalevent name="cleandb" interval="46200" script="dbclean.lua"/>

 

 

dbclean.lua

 

-- [[> Automated Database Cleanup 1.1 //By Cybermaster <]] --
-- [[> Function getDBPlayersCount() by Elf <]] --
function getDBPlayersCount()
local result = db.getResult("SELECT COUNT(`id`) as `count` FROM `players`;")
local tmp = result:getDataInt("count")
result:free()
return tmp
end
function onStartup()
local DB_BEFORE = getDBPlayersCount()
--In each table, players with below specified level, and days of inactivity will be deleted from db on server startup
local cleanup = {
[1] = {level = 11, time = 5 * 24 * 60 * 60},
[2] = {level = 5000, time = 15 * 24 * 60 * 60},
[3] = {level = 30000, time = 30 * 24 * 60 * 60},
[4] = {level = 50000, time = 60 * 24 * 60 * 60},
[5] = {level = 150000, time = 90 * 24 * 60 * 60}
}
for i = 1, #cleanup do
	db.executeQuery("DELETE FROM `players` WHERE `level` < ".. cleanup[i].level .." AND `id` > 6 AND `group_id` < 2 AND `lastlogin` < UNIX_TIMESTAMP() - ".. cleanup[i].time ..";")
end

local DB_NOW = DB_BEFORE - getDBPlayersCount()
if DB_NOW > 0 then
	local text = ">> [DBCLEANUP] "..DB_NOW.." inactive players have been deleted from database."
	print("" .. text .. "")
	local file = io.open("data/logs/db_cleanup.txt", "a")
	file:write("\n[".. os.date("%d %B %Y %X ", os.time()) .."] "..text.."")
	file:close()
end
return true
end

otserver.png

Jefferson19921992

Suporte
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 02/11/11Posts: 74Char no Tibia: Sarcon Sham

Puxa vlw cara!! Tu eh fera d++

Leoprotons

Rock nas Veia, e nas Véia tambêm!!!
avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 14/08/10Posts: 186

Por nada, bom eu me esqueci de citar que eu coloquei o globalevent pra poder executar de 12 em 12 horas, você pode colocar o tempo que quiser basta transformar o tempo em segundos e colocar aonde esta o numero 46200.

 

Obs: lembre-se que ele não sera execultado caso o servidor não fique on pelo tempo descrito em interval.

otserver.png

pessoa93

avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 20/10/10Posts: 911Char no Tibia: Felipe Pessoa

Duvida sanada, tópico fechado.

---------------

 

Stigal

don't ever stop...
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 28/11/10Posts: 3402Gênero: Masculino
A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.

VI6MDIG.png

 

"O fracasso é a oportunidade de se começar de novo inteligentemente"

Minhas Redes Sociais: Youtube | Página & Grupo | Steam  | Discord Xtibia | Skype: @mrooger

 

OTpanel