Bienvenido a Open Games Community

Únete ahora para acceder a todas nuestras funciones. Una vez que te registres e inicies sesión, podrás crear temas, responder a hilos existentes, valorar la reputación de otros miembros y muchísimo más. Además, es rápido y totalmente gratuito; ¿a qué esperas?

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

W

Wagnii

Invitado
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

Administrador
Dev
Registrado
1 Sep 2021
Mensajes
2.362
Puntuación de reacción
28.641
Puntos
707
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()
 
W

Wagnii

Invitado
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

Administrador
Dev
Registrado
1 Sep 2021
Mensajes
2.362
Puntuación de reacción
28.641
Puntos
707
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

Administrador
Dev
Registrado
1 Sep 2021
Mensajes
2.362
Puntuación de reacción
28.641
Puntos
707
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.
 
shape1
shape2
shape3
shape4
shape5
shape6
Arriba