Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Olá pessoal,

Hoje venho trazer pra vocês um sisteminha que acabei de criar, para auxiliar a movimentação de nossos players, fazendo com que além de spells de velocidade, também tenham um recurso a mais. Funciona da seguinte maneira : para os personagens melee (paladin e knight), há um grande impulso em que eles correm super rápido até o próximo obstáculo (monstros, paredes, etc) ou até a quantidade limite de posições para se avançar do talkaction, soltando efeitos de fogo pelos pés. É possível controlar sua direção de corrida pressionando ctrl+direção. Já os personagens mágicos, druid e sorcerer, canalizarão um poder de luz e após isso, se teleportarão, em linha reta, até o próximo obstáculo, ou até a quantidade de posições limite. Não é possível utilizar continuamente, porque senão seria bastante apelativo, então coloquei uma quantidade de exhaust, no meu caso, 10 segundos, porém você pode modificar no script. Para vocês terem ideia de como funciona, fiz um vídeo (com resolução ruim a propósito, peço perdão), que está logo à seguir :

 

Bom, cada uma das categorias(melee, magic) tem sua vantagem, e sua desvantagem.

Melee :

-Vantagem : é possível controlar as direcionais com ctrl.

-Desvantagem : pode ser atingido durante a movimentação.

 

Magic :

-Vantagem : aparece instantaneamente na posição destino, após a focalização de energia.

-Desvantagem : não pode desviar de obstáculos.

 

Para usar, apenas digite !move.

Agora, vou mostrar-lhes os códigos e como devem ser colocados e configurados.

 

Em data\talkactions\scripts, crie um novo arquivo chamado move.lua, e cole o seguinte código :

local exhauststorage = 20209 -- storage para o exhaust
local exhaust = 10 -- tempo do exhaust em segundos
local quantpos = 30 -- posições x ou y que o personagem irá avançar, por exemplo, aqui irá se mover 30 posições pra direção em que estiver
local voc = { --dependendo da vocação, a movimentação será diferente
	{3,4,7,8,11,12}, -- vocações melee, que no caso são knight e paladin
	{1,2,5,6,9,10}, -- vocações mágicas, que são sorc e druid
}

--Função da movimentação para paladin e knight
function moveMelee(cid, t)
	if(isCreature(cid)) then
		local tmp = getPlayerLookPos(cid)
		if(not isCreature(getThingFromPos(tmp).uid) and doTileQueryAdd(cid, tmp)==1 and t>0) then
			doCreatureSetNoMove(cid, 1)
			t = t-1
			doSendMagicEffect(getCreaturePos(cid), 15)
			doMoveCreature(cid, getPlayerLookDir(cid))
			return addEvent(moveMelee, 10, cid, t)
		else
			doCreatureSetNoMove(cid, 0)
			return TRUE
		end
	else
		return TRUE
	end
end

--Função da movimentação para sorcerer e druid
function moveMagic(cid)
	if(isCreature(cid)) then
		local tmp = getCreaturePos(cid)
		local dir = getPlayerLookDir(cid)
			for i=1, quantpos do
				if(dir==0) then
					tmp = {x=tmp.x, y=tmp.y-1, z=tmp.z}
				elseif(dir==1) then
					tmp = {x=tmp.x+1, y=tmp.y, z=tmp.z}
				elseif(dir==2) then
					tmp = {x=tmp.x, y=tmp.y+1, z=tmp.z}
				elseif(dir==3) then
					tmp = {x=tmp.x-1, y=tmp.y, z=tmp.z}
				end
				if(doTileQueryAdd(cid, tmp)~=1) then
					if(dir==0) then
						tmp = {x=tmp.x, y=tmp.y+1, z=tmp.z}
					elseif(dir==1) then
						tmp = {x=tmp.x-1, y=tmp.y, z=tmp.z}
					elseif(dir==2) then
						tmp = {x=tmp.x, y=tmp.y-1, z=tmp.z}
					elseif(dir==3) then
						tmp = {x=tmp.x+1, y=tmp.y, z=tmp.z}
					end
					break
				end
			end
		doTeleportThing(cid, tmp)
		doSendMagicEffect(getCreaturePos(cid), 49)
		doSendAnimatedText(getCreaturePos(cid), "Tchum!", 144)
		doCreatureSetNoMove(cid, 0)
		return TRUE
	else
		return TRUE
	end
end

--Efeitos para a movimentação de sorc e druid
function magicEffect(cid, i)
	if(isCreature(cid)) then
		local atual = getCreaturePosition(cid)
			local posefeitos = {
				{x=(atual.x)-1, y=(atual.y)-1, z=atual.z},
				{x=atual.x, y=(atual.y)-1, z=atual.z},
				{x=(atual.x)+1, y=(atual.y)-1, z=atual.z},
				{x=(atual.x)+1, y=atual.y, z=atual.z},
				{x=(atual.x)+1, y=(atual.y)+1, z=atual.z},
				{x=atual.x, y=(atual.y)+1, z=atual.z},
				{x=(atual.x)-1, y=(atual.y)+1, z=atual.z},
				{x=(atual.x)-1, y=atual.y, z=atual.z},
			}
			if(i<=8) then
				doSendMagicEffect({x=posefeitos[i].x, y=posefeitos[i].y, z=posefeitos[i].z}, 39)
			end
		if(i>8) then
			doSendMagicEffect(atual, 49) 
			doSendAnimatedText(atual, "Voosh", 144)
			return moveMagic(cid) 
		end
		return addEvent(magicEffect, 50, cid, i+1)
	else
		return TRUE
	end
end

--Função principal
function onSay(cid, words, param)
	if(getPlayerStorageValue(cid, exhauststorage)>os.time()) then
		doPlayerSendCancel(cid, "Voce deve esperar "..(getPlayerStorageValue(cid, exhauststorage)-os.time()).." segundos para usar a movimentação novamente.")
		return TRUE
	else
		setPlayerStorageValue(cid, exhauststorage, os.time()+exhaust)
		local v = getPlayerVocation(cid)
		for i=1, #voc[1] do
			if(v==voc[1][i]) then
				return moveMelee(cid, quantpos),doCreatureSay(cid, "Movimentação ultra rápida!", 1)
			end
		end
		return magicEffect(cid, 1),doCreatureSay(cid, "Teleport!", 1),doCreatureSetNoMove(cid, 1)
	end
end 

Agora vá em data\talkactions\talkactions.xml, e adicione uma nova linha com o seguinte conteúdo :

	<talkaction words="!move" event="script" value="move.lua"/>

O código está comentado, então agora é só configurar e usar de acordo com as suas preferências!

 

OBS : Fica a seu critério colocar se apenas vip podem utilizar esse sistema, se será necessário mp, ou soul, ou hp, ou qualquer coisa que precise. Tudo isso pode ser incrementado na função principal (onSay).

Créditos : eu mesmo (GMLeal/ BielzinhoCrazy/ Fakezim) tanto faz 

Bom, é isso aí pessoal, bom proveito, e obrigado!

