Ir para conteúdo
  • Cadastre-se

(Resolvido)Precisa de x storage pra entra em x area


Ir para solução Resolvido por lordzetros,

Posts Recomendados

bom galera queria um script que o player só poderia entra em uma x area se estiver a storage 43352. Queria que quando o player sair dessa x area remova essa storage 43352.

 

Exemplo: o player compra um item ou arrumar nos boss, quando ele dê use no item ativará a storage 43352. assim dando a permisão de entra na x area. caso o player esteja nessa x area e invente de sair, queria que remove-se a storage 43352. Assim o player terá que arruma o item novamente  para entra na x area.

 

 

tfs 0.4 versao 8.60

Editado por BangxD (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
8 horas atrás, lordzetros disse:

Ele irá entrar por uma porta, portal, piso? E quais são as formas dele sair? Da mesma forma?

 

Será tudo piso, ao entrar e ao sair

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

Em data/actions/scripts/ crie um arquivo chamado setStoragePiso.lua e cole o código abaixo dentro dele:

local storage = 43352 -- Storage, coloquei o mesmo do post, caso queira mudar, faça isso nos dois scripts.
local msg_sucesso = "Opa, parece que voce pode entrar na area sagrada." -- Mensagem quando o usuário usar o item
local msg_falha = "Voce ja tem permissao para entrar na area sagrada!" -- Caso o usuário ja tenha usado o item antes e nao saiu da área.
local efeito = CONST_ME_HOLYDAMAGE -- Efeito quando player usar o item

function onUse(cid, item, fromPos, item2, toPos)
	if (isPlayer(cid)) then
		if (getPlayerStorageValue(cid, storage) == -1) then
			setPlayerStorageValue(cid, storage, 1)
			doRemoveItem(item.uid, 1)
			doPlayerSendCancel(cid, msg_sucesso)
			doSendMagicEffect(getCreaturePosition(cid), efeito)
		else
			doPlayerSendCancel(cid, msg_falha)
			doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
		end
	end
	return true
end

 

Em data/actions/actions.xml adicione este código abaixo de um semelhante:

<action itemid="id_do_item" event="script" value="setStoragePiso.lua"/>

OBS.: MUDE ACIMA O ID DO ITEM PARA O QUAL VOCÊ QUER QUE O PLAYER USE PARA SETAR O STORAGE

 

 

 

Em data/movements/scripts/ crie um arquivo chamado pisoStorage.lua e adicione o código abaixo:

local storage = 43352 -- Storage, coloquei o mesmo do post, caso queira mudar, faça isso nos dois scripts.
local msg_entrar = "Voce entrou na area sagrada." -- Mensagem quando o player entrar na área.
local msg_sem_permissao = "Voce nao esta autorizado a passar por aqui!" -- Caso player não tenha o storage ainda
local telePosition = {x = 155, y = 54, z = 7} -- Posicao do local que o player será teleportado quando ele pisar na saída 
local msg_saida = "Voce saiu da area sagrada, agora esta sem permissao para andar por lá." -- Mensagem de quando o player sair da area

function onStepIn(cid, item, pos, fromPos)
	if not (isPlayer(cid)) then return false end
	if (item.actionid == 45560) then
		if (getPlayerStorageValue(cid, storage) ~= -1) then
			doPlayerSendCancel(cid, msg_entrar)
			doSendMagicEffect(pos, CONST_ME_MAGIC_BLUE)
		else
			doPlayerSendCancel(cid, msg_sem_permissao)
			doTeleportThing(cid, fromPos, true)
		end
	elseif (item.actionid == 45561) then
		setPlayerStorageValue(cid, storage, -1)
		doTeleportThing(cid, telePosition)
		doPlayerSendCancel(cid, msg_saida)
	end
	return true
end

 

Em data/movements/movements.xml adicione este código abaixo de um semelhante:

<movevent type="StepIn" actionid="45560;45561" event="script" value="pisoStorage.lua"/>

 

1 - Configure no seu editor de mapa no piso de entrada coloque o actionID = 45560

2 - Ainda no editor de mapa, no piso de saída coloque o actionID = 45561

 

Não fiz o teste, mas qualquer erro, pode postar aqui novamente que tentarei lhe ajudar. 

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

Feliz daquele que ensina o que sabe, e aprende o que ensina.

 

               

star-wars-animated-gif-23.gif

Link para o post
Compartilhar em outros sites

era isso msm amigo muito obriado. apareceu só um erro aqui:

doTeleportThing(cid, fromPosition, true)

mudei

doTeleportThing(cid, fromPos, true)
Editado por BangxD (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

@BangxD Eita, verdade. Descuido de minha parte, corrigido. Que bom que deu certo, sucesso! 

Feliz daquele que ensina o que sabe, e aprende o que ensina.

 

               

star-wars-animated-gif-23.gif

Link para o post
Compartilhar em outros sites
11 hours ago, lordzetros said:

 

Em data/movements/scripts/ crie um arquivo chamado pisoStorage.lua e adicione o código abaixo:


local storage = 43352 -- Storage, coloquei o mesmo do post, caso queira mudar, faça isso nos dois scripts.
local msg_entrar = "Voce entrou na area sagrada." -- Mensagem quando o player entrar na área.
local msg_sem_permissao = "Voce nao esta autorizado a passar por aqui!" -- Caso player não tenha o storage ainda
local telePosition = {x = 155, y = 54, z = 7} -- Posicao do local que o player será teleportado quando ele pisar na saída 
local msg_saida = "Voce saiu da area sagrada, agora esta sem permissao para andar por lá." -- Mensagem de quando o player sair da area

function onStepIn(cid, item, pos, fromPos)
	if not (isPlayer(cid)) then return false end
	if (item.actionid == 45560) then
		if (getPlayerStorageValue(cid, storage) ~= -1) then
			doPlayerSendCancel(cid, msg_entrar)
			doSendMagicEffect(pos, CONST_ME_MAGIC_BLUE)
		else
			doPlayerSendCancel(cid, msg_sem_permissao)
			doTeleportThing(cid, fromPos, true)
		end
	elseif (item.actionid == 45561) then
		setPlayerStorageValue(cid, storage, -1)
		doTeleportThing(cid, telePosition)
	end
	return true
end

 

Seguinte, penso que isso não esta completo.

 

O player pode dar TP dentro da area "X" e o valor nunca será atualizado:

setPlayerStorageValue(cid, storage, -1)

e poderá voltar a entrar na area "X" sempre, sem problemas.

Link para o post
Compartilhar em outros sites

@zxcvbnm Pensando desta forma sim, porém, perguntei ao autor do tópico como seria a entrada do jogador nesta área X, o mesmo respondeu que seria apenas por piso, logo, esta possibilidade é descartada, correto? 
Em seguida, acho que em questão do jogador entrar na área novamente, não será um problema, visto que da forma que está, o jogador pode entrar pelo piso e pisar novamente na entrada sem problema algum, não proíbe a passagem dele na entrada novamente até que ele complete o possível 'objetivo': chegar na saída (e aí sim, ele perderá permissão de adentrar na área novamente).

Feliz daquele que ensina o que sabe, e aprende o que ensina.

 

               

star-wars-animated-gif-23.gif

Link para o post
Compartilhar em outros sites
Quote

bom galera queria um script que o player só poderia entra em uma x area se estiver a storage 43352. Queria que quando o player sair dessa x area remova essa storage 43352.

 

Exemplo: o player compra um item ou arrumar nos boss, quando ele dê use no item ativará a storage 43352. assim dando a permisão de entra na x area. caso o player esteja nessa x area e invente de sair, queria que remove-se a storage 43352. Assim o player terá que arruma o item novamente  para entra na x area.

@lordzetros segundo o autor, tinhas de considerar esta opção.  "Assim o player terá que arruma o item novamente  para entra na x area."

Link para o post
Compartilhar em outros sites

@zxcvbnm Exatamente, colega, kkk, veja bem:

"caso o player esteja nessa x area e invente de sair, queria que remove-se a storage 43352. Assim o player terá que arruma o item novamente  para entra na x area."
Ele se referiu CASO o player resolve-se sair, correto?

Feliz daquele que ensina o que sabe, e aprende o que ensina.

 

               

star-wars-animated-gif-23.gif

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo