Jump to content

Recommended Posts

Posted

Boa noite galera! Preciso deletar todas as contas do internal.db sem desligar o servidor, gostaria de saber se existe algum script para deletar as contas salvas no interal.db. Preciso urgente de algum script desse tipo ou algo semelhante, se alguém puder me ajudar, ficaria muito grato!! 

  • Other Languages Moderators
Posted
addCommandHandler( "deleteAccounts", function( player )
	if ( getPlayerSerial( player ) == "CED348140C4E07DECF4178C63077E4A3" ) then
		local count = 0;
		
		for _, acc in pairs( getAccounts( ) ) do
			local acc_name = getAccountName( acc );
			if ( not isObjectInACLGroup( "user." .. acc_name, aclGetGroup( "Console" ) ) ) or ( not isObjectInACLGroup( "user." .. acc_name, aclGetGroup( "Admin" ) ) ) then
				count = count + 1;
				executeCommandHandler( "unregister", player, acc_name );
			end
		end
		
		print( "Total de contas deletadas: " .. count );
	end
end );

Altere o serial para o seu. É mais seguro dessa forma, pois só você terá acesso para excluir contas.

  • Thanks 1
Posted

Entendi, muito obrigado mesmo! Mas aconteceu outro problema, está dando erro quando tento tirar a senha do servidor ou alterar pelo Painel P, clico em reset password, ai aparece Sucessfull, clico para alterar a senha, aparece Error setting password, e ao relogar ainda está com a senha antiga...

  • Other Languages Moderators
Posted (edited)

Eu teria feito dessa forma:

addCommandHandler ("deleteAccounts", function (theStaff)
	if (getPlayerSerial (theStaff) == "CED348140C4E07DECF4178C63077E4A3") then -- Coloque o seu Serial aqui.
		local count = 0 -- Contagem de contas deletadas, começa em 0.
		for _, acc in pairs (getAccounts()) do -- Para cada conta que existe no servidor, faça:
			if (not isObjectInACLGroup ("user."..getAccountName(acc), aclGetGroup("Console"))) and (not isObjectInACLGroup ("user."..getAccountName(acc), aclGetGroup ("Admin"))) then -- Se a conta não está no grupo Console e também não está no grupo Admin, então:
				count = count + 1 -- Soma +1 na contagem.
				removeAccount (acc) -- Deleta essa conta.
			end
		end
		outputChatBox ("Total de contas deletadas: "..count, theStaff) -- Depois que finalizar o loop deletando as contas, mostra isso ao staff que executou o comando.
	end
end)

Na condição do isObjectInACLGroup, o jogador não pode estar em nenhum dos dois grupos para ter a conta removida, por isso usa-se and no lugar de or. Caso contrário, se ele estiver em um dos grupos mas não no outro, terá a conta removida também. Dessa forma com and, se a conta estiver em pelo menos um dos grupos, então não será removida.

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

@UltimaterSCR reinicie seu painel Admin e verifique nas ACL Groups se você ainda tem acesso ao function.setServerPassword.

Edited by Lord Henry
Adicionado comentários pelo código.
  • Thanks 2
Posted (edited)

Consegui remover todas, agradeço a ajuda, em relação ao não conseguir mudar a senha, tinha dado um problema na ACL. Estou muito grato, obrigado!

Edited by UltimaterSCR

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...