Ir para conteúdo
  • Cadastre-se

[PDA] [DUVIDA] Como Fazer Uma Porta Que Só Pode Entrar Uma Vez.


Posts Recomendados

Eu Estou Procurando Por Aqui E Não Estou Achando Esse Script Alguem Me Ajuda?


=====================================================//=================================================================

 

                                             Skype: nicraftextreme / E-mail: [email protected]/[email protected]

Link para o post
Compartilhar em outros sites
function onUse(cid, item, fromPosition, itemEx, toPosition)

local doorPos = {x=getThingPosition(item.uid).x, y=getThingPosition(item.uid).y, z=getThingPosition(item.uid).z}
local playerPos = {x=getCreaturePosition(cid).x, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z}
local pLevel = 100 --Level necessário para passar
local canpass = "Você passou da porta!" -- Mensagem que vai ser enviada ao passar
local cannotpass = "Você precisa de level " ..pLevel.. " pelo menos para passar desta porta."
local cannotpasss = "Você já passou na porta uma vez."
local storage = 60609

		if playerPos.y > doorPos.y and getPlayerLevel(cid) >= pLevel and getPlayerStorageValue(cid, storage) ~= 1 then 
				doTeleportThing(cid, {x= doorPos.x, y= doorPos.y-1, z= doorPos.z})
				doSendMagicEffect(getPlayerPosition(cid), 10)
				doPlayerSendTextMessage(cid, 22, canpass)
				doPlayerSetStorageValue(cid, storage, 1)

		elseif playerPos.y < doorPos.y and getPlayerLevel(cid) >= pLevel and getPlayerStorageValue(cid, storage) ~= 1 then
				doTeleportThing(cid, {x= doorPos.x, y= doorPos.y+1, z= doorPos.z})
				doSendMagicEffect(getPlayerPosition(cid), 10)
				doPlayerSendTextMessage(cid, 22, canpass)
				doPlayerSetStorageValue(cid, storage, 1)

		elseif getPlayerLevel(cid) < pLevel then
		doPlayerSendTextMessage(cid, 22, cannotpass)
		
		elseif getPlayerStorageValue(cid, storage) == 1 then
		doPlayerSendTextMessage(cid, 22, cannotpasss)
		

		end
		
return TRUE
end

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Link para o post
Compartilhar em outros sites

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

local doorPos = {x=getThingPosition(item.uid).x, y=getThingPosition(item.uid).y, z=getThingPosition(item.uid).z}
local playerPos = {x=getCreaturePosition(cid).x, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z}
local pLevel = 100 --Level necessário para passar
local canpass = "Você passou da porta!" -- Mensagem que vai ser enviada ao passar
local cannotpass = "Você precisa de level " ..pLevel.. " pelo menos para passar desta porta."
local cannotpasss = "Você já passou na porta uma vez."
local storage = 60609

		if playerPos.y > doorPos.y and getPlayerLevel(cid) >= pLevel and getPlayerStorageValue(cid, storage) ~= 1 then 
				doTeleportThing(cid, {x= doorPos.x, y= doorPos.y-1, z= doorPos.z})
				doSendMagicEffect(getPlayerPosition(cid), 10)
				doPlayerSendTextMessage(cid, 22, canpass)
				doPlayerSetStorageValue(cid, storage, 1)

		elseif playerPos.y < doorPos.y and getPlayerLevel(cid) >= pLevel and getPlayerStorageValue(cid, storage) ~= 1 then
				doTeleportThing(cid, {x= doorPos.x, y= doorPos.y+1, z= doorPos.z})
				doSendMagicEffect(getPlayerPosition(cid), 10)
				doPlayerSendTextMessage(cid, 22, canpass)
				doPlayerSetStorageValue(cid, storage, 1)

		elseif getPlayerLevel(cid) < pLevel then
		doPlayerSendTextMessage(cid, 22, cannotpass)
		
		elseif getPlayerStorageValue(cid, storage) == 1 then
		doPlayerSendTextMessage(cid, 22, cannotpasss)
		

		end
		
return TRUE
end

 

Acho que seria melhor colocar em movements... 

 

Crie um arquivo em movements/scripts e nomeie como "portpass.lua"


function onStepIn(cid, item, position, fromPosition)

	local pLevel = 100 --Level necessário para passar
	local positivo = "Você passou da porta!" -- Mensagem que vai ser enviada ao passar
	local semlvl = "Você precisa de level " ..pLevel.. " pelo menos para passar desta porta."
	local repete = "Você já passou na porta uma vez."
	local storage = 60609

		if getPlayerLevel(cid) < pLevel then --se nao tiver lvl
			doTeleportThing(cid, fromPosition, true)
			doSendMagicEffect(getPlayerPosition(cid), 10)
			doPlayerSendTextMessage(cid, 22, semlvl)
		
		elseif getPlayerStorageValue(cid, storage) == 1 then --se ja tiver passado
			doTeleportThing(cid, fromPosition, true)
			doSendMagicEffect(getPlayerPosition(cid), 10)
			doPlayerSendTextMessage(cid, 22, repete)
		else --se puder passar
				doTeleportThing(cid, doSendMagicEffect(getPlayerPosition(cid), 10), true) --Move o player pra frente, não permitindo que ele volte
				doPlayerSendTextMessage(cid, 22, positivo)
				doPlayerSetStorageValue(cid, storage, 1)

		end
		
	return TRUE
