Ir para conteúdo
  • 0

[Creaturescripts] Function Ondeath


genoma

Pergunta

Seguinte, eu quero deixar a quest como no global, pois eu todos OTs que baixei não funciona esta quest, e sempre vem com os mesmos scripts que, quando você mata o boss "Pythius The Rotten", cria-se um portal pra vc ir para a sala de recompensa, além disso não funcionar em nenhum OT 8.60 que baixei, isso não existe, pois no tibia real, ao matar o tal boss, você é teleportado automaticamente para o local que contem a recompensa.

 

Eu fiz esta modificação no script:

 

data/creaturescript/scripts/pythius_the_rotten

 

local config = {
teleportId = 1387,
bosse = "Pythius The Rotten"
}

local portal_in_pos = {x = 319, y = 841, z = 15}
local player_pos_saida = {x = 340, y = 840, z = 15}

function onDeath(cid, corpse, killer)
registerCreatureEvent(cid, "PythiusDead")
if config.bosse == getCreatureName(cid) then    
doTeleportThing(cid, player_pos_saida)
doSendMagicEffect(player_pos_saida, 10)
end
return TRUE
end

 

Desse jeito que eu deixei, o corpo do boss é teleportado para o local de recompensa após ser morto :S

Quem me ajudar a fazer EU ser teleportado, e não o corpo do bixo...REP +

 

Abraço :thumbsupsmiley:

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

testa aqui =D.. fiz em uns 50 segundos entao talvez nao funcione.. mais achu que funciona sim..

seu erro é que você utilizou a onDeath no lugar da onKill.. por exemplo se você morrer, vocÊ setou o monstro como cid entao ele teleporta o monstro nao vc.. ja na onKill vc é o cid e o monstro é o target =D

 

testa:

function onKill(cid, target, lastHit)

local config = {

bosse = "Pythius The Rotten"

}

registerCreatureEvent(cid, "PythiusDead")

 

local player_pos_saida = {x = 340, y = 840, z = 15}

 

if target == config.bosse then

doTeleportThing(cid,player_pos_saida)

doSendMagicEffect(player_pos_saida, 10)

end

return true

end

aqui vai ser a posiçao =d

 

thx créditos: eu =D

vo ajudar o xtibia agora... na otbr só tem cuzao.. vo faze esse fórum i pa frente ekpoekepo

 

edit: esqueci de falar, no creaturescripts.xml vc vai mudar o death pa kill =d

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

  • 0

teleportmon.lua

function onDeath(cid, corpse, killer)

local Ppos = {x = 340, y = 840, z = 15} -- posicao para onde ele vai ir

local monstName = "Pythius The Rotten"  -- nome do monstro

	 if isMonster(cid) then
		if string.lower(getCreatureName(cid)) == string.lower(monstName) then
		   doTeleportThing(killer[1], Ppos)
		end   
	 end 
return TRUE
end

 

 

em creaturescript.xml adicione a tag:

 

		<event type="death" name="TelePort" event="script" value="teleportmon.lua"/>

 

 

No arquivo Xml do seu monstro adicione

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

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, valeu a tentativa ae mas não deu :S, matei o boss e não fui teleportado :/

 

E antes q vc pergunte...Sim, eu mudei no creaturescripts.xml a tag para event type="kill".

 

Msm assim obrigado ;D

 

 

@EDIT:

 

Não tinha visto esse do Vodkart, vou tentar aqui e já edito...

 

@Edit:

 

Valeu a tentativa Draky~, mas o script que funcionou foi o do Vodkart.

 

Mto obrigado! Podem fexar o tópico quando quiserem ;)

 

REP + Vodkart.

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

  • 0

Sei que o tópico está morto, e provavelmente vou ser advertido, mas pra ajudar alguém que caia aqui, ta ahe tudo pronto e 100%, testado em Tsf 0.3.6...

 

Vá em "seu servidor"\data\creaturescripts e no creaturescripts.xml, coloque:

Spoiler

<event type="death" name="death" event="script" value="pythiustherotten.lua"/>

 

Depois vá em "seu servidor"\data\creaturescripts\scripts, copie um arquivo .lua qualquer de lá e renoimeie para pythiustherotten, abra o arquivo e apague o que tiver lá dentro e coloque:

Spoiler

function onDeath(cid, deathList)

  local config = {
  boss = "Pythius The Rotten"
  }
  local player_pos_saida = {x = 340, y = 840, z = 15}

-- /\/\ posição onde o player vai aparecer depois de matar o boss /\/\
  local player = deathList[1]
  if config.boss == getCreatureName(cid) and isPlayer(player) then
    doTeleportThing(player, player_pos_saida)
    doSendMagicEffect(player_pos_saida, 10)
    if #getCreatureSummons(cid) > 0 then
        for sumon = 1, #getCreatureSummons(player) do
          doTeleportThing(getCreatureSummons(player)[sumon], player_pos_saida)   
        end
    end
  end
  return true
end

 

Ainda em "seu servidor"\data\creaturescripts\scripts, agora abra o loguin.lua e adicione no fim do script, junto com os outros codigos parecidos:

Spoiler

registerCreatureEvent(cid, "PythiusDead")

 

Vá em "seu servidor"\data\monster e ache o script do pythius the rotten.lua, normalmente está fora das pastas ou talvez na pasta "bosses", e adicione o codigo abaixo antes do </monster> no final do arquivo:

Spoiler

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

 

Pronto.

 

O que faz?
Quando você matar o monstro Pythius The Rotten, será teleportado para a posição marcada em:

local player_pos_saida = {x = 340, y = 840, z = 15} 

Basta mudar a posição ali para onde quer que você o player apareça.

 

Qualquer duvida, pergunte aqui ou poste uma print de algum erro.

 

Créditos: eu mesmo...

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

×
×
  • Criar Novo...