Postado Dezembro 21, 2017 7 anos 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 Dezembro 26, 2017 7 anos 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 Dezembro 26, 2017 7 anos por Nandozeraah (veja o histórico de edições)
Postado Janeiro 1, 2018 7 anos 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 Janeiro 2, 2018 7 anos por brendoonh (veja o histórico de edições)
Postado Janeiro 22, 2018 7 anos 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 Janeiro 22, 2018 7 anos 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.