Editado por bielzinhocrazy (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

No meu deu errado, não deu nenhum erro, mas no jogo quando eu executo essa talkaction, aparece a animação dos mages, mas ai o char fica no mesmo lugar, e além disso ele buga, e você não pode mais sair do lugar '-'

Link para o post
Compartilhar em outros sites

No meu deu errado, não deu nenhum erro, mas no jogo quando eu executo essa talkaction, aparece a animação dos mages, mas ai o char fica no mesmo lugar, e além disso ele buga, e você não pode mais sair do lugar '-'

Estranho, retestei o código e funcionou perfeitamente. Poderia postar como você colocou no seu OT, e a versão do seu OT? Ao meu ver parece que só está executando a função de efeitos do teleport(magicEffect), mas não chama a função que teleporta(moveMagic).

 

OBS : O script foi testado na versão 8.6 do tibia, e o servidor que uso é o eribaiak 3.0.

OBS 2 : O player trava e fica sem mover, porque enquanto os efeitos são executados, eu coloquei "setPlayerNoMove(cid, 1)" pro player não sair andando enquanto 'carrega' o teleport, mas após ele se teleportar, destrava o movimento, e é possível andar normalmente. Então realmente, o mais provável é a função moveMagic não estar sendo executada corretamente.

Editado por bielzinhocrazy (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

A minha versão é 9.83, não pode ser por isso que não está funcionando?

Se for, sabe como faria para funcionar na minha versão?

Link para o post
Compartilhar em outros sites

A minha versão é 9.83, não pode ser por isso que não está funcionando?

Se for, sabe como faria para funcionar na minha versão?

Realmente, baixei um OT da versão 9,83, e não funcionou. Bom, eu não sei as causas porque sempre fiz scripts na versão 8.6, e faz muito, MUUUITO tempo que não faço códigos pra tibia (uns 3 a 4 anos, eu resolvi fazer alguns agora pra passar o tempo). Mas ao que parece, ao meu ver, ele não está reconhecendo as funções 'doTileQueryAdd', nem a 'doSendAnimatedText', sendo que a função 'doTileQueryAdd' é uma função chave pra verificar a posição limite em que o player pode se movimentar. Talvez possua uma sintaxe diferente devido à versão. De qualquer forma, vou tentar achar uma solução no meu tempo livre, e se eu conseguir, eu aviso.

 

--------------------------------------------------------------EDIT--------------------------------------------------------------

 

Dei uma olhada melhor aqui, e realmente, com a mudança de versões foi alterado a sintaxe dos códigos 'doTileQueryAdd' e 'doSetNoMove', fiz algumas modificações, para o OT 9.83 está funcionando corretamente agora. Segue o código do novo move.lua:

local exhauststorage = 20209 -- storage para o exhaust
local exhaust = 10 -- tempo do exhaust em segundos
local quantpos = 30 -- posições x ou y que o personagem irá avançar, por exemplo, aqui irá se mover 30 posições pra direção em que estiver
local voc = { --dependendo da vocação, a movimentação será diferente
	{3,4,7,8,11,12}, -- vocações melee, que no caso são knight e paladin
	{1,2,5,6,9,10}, -- vocações mágicas, que são sorc e druid
}

--Função da movimentação para paladin e knight
function moveMelee(cid, t)
	if(isCreature(cid)) then
		local tmp = getPlayerLookPos(cid)
		if(not isCreature(getThingFromPos(tmp).uid) and doTileQueryAdd(cid, tmp)~=1 and t>0) then
			doCreatureSetNoMove(cid, true)
			t = t-1
			doSendMagicEffect(getCreaturePos(cid), 15)
			doMoveCreature(cid, getPlayerLookDir(cid))
			return addEvent(moveMelee, 10, cid, t)
		else
			doCreatureSetNoMove(cid, false)
			return TRUE
		end
	else
		return TRUE
	end
end

--Função da movimentação para sorcerer e druid
function moveMagic(cid)
	if(isCreature(cid)) then
		tmp = getCreaturePos(cid)
		dir = getPlayerLookDir(cid)
			for i=1, quantpos do
				if(dir==0) then
					tmp = {x=tmp.x, y=tmp.y-1, z=tmp.z}
				elseif(dir==1) then
					tmp = {x=tmp.x+1, y=tmp.y, z=tmp.z}
				elseif(dir==2) then
					tmp = {x=tmp.x, y=tmp.y+1, z=tmp.z}
				elseif(dir==3) then
					tmp = {x=tmp.x-1, y=tmp.y, z=tmp.z}
				end
				if (doTileQueryAdd(cid, tmp)==1) then
					if(dir==0) then
						tmp = {x=tmp.x, y=tmp.y+1, z=tmp.z}
					elseif(dir==1) then
						tmp = {x=tmp.x-1, y=tmp.y, z=tmp.z}
					elseif(dir==2) then
						tmp = {x=tmp.x, y=tmp.y-1, z=tmp.z}
					elseif(dir==3) then
						tmp = {x=tmp.x+1, y=tmp.y, z=tmp.z}
					end
					break
				end
			end
		doTeleportThing(cid, tmp)
		doSendMagicEffect(getCreaturePos(cid), 49)
		doCreatureSetNoMove(cid, false)
		return TRUE
	else
		return TRUE
	end
end

--Efeitos para a movimentação de sorc e druid
function magicEffect(cid, i)
	if(isCreature(cid)) then
		local atual = getCreaturePosition(cid)
			local posefeitos = {
				{x=(atual.x)-1, y=(atual.y)-1, z=atual.z},
				{x=atual.x, y=(atual.y)-1, z=atual.z},
				{x=(atual.x)+1, y=(atual.y)-1, z=atual.z},
				{x=(atual.x)+1, y=atual.y, z=atual.z},
				{x=(atual.x)+1, y=(atual.y)+1, z=atual.z},
				{x=atual.x, y=(atual.y)+1, z=atual.z},
				{x=(atual.x)-1, y=(atual.y)+1, z=atual.z},
				{x=(atual.x)-1, y=atual.y, z=atual.z},
			}
			if(i<=8) then
				doSendMagicEffect({x=posefeitos[i].x, y=posefeitos[i].y, z=posefeitos[i].z}, 39)
			end
		if(i>8) then
			doSendMagicEffect(atual, 49)
			return moveMagic(cid) 
		end
		return addEvent(magicEffect, 50, cid, i+1)
	else
		return TRUE
	end
end

--Função principal
function onSay(cid, words, param)
	if(getPlayerStorageValue(cid, exhauststorage)>os.time()) then
		doPlayerSendCancel(cid, "Voce deve esperar "..(getPlayerStorageValue(cid, exhauststorage)-os.time()).." segundos para usar a movimentação novamente.")
		return TRUE
	else
		setPlayerStorageValue(cid, exhauststorage, os.time()+exhaust)
		local v = getPlayerVocation(cid)
		for i=1, #voc[1] do
			if(v==voc[1][i]) then
				return moveMelee(cid, quantpos),doCreatureSay(cid, "Movimentação ultra rápida!", 1)
			end
		end
		return magicEffect(cid, 1),doCreatureSay(cid, "Teleport!", 1),doCreatureSetNoMove(cid, true)
	end
end
Editado por bielzinhocrazy (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Agora sim! Perfeito! Reputado ;D

Edit: tive um problema, o player se teleporta ou se move para dentro da PZ, mesmo se estiver PK..

Como limitar isso?

Pra limitar é só fazer a verificação se está pk e se é pz zone, se for, não teleportar pra dentro da pz, implementei já no script, tente com este código :

local exhauststorage = 20209 -- storage para o exhaust
local exhaust = 10 -- tempo do exhaust em segundos
local quantpos = 30 -- posições x ou y que o personagem irá avançar, por exemplo, aqui irá se mover 30 posições pra direção em que estiver
local voc = { --dependendo da vocação, a movimentação será diferente
	{3,4,7,8,11,12}, -- vocações melee, que no caso são knight e paladin
	{1,2,5,6,9,10}, -- vocações mágicas, que são sorc e druid
}

--Função da movimentação para paladin e knight
function moveMelee(cid, t)
	if(isCreature(cid)) then
		local tmp = getPlayerLookPos(cid)
		if(not isCreature(getThingFromPos(tmp).uid) and doTileQueryAdd(cid, tmp)~=1 and t>0) then
			if(getCreatureSkullType(cid)>0 and getTilePzInfo(tmp)==1) then
				doCreatureSetNoMove(cid, false)
				return TRUE
			end
			doCreatureSetNoMove(cid, true)
			t = t-1
			doSendMagicEffect(getCreaturePos(cid), 15)
			doMoveCreature(cid, getPlayerLookDir(cid))
			return addEvent(moveMelee, 10, cid, t)
		else
			doCreatureSetNoMove(cid, false)
			return TRUE
		end
	else
		return TRUE
	end
end

--Função da movimentação para sorcerer e druid
function moveMagic(cid)
	if(isCreature(cid)) then
		tmp = getCreaturePos(cid)
		dir = getPlayerLookDir(cid)
			for i=1, quantpos do
				if(dir==0) then
					tmp = {x=tmp.x, y=tmp.y-1, z=tmp.z}
				elseif(dir==1) then
					tmp = {x=tmp.x+1, y=tmp.y, z=tmp.z}
				elseif(dir==2) then
					tmp = {x=tmp.x, y=tmp.y+1, z=tmp.z}
				elseif(dir==3) then
					tmp = {x=tmp.x-1, y=tmp.y, z=tmp.z}
				end
				if (doTileQueryAdd(cid, tmp)==1 or (getPlayerSkullType(cid)>0 and getTilePzInfo(tmp)==1)) then
					if(dir==0) then
						tmp = {x=tmp.x, y=tmp.y+1, z=tmp.z}
					elseif(dir==1) then
						tmp = {x=tmp.x-1, y=tmp.y, z=tmp.z}
					elseif(dir==2) then
						tmp = {x=tmp.x, y=tmp.y-1, z=tmp.z}
					elseif(dir==3) then
						tmp = {x=tmp.x+1, y=tmp.y, z=tmp.z}
					end
					break
				end
			end
		doTeleportThing(cid, tmp)
		doSendMagicEffect(getCreaturePos(cid), 49)
		doCreatureSetNoMove(cid, false)
		return TRUE
	else
		return TRUE
	end
end

--Efeitos para a movimentação de sorc e druid
function magicEffect(cid, i)
	if(isCreature(cid)) then
		local atual = getCreaturePosition(cid)
			local posefeitos = {
				{x=(atual.x)-1, y=(atual.y)-1, z=atual.z},
				{x=atual.x, y=(atual.y)-1, z=atual.z},
				{x=(atual.x)+1, y=(atual.y)-1, z=atual.z},
				{x=(atual.x)+1, y=atual.y, z=atual.z},
				{x=(atual.x)+1, y=(atual.y)+1, z=atual.z},
				{x=atual.x, y=(atual.y)+1, z=atual.z},
				{x=(atual.x)-1, y=(atual.y)+1, z=atual.z},
				{x=(atual.x)-1, y=atual.y, z=atual.z},
			}
			if(i<=8) then
				doSendMagicEffect({x=posefeitos[i].x, y=posefeitos[i].y, z=posefeitos[i].z}, 39)
			end
		if(i>8) then
			doSendMagicEffect(atual, 49)
			return moveMagic(cid) 
		end
		return addEvent(magicEffect, 50, cid, i+1)
	else
		return TRUE
	end
end

--Função principal
function onSay(cid, words, param)
	if(getPlayerStorageValue(cid, exhauststorage)>os.time()) then
		doPlayerSendCancel(cid, "Voce deve esperar "..(getPlayerStorageValue(cid, exhauststorage)-os.time()).." segundos para usar a movimentação novamente.")
		return TRUE
	else
		setPlayerStorageValue(cid, exhauststorage, os.time()+exhaust)
		local v = getPlayerVocation(cid)
		for i=1, #voc[1] do
			if(v==voc[1][i]) then
				return moveMelee(cid, quantpos),doCreatureSay(cid, "Movimentação ultra rápida!", 1)
			end
		end
		return magicEffect(cid, 1),doCreatureSay(cid, "Teleport!", 1),doCreatureSetNoMove(cid, true)
	end
end
Editado por bielzinhocrazy (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Continuou do mesmo jeito, ainda entra na pz estando pk, tanto na versão para kina, quanto na versão para mages :x

Eu fiz mas nem testei, estou meio sem tempo, porém a lógica está certa, tente então desta forma :

local exhauststorage = 20209 -- storage para o exhaust
local exhaust = 10 -- tempo do exhaust em segundos
local quantpos = 30 -- posições x ou y que o personagem irá avançar, por exemplo, aqui irá se mover 30 posições pra direção em que estiver
local voc = { --dependendo da vocação, a movimentação será diferente
	{3,4,7,8,11,12}, -- vocações melee, que no caso são knight e paladin
	{1,2,5,6,9,10}, -- vocações mágicas, que são sorc e druid
}

--Função da movimentação para paladin e knight
function moveMelee(cid, t)
	if(isCreature(cid)) then
		local tmp = getPlayerLookPos(cid)
		if(not isCreature(getThingFromPos(tmp).uid) and doTileQueryAdd(cid, tmp)~=1 and t>0) then
			if(getCreatureSkullType(cid) != SKULL_NONE and getTilePzInfo(tmp)==1) then
				doCreatureSetNoMove(cid, false)
				return TRUE
			end
			doCreatureSetNoMove(cid, true)
			t = t-1
			doSendMagicEffect(getCreaturePos(cid), 15)
			doMoveCreature(cid, getPlayerLookDir(cid))
			return addEvent(moveMelee, 10, cid, t)
		else
			doCreatureSetNoMove(cid, false)
			return TRUE
		end
	else
		return TRUE
	end
end

--Função da movimentação para sorcerer e druid
function moveMagic(cid)
	if(isCreature(cid)) then
		tmp = getCreaturePos(cid)
		dir = getPlayerLookDir(cid)
			for i=1, quantpos do
				if(dir==0) then
					tmp = {x=tmp.x, y=tmp.y-1, z=tmp.z}
				elseif(dir==1) then
					tmp = {x=tmp.x+1, y=tmp.y, z=tmp.z}
				elseif(dir==2) then
					tmp = {x=tmp.x, y=tmp.y+1, z=tmp.z}
				elseif(dir==3) then
					tmp = {x=tmp.x-1, y=tmp.y, z=tmp.z}
				end
				if (doTileQueryAdd(cid, tmp)==1 or (getCreatureSkullType(cid)!=SKULL_NONE and getTilePzInfo(tmp)==1)) then
					if(dir==0) then
						tmp = {x=tmp.x, y=tmp.y+1, z=tmp.z}
					elseif(dir==1) then
						tmp = {x=tmp.x-1, y=tmp.y, z=tmp.z}
					elseif(dir==2) then
						tmp = {x=tmp.x, y=tmp.y-1, z=tmp.z}
					elseif(dir==3) then
						tmp = {x=tmp.x+1, y=tmp.y, z=tmp.z}
					end
					break
				end
			end
		doTeleportThing(cid, tmp)
		doSendMagicEffect(getCreaturePos(cid), 49)
		doCreatureSetNoMove(cid, false)
		return TRUE
	else
		return TRUE
	end
end

--Efeitos para a movimentação de sorc e druid
function magicEffect(cid, i)
	if(isCreature(cid)) then
		local atual = getCreaturePosition(cid)
			local posefeitos = {
				{x=(atual.x)-1, y=(atual.y)-1, z=atual.z},
				{x=atual.x, y=(atual.y)-1, z=atual.z},
				{x=(atual.x)+1, y=(atual.y)-1, z=atual.z},
				{x=(atual.x)+1, y=atual.y, z=atual.z},
				{x=(atual.x)+1, y=(atual.y)+1, z=atual.z},
				{x=atual.x, y=(atual.y)+1, z=atual.z},
				{x=(atual.x)-1, y=(atual.y)+1, z=atual.z},
				{x=(atual.x)-1, y=atual.y, z=atual.z},
			}
			if(i<=8) then
				doSendMagicEffect({x=posefeitos[i].x, y=posefeitos[i].y, z=posefeitos[i].z}, 39)
			end
		if(i>8) then
			doSendMagicEffect(atual, 49)
			return moveMagic(cid) 
		end
		return addEvent(magicEffect, 50, cid, i+1)
	else
		return TRUE
	end
end

--Função principal
function onSay(cid, words, param)
	if(getPlayerStorageValue(cid, exhauststorage)>os.time()) then
		doPlayerSendCancel(cid, "Voce deve esperar "..(getPlayerStorageValue(cid, exhauststorage)-os.time()).." segundos para usar a movimentação novamente.")
		return TRUE
	else
		setPlayerStorageValue(cid, exhauststorage, os.time()+exhaust)
		local v = getPlayerVocation(cid)
		for i=1, #voc[1] do
			if(v==voc[1][i]) then
				return moveMelee(cid, quantpos),doCreatureSay(cid, "Movimentação ultra rápida!", 1)
			end
		end
		return magicEffect(cid, 1),doCreatureSay(cid, "Teleport!", 1),doCreatureSetNoMove(cid, true)
	end
end

Bom, se não der, quarta-feira tenho o dia livre e tento rever melhor, tá difícil arranjar um tempinho livre.

Link para o post
Compartilhar em outros sites

Continuou na mesma :/

 

Obs: Estou te dando rep, por tentar, e principalmente por se dar ao trabalho de responder, não são todos nesse fórum que fazem o mesmo.

Valeu ai  ;D

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

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo