Ir para conteúdo

Featured Replies

Postado

.Qual servidor ou website você utiliza como base? 

OTSERVBR CANARY

Qual o motivo deste tópico? 

Olá, tenho os scripts abaixo(nao testados) e gostaria de converter um deles para revscript.

Minha intenção é bloquear o login de IPs com mais de 4 characters online para coincidir com as regras do otservlist.

Obrigado

 

Está surgindo algum erro? Se sim coloque-o aqui. 

Citar

 

 

Você tem o código disponível? Se tiver publique-o aqui: 

local config = {
                max = 3,         -- numero de players permitido com o mesmo ip
                group_id = 1  -- kikar apenas player com o group id 1
}

local accepted_ip_list = {} -- lista dos players permitidos a usar MC, exemplo: {"200.85.3.60", "201.36.5.222"}

local function antiMC(p)
    if #getPlayersByIp(getPlayerIp(p.pid)) >= p.max then
        doRemoveCreature(p.pid)
    end
    return true
end

function onLogin(cid)
    if getPlayerGroupId(cid) <= config.group_id then
        if isInArray(accepted_ip_list,doConvertIntegerToIp(getPlayerIp(cid))) == false then
            addEvent(antiMC, 1000, {pid = cid, max = config.max+1})
        end        
    end    
    return true
end

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

 

Resolvido por Pacera

Ir para solução
  • Respostas 8
  • Visualizações 593
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • luanluciano93
    luanluciano93

    local maxAccPorIp = 4 local creatureevent = CreatureEvent("anti_mc") function creatureevent.onLogin(player) local mc = 0 for _, check in ipairs(Game.getPlayers()) do if player:getIp() == check:g

Postado
local maxAccPorIp = 4

local creatureevent = CreatureEvent("anti_mc")

function creatureevent.onLogin(player)
	local mc = 0
	for _, check in ipairs(Game.getPlayers()) do
		if player:getIp() == check:getIp() then
			mc = mc + 1
			if mc > maxAccPorIp then
				return false
			end
		end
	end
	return true
end

creatureevent:register()

 

Postado
1 hora atrás, Pacera disse:

Muito Obrigado.

Funcionou perfeitamente. Vlwww

 

É possível aparecer uma mensagem na tela informando o porque de estar dando erro na conexão? Ele apenas exibe um erro de login.


No caso, a função onLogin, se ela retornar falso (return false) o jogador nem entra no jogo.

No exemplo que você colocou, o personagem entra no jogo e, assim, é criado um AddEvent para desconectar o jogador após alguns segundos.

O problema é que toda essa preocupação que os OT Admins têm de bloquear o acesso de mais de 4 jogador com o mesmo IP é por conta de regras da OTSERVLIST (que pode te dar BAN de 30 dias da lista, caso isso aconteça)

Não sei ao certo a forma que a OTSERVLIST faz essa verificação, então não posso dizer que você pode liberar a entrada de mais de 4 jogador por IP mesmo que por alguns segundos ... 

Espero que tenha entendido.
 

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo