Ir para conteúdo
  • 0

Deletando players inativos banco de dados.


ShockZz

Pergunta

Boa tarde pessoal, estou em busca de um script 8.6 tfs 0.4 para deletar players que não loguem na sua conta por TAL quantidade de dias.

 

Eu encontrei esse script aqui.

 

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

 

 

Que faz delete da DB dos players pela quantidade de dias e leveis informados no mesmo.

 

Porém, esse script, se executado, não vai apagar também os samples chares? :|

 

Pois não há nenhuma exceção nele, para que não seja feito isso...

 

 

Obrigado, aguardando retorno..

 

 

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Cara, isso se chama query.

 

Para deletar TODOS os players, menos os Acc Man e os Samples, execute essa:

DELETE FROM `players` WHERE NOT `players`.`name` IN ("Account Manager", "Rook Sample", "Sorcerer Sample", "Druid Sample", "Paladin Sample", "Knight Sample");

Se você quiser usar a sua query:

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

Como voce mesmo disse, isso pode fazer com que os samples e o Acc Man sejam deletados.

 

Se forem deletados, basta você executar essa:

INSERT INTO `players` (`id`, `name`, `world_id`, `group_id`, `account_id`, `level`, `vocation`, `health`, `healthmax`, `experience`, `lookbody`, `lookfeet`, `lookhead`, `looklegs`, `looktype`, `lookaddons`, `maglevel`, `mana`, `manamax`, `manaspent`, `soul`, `town_id`, `posx`, `posy`, `posz`, `conditions`, `cap`, `sex`, `lastlogin`, `lastip`, `save`, `skull`, `skulltime`, `rank_id`, `guildnick`, `lastlogout`, `blessings`, `balance`, `stamina`, `direction`, `loss_experience`, `loss_mana`, `loss_skills`, `loss_containers`, `loss_items`, `premend`, `online`, `marriage`, `promotion`, `deleted`, `description`, `created`, `nick_verify`, `old_name`, `hide_char`, `worldtransfer`, `comment`, `show_outfit`, `show_eq`, `show_bars`, `show_skills`, `show_quests`) VALUES
(1, 'Rook Sample', 0, 1, 1, 1, 0, 150, 150, 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 50, 50, 7, '', 400, 0, 0, 0, 0, 0, 0, 0, '', 0, 0, 0, 201660000, 0, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, '', 0, 0, '', 1, 0, '', 1, 1, 1, 1, 1),
(2, 'Sorcerer Sample', 0, 1, 1, 8, 1, 185, 185, 0, 0, 0, 0, 0, 128, 0, 0, 35, 35, 0, 0, 2, 0, 0, 0, '', 600, 0, 0, 0, 0, 0, 0, 0, '', 0, 0, 0, 201660000, 0, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, '', 0, 0, '', 1, 0, '', 1, 1, 1, 1, 1),
(3, 'Druid Sample', 0, 1, 1, 8, 2, 185, 185, 0, 0, 0, 0, 0, 128, 0, 0, 35, 35, 0, 0, 2, 0, 0, 0, '', 600, 0, 1302858859, 16777343, 0, 0, 0, 0, '', 0, 0, 0, 201660000, 0, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, '', 0, 0, '', 1, 0, '', 1, 1, 1, 1, 1),
(4, 'Paladin Sample', 0, 1, 1, 8, 3, 185, 185, 0, 0, 0, 0, 0, 128, 0, 0, 35, 35, 0, 0, 2, 0, 0, 0, '', 600, 0, 0, 0, 0, 0, 0, 0, '', 0, 0, 0, 201660000, 0, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, '', 0, 0, '', 1, 0, '', 1, 1, 1, 1, 1),
(5, 'Knight Sample', 0, 1, 1, 8, 4, 185, 185, 0, 0, 0, 0, 0, 128, 0, 0, 35, 35, 0, 0, 2, 0, 0, 0, '', 600, 0, 0, 0, 0, 0, 0, 0, '', 0, 0, 0, 201660000, 0, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, '', 0, 0, '', 1, 0, '', 1, 1, 1, 1, 1);

Espero que sirva pra algo...

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado Alex,

 

Assim, gostaria de executar a minha query mas sem deletar os samples e acc manager. É possível você me passar uma única query que faça isto?

 

Não desejo apagar todos os players não, somente os que selecionei conforme o tempo do login mesmo.

 

Abraço.

Link para o comentário
Compartilhar em outros sites

  • 0
DELETE FROM `players` WHERE level < 50 AND lastlogin < UNIX_TIMESTAMP() - 20*24*60*60 WHERE NOT `players`.`name` IN ("Account Manager", "Rook Sample", "Sorcerer Sample", "Druid Sample", "Paladin Sample", "Knight Sample");

Pode ser que funcione...recomendo que você crie um backup da DB e tente.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...