Eu queria o script de alguma magia que invoca monstros e que esses monstros ataquem quem o cara que invocou atacar.
também queria que eles sumissem em 5 segundos.
Se alguem puder ajudar, dou REP+
Eu queria o script de alguma magia que invoca monstros e que esses monstros ataquem quem o cara que invocou atacar.
também queria que eles sumissem em 5 segundos.
Se alguem puder ajudar, dou REP+
oi, tudo bem?
function onCastSpell(cid, var)
local tempo = 5
local monstro1 = doSummonCreature("Demon", getThingPos(cid))
local monstro2 = doSummonCreature("Demon", getThingPos(cid))
local monstro3 = doSummonCreature("Demon", getThingPos(cid))
doConvinceCreature(cid, monstro1)
doConvinceCreature(cid, monstro2)
doConvinceCreature(cid, monstro3)
addEvent( function()
doRemoveCreature(monstro1)
doRemoveCreature(monstro2)
doRemoveCreature(monstro3)
end, 1000 * tempo)
return true
end
<instant name="Summon Monster" words="xtibia" lvl="8" mana="20" prem="0" exhaustion="2000" event="script" value="attack/test.lua">
<vocation id="1"/>
<vocation id="2"/>
<vocation id="5"/>
<vocation id="6"/>
</instant>
Eu dei uma otmizada no script do Caronte:
function onCastSpell(cid, var) local tempo = 5 local monstros = 3 local creature = doSummonCreature("Demon", getThingPos(cid)) for i = 1, monstros do doConvinceCreature(cid, creature) break end addEvent( function() for i = 1, monstros do doRemoveCreature(creature) break end end, 1000 * tempo) return true end
Caso queira, algo a mais avisa ai que posso fazer
Hello! How are you? It's fine?
Okay, so you like my helps? if yes, then do you can like my post, give-me a reputation, you can't?
Good morning for everyone! And have a good day!
Eu dei uma otmizada no script do Caronte:
Não cara, isso não funciona, você tem que fazer do meu jeito mesmo, pois assim, você só armazena uma variável, por mais que você mude o número da variável monstros, sempre vai sumonar 1, e você colocou um break sem sentido.
Você sabe para que serve break?
Estaria certo, se você tivesse feito isso:
function onCastSpell(cid, var) local tempo = 5 local creature = {doSummonCreature("Demon", getThingPos(cid)), doSummonCreature("Demon", getThingPos(cid)), doSummonCreature("Demon", getThingPos(cid)) } for i = 1, #creature do doConvinceCreature(cid, creature[i]) end addEvent( function() for i = 1, #creature do doRemoveCreature(creature[i]) end end, 1000 * tempo) return true end
Eu dei uma otmizada no script do Caronte:
Não cara, isso não funciona, você tem que fazer do meu jeito mesmo, pois assim, você só armazena uma variável, por mais que você mude o número da variável monstros, sempre vai sumonar 1, e você colocou um break sem sentido.
Você sabe para que serve break?
Estaria certo, se você tivesse feito isso:
function onCastSpell(cid, var) local tempo = 5 local creature = {doSummonCreature("Demon", getThingPos(cid)), doSummonCreature("Demon", getThingPos(cid)), doSummonCreature("Demon", getThingPos(cid)) } for i = 1, #creature do doConvinceCreature(cid, creature[i]) end addEvent( function() for i = 1, #creature do doRemoveCreature(creature[i]) end end, 1000 * tempo) return true end
Blz, to meio noiado ultimamente kkkk dando lezera kk
Hello! How are you? It's fine?
Okay, so you like my helps? if yes, then do you can like my post, give-me a reputation, you can't?
Good morning for everyone! And have a good day!
Não cara, isso não funciona, você tem que fazer do meu jeito mesmo, pois assim, você só armazena uma variável, por mais que você mude o número da variável monstros, sempre vai sumonar 1, e você colocou um break sem sentido.
Você sabe para que serve break?
Estaria certo, se você tivesse feito isso:
function onCastSpell(cid, var) local tempo = 5 local creature = {doSummonCreature("Demon", getThingPos(cid)), doSummonCreature("Demon", getThingPos(cid)), doSummonCreature("Demon", getThingPos(cid)) } for i = 1, #creature do doConvinceCreature(cid, creature[i]) end addEvent( function() for i = 1, #creature do doRemoveCreature(creature[i]) end end, 1000 * tempo) return true end
Não cara, isso não funciona, você tem que fazer do meu jeito mesmo, pois assim, você só armazena uma variável, por mais que você mude o número da variável monstros, sempre vai sumonar 1, e você colocou um break sem sentido.
Você sabe para que serve break?
Estaria certo, se você tivesse feito isso:
function onCastSpell(cid, var) local tempo = 5 local creature = {doSummonCreature("Demon", getThingPos(cid)), doSummonCreature("Demon", getThingPos(cid)), doSummonCreature("Demon", getThingPos(cid)) } for i = 1, #creature do doConvinceCreature(cid, creature[i]) end addEvent( function() for i = 1, #creature do doRemoveCreature(creature[i]) end end, 1000 * tempo) return true end
Blz, to meio noiado ultimamente kkkk dando lezera kk
Funcionaria em poketibia? creio que não, poderiam adaptar caso não funcione? mas queria pra outros pokemons serem "sumonados" por 1 pokemon, exemplo em uma quest com celebi, ele sumonaria alguns outros pokemons para ajuda-lo (sei que pokemons não fazem isso, mas ninguém saberia que o celebi que sumonou, poderia ter "spawnado" no local) se possivel fazer isso sem ser por 1 spell, talvez um evento em creaturescripts
Dando uma olhada rápida no script, não seria melhor adicionar uma checagem antes de remover pra saber se o player tem algum summon? Posso estar enganado, mas me parece que se o summon morrer antes do tempo acabar vai retornar erros na distro do servidor. De qualquer modo, nice script.
Dando uma olhada rápida no script, não seria melhor adicionar uma checagem antes de remover pra saber se o player tem algum summon? Posso estar enganado, mas me parece que se o summon morrer antes do tempo acabar vai retornar erros na distro do servidor. De qualquer modo, nice script.
Tem razão.
function onCastSpell(cid, var) local tempo = 5 local creature = {doSummonCreature("Demon", getThingPos(cid)), doSummonCreature("Demon", getThingPos(cid)), doSummonCreature("Demon", getThingPos(cid)) } for i = 1, #creature do doConvinceCreature(cid, creature[i]) end addEvent( function() for i = 1, #creature do if isCreature(creature[i]) then doRemoveCreature(creature[i]) end end end, 1000 * tempo) return true end
Como o dono do pedido nem se manifestou, vou dar como resolvido
Uma pequena alteração no script acima, porem que pode facilitar a configuração e o entendimento do sistema.
function onCastSpell(cid, var)
local time = 5
local creature = {
"Demon",
"Demon",
"Dragon"
}
for index, creatureName in ipairs(creature) do
local monster = doSummonCreature(creatureName, getThingPos(cid))
doConvinceCreature(cid, monster)
creature[index] = monster
end
addEvent(function()
for i = 1, #creature do
if isCreature(creature[i]) then
doRemoveCreature(creature[i])
end
end
end, 1000 * time)
return true
end
Não tinha pensado em fazer mais simples também...
Tópico Movido
Este tópico foi movido de "OTServ → Scripting → Suporte Scripting"
para "OTServ → Scripting → Suporte Scripting → Pedidos e dúvidas resolvidos - Scripting".