Ir para conteúdo
  • Cadastre-se

[Resolvido] [Pedido] Sala Restrita'


Posts Recomendados

Eu queria um Script que funcionasse assim...

Um player usa o item na porta (não remove o item) e é teleportado pra dentro da sala... até aqui eu sei fazer...

No entanto, eu queria que se já tivesse alguém dentro dessa pequena sala, não fosse possível entrar outro player.

O Script verificaria os "sqm" da Sala pra ver se não há outro player na mesma.

É uma sala pequena, do tamanho da imagem abaixo: (9 sqm)

W8HHG.jpg

Fico no aguardo...

Abraços & Obrigado desde já'

Editado por Adriano SwaTT (veja o histórico de edições)

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Estou no celular.

Usa setGlobalStorage(value)

Na porta e checa get. e para retirAR A storGe faz um movement ou creaturescript

 http://baiakuza.com/
IP: baiakuza.com
TIBIA: 10.96
Baiak Custom [ High Exp Rate ]

 

 

 

 

Link para o post
Compartilhar em outros sites

Estou no celular.

Usa setGlobalStorage(value)

Na porta e checa get. e para retirAR A storGe faz um movement ou creaturescript

Eu sei que existe este Script, mas não sei como procurá-lo'

:T

E este eu nunca mexi, mas já vi em vários foruns'

Carakas, nem manjo fazer este.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Me passa o script que o cara usa o item na porta e é teleportado para dentro que eu faço para você

Eu cacei um Script pronto aqui, achei um que da pra fazer...

que funciona como "Uma chave que abre tal porta"...


function onUse(cid, item, frompos, item2, topos)

pos = {x=175, y=45, z=7} -- Coordenadas para onde o jogador vai se tiver o item

item = getPlayerItemCount(cid,8266) -- 8266 é o item necessario ter para passar

        if item >= 1 then

        doTeleportThing(cid, pos)

else

        doPlayerSendTextMessage(cid,22,"Você precisa do Book para passar.") -- Mensagem caso ele nao tiver o item

end

return TRUE

end

Então, quero que dê use no item e depois na porta... e antes do player ser teleportado pra dentro da Sala, verificar se não há players dentro dela.

A sala é como a imagem do Post principal.

Abraços & Obrigado desde já'

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites


local fromSqm = {x = 0, y = 0, z = 0} -- Coordenadas do canto superior esquerdo da sala

local toSqm = {x = 0, y = 0, z = 0} -- Coordenadas do canto inferior direito da sala


local destination = {x = 0, y = 0, z = 0} -- Coordenadas para onde o jogador será teleportado

local doorID = 0 -- ID da porta


function onUse(cid, item, fromPosition, itemEx, toPosition)

	local width = (math.max(fromSqm.x, toSqm.x) - math.min(fromSqm.x, toSqm.x)) / 2 + 1

	local height = (math.max(fromSqm.y, toSqm.y) - math.min(fromSqm.y, toSqm.y)) / 2 + 1


	local center = {x = math.min(fromSqm.x, toSqm.x) + width, y = math.min(fromSqm.y, toSqm.y) + height, z = fromSqm.z}


	if itemEx.itemid == doorID then

		if #getSpectators(center, width, height, false) >= 1 then

			doPlayerSendCancel(cid, "Desculpe, já há alguém na sala")

		end

	else

		doPlayerSendCancel(cid, "Este item não deve ser usado nessa porta")

	end

	return true

end


<action itemid="itemid" event="script" value="nome do script.lua"/>

Coloca o id do item que será usado na porta, e o nome do arquivo .lua que será criado na pasta data/actions/scripts.

As variáveis que você deve configurar já estão todas comentadas.

Editado por Lpz (veja o histórico de edições)

Link para o post
Compartilhar em outros sites

Então, eu testei aqui...

Mesmo sem ninguém na Sala, está exibindo a mensagem como se houvesse alguém na mesma'

:T

O Script configurado ficou assim:

local fromSqm = {x = 886, y = 965, z = 7} -- Coordenadas do canto superior esquerdo da sala

local toSqm = {x = 888, y = 968, z = 7} -- Coordenadas do canto inferior direito da sala


local destination = {x = 887, y = 968, z = 7} -- Coordenadas para onde o jogador será teleportado

local doorID = 5105 -- ID da porta


function onUse(cid, item, fromPosition, itemEx, toPosition)

	    local width = (math.max(fromSqm.x, toSqm.x) - math.min(fromSqm.x, toSqm.x)) / 2 + 1

	    local height = (math.max(fromSqm.y, toSqm.y) - math.min(fromSqm.y, toSqm.y)) / 2 + 1


	    local center = {x = math.min(fromSqm.x, toSqm.x) + width, y = math.min(fromSqm.y, toSqm.y) + height, z = fromSqm.z}


	    if itemEx.itemid == doorID then

			    if #getSpectators(center, width, height, false) >= 1 then

					    doPlayerSendCancel(cid, "Espere o outro usuário sair da sala")

			    end

	    else

			    doPlayerSendCancel(cid, "Este item não deve ser usado nessa porta")

	    end

	    return true

end

Agora não entendi'

:T

Mas valeu mesmo assim a ajuda.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

local fromSqm = {x = 886, y = 965, z = 7} -- Coordenadas do canto superior esquerdo da sala

local toSqm = {x = 888, y = 968, z = 7} -- Coordenadas do canto inferior direito da sala


local destination = {x = 887, y = 968, z = 7} -- Coordenadas para onde o jogador será teleportado

local doorID = 5105 -- ID da porta


function onUse(cid, item, fromPosition, itemEx, toPosition)

local width = (math.max(fromSqm.x, toSqm.x) - math.min(fromSqm.x, toSqm.x)) / 2 + 1

local height = (math.max(fromSqm.y, toSqm.y) - math.min(fromSqm.y, toSqm.y)) / 2 + 1


local center = {x = math.min(fromSqm.x, toSqm.x) + width, y = math.min(fromSqm.y, toSqm.y) + height, z = fromSqm.z}


	if itemEx.itemid == doorID then

		if #getSpectators(center, width, height, false) >= 2 then

				doPlayerSendCancel(cid, "Espere o outro usuário sair da sala")

		else

			doTeleportThing(cid, destination)

		end

	else

		doPlayerSendCancel(cid, "Este item não deve ser usado nessa porta")

	end

	return true

end

Link para o post
Compartilhar em outros sites


local fromSqm = {x = 886, y = 965, z = 7} -- Coordenadas do canto superior esquerdo da sala

local toSqm = {x = 888, y = 968, z = 7} -- Coordenadas do canto inferior direito da sala


local destination = {x = 887, y = 968, z = 7} -- Coordenadas para onde o jogador será teleportado

local doorID = 5105 -- ID da porta


function onUse(cid, item, fromPosition, itemEx, toPosition)

local width = (math.max(fromSqm.x, toSqm.x) - math.min(fromSqm.x, toSqm.x)) / 2 + 1

local height = (math.max(fromSqm.y, toSqm.y) - math.min(fromSqm.y, toSqm.y)) / 2 + 1


local center = {x = math.min(fromSqm.x, toSqm.x) + width, y = math.min(fromSqm.y, toSqm.y) + height, z = fromSqm.z}


	if itemEx.itemid == doorID then

		if #getSpectators(center, width, height, false) >= 2 then

				doPlayerSendCancel(cid, "Espere o outro usuário sair da sala")

		else

			doTeleportThing(cid, destination)

		end

	else

		doPlayerSendCancel(cid, "Este item não deve ser usado nessa porta")

	end

	return true

end

Agora funcionou'

:D

valeu brother... ajudou muito'

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Hmmm, sem querer ser chato..

Mas agora que pensei em uma coisa aqui.

Eu usarei várias salas uma do lado da outra, no entanto, teria como fazer com que a "ActionID" fosse na porta ou coisa assim?

Para não bugar, sakas?

Abraços

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Sim, há como, mas te daria um pouco de trabalho.


local rooms = {

	[1000] = {

		from = {x = 886, y = 965, z = 7},

		to = {x = 888, y = 968, z = 7},

		inside = {x = 887, y = 968, z = 7}

	}

}


--[[

	Para configurar novas salas, siga o modelo abaixo:


	local rooms = {

		[1000] = {

			from = {x = 886, y = 965, z = 7},

			to = {x = 888, y = 968, z = 7},

			inside = {x = 887, y = 968, z = 7}

		}, -- Não esqueça de separar cada um com uma vírgula

		[ACTION ID] = {

			from = {x = 0, y = 0, z = 0}, -- Coordenada do canto superior esquerdo da sala

			to = {x = 0, y = 0, z = 0}, -- Coordenada do canto inferior direito da sala

			inside = {x = 0, y = 0, z = 0} -- Coordenada para onde o jogador será teleportado

		}

	}


]]--



function onUse(cid, item, fromPosition, itemEx, toPosition)

	if rooms[itemEx.actionid] then

		if #getSpectatorsFromArea(rooms[itemEx.actionid].from, rooms[itemEx.actionid].to) == 1 then

			doTeleportThing(cid, rooms[itemEx.actionid].inside)

		else

			doPlayerSendCancel(cid, "Há alguém dentro da sala")

		end

	else

		doPlayerSendCancel(cid, "Você não deve usar este item aqui")

	end

	return true

end

E coloque no arquivo 050-functions.lua, da pasta data/lib, esta função: getSpectatorsFromArea(fromPosition, toPosition)

A tag do actions.xml deve continuar a mesma

Editado por Lpz (veja o histórico de edições)

Link para o post
Compartilhar em outros sites

Mano, você é zica da rima, zica da base'

:D

Deu certinho aqui...

Abraços, depois te dou outro REP+, acabou por hoje'

:T

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo