Ir para conteúdo
  • 0

Summon Não Me Obedece, Da Exp E N Tem Limite Maximo


pvjf

Pergunta

Bom peguei esse script de um outro topico, não me lembro bem qual era, mas ta com um probleminha. Quando invoco o "gazer" com esta spell ele me ataca, quando uso o famoso utevo res ele me obedece de boa. Isso quando estou com player; com o GOD o ele obedece tanto na spell quanto no utevo res. Outro problema é que da summonar a vontade, eu gostaria de colocar o limite maximo de 1. Já mexi no config.lua e de nada adiantou.

 

Aqui está

 

function onTargetTile(cid, position)

position.stackpos = 255

doConvinceCreature(cid, doCreateMonster("gazer", position, false))

doSendMagicEffect(position, CONST_ME_MAGIC_BLUE)

return true

end

local arr = {

{0, 0, 0},

{0, 2, 0},

{0, 1, 0},

}

 

 

function onTargetTile(cid, pos)

local creature = doSummonCreature("gazer", pos)

doCreatureAddMana(cid, -1500)

doConvinceCreature(cid, creature)

return TRUE

end

 

 

local area, combat = createCombatArea(arr), createCombatObject()

setCombatArea(combat, area)

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)

setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")

function onCastSpell(cid, var)

return doCombat(cid, combat, var)

end

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Ve se é o q vc quer:

 


function onTargetTile(cid, position)
position.stackpos = 255
doConvinceCreature(cid, doCreateMonster("gazer", position, false))
doSendMagicEffect(position, CONST_ME_MAGIC_BLUE)
return true
end
local arr = {
{0, 0, 0},
{0, 2, 0},
{0, 1, 0},
}


function onTargetTile(cid, pos)
local creature = doSummonCreature("gazer", pos)
doCreatureAddMana(cid, -1500)
doConvinceCreature(cid, creature)
return true
end


local area, combat = createCombatArea(arr), createCombatObject()
setCombatArea(combat, area)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatCallBack(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")
function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end

Link para o comentário
Compartilhar em outros sites

  • 0

o utevo res sumona diretamente a criatura, já sua spell cria um monstro, e depois tenta convencer ele... acontece que nem todos os monstro são "convinceable" (convencíveis), aí essa função falha e o monstro não se torna summon de ninguém. O god tem uma flag que permite convencer qualquer criatura, portanto a função de convencer criaturas nunca falha com god.

 

use essa spell:

 

function onCastSpell(cid, var)

   if #getCreatureSummons(cid) > 0 then
    doPlayerSendCancel(cid, "You can only summon one creature.")
   return false
   end

   local summon, useCreateMonster = 0, false

   if type(doSummonMonster) then
    summon = doSummonMonster(cid, "Gazer")
    if summon == 3 then
	    doPlayerSendCancel(cid, "There is not enough room to summon a creature.")
    return false
    end
    summon = getCreatureSummons(cid)
    summon = summon[#summon]
    if isCreature(summon) and getCreatureMaster(summon) == cid then
	    doSendMagicEffect(getThingPos(summon), CONST_ME_MAGIC_BLUE)
	    return true
    else
	    useCreateMonster = true
    end
   else
    useCreateMonster = true
   end

   if useCreateMonster then
    local pos = getThingPos(cid)
    pos.y = pos.y + 1
    summon = doCreateMonster("Gazer", pos, false)
    if summon == true then
	    doPlayerSendCancel(cid, "There is not enough room to summon a creature.")
    return false
    end
   end

   if not isCreature(summon) then return false end
   doConvinceCreature(cid, summon)
   if getCreatureMaster(summon) ~= cid then
    doRemoveCreature(summon)
   return false
   end

   doSendMagicEffect(getThingPos(summon), CONST_ME_MAGIC_BLUE)
return true
end

 

ela verifica se função doSummonMonster existe no seu server e tenta usar ela pra sumonar o monstro, se não coneguir ele tenta criar e convencer o monstro, se ainda assim não conseguir tornar o monstro um summon do player, vai remover o monstro (aí você vai ter que mudar no xml do monstro e deixar ele convinceable)

 

pra fazer a magia gastar mana você tem que mexer no spells.xml

Link para o comentário
Compartilhar em outros sites

  • 0

Vlw Brun123 , isso msm q eu keria, mas tem como fazer isso em uma spell que sumona e dali a certo tempo a criatura some tipo essa aqui soh q acratura ainda n obedece, tipo essa aqui:

 

 

function onTargetTile(cid, position)

position.stackpos = 255

doConvinceCreature(cid, doCreateMonster("poisonthrower", position, false))

doSendMagicEffect(position, CONST_ME_MAGIC_BLUE)

return true

end

local arr = {

{0, 0, 0},

{0, 2, 0},

{0, 1, 0},

}

local removeTime = 10.0 --time to remove the clones

 

 

local function removeCreatures(cid, creature)

if isCreature(creature) == TRUE then

doRemoveCreature(creature)

end

end

 

function onTargetTile(cid, pos)

local creature = doSummonCreature("poisonthrower", pos)

doCreatureAddMana(cid, -1500)

doConvinceCreature(cid, creature)

addEvent(removeCreatures, removeTime * 3000, cid, creature)

return TRUE

end

 

 

local area, combat = createCombatArea(arr), createCombatObject()

setCombatArea(combat, area)

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)

setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")

function onCastSpell(cid, var)

return doCombat(cid, combat, var)

end

 

Link para o comentário
Compartilhar em outros sites

  • 0

Aqui:

 

function onCastSpell(cid, var)

   local tempo_para_remover = 10 -- em segundos

   if #getCreatureSummons(cid) > 0 then
    doPlayerSendCancel(cid, "You can only summon one creature.")
   return false
   end

   local summon, useCreateMonster = 0, false

   if type(doSummonMonster) then
    summon = doSummonMonster(cid, "Gazer")
    if summon == 3 then
	    doPlayerSendCancel(cid, "There is not enough room to summon a creature.")
    return false
    end
    summon = getCreatureSummons(cid)
    summon = summon[#summon]
    if isCreature(summon) and getCreatureMaster(summon) == cid then
	    doSendMagicEffect(getThingPos(summon), CONST_ME_MAGIC_BLUE)
	    return true
    else
	    useCreateMonster = true
    end
   else
    useCreateMonster = true
   end

   if useCreateMonster then
    local pos = getThingPos(cid)
    pos.y = pos.y + 1
    summon = doCreateMonster("Gazer", pos, false)
    if summon == true then
	    doPlayerSendCancel(cid, "There is not enough room to summon a creature.")
    return false
    end
   end

   if not isCreature(summon) then return false end
   doConvinceCreature(cid, summon)
   if getCreatureMaster(summon) ~= cid then
    doRemoveCreature(summon)
   return false
   end

   local function doDestroySummon(id)
   return isCreature(id) and doRemoveCreature(id) or false
   end

   doSendMagicEffect(getThingPos(summon), CONST_ME_MAGIC_BLUE)
   addEvent(doDestroySummon, tempo_para_remover * 1000, summon)
return true
end

Link para o comentário
Compartilhar em outros sites

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