Ir para conteúdo

Leu

Membro
  • Registro em

  • Última visita

Tudo que Leu postou

  1. Pessoal, trocar pra int vai adicionar um espaço considerável no banco ependendo da quantidade de itens. Minha sugestão é trocar o tipo pra SMALLINT UNSIGNED. Mantemos a quantidade de bytes por registro e nos livramos do problema de overflow do ids
  2. tava errado mesmo, faltando 1 palavrinha lá no DELETE. Já corrigi, valeu
  3. Usando o script do Cjaker como base (e a descrição do tópico dele, na cara dura mesmo!), otimizei as operações no banco de dados (tava muito zuado) e adicionei um range de accounts protegidas pra evitar apagar os gms/samples/contas de spoofers do otservlist/etc... ; Salve galera, mais um script para quem está precisando dar aquela limpada no banco de dados e otimizar o Servidor. -- Especificações -- TFS 1.1+ Objetivo é limpar as contas inativas/vazias e os players Inativos assim removendo os usuários que estão inativos e ocupando espaço no banco de dados. -- Instruções -- Em globalevents.xml insira essa linha <globalevent type="startup" name="CleanDatabases" script="cleandatabase.lua" /> Crie um script chamado cleandatabase.lua na pasta globalevents/scripts e cole isso dentro dele. --- --- Generated by EmmyLua(https://github.com/EmmyLua) --- Created by leu. --- DateTime: 04/04/18 18:42 --- --[[ Clean Database by Cjaker | Refactor and SQL Optimizations by Leu ]]-- local inactiveMonths = 1 --> Quantos meses o player ficou inativo local createdMonths = 1 --> Quantos meses a conta foi criada e não possui character criado. local protectedAccIdEnd = 20 --ignorar accounts com id <= 20 local function clearInactivePlayers() local inactiveTimestamp = os.time() - (86400 * (inactiveMonths*30)) local totalClear=0 local fromClause = "`players` WHERE `account_id` > ".. protectedAccIdEnd .." AND lastlogin <= "..inactiveTimestamp local resultId = db.storeQuery("SELECT COUNT(*) as num_inativos FROM "..fromClause) if resultId ~= false then totalClear = result.getDataInt(resultId, 'num_inativos') result.free(resultId) if totalClear > 0 then db.query("DELETE FROM "..fromClause) end end return totalClear end local function clearEmptyAccounts() local totalClear = 0 local createdTimestamp = os.time() - (86400 * (createdMonths*30)) local fromClause = "`accounts` ACCS WHERE `id` > ".. protectedAccIdEnd .." AND `creation` <= "..createdTimestamp.." AND (SELECT COUNT(*) from `players` WHERE `account_id` = ACCS.`id`) > 0" local resultId = db.storeQuery("SELECT COUNT(*) as num_inativas FROM "..fromClause) if resultId~= false then totalClear = result.getDataInt(resultId,'num_inativas') result.free(resultId) if totalClear > 0 then db.query("DELETE ACCS FROM "..fromClause) end end return totalClear end function onStartup() print('>> ' ..clearInactivePlayers().. " players inativos deletados.") print('>> ' ..clearEmptyAccounts().. " contas vazias deletadas.") end é isso senhores, paganois, flw! EDIT 24-04-2018: correção DELETE accs QUERY
  4. .

    Leu respondeu ao post em um tópico de Jaurez em Arquivo Público
    Galera, há uma GRAVE falha no login.php, além de ser possível fazer sql injection no campo de login, ela não testa o password. Já alertei o OP há mais de 15 dias, mas nenhuma correção foi feita. Sendo assim, torno pública a falha e NÃO RECOMENDO O USO DO LOGIN.PHP PARA O CLIENT 11.
  5. .

    Leu respondeu ao post em um tópico de Jaurez em Arquivo Público
    cara, no config.lua, tem um campo "coinPacketSize"
  6. parece ser um problema com o banco de dados. Que client flash você está utilizando?

Informação Importante

Confirmação de Termo