RevScript ayuda con objeto con habilidad (daño de área)

Wagnii

Miembro
LV
1
 
Awards
3
Alguien que me ayude estoy intentando hacer este script del item pero en medio del exori el monstruo no es el personaje

"ella rodea al monstruo que está siendo atacado"


local area = createCombatArea({
{1, 1, 1},
{1, 3, 1},
{1, 1, 1}
})
local combatStrong = Combat()
combatStrong:setParameter(COMBAT_PARAM_TYPE, CONST_ANI_REDSTAR)
combatStrong:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)
combatStrong:setParameter(COMBAT_PARAM_BLOCKARMOR, true)
combatStrong:setFormula(COMBAT_FORMULA_SKILL, 5, 13, 10, 0)
combatStrong:setArea(area)

local weapon = Weapon(WEAPON_WAND)
function weapon.onUseWeapon(player, variant)

return combatStrong:execute(player, variant)

end

weapon:id(23267)
weapon:register()
 

Alex

Miembro del equipo
Webdesigner
LV
58
 
Awards
38
Alguien que me ayude estoy intentando hacer este script del item pero en medio del exori el monstruo no es el personaje

"ella rodea al monstruo que está siendo atacado"

En el caso, tu spell la utilizas para sorcerers y druids, entiendo que es una wand, necessitas cuando es Sorc & Druid, usar un "onGetFormulaValues", a lo contrario, es mas para paladin/knights.

Prueba algo como:

Código Lua:
local miWand= Weapon(WEAPON_WAND)

local area = createCombatArea({
    {1, 1, 1},
    {1, 3, 1},
    {1, 1, 1}
})

local combat = Combat()
combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_EXPLOSIONAREA)
combat:setParameter(COMBAT_PARAM_BLOCKARMOR, true)
combat:setArea(area)

function onGetFormulaValues(player, level, maglevel)
    local min = (level / 5) + (maglevel * 0.4) + 3
    local max = (level / 5) + (maglevel * 0.7) + 7
    return -min, -max
end

combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

miWand.onUseWeapon = function(player, variant)
    return combat:execute(player, variant)
end

miWand:id(23267)
miWand:mana(25)
miWand:range(6)
miWand:register()
 

Wagnii

Miembro
LV
1
 
Awards
3
el mismo error esta sucediendo

Quería daño de área pero selecciona al monstruo para ejecutar el script, no al jugador como centro.



function weapon.onUseWeapon(player, variant)
local pos1 = player:getPosition()
local pos2 = player:getPosition()
local pos3 = player:getPosition()
local pos4 = player:getPosition()

pos1.x = pos1.x + 1
pos1:sendMagicEffect(CONST_ME_EXPLOSIONAREA)
pos2.x = pos2.x - 1
pos2:sendMagicEffect(CONST_ME_EXPLOSIONAREA)
pos3.y = pos3.y - 1
pos3:sendMagicEffect(CONST_ME_EXPLOSIONAREA)
pos4.y = pos4.y + 1
pos4:sendMagicEffect(CONST_ME_EXPLOSIONAREA)
return combat:execute(player, variant)
end


entonces lo tengo
Pero sin el daño


gracias
 

Alex

Miembro del equipo
Webdesigner
LV
58
 
Awards
38
el mismo error esta sucediendo

Quería daño de área pero selecciona al monstruo para ejecutar el script, no al jugador como centro.






entonces lo tengo
Pero sin el daño


gracias

Prueba:

Código Lua:
local miWand= Weapon(WEAPON_WAND)

local area = createCombatArea({
    {1, 1, 1},
    {1, 3, 1},
    {1, 1, 1}
})

local combat = Combat()
combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_EXPLOSIONAREA)
combat:setParameter(COMBAT_PARAM_BLOCKARMOR, true)
combat:setArea(area)

function onGetFormulaValues(player, level, maglevel)
    local min = (level / 5) + (maglevel * 0.4) + 3
    local max = (level / 5) + (maglevel * 0.7) + 7
    return -min, -max
end

combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

miWand.onUseWeapon = function(player, variant)
    local playerPos = player:getPosition()
    return combat:execute(playerPos, variant)
end


miWand:id(23267)
miWand:mana(25)
miWand:range(6)
miWand:register()
 

Alex

Miembro del equipo
Webdesigner
LV
58
 
Awards
38
ocurrió el mismo error =(

He estado probando, pero no creo que esto se pueda crear de esta forma, porqué habria que llamar una area y volver a agregar danyo pero no hay forma.
Cuando ejecutas una spell "sale del player", cuando atacas un player/monstruo , es el player/monstruo el centro, pero no el jugador.
Si se hace, pero diria implementando algo similar al "centro jugador/player/monstruo" y algo pienso que se necessita una function para esto pero ni idea como seria entonces, siendo el centro el monstruo si.
 
Arriba