Ir para conteúdo

Featured Replies

Postado

Olá pessoal, preciso de um grande favor, o pedido é o seguinte: Existem 6 teleports, os quais preciso que dão uma Storage para o player, cada um da uma exemplo: teleport1 = storage 1001.. teleport6 = storage 1006

Quando o player passar por cima dos 6 teleports, ele irá acumular as 6 storages, com elas ele poderá passar em um outro, lembrando que o player só poderá passar neste outro se tiver as 6 storages dos 6 teleports, não sei se isto é impossível de fazer, sei que é possível.. se alguem ajudar ai ficarei muito agradecido e vai um repzão! :D

Obrigado!

  • Respostas 36
  • Visualizações 2.5k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • sim é possível, mas porque não usar uma só storage e mudar o valor)quantidade) delas?   por exemplo:   storage 1001(+1) storage 1001(+2) storage 1001(+3)    

  • Seria interessante parar para pensar em fazer como o @Vodkart mencionou, mas, caso seja do interesse do 'player' o 'script' que utiliza mais 'storages' poderá indicar qual ainda não foi passado.

  • @Xagah Seus scripts me dão dor de cabeça.   local config = { [2001] = {pos={x=1000, y=1000, z=1}, storage=1001}, -- [actionid], pos= aonde que leva, storage [2002] = {pos={x=1000, y=10

Postado
  • Autor
17 minutos atrás, Vodkart disse:

sim é possível, mas porque não usar uma só storage e mudar o valor)quantidade) delas?

 

por exemplo:

 

storage 1001(+1)

storage 1001(+2)

storage 1001(+3)

 

 

etc...

 

 

É tipo assim, existem 6 salas, e um teleport em determinado local, apos entrar nas 6 salas e passar pelos teleports, ele poderá passar pelo teleport no determinado local, eu nao faço nem ideia como poderá ser feito isto, mas deve ser adicionando algumas actions ou creaturescripts.. xD

Postado

Seria interessante parar para pensar em fazer como o @Vodkart mencionou, mas, caso seja do interesse do 'player' o 'script' que utiliza mais 'storages' poderá indicar qual ainda não foi passado.

 

Embora eu não tenha pensado no que ele mencionou, fiz um rascunho aqui.

 

Coloque isto no 'actions.xml':

<action actionid="18181" event="script" value="portais.lua"/>

E cria um arquivo 'portais.lua' na pasta 'data > actions > scripts' e coloque isto aí dentro:

	local PLACA = {
	-- Portal 1
	[10001] = {storage = 11222, unique = 10001},
	
	-- Portal 2
	[10002] = {storage = 11223, unique = 10002},
	
	-- Portal 3
	[10003] = {storage = 11224, unique = 10003},
	
	-- Portal 4
	[10004] = {storage = 11225, unique = 10004},
	
	-- Portal 5 
	[10005] = {storage = 11226, unique = 10005},
	
	-- Portal 6
	[10006] = {storage = 11227, unique = 10006},
	
	-- Portal 7 (precisa dos outros storage)
	[10007] = {storage = 11228, unique = 10007},

}

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
		local placas = PLACAS[item.uid]
		local sto1 = getPlayerStorageValue(cid, 11222)
		local sto2 = getPlayerStorageValue(cid, 11223)
		local sto3 = getPlayerStorageValue(cid, 11224)
		local sto4 = getPlayerStorageValue(cid, 11225)
		local sto5 = getPlayerStorageValue(cid, 11226)
		local sto6 = getPlayerStorageValue(cid, 11227)
		local novaPos = {x = 123, y = 123, z = 7} -- Esta é a coordenada para onde o último portal enviará o player					
								
		if (placas.unique == 10007) then
			if (sto1 == 1 and sto2 == 1 and sto3 == 1 and sto4 == 1 and sto5 == 1 and sto6 == 1) then
				doTeleportThing(cid, novaPos)
			else
				doTeleportThing(cid, fromPosition)
				doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você ainda não passou por todos os portais.")
				doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
				return true
			end	
		else
			doPlayerSetStorageValue(cid, placas.storage,1)
			doPlayerSendCancel(cid, "Você não pode entrar com nenhuma "..getItemNameById(itemNecessario)..".")
		return true
		end	
end

Depois, em cada portal, coloque (utilizando o ReMere Map Editor - duplo clique no portal) o 'actionId' 18181, e os Unique Id´s de 10001 até 10006.

 

O 10007 deverá ser para o último portal.

 

Além disto, olha no 'script' para colocar a posição para onde o último portal iráenviar.

 

Teste aí e veja o que deu.

Postado
  • Autor
26 minutos atrás, Xagah disse:

Seria interessante parar para pensar em fazer como o @Vodkart mencionou, mas, caso seja do interesse do 'player' o 'script' que utiliza mais 'storages' poderá indicar qual ainda não foi passado.

 

Embora eu não tenha pensado no que ele mencionou, fiz um rascunho aqui.

 

Coloque isto no 'actions.xml':


<action actionid="18181" event="script" value="portais.lua"/>

E cria um arquivo 'portais.lua' na pasta 'data > actions > scripts' e coloque isto aí dentro:


	local PLACA = {
	-- Portal 1
	[10001] = {storage = 11222, unique = 10001},
	
	-- Portal 2
	[10002] = {storage = 11223, unique = 10002},
	
	-- Portal 3
	[10003] = {storage = 11224, unique = 10003},
	
	-- Portal 4
	[10004] = {storage = 11225, unique = 10004},
	
	-- Portal 5 
	[10005] = {storage = 11226, unique = 10005},
	
	-- Portal 6
	[10006] = {storage = 11227, unique = 10006},
	
	-- Portal 7 (precisa dos outros storage)
	[10007] = {storage = 11228, unique = 10007},

}

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
		local placas = PLACAS[item.uid]
		local sto1 = getPlayerStorageValue(cid, 11222)
		local sto2 = getPlayerStorageValue(cid, 11223)
		local sto3 = getPlayerStorageValue(cid, 11224)
		local sto4 = getPlayerStorageValue(cid, 11225)
		local sto5 = getPlayerStorageValue(cid, 11226)
		local sto6 = getPlayerStorageValue(cid, 11227)
		local novaPos = {x = 123, y = 123, z = 7} -- Esta é a coordenada para onde o último portal enviará o player					
								
		if (placas.unique == 10007) then
			if (sto1 == 1 and sto2 == 1 and sto3 == 1 and sto4 == 1 and sto5 == 1 and sto6 == 1) then
				doTeleportThing(cid, novaPos)
			else
				doTeleportThing(cid, fromPosition)
				doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você ainda não passou por todos os portais.")
				doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
				return true
			end	
		else
			doPlayerSetStorageValue(cid, placas.storage,1)
			doPlayerSendCancel(cid, "Você não pode entrar com nenhuma "..getItemNameById(itemNecessario)..".")
		return true
		end	
end

Depois, em cada portal, coloque (utilizando o ReMere Map Editor - duplo clique no portal) o 'actionId' 18181, e os Unique Id´s de 10001 até 10006.

 

O 10007 deverá ser para o último portal.

 

Além disto, olha no 'script' para colocar a posição para onde o último portal iráenviar.

 

Teste aí e veja o que deu.

Deu isto na distro: [Warning - Event::loadScript] Event onUse not found (data/actions/scripts/portais.lua)

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo