Ir para conteúdo
  • Cadastre-se

(Resolvido)[PEDIDO] Teleport que ao passar entrega um item para o player.


Ir para solução Resolvido por Shizuo Silva,

Posts Recomendados

Fala pessoal

Andei procurando esse script entre alguns datapacks e não achei. É para fazer a quest do Helmet of the Ancients, onde o player ganha o item (parte do helmet) só de passar no teleport.

Cheguei a achar um global que tinha uma actionid no teleport, porem eu procurei o id dela em actions e movements e não achei...

Obrigado Antecipadamente ^^

Link para o post
Compartilhar em outros sites
Movements.xml-- Dentro da pasta data/movements
<movevent type="StepIn" actionid="ACTIONIDAQUI" event="script" value="ReceiveQuestItem.lua"/>

ReceiveQuestItem.lua -- Dentro da pasta data/movements/scripts

​function onStepIn(cid, item, position, fromPosition)
--CONFIG ITEM
local itemid = 2160 -- CrystalCoin
local count = 7 -- Quantidade do item acima, se não for stackable colocar 0
local playerCap = getPlayerFreeCap(cid)
local itemweight = getItemWeight(itemid, count)
--CONFIG ITEM
if isPlayer(cid) == true and playerCap >= itemweight then -- Irá checar se é jogador e se tem capacidade suficiente para carregar o item!
doPlayerAddItem(cid, itemid, count, false)
        return true
else -- Se não tiver capacidade ou não for um jogador, não deixará entrar no teleport!
return false
end
end

Ai está, não testei porém creio que irá funcionar perfeitamente :)
Não esqueça de adicionar o ActionID no item e modificar ele na Tag

Te ajudei, REP +

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

:traning:Skype: Jonhy172 (۩V͇̿I͇̿P͇̿۩ Jopheno ۩V͇̿I͇̿P͇̿۩) :traning:

Te Ajudei ? Rep +

Link para o post
Compartilhar em outros sites
  • Solução

se não souber configurar a tag só falar :

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition)

	local config = {

		pos = {x= x, y= y, z= z}, -- POS pra ser teleportado
		itemid = xxx, -- Item que vai ganhar
		storage = 98754
	}

		if isPlayer(cid) and getPlayerStorageValue(cid, config.storage) < 1 and getPlayerFreeCap(cid) >= getItemWeight(config.itemid, 1) then
			doTeleportThing(cid, config.pos)
	    	        doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
			doPlayerAddItem(cid, config.itemid, 1)
			setPlayerStorageValye(cid, config.storage, 1)
		else
			doTeleportThing(cid, fromPosition)
		end

	return true
end
Editado por Shizuo Silva (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

onde configura a tag ? so um extreme nub em script .--

 

em movements.XML :

	<movevent type="StepIn" actionid="ACTIONIDDOTP" script="ARQUIVO.lua"/>
Editado por Shizuo Silva (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Actually, isso é um moveevent, não uma action.

 

AShjsauhashuasuha, bem percebido...

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Link para o post
Compartilhar em outros sites

Actually, isso é um moveevent, não uma action.

Pena q nao tenho mais rep+ para dar... Mereceu. 

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

@Caronte e @david0703, cuidado com flood amigos.

 

Leiam as regras: http://www.tibiaking.com/forum/forum/23-regras-do-forum/

 

 

2.4 - Mensagens inúteis:
Não poste mensagens sem conteúdo, que não contribuem em nada ou que não estejam relacionadas ao assunto do tópico. Mensagens assim são chamadas de Floods. Postar coisas como "haha", "lol", "me add no msn aí", entre outras, é o que considera-se completamente inútil. Postar várias mensagens iguais, mesmo que em tópicos diferentes, também pode ser considerado Flood.

Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Link para o post
Compartilhar em outros sites

Waterson, caso eu queria que o player precisa ter X item na backpack para entrar no teleport, como fica o script?

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition)

	local config = {
		pos = {x= 160, y= 54, z= 7}, -- POS pra ser teleportado
		itemid = 2471, -- Item que vai ganhar
		qtditem = 1 , --Quantidade que do item que vai ganhar
		storage = 98754,
		itemremove = 2160, -- Item que o player deve possuir para passar
		qtditemremove = 50 -- Quantidade do item que deve possuir
	}

	if isPlayer(cid) and getPlayerStorageValue(cid, config.storage) < 1 and getPlayerFreeCap(cid) >= getItemWeight(config.itemid, 1) and doPlayerRemoveItem(cid, config.itemremove, config.qtditemremove) then
		doTeleportThing(cid, config.pos)
		doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
		doPlayerAddItem(cid, config.itemid, config.qtditem)
		setPlayerStorageValye(cid, config.storage, 1)
	else
		doTeleportThing(cid, fromPosition)
	end

	return true

end

Também coloquei outra variável para determinar a quantidade do item a ser entregue ao jogador.

Atenciosamente,

Bruno Minervino

Link para o post
Compartilhar em outros sites

Obrigado Bruno

Por nada...

Como estou saindo do trabalho agora, não dá mais tempo.

Quando eu chegar em casa faço para você mensagens de erro, para o player que for entrar no teleport estar ciente do que tenha dado errado eventualmente.

 

Att.

Atenciosamente,

Bruno Minervino

Link para o post
Compartilhar em outros sites

Por nada...

Como estou saindo do trabalho agora, não dá mais tempo.

Quando eu chegar em casa faço para você mensagens de erro, para o player que for entrar no teleport estar ciente do que tenha dado errado eventualmente.

 

Att.

 

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition)
    local config = {
        pos = {x= 160, y= 54, z= 7}, -- POS pra ser teleportado
        itemid = 2471, -- Item que vai ganhar
        qtditem = 1 , --Quantidade que do item que vai ganhar
        storage = 98754,
        itemremove = 2160, -- Item que o player deve possuir para passar
        qtditemremove = 50 -- Quantidade do item que deve possuir
    }
    if not isPlayer(cid) then
        return true
    elseif getPlayerStorageValue(cid, config.storage) > -1 then
        doTeleportThing(cid, fromPosition)
        doPlayerSendCancel(cid, "You can't pass here")
    elseif not getPlayerFreeCap(cid) >= getItemWeight(config.itemid, 1) then
        doTeleportThing(cid, fromPosition)
        doPlayerSendCancel(cid, "You need weight to carry this item, It weighs "..getItemWeight(config.itemid, 1).." oz.")
    elseif doPlayerRemoveItem(cid, config.itemremove, config.qtditemremove) then                                        
        doTeleportThing(cid, config.pos)
        doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
        doPlayerAddItem(cid, config.itemid, config.qtditem)
        setPlayerStorageValue(cid, config.storage, 1)
    else
        return doPlayerSendCancel(cid, "You do not have the necessary item to pass here.") and doTeleportThing(cid, fromPosition)
    end
    return true
end

Ta mal identado pq o clipboard destruiu ...

 

@Shizuo Silva, não precisa da magic effect no doTeleportThing, ele já tem ele configurado por padrão em players não ghost..., use essa linha só se quiser dar um efeito diferente juntamente com o de TP

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

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Link para o post
Compartilhar em outros sites

Faltou um end. t.t

 

Thank you my BAE  :wub:

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Link para o post
Compartilhar em outros sites

@Loldinis,
 
Como havia lhe prometido

function onStepIn(cid, item, position, fromPosition)

	local config = {
		pos = {x= 160, y= 54, z= 7}, -- POS pra ser teleportado
		itemid = 2471, -- Item que vai ganhar
		qtditem = 1 , --Quantidade que do item que vai ganhar
		storage = 98754,
		itemremove = 2160, -- Item que o player deve possuir para passar
		qtditemremove = 50 -- Quantidade do item que deve possuir
	}
	
	if not isPlayer(cid) then
		return true
	end

	if getPlayerStorageValue(cid, config.storage) < 1 then
		if doPlayerRemoveItem(cid, config.itemremove, config.qtditemremove) then
			if getPlayerFreeCap(cid) >= getItemWeight(config.itemid, config.qtditem) then
				doTeleportThing(cid, config.pos)
				doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
				doPlayerAddItem(cid, config.itemid, config.qtditem)
				setPlayerStorageValue(cid, config.storage, 1)
			else
				doTeleportThing(cid, fromPosition)
				doPlayerSendCancel(cid, "You need weight to carry this item. It weighs "..getItemWeight(config.itemid, config.qtditem).." oz.")
			end
		else
			doTeleportThing(cid, fromPosition)
			doPlayerSendCancel(cid, "You need " .. config.qtditemremove .. "x " .. getItemNameById(config.itemremove) .. " to enter.")
		end
	else
		doTeleportThing(cid, fromPosition)
		doPlayerSendCancel(cid, "You already done this quest.")
	end

	return true

