Ir para conteúdo

[Creatureevents] Ajuda Em Script Que Sumona Monstros Apos Matar Um Monstro X


dgprado

Posts Recomendados

Fiz um pedido deste script na area de pedidos, sem nehuma resposta resolvi por tentativa e erro eu mesmo criar, e nao é que deu certo =o!!!.

Porem acredito ser possivel melhora-lo bastante juntando os varios arquivos em um só, tambem gostaria de adicionar um delay no ultimo monstro a ser sumonado.

Bom, aki vao os modulos:

function onDeath(cid, corpse, killer)

registerCreatureEvent(cid, "monster2")

 

demon1pos = {x=891, y=412, z=3}

demon2pos = {x=892, y=412, z=3}

 

 

doSummonCreature("Menace", demon1pos)

doSummonCreature("Fatality", demon2pos)

 

end

function onDeath(cid, corpse, killer)

registerCreatureEvent(cid, "monster3")

 

demon1pos = {x=891, y=412, z=3}

demon2pos = {x=892, y=412, z=3}

 

 

doSummonCreature("Coldheart", demon1pos)

doSummonCreature("Incineron", demon2pos)

 

end

 

function onDeath(cid, corpse, killer)

registerCreatureEvent(cid, "monster4")

 

demon1pos = {x=891, y=412, z=3}

demon2pos = {x=892, y=412, z=3}

 

 

doSummonCreature("Dreadwing", demon1pos)

doSummonCreature("Doomhowl", demon2pos)

 

end

 

function onDeath(cid, corpse, killer)

registerCreatureEvent(cid, "monster5")

 

demon1pos = {x=891, y=412, z=3}

demon2pos = {x=892, y=412, z=3}

 

 

doSummonCreature("The Dreadorian", demon1pos)

doSummonCreature("Haunter", demon2pos)

 

end

 

function onDeath(cid, corpse, killer)

registerCreatureEvent(cid, "monster6")

 

demon1pos = {x=891, y=412, z=3}

demon2pos = {x=892, y=412, z=3}

demon2pos = {x=892, y=412, z=3}

 

 

doSummonCreature("Rocko", demon1pos)

doSummonCreature("Tremorakl", demon2pos)

doSummonCreature("Tirecz", demon2pos)--<Gostaria que este monstro fosse sumonado 1 minuto após o Tremorakl-->

 

end

 

Gostaria tambem que todos estes modulos fossem unificados para não ocupar tanto espaço no xml:

 

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

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

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

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

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

 

Manjo praticamente nada de scripting, fiz este na tentativa e erro colando funções de outros scripts, portanto ficaria muito grato se algum scripter me desse um auxilio.

 

Thx

Link para o comentário
Compartilhar em outros sites

Tudo que eu sei é que... Em creatureevents, se você for mecher com algum monstro tem que colocar o script no monstro tambem, pra quando ele morrer executar o event

Exemplo:

<script>

<event name= "monster"/>

<script>

 

Quanto ao creatureevent, eu não entendo nada tambem, mas eu adaptaria ele assim:

function onkill(cid, Target, lasthit)

 

 

 

demon1pos = {x=891, y=412, z=3}

demon2pos = {x=892, y=412, z=3}

 

 

Local monster = {["Nome"] }

Localmonster = monster[getcreaturename(target)]

 

 

doSummonCreature("Menace", demon1pos)

doSummonCreature("Fatality", demon2pos)

 

end

return true

end

 

 

100% nonsense

Link para o comentário
Compartilhar em outros sites

Esse tutorial faz basicamente a mesma coisa que o meu script,o que eu quero e adaptar em um só scpript toda a sequencia de bosses da zao arena sendo que o ultimo monstro nasce antes de vc matar os 2 penultimos, entao querria que o ultimo boss fosse sumonado 1 minuto apos os 2 penultimos.

 

Esse meu script ae ta fumfando, so queia sintetizar ele e adicionar o delay no ultimo boss.

 

Tem outra treta aki tamb eu fiz uma mistureba de um script de annihilator com o script da yalahar quest do ot do xvx.

O script da annihi teleporta os 2 players para a arena e sumona os 2 primeiros bosses que irao desencadiar os proximos bosses, e a parte do script da yalahar quest cria uma orb em cima da alavanca para que ninguem possa entrar na arena ate que os pleyers que estao la saiam.Bem ate a perte que cria a orb na alavanca ta fumfando, mas nao estou conseguindo fazer com q o script retire a orb da alavanca apos os players passarem pelo tp que leva novamente ate a arena. postarei aki o script se alguem tiver alguma soluçao seria bem legal xD.

 

function onUse(cid, item, frompos, item2, topos)

local portal_quest01_pos = {x = 906, y = 392, z = 2, stackpos = 2}

if item.uid == 32145 then

if item.itemid == 1946 then

 

player1pos = {x=907, y=392, z=2, stackpos=253}

player1 = getThingfromPos(player1pos)

 

player2pos = {x=908, y=392, z=2, stackpos=253}

--player2 = getThingfromPos(player2pos)

 

 

if player1.itemid > 0 then

 

player1level = getPlayerLevel(player1.uid)

--player2level = getPlayerLevel(player2.uid)

 

 

questlevel = 100

 

if player1level >= questlevel then

 

queststatus1 = getPlayerStorageValue(player1.uid,5000)

--queststatus2 = getPlayerStorageValue(player2.uid,5000)

 

 

if queststatus1 == -1 then

 

--if 1==1 then

demon1pos = {x=891, y=412, z=3}

demon2pos = {x=892, y=412, z=3}

 

 

doSummonCreature("Baron Brute", demon1pos)

doSummonCreature("The Axeorcist", demon2pos)

 

 

nplayer1pos = {x=889, y=405, z=3}

--nplayer2pos = {x=890, y=405, z=3}

 

 

doSendMagicEffect(player1pos,2)

--doSendMagicEffect(player2pos,2)

 

 

doTeleportThing(player1.uid,nplayer1pos)

--doTeleportThing(player2.uid,nplayer2pos)

doCreateItem(9772,1,portal_quest01_pos)

 

 

doSendMagicEffect(nplayer1pos,10)

--doSendMagicEffect(nplayer2pos,10)

 

 

doTransformItem(item.uid,1945)

 

else

doPlayerSendCancel(cid,"Sorry, not possible.")

end

else

doPlayerSendCancel(cid,"Sorry, not possible.")

end

else

doPlayerSendCancel(cid,"Sorry, not possible.")

end

end

if item.itemid == 1945 then

-- Here is the code start:

starting={x=33217, y=31655, z=13, stackpos=253}

checking={x=starting.x, y=starting.y, z=starting.z, stackpos=starting.stackpos}

ending={x=33224, y=31663, z=13, stackpos=253}

players=0

totalmonsters=0

monster = {}

repeat

creature= getThingfromPos(checking)

if creature.itemid > 0 then

if getPlayerAccess(creature.uid) == 0 then

players=players+1

end

if getPlayerAccess(creature.uid) == 0 and getPlayerAccess(creature.uid) == 3 then

totalmonsters=totalmonsters+1

monster[totalmonsters]=creature.uid

end

end

checking.x=checking.x+1

if checking.x>ending.x then

checking.x=starting.x

checking.y=checking.y+1

end

until checking.y>ending.y

if players==0 then

trash= {x=33193, y=31689, z=15}

current=0

repeat

current=current+1

doTeleportThing(monster[current],trash)

until current>=totalmonsters

doTransformItem(item.uid,1946)

end

-- Here is the end of it

 

if item.uid == 1998 and getThingfromPos(portal_quest01_pos).itemid ~= 9772 then

function RemoveAll()

doRemoveItem(getThingfromPos(portal_quest01_pos).uid,1)

end

 

end

end

return 1

end

end

 

preciso de ajuda nesta parte :

if item.uid == 1998 and getThingfromPos(portal_quest01_pos).itemid ~= 9772 then

function RemoveAll()

doRemoveItem(getThingfromPos(portal_quest01_pos).uid,1)

end

adicionei a uid 1998 no tp usado para sair da sala de recompensa mas a orb continua em cima da alavanca ;/.
Link para o comentário
Compartilhar em outros sites

Olha esse que fiz:

 

creaturescripts/creaturescripts.xml

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

creaturescripts/scripts/summon.lua

monsters = {
--["monste name"] = {["summon name"] = {pos = {x, y, z}, delay = milisegundos},
["troll"] = {
	["bug"] = {pos = {x=93, y=126, z=7}, delay = 0},
	["rat"] = {pos = {x=95, y=126, z=7}, delay = 2000}
},
["orc"] = {
	["bug"] = {pos = {x=93, y=126, z=7}, delay = 0},
	["cave rat"] = {pos = {x=95, y=126, z=7}, delay = 2000}
}
}

function onDeath(cid, corpse, killer)
local summons = monsters[string.lower(getCreatureName(cid))]
if summons then
	for i, v in pairs(summons) do
		addEvent(doSummonCreature, v.delay, i, v.pos)
	end
end
return TRUE
end

Depois você vai nos monsters que vão sumonar e coloca:

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

 

Quanto ao teleport, o certo não deveria ser um movement?

Ai quando pisasse no teleport tiraria a orb.

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

Perfect, quanto ao tp realmente tem q ser movement, porem fiz algumas tentaivas sem sucesso ;/, como falei consigui criar a orb apos ser teleportado para a sala porem nao congui removela.

Se voce poder me dar um auxilio com a remoçao da orb ficaria muito grato.

 

Muito bom esse seu script e exatamente o que eu estava procurando , THX ;D

 

Edit:

Kydrai, modifiquei o script para o formato que preciso, nao obtive nenhum erro no gui porem os monstros nao estao sendo sumonados, aqui esta o script:

 

monsters = {

--["monste name"] = {["summon name"] = {pos = {x, y, z}, delay = milisegundos},

["The Axeorcist"] = {

["Menace"] = {pos = {x=891, y=412, z=3}, delay = 2000},

["Fatality"] = {pos = {x=892, y=412, z=3}, delay = 2000}

},

["Fatality"] = {

["Coldheart"] = {pos = {x=891, y=412, z=3}, delay = 2000},

["Incineron"] = {pos = {x=892, y=412, z=3}, delay = 2000}

},

["Incineron"] = {

["Coldheart"] = {pos = {x=891, y=412, z=3}, delay = 2000},

["Incineron"] = {pos = {x=892, y=412, z=3}, delay = 2000}

},

["Incineron"] = {

["Dreadwing"] = {pos = {x=891, y=412, z=3}, delay = 2000},

["Doomhowl"] = {pos = {x=892, y=412, z=3}, delay = 2000}

},

["Incineron"] = {

["Haunter"] = {pos = {x=891, y=412, z=3}, delay = 2000},

["The Dreadorian"] = {pos = {x=892, y=412, z=3}, delay = 2000}

},

["The Dreadorian"] = {

["Rocko"] = {pos = {x=891, y=412, z=3}, delay = 2000},

["Tremorakl"] = {pos = {x=892, y=412, z=3}, delay = 2000},

["Tirecz"] = {pos = {x=893, y=412, z=3}, delay = 30000}

}

 

}

 

function onDeath(cid, corpse, killer)

local summons = monsters[string.lower(getCreatureName(cid))]

if summons then

for i, v in pairs(summons) do

addEvent(doSummonCreature, v.delay, i, v.pos)

end

end

return TRUE

end

 

O tp consegui arrumar, falta so os sumons para arena de zao ficar pronta.

 

Edit:

 

Valeu mano realmente era so trocar por getCreatureName(cid), ta fumfando 100%, vo organizar os scripts aki e vo posta a arena com os bosses e tudo, e se vc me permitir colocarei seu script com seus devidos creditos.

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

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...