Les voy a explicar un poco como crear o modificar como querais spells.
Voy a explicaros con el ejemplo del Spell “Exevo Mort Hur”:
Este es su codigo:
Código:
area = {
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{2, 2, 2, 0, 0, 1, 0, 0, 3, 3, 3},
{2, 2, 2, 2, 2, 0, 3, 3, 3, 3, 3},
{2, 2, 2, 0, 0, 4, 0, 0, 3, 3, 3},
{0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0},
{0, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0},
{0, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0}
}
attackType = ATTACK_ENERGY
needDirection = true
areaEffect = NM_ME_ENERGY_AREA
animationEffect = NM_ANI_NONE
hitEffect = NM_ME_EXPLOSION_DAMAGE
damageEffect = NM_ME_ENERGY_DAMAGE
animationColor = RED
offensive = true
drawblood = true
EnergyWaveObject = MagicDamageObject(attackType, animationEffect, hitEffect, damageEffect, animationColor, offensive, drawblood, 0, 0)
function onCast(cid, creaturePos, level, maglv, var)
centerpos = {x=creaturePos.x, y=creaturePos.y, z=creaturePos.z}
EnergyWaveObject.minDmg = (level * 2 + maglv * 3) * 1.3
EnergyWaveObject.maxDmg = (level * 2 + maglv * 3) * 1.7
return doAreaMagic(cid, centerpos, needDirection, areaEffect, area, EnergyWaveObject:ordered())
end
El apartado del Area:
Código:
area = {
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{2, 2, 2, 0, 0, 1, 0, 0, 3, 3, 3},
{2, 2, 2, 2, 2, 0, 3, 3, 3, 3, 3},
{2, 2, 2, 0, 0, 4, 0, 0, 3, 3, 3},
{0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0},
{0, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0},
{0, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0}
}
Los 0 significan que el spell no afecta a esos cuadrdos.
Los 1 significan que si estas mirando hacia el Norte, el Spell saldra hacia esa direccion.
Los 2 lo mismo pero hacia el Oeste.
Los 3 lo mismo pero hacia el Este.
Los 4 lo mismo pero hacia el Sur.
(estos numeros del 1 al 4 solo se ponen si el spell tiene direccion[/b])
Código:
attackType = ATTACK_ENERGY
needDirection = true
areaEffect = NM_ME_ENERGY_AREA
animationEffect = NM_ANI_NONE
Diferentes Efectos:
Código:
NM_ME_DRAW_BLOOD
Sangre que sale cuando pegas a un personaje
Código:
NM_ME_LOOSE_ENERGY
Círculos azules(parecido a la animación del “utamo vita”)
Código:
NM_ME_PUFF
Nube de polvo que aparece cuando fallas un golpe.
Código:
NM_ME_BLOCKHIT
Cruz amarilla, sale cuando bloqueas un golpe.
Código:
NM_ME_EXPLOSION_AREA
Explosion como la de runa o la de la UE
Código:
NM_ME_EXPLOSION_DAMAGE
Parecida a la de arriba.
Código:
NM_ME_FIRE_AREA
LLama de los exori fram y las gfb
Código:
NM_ME_YELLOW_RINGS
Anillos amarillos
Código:
NM_ME_POISEN_RINGS
Anillos verdes como los del poison storm
Código:
NM_ME_HIT_AREA
El típico golpe de exori
Código:
NM_ME_ENERGY_AREA
Es una electricidad como la de las EF
Código:
NM_ME_ENERGY_DAMAGE
La misma que la de arriba pero al impactar
Código:
NM_ME_MAGIC_ENERGIE
Unas estrellitas de color azul
Código:
NM_ME_MAGIC_BLOOD
Unas estrellitas de color rojo
Código:
NM_ME_MAGIC_POISEN
Unas estrellitas de color verde
Código:
NM_ME_HITBY_FIRE
Una llama como las de las FE o cuando te quemas y te van quitando 10 de vida
Código:
NM_ME_POISEN
Una cruz de color verde
Código:
NM_ME_MORT_AREA
Una bola negra como las SD o el exori mort
Código:
NM_ME_SOUND
Notas de música
Estos códigos se usan detras de:
Código:
damageEffect = (aquí)
areaEffect = (aquí)
Código:
needDirection = true
Esto si lo pones true es para los Spellsva para la direccion en que lo miras, si lo pones false saldra siempre a tu alrededor sin direccion.
Código:
hitEffect = NM_ME_EXPLOSION_DAMAGE
damageEffect = NM_ME_ENERGY_DAMAGE
animationColor = RED
offensive = true
drawblood = true
EnergyWaveObject = MagicDamageObject(attackType, animationEffect, hitEffect, damageEffect, animationColor, offensive, drawblood, 0, 0)
function onCast(cid, creaturePos, level, maglv, var)
centerpos = {x=creaturePos.x, y=creaturePos.y, z=creaturePos.z}
EnergyWaveObject.minDmg = (level * 2 + maglv * 3) * 1.3
EnergyWaveObject.maxDmg = (level * 2 + maglv * 3) * 1.7
return doAreaMagic(cid, centerpos, needDirection, areaEffect, area, EnergyWaveObject:ordered())
end
Código:
animationColor = RED
Animacion que sale de color RED o GREEN (pongan la que les parezca)
Código:
EnergyWaveObject.minDmg = (level * 2 + maglv * 3) * 1.3
EnergyWaveObject.maxDmg = (level * 2 + maglv * 3) * 1.7
Esta es la formula del daño (level x 2 + ml x 3) x 1.3 = Daño minimo
(level x 2 + ml x 3) x 1.7 = Daño Maximo
Lo pueden cambiar como crean conveniente