end
Editado por Bruno Minervino (veja o histórico de edições)

Atenciosamente,

Bruno Minervino

Link para o post
Compartilhar em outros sites

@Bruno

No seu código, caso a criatura que execute a ação (ou seja, cid) não seja um jogador, haverá erro de player not found. Recomendaria deixar a seguinte verificação no início do script:

if not isPlayer(cid) then
    return true
end

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

 

@Bruno

No seu código, caso a criatura que execute a ação (ou seja, cid) não seja um jogador, haverá erro de player not found. Recomendaria deixar a seguinte verificação no início do script:

if not isPlayer(cid) then
    return true
end

Você está certo :) falta de atenção minha rs

Vlw man :D

Atenciosamente,

Bruno Minervino

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.

  • Conteúdo Similar

    • Por Mathwsz
      Bom galera, estou trazendo um script de fusão que funciona assim:
      Explicação: É necessário de 7 itens, na qual você coloca em tal coordenada e aperte a alavanca, sendo assim formando um item na qual você deseja em tal lugar configurado.
      Exemplo: Você pode fazer 7 bosses na qual dropa tals itens "Parecidos" e formando um item raro de sua escolha, ou como preferir.. Vamos ao script!
       
      Em Data/Actions/Scripts crie um arquivo chamado fusaoitens.lua e adicione isto dentro:
       
       
      Agora, em Data/Actions.xml adicione o seguinte:
       
      <action uniqueid="9900" script="fusaoitens.lua" /> E no seu RemeresMapEditor , pegue sua alavanca, vai em Propriedades e adicione o UniqueID 9900 nele! 
      PRONTO! Agora configure e divirta-se! Obs: Caso lhe ajudei, da um REP+ Aí !
    • Por LasseXeterno
      Então, estou tentando adicionar uma nova "race" no meu Ot de base Cyan, tentei seguir 3 tutoriais aqui do tibiaking, um sobre race, porém nos códigos do meu servidor não tem o constant.h e nem o monster.cpp. E o outro tutorial, eu fiz tudo que ele pediu e quando entrei no game para testar, funcionava os golpes e as imunidades, porém não aparecia o número do dano e nem a cor.  Usei esse tutorial como base: 
      Pois ele é derivado. E o outro tutorial que usei foi: 
      Porém nesse, não consegui achar a const.h, e quando fui nos arquivos do creaturescript e adicionei uma cor nova a "COLOR_FAIRY", quando abro o jogo, os pokemons que seriam teoricamente "fada", o que eu usei de teste foi a Clefable. A Clefable tomava IK e dava IK no seu atk do tipo fada. 
      Além de que, o meu erro principal é esse: Warning - Monsters::loadMonster] Unknown race type fairy. (data/monster/pokes/geracao 1/Clefable.xml)
       Pois como eu já disse, não consigo achar onde adicionar uma nova race.

    • Por yuriowns
      Salve rapazes, tranquilo? Preciso de ajuda pra colocar para os npc's que vendem pots verificarem quantos itens possuem no tile em que o player está e se tiver com +80 itens no sqm, o npc avisa e não vende nada até o player ir em um sqm com menos de 80 itens no chão.
       
    • Por A.Mokk
      .Qual servidor ou website você utiliza como base? 
      TFS 0.4
      Qual o motivo deste tópico? 
      Bom pessoal, a algumas semanas atras eu joguei um servidor que havia sistema de imbuimento sendo 8.60, no servidor se utilizava a spellwand para encantar as armas, os comandos eram dado no canal Imbuiment... Gostaria de saber se alguém teria como disponibilizar algum sistema de imbuimento, já procurei pra caramba aqui no fórum mas tudo que encontro é pra versões acima da que eu uso.
       
    • Por Mateus Robeerto
      Não sei se aqui é a área ou algum local para solicitar a alteração do email antigo... Não lembro mais a senha dele, nem a resposta secreta para acessar. Peço a algum administrador ou moderador para, por favor, alterar o email para o novo.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo