Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Fala galerinha, eu gostaria de saber se é possível uma script para impedir que 2 players com o MESMO IP, passem no tile, exemplo, tem um tile para um evento e quando este evento tivesse funcionando só permitisse 1 jogador por IP, é possível? Se sim, alguém sabe fazer? obrigado!

Link para o post
Compartilhar em outros sites

Esta é uma mensagem automática! Este tópico foi movido para a área correta.
Pedimos que você leia as regras do fórum.

Spoiler

This is an automated message! This topic has been moved to the correct area.
Please read the forum rules.

 

Link para o post
Compartilhar em outros sites

Nunca fiz script na minha vida mas fiz uma ganbiarra aqui.. tenta ae

 

local config = {
max = 1, -- Número de players permitido com o mesmo IP.
}

local accepted_ip_list = {} -- Lista dos players permitidos passar com o mesmo ip, exemplo: {"200.85.3.60", "201.36.5.222"}

local function antiMC(p)
if #getPlayersByIp(getPlayerIp(p.pid)) >= p.max then
doTeleportThing(cid, fromPosition, TRUE)
doPlayerSendCancel(cid, 'Você não pode estar com MC para passar.')
end
return true
end

function onStepIn(cid, item, position, fromPosition, toPosition)
if isPlayer(cid) and getPlayerLevel(cid) < level 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

Meu primeiro script q dlç '-'

Link para o post
Compartilhar em outros sites
Em 16/11/2016 ás 15:14, Subyth disse:

Nunca fiz script na minha vida mas fiz uma ganbiarra aqui.. tenta ae

 


local config = {
max = 1, -- Número de players permitido com o mesmo IP.
}

local accepted_ip_list = {} -- Lista dos players permitidos passar com o mesmo ip, exemplo: {"200.85.3.60", "201.36.5.222"}

local function antiMC(p)
if #getPlayersByIp(getPlayerIp(p.pid)) >= p.max then
doTeleportThing(cid, fromPosition, TRUE)
doPlayerSendCancel(cid, 'Você não pode estar com MC para passar.')
end
return true
end

function onStepIn(cid, item, position, fromPosition, toPosition)
if isPlayer(cid) and getPlayerLevel(cid) < level 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

Meu primeiro script q dlç '-'

Não deu certo, kkkkkk. Será que tem alguma linha pra bloquear MC sem antes passar pela LIB?

Link para o post
Compartilhar em outros sites

tenta:

 



local config = {
max = 1, -- Número de players permitido com o mesmo IP.
}

local accepted_ip_list = {} -- Lista dos players permitidos passar com o mesmo ip, exemplo: {"200.85.3.60", "201.36.5.222"}

local function antiMC(p)
if #getPlayersByIp(getPlayerIp(p.pid)) >= p.max then
doTeleportThing(cid, fromPosition, TRUE)
doPlayerSendCancel(cid, 'Você não pode estar com MC para passar.')
end
return true
end

function onStepIn(cid, item, position, fromPosition, toPosition)
if isInArray(accepted_ip_list,doConvertIntegerToIp(getPlayerIp(cid))) == false then
addEvent(antiMC, 1000, {pid = cid, max = config.max+1})
end
return true
end

[/CODE]
Editado por Subyth (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 3 weeks later...

tenta isso aq:


function onStepIn(cid, item, position, fromPosition, toPosition)
    if isPlayer(cid) and getPlayerIp(cid) == getPlayerIp(position) then
        return doTeleportThing(cid, fromPosition, false)
    end
    return true
end

Link para o post
Compartilhar em outros sites
51 minutos atrás, Fir3element disse:

tenta isso aq:

 


function onStepIn(cid, item, position, fromPosition, toPosition)
    if isPlayer(cid) and getPlayerIp(cid) == getPlayerIp(position) then
        return doTeleportThing(cid, fromPosition, false)
    end
    return true
end

 

 

E se for uma sala, e não somente uma position? :p

discord.pngDiscord: vankk #7765

Precisando de ajuda? Entre em contato comigo via Discord.

 

Muitos vêm seus muitos dias de glória, mas poucos vêm seus muitos dias de luta.

Link para o post
Compartilhar em outros sites
8 horas atrás, Fir3element disse:

tenta isso aq:

 


function onStepIn(cid, item, position, fromPosition, toPosition)
    if isPlayer(cid) and getPlayerIp(cid) == getPlayerIp(position) then
        return doTeleportThing(cid, fromPosition, false)
    end
    return true
end

 

Ou até mesmo um portal quando nascer?

Link para o post
Compartilhar em outros sites
  • 2 months later...

@Fir3element, sua logica está correta, porém estou certo de que não seria o suficiente para barrar a entrada de novos jogadores caso seja um evento em uma sala ou algo do gênero. Precisamos de uma checagem mais "avançada" aqui.

 

@Tópico

 

Creio que uma das melhores formas de se realizar isso, é realizando uma checagem de quem está participando do evento em questão.

  • Qual evento que é?

Enfim, você pode setar em uma tabela o cid de cada personagem que entrar no evento, e junto com este CID o IP do mesmo. Ao tentar entrar outro personagem com o mesmo ip deverá ter uma checagem dentro desta tabela para verificar se já existe algum jogador com este IP dentro do evento. 

 

Como fazer:

Primeiro você deve declarar uma tabela global onde ficará salvo os dados dos jogadores que entrarão no Evento. Aconselho fazer isso em uma lib. (Estarei assumindo aqui que você utiliza a versão 0.4 ou similar.)

 

Crie ou coloque uma lib qualquer a seguinte declaração:

CHECK_MC = {
	players_cache = {
		--[getPlayerGUID(cid)] = {ip = getPlayerIp(cid)}
	},
}

 

Após feito isso, você deve adicionar nesta tabela todos os jogadores que entrarem no evento em questão. Entra no arquivo de entrada do evento e adicione o seguinte código:

CHECK_MC.players_cache[getPlayerGUID(cid)] = {ip = getPlayerIp(cid)}

PS: Caso o evento seja um teleport que vai aparecer para os jogadores entrar ou um tile, você pode adicionar esta linha no código do arquivo no movements, mas ou menos assim: 

 

function onStepIn(cid, item, position, fromPosition, toPosition)
	if not isPlayer(cid) then
		return true
	end

	doTeleportThing(cid, posiçãoDoEvento)
	CHECK_MC.players_cache[getPlayerGUID(cid)] = {ip = getPlayerIp(cid)}
	return true
end

Feito isso, nossa tabela já está adicionando o CID e o IP de cada jogador que entrou dentro do evento.

Agora devemos adicionar no mesmo script da entrada do evento, uma checagem para ver se dentro da tabela, já não existe um jogador com o mesmo IP. faremos da seguinte forma:

 

for k, v in pairs(CHECK_MC.players_cache) do
	if CHECK_MC.players_cache[k].ip == getPlayerIp(cid) then
		doPlayerSendCancel(cid, 'Você não pode entrar com MC neste evento!')
		return false
	end
end

Você deve adicionar esta checagem antes da ação de teleporta o jogador para dentro do evento.

Em resumo o script de entrada para o evento ficaria mais ou menos assim:

 

function onStepIn(cid, item, position, fromPosition, toPosition)
	if not isPlayer(cid) then
		return true
	end

	for k, v in pairs(CHECK_MC.players_cache) do
		if BATTLE_ENFORCE.players_cache[k].ip == getPlayerIp(cid) then
			doPlayerSendCancel(cid, 'Você não pode entrar com MC neste evento!')
			return false
		end
	end

    	doTeleportThing(cid, posiçãoDoEvento)
  	CHECK_MC.players_cache[getPlayerGUID(cid)] = {ip = getPlayerIp(cid)}
    return true
end

 

@Matk, arruma essa box code<3

Citar

Essa porra de code box buga todo meu código e fica mal identado tnc.

 

Abraços e boa sorte!

 

@This life is filled with hurt

When happiness doesn't work

Trust me and take my hand

When the lights go out you will understand

Link para o post
Compartilhar em outros sites
@Fir3element, sua logica está correta, porém estou certo de que não seria o suficiente para barrar a entrada de novos jogadores caso seja um evento em uma sala ou algo do gênero. Precisamos de uma checagem mais "avançada" aqui.
 
@Tópico
 
Creio que uma das melhores formas de se realizar isso, é realizando uma checagem de quem está participando do evento em questão.
  • Qual evento que é?
Enfim, você pode setar em uma tabela o cid de cada personagem que entrar no evento, e junto com este CID o IP do mesmo. Ao tentar entrar outro personagem com o mesmo ip deverá ter uma checagem dentro desta tabela para verificar se já existe algum jogador com este IP dentro do evento. 
 
Como fazer:
Primeiro você deve declarar uma tabela global onde ficará salvo os dados dos jogadores que entrarão no Evento. Aconselho fazer isso em uma lib. (Estarei assumindo aqui que você utiliza a versão 0.4 ou similar.)
 
Crie ou coloque uma lib qualquer a seguinte declaração:
CHECK_MC = {players_cache = {	--[getPlayerGUID(cid)] = {ip = getPlayerIp(cid)}},}

 
Após feito isso, você deve adicionar nesta tabela todos os jogadores que entrarem no evento em questão. Entra no arquivo de entrada do evento e adicione o seguinte código:

CHECK_MC.players_cache[getPlayerGUID(cid)] = {ip = getPlayerIp(cid)}

PS: Caso o evento seja um teleport que vai aparecer para os jogadores entrar ou um tile, você pode adicionar esta linha no código do arquivo no movements, mas ou menos assim: 
 

function onStepIn(cid, item, position, fromPosition, toPosition)if not isPlayer(cid) thenreturn trueenddoTeleportThing(cid, posiçãoDoEvento)CHECK_MC.players_cache[getPlayerGUID(cid)] = {ip = getPlayerIp(cid)}return trueend

Feito isso, nossa tabela já está adicionando o CID e o IP de cada jogador que entrou dentro do evento.
Agora devemos adicionar no mesmo script da entrada do evento, uma checagem para ver se dentro da tabela, já não existe um jogador com o mesmo IP. faremos da seguinte forma:
 

for k, v in pairs(CHECK_MC.players_cache) doif CHECK_MC.players_cache[k].ip == getPlayerIp(cid) then	doPlayerSendCancel(cid, 'Você não pode entrar com MC neste evento!')return falseendend

Você deve adicionar esta checagem antes da ação de teleporta o jogador para dentro do evento.
Em resumo o script de entrada para o evento ficaria mais ou menos assim:
 

function onStepIn(cid, item, position, fromPosition, toPosition)if not isPlayer(cid) thenreturn trueendfor k, v in pairs(CHECK_MC.players_cache) doif BATTLE_ENFORCE.players_cache[k].ip == getPlayerIp(cid) then		doPlayerSendCancel(cid, 'Você não pode entrar com MC neste evento!')return falseendend   	doTeleportThing(cid, posiçãoDoEvento) 	CHECK_MC.players_cache[getPlayerGUID(cid)] = {ip = getPlayerIp(cid)}return trueend

 
@Matk, arruma essa box code

Essa porra de code box buga todo meu código e fica mal identado tnc.
 
Abraços e boa sorte!


Achei perfeito, irei testar muito bem pensado


Enviado do meu iPhone usando Tapatalk
Link para o post
Compartilhar em outros sites
Em 14/02/2017 ás 04:18, login12 disse:

@Fir3element, sua logica está correta, porém estou certo de que não seria o suficiente para barrar a entrada de novos jogadores caso seja um evento em uma sala ou algo do gênero. Precisamos de uma checagem mais "avançada" aqui.

 

@Tópico

 

Creio que uma das melhores formas de se realizar isso, é realizando uma checagem de quem está participando do evento em questão.

  • Qual evento que é?

Enfim, você pode setar em uma tabela o cid de cada personagem que entrar no evento, e junto com este CID o IP do mesmo. Ao tentar entrar outro personagem com o mesmo ip deverá ter uma checagem dentro desta tabela para verificar se já existe algum jogador com este IP dentro do evento. 

 

Como fazer:

Primeiro você deve declarar uma tabela global onde ficará salvo os dados dos jogadores que entrarão no Evento. Aconselho fazer isso em uma lib. (Estarei assumindo aqui que você utiliza a versão 0.4 ou similar.)

 

Crie ou coloque uma lib qualquer a seguinte declaração:


CHECK_MC = {
	players_cache = {
		--[getPlayerGUID(cid)] = {ip = getPlayerIp(cid)}
	},
}

 

Após feito isso, você deve adicionar nesta tabela todos os jogadores que entrarem no evento em questão. Entra no arquivo de entrada do evento e adicione o seguinte código:


CHECK_MC.players_cache[getPlayerGUID(cid)] = {ip = getPlayerIp(cid)}

PS: Caso o evento seja um teleport que vai aparecer para os jogadores entrar ou um tile, você pode adicionar esta linha no código do arquivo no movements, mas ou menos assim: 

 


function onStepIn(cid, item, position, fromPosition, toPosition)
	if not isPlayer(cid) then
		return true
	end

	doTeleportThing(cid, posiçãoDoEvento)
	CHECK_MC.players_cache[getPlayerGUID(cid)] = {ip = getPlayerIp(cid)}
	return true
end

Feito isso, nossa tabela já está adicionando o CID e o IP de cada jogador que entrou dentro do evento.

Agora devemos adicionar no mesmo script da entrada do evento, uma checagem para ver se dentro da tabela, já não existe um jogador com o mesmo IP. faremos da seguinte forma:

 


for k, v in pairs(CHECK_MC.players_cache) do
	if CHECK_MC.players_cache[k].ip == getPlayerIp(cid) then
		doPlayerSendCancel(cid, 'Você não pode entrar com MC neste evento!')
		return false
	end
end

Você deve adicionar esta checagem antes da ação de teleporta o jogador para dentro do evento.

Em resumo o script de entrada para o evento ficaria mais ou menos assim:

 


function onStepIn(cid, item, position, fromPosition, toPosition)
	if not isPlayer(cid) then
		return true
	end

	for k, v in pairs(CHECK_MC.players_cache) do
		if BATTLE_ENFORCE.players_cache[k].ip == getPlayerIp(cid) then
			doPlayerSendCancel(cid, 'Você não pode entrar com MC neste evento!')
			return false
		end
	end

    	doTeleportThing(cid, posiçãoDoEvento)
  	CHECK_MC.players_cache[getPlayerGUID(cid)] = {ip = getPlayerIp(cid)}
    return true
end

 

@Matk, arruma essa box code<3

 

Abraços e boa sorte!

Irei testar, li o code e creio que está funcionando perfeitamente, quando tiver tempo vou tentar implantar e breve posto o resultado aqui!

Obrigado a todos que tentaram ajudar de alguma forma!

Link para o post
Compartilhar em outros sites
Em 14/02/2017 ás 05:18, login12 disse:

@Fir3element, sua logica está correta, porém estou certo de que não seria o suficiente para barrar a entrada de novos jogadores caso seja um evento em uma sala ou algo do gênero. Precisamos de uma checagem mais "avançada" aqui.

 

@Tópico

 

Creio que uma das melhores formas de se realizar isso, é realizando uma checagem de quem está participando do evento em questão.

  • Qual evento que é?

Enfim, você pode setar em uma tabela o cid de cada personagem que entrar no evento, e junto com este CID o IP do mesmo. Ao tentar entrar outro personagem com o mesmo ip deverá ter uma checagem dentro desta tabela para verificar se já existe algum jogador com este IP dentro do evento. 

 

Como fazer:

Primeiro você deve declarar uma tabela global onde ficará salvo os dados dos jogadores que entrarão no Evento. Aconselho fazer isso em uma lib. (Estarei assumindo aqui que você utiliza a versão 0.4 ou similar.)

 

Crie ou coloque uma lib qualquer a seguinte declaração:


CHECK_MC = {
	players_cache = {
		--[getPlayerGUID(cid)] = {ip = getPlayerIp(cid)}
	},
}

 

Após feito isso, você deve adicionar nesta tabela todos os jogadores que entrarem no evento em questão. Entra no arquivo de entrada do evento e adicione o seguinte código:


CHECK_MC.players_cache[getPlayerGUID(cid)] = {ip = getPlayerIp(cid)}

PS: Caso o evento seja um teleport que vai aparecer para os jogadores entrar ou um tile, você pode adicionar esta linha no código do arquivo no movements, mas ou menos assim: 

 


function onStepIn(cid, item, position, fromPosition, toPosition)
	if not isPlayer(cid) then
		return true
	end

	doTeleportThing(cid, posiçãoDoEvento)
	CHECK_MC.players_cache[getPlayerGUID(cid)] = {ip = getPlayerIp(cid)}
	return true
end

Feito isso, nossa tabela já está adicionando o CID e o IP de cada jogador que entrou dentro do evento.

Agora devemos adicionar no mesmo script da entrada do evento, uma checagem para ver se dentro da tabela, já não existe um jogador com o mesmo IP. faremos da seguinte forma:

 


for k, v in pairs(CHECK_MC.players_cache) do
	if CHECK_MC.players_cache[k].ip == getPlayerIp(cid) then
		doPlayerSendCancel(cid, 'Você não pode entrar com MC neste evento!')
		return false
	end
end

Você deve adicionar esta checagem antes da ação de teleporta o jogador para dentro do evento.

Em resumo o script de entrada para o evento ficaria mais ou menos assim:

 


function onStepIn(cid, item, position, fromPosition, toPosition)
	if not isPlayer(cid) then
		return true
	end

	for k, v in pairs(CHECK_MC.players_cache) do
		if BATTLE_ENFORCE.players_cache[k].ip == getPlayerIp(cid) then
			doPlayerSendCancel(cid, 'Você não pode entrar com MC neste evento!')
			return false
		end
	end

    	doTeleportThing(cid, posiçãoDoEvento)
  	CHECK_MC.players_cache[getPlayerGUID(cid)] = {ip = getPlayerIp(cid)}
    return true
end

 

@Matk, arruma essa box code<3

 

Abraços e boa sorte!

@login12 Poderia simplificar mais como deve ser feita a instalação do sistema no serve agradeço se possivel! :D

Link para o post
Compartilhar em outros sites
23 minutos atrás, frank007 disse:

@login12 Poderia simplificar mais como deve ser feita a instalação do sistema no serve agradeço se possivel! :D


Já está simplificado ;p

 

@This life is filled with hurt

When happiness doesn't work

Trust me and take my hand

When the lights go out you will understand

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
    • Por Ayron5
      Substitui uma stone no serve, deu tudo certo fora  esse  erro ajudem  Valendo  Rep+  Grato  

      Erro: data/actions/scripts/boost.lua:557: table index is nil
       [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

      Script:
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo