Magia que invoca monstros por 5 segundos.

ShinySprite
em Scripts

ShinySprite

Meldels
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 30/08/13Posts: 135Gênero: MasculinoChar no Tibia: [Vip] Procure

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?

Caronte

Ex-Moderador de Scripting
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 25/09/10Posts: 1341Gênero: Masculino


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>

 

Luga03

Gabriel Lucena :D
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 14/04/15Posts: 956Gênero: Masculino

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 :D

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!

Caronte

Ex-Moderador de Scripting
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 25/09/10Posts: 1341Gênero: Masculino

 

 

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

Luga03

Gabriel Lucena :D
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 14/04/15Posts: 956Gênero: Masculino

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!

samlecter

"A felicidade só é verdadeira quando compartilhada"
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 08/12/15Posts: 309Gênero: Masculino

 

 

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

capa - Copia.png

System Hardcore

Sua ausência me causou o caos.
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/04/15Posts: 13

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.

Caronte

Ex-Moderador de Scripting
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 25/09/10Posts: 1341Gênero: Masculino

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

NightmareStalker

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 13/12/15Posts: 29

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