Ir para conteúdo
  • Cadastre-se

[Resolvido]Problema Boss INQ


Posts Recomendados

Fala galera.. Tô com um problema nos irmãos da Inquisition, no caso, os bosses Golgordan e Latrivan.. Os mesmo residem em uma mesma sala da Inquisition.. O script que tô usando funciona da seguinte maneira: ao matar o boss latrivan e o golgordan, ou vice-versa, um teleport é criado para o player prosseguir na quest.. Mas ele tá apresentando dois probleminhas.. Se eu matar o Latrivan e depois o Golgordan, ou vice-versa, o teleport é criado, mas se eu matar 2 vezes o Latrivan ou 2 vezes o Golgordan, o teleport é criado do mesmo jeito, esse é o primeiro erro. O segundo erro é que: se eu matar o Latrivan e deixar o Golgordan vivo, ou matar o Golgordan e deixar o latrivan vivo e em seguida fechar o servidor e abrir em seguida, é só matar um deles que o teleport é criado. Tenho certeza que o problema é nas storages. Alguém pode me ajudar? Valendo REP+!

Script:


function onDeath(cid, killer)

local tp = {x = 601, y = 759, z = 13} -- Posição do Teleport

local tpgo = {x = 504, y = 827, z = 13} -- Posição em que o teleport levará

local tempo = 180 -- Tempo em que o Teleport ficará aberto em segundos

local tpid = 1387 -- ID do teleport

local stor = 18291

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 getGlobalStorageValue(stor) == -1 then

setGlobalStorageValue(stor, getGlobalStorageValue(stor)+1)

elseif getGlobalStorageValue(stor) == 0 then

doCreatureSay(cid, message, TALKTYPE_ORANGE_1)

doCreateTeleport(tpid, tpgo, tp)

setGlobalStorageValue(stor, -1)

addEvent(removeTp, tempo*1000, tp, tpid)

end

return true

end


function removeTp(tp, tpid)

local t = getTileItemById(tp, tpid)

if t.uid >= 1 then

doRemoveItem(t.uid, 1)

doSendMagicEffect(tp, CONST_ME_POFF)

end

end

Editado por AnneMotta (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Eu fiz esse, ele pode acontecer alguns bugs... é que eu estou com preguiça de scriptar direito. haha.

Então, a pessoa vai matar os dois monstros ali, mas se ela matar um e deslogar, volta e matar o mesmo, o teleport vai se abrir...

Da pra resolver isso fazendo um evento onLogin, se você quiser me avise.

Ah, e retire todos os jeitos de os players sairem do boss (se tiver), pra funcionar 100%.

\data\creaturescripts\scripts\killBoss


local monster = {"Latrivan", "Golgordan"}

local pos, toPos = {x = 1024, y = 1025, z = 7}, {x = 1017, y = 1025, z = 7}

local storage = 5670

local time = 10


function onDeath(cid, corpse, killer)

 for i = 1, #monster do   

   if isMonster(cid) then

	 if string.lower(getCreatureName(cid)) == string.lower(monster[i]) then

	    doSetStorage(storage, getStorage(storage) + 1)

	    cTeleport(cid)

	    addEvent(rTeleport, time * 1000, cid)

	 end   

  end

end


return TRUE

end


function cTeleport(cid)

 if (getStorage(storage) >= 1) then

   doCreatureSay(cid, "Você tem "..time.. " segundos para passar pelo teleport, antes que ele seja removido.", TALKTYPE_ORANGE_1)

   return doCreateTeleport(1387, toPos, pos)

 end

end


function rTeleport(cid)

 local t = getTileItemById(pos, 1387)

 if (t.uid > 0) then

  doSendMagicEffect(pos, CONST_ME_MAGIC_RED)

  doSetStorage(storage, -1)

  return doRemoveItem(t.uid)

 end

end

\data\creaturescripts\creaturescripts.xml
    <event type="death" name="killBoss" event="script" value="killBoss.lua"/>
E nos monstros, você tem que adicionar a tag:
<script>

	 <event name="killBoss"/>

</script>

Link para o post
Compartilhar em outros sites

@Kimoszin

Não deu certo o script, veio com alguns errinhos.. Cara, tive uma ideia melhor.. Existe algum script que tipo, quando um monstro morrer, outro nasce? Daí seria assim, quando o Golgordan morresse, o Latrivan nasceria e quando o Latrivan morresse, o teleport seria criado.. Mas tipo, só preciso do primeiro script, no caso, quando o Golgordan moresse, o Latrivan nasceria, porque o outro, eu tenho. Grato!

Link para o post
Compartilhar em outros sites

Tipo, mudei o pedido cara, ficaria melhor dessa nova forma.. Tem como criar esse script para mim? Grato!

Link para o post
Compartilhar em outros sites

local storG = 5658

local pos, toPos = {x = 1024, y = 1025, z = 7}, {x = 1017, y = 1025, z = 7}

local time = 10



function onDeath(cid, corpse, killer)

 if (getCreatureName(cid) == "Golgordan") and (getStorage(storG) <= 0) then

    doSetStorage(storG, 1)

    doCreateMonster("Latrivan", getCreaturePosition(cid))

 elseif (getCreatureName(cid) == "Latrivan") and (getStorage(storG) == 1) then

	 doCreateTeleport(1387, toPos, pos)

	 doCreatureSay(cid, "Você tem "..time.. " segundos para passar pelo teleport, antes que ele seja removido.", TALKTYPE_ORANGE_1)

     addEvent(rTeleport, time * 1000, cid)

end

return true

end


function rTeleport(cid)

 local t = getTileItemById(pos, 1387)

 if (t.uid > 0) then

  doSendMagicEffect(pos, CONST_ME_MAGIC_RED)

  doSetStorage(storG, -1)

  return doRemoveItem(t.uid)

 end

end

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo