Ir para conteúdo

Action Que Cria E Remove Tp Após Matar Monstro


pdzinhow

Posts Recomendados

Olá galera do Xtibia estou trazendo aqui pra vocês esse script que procurei a morrar aqui e não achei e so fui encontrar lá no Otland e funcionou certinho aqui no meu otserv ;) então vou postar aqui os créditos que fez o script se não me engano foi o Darkhaos lá no otland. Agora vamos começar, vou passar 3 passos para adicionar esse script no seu ot. Ahhh vou postar imagens e 1 video que fiz n tá muito legal n mais é so pra ter idéia de como é ^^.

 

1º passo: Vá na pasta Data/creaturescripts/scripts copie qualquer arquivo lá e cole e renomeia para nomedomonstro_teleport o meu é hades_teleport. Certo feito isso copie e cole isso aqui:

--- Created by Darkhaos

function onDeath(cid, corpse, killer)

registerCreatureEvent(cid, "[color="#FF0000"]hadesTeleport[/color]")

local creaturename = getCreatureName(cid)
local in_pos = [color="#0000FF"]{x=427, y=1008, z=11, stackpos=2}[/color] 
local checkIID = getThingfromPos(in_pos)
local to_pos = [color="#FF8C00"]{x=424, y=1003, z=11, stackpos=1}[/color] 
local time_to_pass = [color="#9932CC"]10 -- in seconds[/color]
local tpID = [color="#2E8B57"]1387[/color]

   if creaturename == '[color="#808080"]Hades[/color]' then

	teleport = doCreateTeleport(tpID, to_pos, in_pos)

	doSendMagicEffect(in_pos, CONST_ME_TELEPORT)

	doCreatureSay(cid, "[color="#A0522D"]Parabens! voce conseguio derrotar Hades,o deus da morte.Agora desfrute da sua recompensa.[/color]", TALKTYPE_ORANGE_1)
	addEvent(removeTeleport, (1000*time_to_pass))


	end 
end

function removeTeleport()
if getThingfromPos({[color="#00BFFF"]x=427, y=1008, z=11, stackpos=1[/color]}).itemid == 1387 then
doRemoveItem(getThingfromPos({[color="#00BFFF"]x=427, y=1008, z=11, stackpos=1[/color]}).uid,1)
doSendMagicEffect({[color="#00BFFF"]x=427, y=1008, z=11, stackpos=1[/color]}, CONST_ME_POFF)
return TRUE
end
end 

Certo vou explicar agora e tbm postar a imagem:

Onde eu coloquei em vermelho você vai por o nome do seu monstro com esse Teleport junto, exemplo:

hadesteleport

como vocês podem ver no script.

Aqui onde tá de azul marinho é a coordenada que o portal vai ser criado para o player entrar. ( obs: Não mexa no stackpos ).

Aqui em laranja é a posição que o tp vai teleportar o player quando entrar. ( obs: não mexa no stackpos tbm).

Aqui em roxo é o tempo para o tp ser removido do lugar. ( fica a vontade de vocês o tempo ).

Aqui em verde é o id do portal. ( é um magic force field ) :blush:

Aqui em cinza é o nome do monstro que você vai colocar o meu é Hades.

Aqui em marron é o que o monstro vai falar quando morrer. ( tbm fica a vontade de vocês ).

Aqui em azul claro é as coordenadas que vai remover o tp, é so colocar a mesma posição que tem no in_pos onde ta em azul marinho.

pronto primeiro passo feito! :positive:

ai a imagem:

tutorial1sn3.th.jpg

 

 

 

2º passo: agora vá em Data/creaturescript e abra com o bloco de notas o creaturescripts.xml, feito isso

adicione isto aqui :

<event type="death" name="[color="#FF0000"]hadesTeleport[/color]" script="[color="#FF8C00"]hades_teleport[/color].lua"/>

embaixo de

<event type="death" name="PlayerDeath" script="playerdeath.lua"/>

ou qualquer outro que tenha no seu.

Agora vou explicar:

Onde está em vermelho é o nome do evento que tem lá no script do 1 passo então voçê coloca igual como tá lá.

E aqui onde está em laranja é o nome do script que tá lá em Data/creaturescripts/scripts que agente fez no 1 passo, ponha igualzinho para não da erro.

Aqui uma imagem para entender melhor:

tutorial2ap7.jpg

Pronto Finalizamos o 2 passo! :smile_positivo:

 

Agora vamos pro 3º passo e último : vá na pasta Data/Monster e procure pelo arquivo do seu monstro no meu caso é Data/Monster/Custom ai tem lá Hades.xml achado o arquivo abra-o com o bloco de notas e adicione isto aqui :

<script> 
<event name="[color="#2E8B57"]hadesTeleport[/color]"/> 
</script>

onde está em verde é o nome do evento como foi posto lá nos scripts você bota igual como tá lá.

Detalhe: você vai colocar isso embaixo de </flags> do seu monstro. vou postar uma imagem para melhor entendimento :

tutorial3ag9.th.jpg

 

Pronto finalizamos o 3º passo. Agora é so ir e testar no seu ot ^^ :party: Have fun!

 

Aqui vai o video que fiz para vocês olharem como é que acontece mais ou menos ;D!

 

É isso galera!

Espero ter ajudado vocês ;)

Vlw!

Abraços!

post-212601-1229974469_thumb.jpg

post-212601-1229974797_thumb.jpg

post-212601-1229974989_thumb.jpg

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

Soh funciona quando adiciona 1 event desse :/

Por Exemplo, eu faço tudo q vc disse ih soh adiciono isso no creaturesscripts:

 

<?xml version="1.0" encoding="UTF-8"?>

<creaturescripts>

<event type="login" name="PlayerLogin" script="login.lua"/>

<event type="login" name="FirstItems" script="firstitems.lua"/>

<event type="death" name="PlayerDeath" script="playerdeath.lua"/>

<event type="death" name="hadesTeleport" script="hades_teleport.lua"/>

</creaturescripts>

Assim ele Fuciona normal..

 

Mais se colocarmos mais de 2 event o teleport do hades não some, ele cria o teleport, vai pro local q vc colocou mais ele não desaparece:

 

<?xml version="1.0" encoding="UTF-8"?>

<creaturescripts>

<event type="login" name="PlayerLogin" script="login.lua"/>

<event type="login" name="FirstItems" script="firstitems.lua"/>

<event type="death" name="PlayerDeath" script="playerdeath.lua"/>

<event type="death" name="hadesTeleport" script="hades_teleport.lua"/>

<event type="death" name="hades2Teleport" script="hades2_teleport.lua"/>

</creaturescripts>

Assim não funciona, os teleport de hades não some, o de hades2 funciona normalmente, eh assim por diante, eu coloquei 7 mosntros ih soh funcionou o do ultimo, sempre o do ultimo que funciona... o.O

 

Alguma ideia de como arrumar isso??

Abraçoo

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

Eu fiz uma area com 7 "Bosses", quando vc mata o 1 boss si abri o teleport ih sumi-se depois de 30seg!

Eu coloquei os script por ultimo, soh q soh funciona o ultimo!

Os teleport dos Boss 1 ao 6 ele não some, soh o do ultimo funciona!

Se os outros n sumirem fica facil pra eles correrem direto pro teleport sem matar o bixo :/

 

Mais eh um belo script!

Link para o comentário
Compartilhar em outros sites

Eu fiz uma area com 7 "Bosses", quando vc mata o 1 boss si abri o teleport ih sumi-se depois de 30seg!

Eu coloquei os script por ultimo, soh q soh funciona o ultimo!

Os teleport dos Boss 1 ao 6 ele não some, soh o do ultimo funciona!

Se os outros n sumirem fica facil pra eles correrem direto pro teleport sem matar o bixo :/

 

Mais eh um belo script!

 

Olá denniscm, cara acho que isso aqui vai resolver seu problema vou postar aqui o script pra teleport de 6 bosses e tipo se quiser add mais é so cria apartir do ultimo o elseif... e ai vai e por lá em cima onde tem o nome desses boss ai vc adiciona uma tag igual e muda a coordenada o nome do boss e lá em remove function você copia o ultimo e cola la no final e faz mesma coisa coloca as coordenadas certas e talz. aqui o script que você vai colocar na pasta data/creaturescripts/script :

function onDeath(cid, corpse, killer)

registerCreatureEvent(cid, "inquisitionPortals")

local creaturename = getCreatureName(cid)

--- positions where the teleports will be created:

local ushuriel_in_pos = {x=859, y=837, z=6, stackpos=2} 
local annihilon_in_pos = {x=143, y=963, z=7, stackpos=2} 
local hellgorak_in_pos = {x=244, y=959, z=4, stackpos=2} 
local madareth_in_pos = {x=345, y=1017, z=7, stackpos=2} 
local zugurosh_in_pos = {x=509, y=1190, z=7, stackpos=2} 
local brothers_in_pos = {x=219, y=1041, z=7, stackpos=1}

--- positions where the teleports will be teleported you:

local ushuriel_to_pos = {x=588, y=1086, z=7, stackpos=1}
local annihilon_to_pos = {x=276, y=1045, z=6, stackpos=1}  
local hellgorak_to_pos = {x=169, y=1047, z=6, stackpos=1} 
local madareth_to_pos = {x=416, y=1017, z=7, stackpos=1} 
local zugurosh_to_pos = {x=424, y=1119, z=7, stackpos=1} 
local brothers_to_pos = {x=46, y=1109, z=7, stackpos=1}

local time_to_pass = 180 -- in seconds
local tpID = 1387
local doEffect = CONST_ME_TELEPORT
local message = "You now have 3 minutes to exit this room through the teleporter. It will bring you to the next room only during his time or the teleporter will disappear"

if creaturename == 'Ushuriel' then

		teleport = doCreateTeleport(tpID, ushuriel_to_pos, ushuriel_in_pos)

		doSendMagicEffect(ushuriel_in_pos, doEffect)

		doCreatureSay(cid, message, TALKTYPE_ORANGE_1)

		addEvent(removeTeleportInUshurielWard, (1000*time_to_pass))

elseif creaturename == 'Annihilon' then

		teleport = doCreateTeleport(tpID, annihilon_to_pos, annihilon_in_pos)

		doSendMagicEffect(annihilon_in_pos, doEffect)

		doCreatureSay(cid, message, TALKTYPE_ORANGE_1)

		addEvent(removeTeleportInAnnihilonWard, (1000*time_to_pass))

elseif creaturename == 'Madareth' then

		teleport = doCreateTeleport(tpID, madareth_to_pos, madareth_in_pos)

		doSendMagicEffect(madareth_in_pos, doEffect)

		doCreatureSay(cid, message, TALKTYPE_ORANGE_1)

		addEvent(removeTeleportInMadarethWard, (1000*time_to_pass)) 

elseif creaturename == 'Hellgorak' then

		teleport = doCreateTeleport(tpID, hellgorak_to_pos, hellgorak_in_pos)

		doSendMagicEffect(hellgorak_in_pos, doEffect)

		doCreatureSay(cid, message, TALKTYPE_ORANGE_1)

		addEvent(removeTeleportInHellgorakWard, (1000*time_to_pass)) 

elseif creaturename == 'Zugurosh' then

		teleport = doCreateTeleport(tpID, zugurosh_to_pos, zugurosh_in_pos)

		doSendMagicEffect(zugurosh_in_pos, doEffect)

		doCreatureSay(cid, message, TALKTYPE_ORANGE_1)

		addEvent(removeTeleportInZuguroshWard, (1000*time_to_pass))

elseif creaturename == 'Latrivan' then

		teleport = doCreateTeleport(tpID, brothers_to_pos, brothers_in_pos)

		doSendMagicEffect(brothers_in_pos, doEffect)

		doCreatureSay(cid, message, TALKTYPE_ORANGE_1)

		addEvent(removeTeleportInBrothersWard, (1000*time_to_pass))


	end 
end

function removeTeleportInUshurielWard()
if getThingfromPos({x=859, y=837, z=6, stackpos=2}).itemid == 1387 then
doRemoveItem(getThingfromPos({x=859, y=837, z=6, stackpos=2}).uid,1)
doSendMagicEffect({x=859, y=837, z=6, stackpos=1}, CONST_ME_POFF)
return TRUE
end
end

function removeTeleportInAnnihilonWard()
if getThingfromPos({x=143, y=963, z=7, stackpos=2}).itemid == 1387 then
doRemoveItem(getThingfromPos({x=143, y=963, z=7, stackpos=2}).uid,1)
doSendMagicEffect({x=143, y=963, z=7, stackpos=1}, CONST_ME_POFF)
return TRUE
end
end

function removeTeleportInHellgorakWard()
if getThingfromPos({x=244, y=959, z=4, stackpos=2}).itemid == 1387 then
doRemoveItem(getThingfromPos({x=244, y=959, z=4, stackpos=2}).uid,1)
doSendMagicEffect({x=244, y=959, z=4, stackpos=1}, CONST_ME_POFF)
return TRUE
end
end

function removeTeleportInMadarethWard()
if getThingfromPos({x=345, y=1017, z=7, stackpos=2}).itemid == 1387 then
doRemoveItem(getThingfromPos({x=345, y=1017, z=7, stackpos=2}).uid,1)
doSendMagicEffect({x=345, y=1017, z=7, stackpos=1}, CONST_ME_POFF)
return TRUE
end
end

function removeTeleportInZuguroshWard()
if getThingfromPos({x=509, y=1190, z=7, stackpos=2}).itemid == 1387 then
doRemoveItem(getThingfromPos({x=509, y=1190, z=7, stackpos=2}).uid,1)
doSendMagicEffect({x=509, y=1190, z=7, stackpos=1}, CONST_ME_POFF)
return TRUE
end
end

function removeTeleportInBrothersWard()
if getThingfromPos({x=219, y=1041, z=7, stackpos=1}).itemid == 1387 then
doRemoveItem(getThingfromPos({x=219, y=1041, z=7, stackpos=1}).uid,1)
doSendMagicEffect({x=219, y=1041, z=7, stackpos=1}, CONST_ME_POFF)
return TRUE
end
end 

 

certo vou explicar onde tem inquisitionPortals ai é o nome do evento você bota como quiser pode botar bossesPortals sei lá.

o resto é a mesma coisa onde tem o nome ai dos bosses você coloca o nome dos seus bosses de seu ot. as coordenadas onde tem in_pos é onde o portal vai ser criado e onde tem to_pos é para onde o portal vai te teleportar quando entrar nele.

Onde tem If creaturename = Ushuriel é o nome do boss que você vai por ai.

onde tem teleport = doCreateTeleport(tpID, ushuriel_to_pos, ushuriel_in_pos) as partes que tem ushuriel você vai por o nome do seu boss.

Onde tem doSendMagicEffect(ushuriel_in_pos, doEffect) a mesma coisa onde tem ushuriel_in_pos você vai botar boss_in_pos ( boss ) ai é o nome do seu monstro.

onde tem addEvent(removeTeleportInUshurielWard, (1000*time_to_pass)) na parte Ushuriel mesma coisa você vai por o nome do seu boss e ai nessa parte aqui que fica no function removeTeleportInUshurielWard() mesma coisa você vai por o nome do seu boss igual como botou nos outros. agora o negoço da messagem não testei isso mais você pode por em local message a sua mensagem e no outro boss o 2 você tenta botar local message1 e cria lá em cima embaixo de local message o local message1 = "msg." e talz e onde tem : doCreatureSay(cid, message, TALKTYPE_ORANGE_1) você vai por o 1 do lado de "message". teste caso não funcione me avise.

Pronto.

 

Agora você vai em todos os seus monstros que você vai utilizar nesse script e vai por isso aqui :

<script>
<event name="inquisitionPortals"/>
</script>

Lembrando que isso você poe embaixo de </flags> se lembra como postei no 1 script.

onde tem inquisitionPortals você vai por igualzinho como colocou lá no script tipo bossesPortals entendeu? e coloca isso em todos os monstros que você utilizar no script.

 

certo em data/creaturescripts vai no arquivo creaturescripts.xml e adiciona isso :

<event type="death" name="inquisitionPortals" script="Inquisition/teleports_inquisition.lua"/>

sabendo que name="inquisitionPortals" é o nome do evento você teria que botar "bossesPortals" e script="Inquisition/teleports_inquisition.lua é o nome do arquivo que você criou dentro da pasta data/creaturescripts/scripts só que ai ele colocou em mais uma pasta ficando data/creaturescripts/scripts/Inquisition sacou? se você colocar seu arquivo só na pasta scripts de creaturescripts você só vai colocar lá em script="bosses_teleport ou o nome que você usar.

Espero que isso te ajude!

 

Flw! qualquer erro avisa aqui.

:smile_positivo:

 

Ae pdzinhow, até que fim fez, née?

Valeu aí por ter me ajudado naquela hora..

Script bem legal, e um pouco facil de configurar.

 

Koninhoo~

 

Vlw koninhoo ^^!

ahh seu script tbm é muito bom cara que avisa quando termina a quest coloquei no meu ot ^^

sucesso ;]

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

  • 4 weeks later...
  • 3 years later...
×
×
  • Criar Novo...