Ir para conteúdo

SCRIPT para CheckPoint de teleports


Posts Recomendados

Olá amigos,


Estou com um grande problema e não achei nada parecido aqui no TK.


Segue o exemplo da imagem, o player vai ter um tp no templo e outro na quest, quando ele passar pelo tp1 ele vai ser teleportado para o X na direita do player salvando a sua posição de checkpoint, ao passar pelo tp2 ele irá ser teleportado para o X que será sua posição de checkpoint, o tp2 se encontrará no templo.



Consistência:


*só pode salvar uma vez, se ele entrar em outro checkpoint ele resetará sua posição para a ultima;


*se não houver checkpoint, o player receberá uma mensagem de que não há checkpoint;


*em cada tp ao teleportar o player recebe uma mensagem, com qualquer efeito, só pra saber como é o código do efeito;




12571287_555245157978603_988990226_n.png


Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

Em movements/scripts, crie um arquivo chamado checkpoint.lua e adicione:

 

 

function onStepIn(cid, item, position, fromPosition)	 	local inicio = {x=, y=, z=}	local firstcheck = {x=, y=, z=}	local secondcheck = {x=, y=, z=}	local thirdcheck = {x=, y=, z=}	local fim = {x=, y=, z=}	 	if(item.actionid) == 3000 then	 	if getPlayerStorageValue(cid, 3000) <= 0 then	doTeleportThing(cid, inicio)	doSendMagicEffect(getPlayerPosition(cid), 12)	doPlayerSendTextMessage(cid, 22, "Voce esta no inicio da quest. Passe pelos checkpoints dentro dela para ir direto ao ponto de parada.")	end	 	if getPlayerStorageValue(cid, 3000) == 1 then	doTeleportThing(cid, firstcheck)	doSendMagicEffect(getPlayerPosition(cid), 12)	doPlayerSendTextMessage(cid, 22, "Voce esta na segunda parte da quest, ja que pegou o primeiro checkpoint! Boa sorte.")	end	 	if getPlayerStorageValue(cid, 3000) == 2 then	doTeleportThing(cid, secondcheck)	doSendMagicEffect(getPlayerPosition(cid), 12)	doPlayerSendTextMessage(cid, 22, "Voce esta na terceira parte da quest, ja que pegou o segundo checkpoint! Boa sorte.")	end	 	if getPlayerStorageValue(cid, 3000) == 3 then	doTeleportThing(cid, thirdcheck)	doSendMagicEffect(getPlayerPosition(cid), 12)	doPlayerSendTextMessage(cid, 22, "Voce esta na quarta parte da quest, ja que pegou o terceiro checkpoint! Boa sorte.")	end	 	if getPlayerStorageValue(cid, 3000) == 4 then	doTeleportThing(cid, fim)	doSendMagicEffect(getPlayerPosition(cid), 12)	doPlayerSendTextMessage(cid, 22, "Voce esta na sala de premio da quest, pois ja a terminou!")	end	 	end	 	if(item.actionid) == 3001 then	setPlayerStorageValue(cid, 3000, 1)	doTeleportThing(cid, firstcheck)	doSendMagicEffect(getPlayerPosition(cid), 12)	doPlayerSendTextMessage(cid, 22, "Voce esta na segunda parte da quest, ja que pegou o primeiro checkpoint! Boa sorte.")	end	 	if(item.actionid) == 3002 then	setPlayerStorageValue(cid, 3000, 2)	doTeleportThing(cid, secondcheck)	doSendMagicEffect(getPlayerPosition(cid), 12)	doPlayerSendTextMessage(cid, 22, "Voce esta na terceira parte da quest, ja que pegou o segundo checkpoint! Boa sorte.")	end	 	if(item.actionid) == 3003 then	setPlayerStorageValue(cid, 3000, 3)	doTeleportThing(cid, thirdcheck)	doSendMagicEffect(getPlayerPosition(cid), 12)	doPlayerSendTextMessage(cid, 22, "Voce esta na quarta parte da quest, ja que pegou o terceiro checkpoint! Boa sorte.")	end	 	if(item.actionid) == 3004 then	setPlayerStorageValue(cid, 3000, 4)	doTeleportThing(cid, fimcheck)	doSendMagicEffect(getPlayerPosition(cid), 12)	doPlayerSendTextMessage(cid, 22, "Parabens! Voce esta na sala de premio, por concluir a quest!!!")	end	 	return true	end

 

Link para o comentário
Compartilhar em outros sites

Em  movements.xml, adicione:

 

              <movevent event="StepIn" itemid="ID DO TP" script="checkpoint.lua" /> 

 

Bom, explicando:

 

No tp que leva a quest, coloque action id 3000

no primeiro checkpoint coloque action id 3001

no segundo checkpoint coloque action id 3002

no terceiro checkpoint coloque action id 3003

no tp q leva a sala de premio coloque action id 3004

 

nas coordenadas:

 

inicio= local de inicio da quest

firstcheck = local para onde o primeiro checkpoint leva, ou seja, pra segunda parte da quest

...

fim = local da sala de premio

 

OBS: bugo o post de cima, tive q postar outro

OBS2: coloquei "fimcheck" ali no fim do script, eh só "fim"

 

 

 

Editado por miguel223
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...