end

 

Agora abra o arquivo "movements.xml", localizado na pasta movements e adicione essa tag:

 

 
<movevent type="StepIn" actionid="30001" event="script" value="portpass.lua"/>
 

 
[Obs.: Pode mudar o actionid se essa não for válida]
 
Agora basta colocar a actionid na porta que, no caso, seria 30001.
Editado por david0703 (veja o histórico de edições)

Atenciosamente, David Araujo

Meu Conteúdo

 

Fui útil? Gostou? 
Faça uma doação.

 
 
 

"É errando que se erra."

"Gambiarras resolvem instantemente, porém podem complicar em problemas futuros."

"Cada dia vivido é um aprendizado."

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

Gente, eu desisti desse script pois tem uma coisa que vai ferrar, nesse script para a quest q eu estou fazendo, se a pessoa morrer ela não vai poder voltar mais, então eu preciso que a porta poderá ser usada por um player no mínimo 5 vezes. Se Alguem Puder Ajudar Ficarei Grato!!




----------------------------------------------////////////////////////////////////////////////////////////////////////////////--------------------------------------

 

 

Contato:

 

                      Skype: nicraftextreme
                      E-mail: [email protected] / [email protected]

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

Gente, eu desisti desse script pois tem uma coisa que vai ferrar, nesse script para a quest q eu estou fazendo, se a pessoa morrer ela não vai poder voltar mais, então eu preciso que a porta poderá ser usada por um player no mínimo 5 vezes. Se Alguem Puder Ajudar Ficarei Grato!!

----------------------------------------------////////////////////////////////////////////////////////////////////////////////--------------------------------------

 

 

Contato:

 

                      Skype: nicraftextreme

                      E-mail: [email protected] / [email protected]

Então poe a porta no final da quest

pc.php?pc=7trCBDN1LhgE9IcLElu7nDpBFewxq5

Link para o post
Compartilhar em outros sites

Só por no final da quest enfrente o Baú ou enfrente um Boss. Porque no final enfrente o baú não vai adiantar MT baú tem sua própria storage.

Mas você pode fazer uma quest como uma única tentativa . Valendo uma boa Reward

​Obstaculo Impossível?

Impossível é existir algo Impossível ;) 

 

 

 

 

Confira os Meus Conteúdos ! 

Te ajudei ? REP + E Ficamos KIT ;)

Link para o post
Compartilhar em outros sites

Simples... basta colocar o seguinte codigo no script do bau, na parte que 

doPlayerSetStorageValue(cid, storage, 1)

 

agora segue o script editado pra vc...

 

 

Crie um arquivo em movements/scripts e nomeie como "portpass.lua"


function onStepIn(cid, item, position, fromPosition)

	local pLevel = 100 --Level necessário para passar
	local positivo = "Você passou da porta!" -- Mensagem que vai ser enviada ao passar
	local semlvl = "Você precisa de level " ..pLevel.. " pelo menos para passar desta porta."
	local repete = "Você já passou na porta uma vez."
	local storage = 60609

		if getPlayerLevel(cid) < pLevel then --se nao tiver lvl
			doTeleportThing(cid, fromPosition, true)
			doSendMagicEffect(getPlayerPosition(cid), 10)
			doPlayerSendTextMessage(cid, 22, semlvl)
		
		elseif getPlayerStorageValue(cid, storage) == 1 then --se ja tiver feito a quest
			doTeleportThing(cid, fromPosition, true)
			doSendMagicEffect(getPlayerPosition(cid), 10)
			doPlayerSendTextMessage(cid, 22, repete)
		else --se puder passar
				doPlayerSendTextMessage(cid, 22, positivo)
		end
		
	return TRUE
end

 

Agora abra o arquivo "movements.xml", localizado na pasta movements e adicione essa tag:

 

 
<movevent type="StepIn" actionid="30001" event="script" value="portpass.lua"/>
 

 
[Obs.: Pode mudar o actionid se essa não for válida]
 
Agora basta colocar a actionid na porta que, no caso, seria 30001.
Editado por david0703 (veja o histórico de edições)

Atenciosamente, David Araujo

Meu Conteúdo

 

Fui útil? Gostou? 
Faça uma doação.

 
 
 

"É errando que se erra."

"Gambiarras resolvem instantemente, porém podem complicar em problemas futuros."

"Cada dia vivido é um aprendizado."

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