Ir para conteúdo

Featured Replies

Postado

Boa noite, gostaria da ajuda de vocês que entendem.. 
Gostaria de por uma spell no monster, queria que ele usasse uma magia do ot, deixarei ela no spoiler..

Basicamente:
Assim que ele pegasse target em um player ele iria soltar essa magia.
 

Spoiler

local water = {490, 491, 492, 493, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625}

local combat = createCombatObject()

local meteor = createCombatObject()
setCombatParam(meteor, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(meteor, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK)
setCombatFormula(meteor, COMBAT_FORMULA_LEVELMAGIC, -9.30, -300, -9.10, -300)


local stun = createConditionObject(CONDITION_PARALYZE)
setConditionParam(stun, CONDITION_PARAM_TICKS, 1000)
setConditionFormula(stun, -0.9, 1, -0.9, 1)
setCombatCondition(meteor, stun)


local meteor_water = createCombatObject()
setCombatParam(meteor_water, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(meteor_water, COMBAT_PARAM_EFFECT, CONST_ME_LOSEENERGY)
setCombatFormula(meteor_water, COMBAT_FORMULA_LEVELMAGIC, -7.70, -200, -7.80, -200)

combat_arr = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 3, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
}

local combat_area = createCombatArea(combat_arr)
setCombatArea(combat, combat_area)


local function meteorCast(p)
doCombat(p.cid, p.combat, positionToVariant(p.pos))
end

local function stunEffect(cid)
doSendMagicEffect(getThingPos(cid), CONST_ME_STUN)
end

function onTargetTile(cid, pos)
if (math.random(0, 0) == 0) then
local ground = getThingfromPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 1})
if (isInArray(water, ground.itemid) == TRUE) then
local newpos = {x = pos.x - 9, y = pos.y - 8, z = pos.z}
doSendDistanceShoot(newpos, pos, CONST_ANI_FIRE)
addEvent(meteorCast, 100, {cid = cid, pos = pos, combat = meteor_water})
else
local newpos = {x = pos.x - 9, y = pos.y - 8, z = pos.z}
doSendDistanceShoot(newpos, pos, CONST_ANI_FIRE)
addEvent(meteorCast, 100, {cid = cid,pos = pos, combat = meteor})
end
end
end

setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")


function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end



 

Postado

Fazer o monstro usar  a magia do ot é fácil, agora por está condição de assim que ele pegar target, e delimitar qnts vezes a magia seria usada seria por meio de um creaturescript e daria mais trabalho.

Ve se esse quebra-galho resolve o seu problema, se não eu tento te ajudar com o creaturescript....

 

<attack name="Eternal Winter" interval="3500" chance="20" min="-780" max="-1770" />

 

no monstro que você quer editar, é só seguir este exemplo, attack name, é o nome da spell que esta em spells.xm. o resto acredito ser intuitivo....

Editado por Nandozeraah (veja o histórico de edições)

Postado
  • Autor

 

Em 26/12/2017 em 12:30, Nandozeraah disse:

Fazer o monstro usar  a magia do ot é fácil, agora por está condição de assim que ele pegar target, e delimitar qnts vezes a magia seria usada seria por meio de um creaturescript e daria mais trabalho.

Ve se esse quebra-galho resolve o seu problema, se não eu tento te ajudar com o creaturescript....

 

<attack name="Eternal Winter" interval="3500" chance="20" min="-780" max="-1770" />

 

no monstro que você quer editar, é só seguir este exemplo, attack name, é o nome da spell que esta em spells.xm. o resto acredito ser intuitivo....

 

Eu fiz o monstro soltar a magia, porem, ele acerta a magia nele proprio, ao invez de acertar o player. 
Queria que ele acertasse no target dele.

Editado por brendoonh (veja o histórico de edições)

  • 3 weeks later...
Postado

então cara,  se o código da magia for baseado na criatura que está usando a magia teria que mudar muitas coisas no código em si. o que você pode tentar é alterar a tag da magia em spells.xml, e adcionar isto aqui em negrito:

<instant name="Strong Flame Strike" words="exori gran flam" lvl="70" mana="60" prem="0" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="attack/strong flame strike.lua">

 

e depois colocar no monstro assim: <attack name="MAGIA" interval="3500" target="1"chance="20" min="-780" max="-1770" />

Editado por Nandozeraah (veja o histórico de edições)

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo