gente estou aki para postar 7 magias que eu criei la vai a primeira :
abra a pasta do seu ot vai em data\spells\attack e copie qualquer arquivo coloke o nome de kill evrybady e cole isto:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
local area = createCombatArea(AREA_SQUARE1X1)
setCombatArea(combat, area)
function getSpellDamage(cid, weaponSkill, weaponAttack)
damage_min = (weaponSkill * weaponAttack / 30) * 8.6 damage_max = (weaponSkill * weaponAttack / 30) * 8.99
if(damage_max < damage_min) then
local tmp = damage_max
damage_max = damage_min
damage_min = tmp
end
return -damage_min, -damage_max
end
setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "getSpellDamage")
function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end
depois va em data\spells e abra spells vai em magia de atack e cole isto:
<instant name="Kill Everybody" words="exori kina mort" lvl="125" mana="400" prem="1" needweapon="1" exhaustion="2000" needlearn="0" script="attack/kill everybody.lua">
<vocation name="Knight"/>
<vocation name="Elite Knight"/>
</instant>
para lancar e exori kina mort.
faça o mesmo proceso mais coloke o nome de holy wave e cole isto:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HOLYAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_HOLY)
function getCombatFormulas(cid, lv, maglv)
local formula_min = -((lv*0.25 + maglv*3) * 5.9)
local formula_max = -((lv*0.25 + maglv*3) * 6.7)
if(formula_max < formula_min) then
local tmp = formula_max
formula_max = formula_min
formula_min = tmp
end
return formula_min, formula_max
end
local area = createCombatArea(AREA_SQUAREWAVE5, AREADIAGONAL_SQUAREWAVE5)
setCombatArea(combat, area)
setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas")
function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end
depois vai em data\spells e abra spells.xml va em magias de attck e cole isto:
<instant name="Holy Wave" words="exevo nem sei hur" lvl="145" mana="700" direction="1" exhaustion="2000" needlearn="0" script="attack/holy wave.lua">
<vocation name="Paladin"/>
<vocation name="Royal Paladin"/>
</instant>
para lançar e exevo nem sei hur
agora a 3º faça o mesmo proceso e agora coloke o nome de morreu e cole isto:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_CONST_ME_MORTAREA)
function getCombatFormulas(cid, lv, maglv)
local formula_min = -((lv*0.25 + maglv*3) * 7.5)
local formula_max = -((lv*0.25 + maglv*3) * 7.7)
if(formula_max < formula_min) then
local tmp = formula_max
formula_max = formula_min
formula_min = tmp
end
return formula_min, formula_max
end
local area = createCombatArea(AREA_CROSS5X5)
setCombatArea(combat, area)
setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas")
function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end
depois va em spells.xml e va em magias de attack e cole isto:
<instant name="morreu" words="morreu" lvl="125" mana="1200" selftarget="1" prem="1" exhaustion="2000" needlearn="0" script="attack/morreu.lua">
<vocation name="Sorcerer"/>
<vocation name="Master Sorcerer"/>
<vocation name="Druid"/>
<vocation name="Elder Druid"/>
</instant>
para lançar e morreu
agora faça o mesmo proceso para a 4º magia e coloke o nome de rage of the gods e cole isto :
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HOLYAREA)
function getCombatFormulas(cid, lv, maglv)
local formula_min = -((lv*0.25 + maglv*3) * 9.5)
local formula_max = -((lv*0.25 + maglv*3) * 10.7)
if(formula_max < formula_min) then
local tmp = formula_max
formula_max = formula_min
formula_min = tmp
end
return formula_min, formula_max
end
local area = createCombatArea(AREA_CROSS5X5)
setCombatArea(combat, area)
setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas")
function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end
depois em spells.xml isto:
<instant name="rage of the gods" words="espirito 666" lvl="200" mana="1000" selftarget="1" prem="1" exaustion="2000" needlearn="0" script="attack/rage of the gods.lua">
<vocation name="Paladin"/>
<vocation name="Royal Paladin"/>
</instant>
para lançar e espirito 666
agora o mesmo proceso para a 5º e coloque o nome de death wave e cole isto :
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_DEATHAREA)
function getCombatFormulas(cid, lv, maglv)
local formula_min = -((lv*0.25 + maglv*3) * 66.5)
local formula_max = -((lv*0.25 + maglv*3) * 66.7)
if(formula_max < formula_min) then
local tmp = formula_max
formula_max = formula_min
formula_min = tmp
end
return formula_min, formula_max
end
local area = createCombatArea(AREA_WAVE4, AREADIAGONAL_WAVE4)
setCombatArea(combat, area)
setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas")
function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end
agora em spells.xml isto :
<instant name="Death Wave" words="exevo mort hur" lvl="125" mana="800" direction="1" exhaustion="2000" needlearn="0" script="attack/death wave.lua">
<vocation name="Druid"/>
<vocation name="Elder Druid"/>
<vocation name="Sorcerer"/>
<vocation name="Master Sorcerer"/>
</instant>
para lançar exevo mort hur
agora a 6º faca o mesmo proceso e coloke o nome de kamehameha e cole isto :
local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
function onGetFormulaValues(cid, level, maglevel)
min = -(level * 22) / 6
max = -(level * 38.5) / 6
return min, max
end
setCombatCallback(combat1, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
function onGetFormulaValues(cid, level, maglevel)
min = -(level * 22) / 5
max = -(level * 38.5) / 5
return min, max
end
setCombatCallback(combat2, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
local combat3 = createCombatObject()
setCombatParam(combat3, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
function onGetFormulaValues(cid, level, maglevel)
min = -(level * 22) / 4
max = -(level * 38.5) / 4
return min, max
end
setCombatCallback(combat3, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
local combat4 = createCombatObject()
setCombatParam(combat4, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
function onGetFormulaValues(cid, level, maglevel)
min = -(level * 22) / 3
max = -(level * 38.5) / 3
return min, max
end
setCombatCallback(combat4, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
local combat5 = createCombatObject()
setCombatParam(combat5, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
setCombatParam(combat5, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
function onGetFormulaValues(cid, level, maglevel)
min = -(level * 22) / 2
max = -(level * 38.5) / 2
return min, max
end
setCombatCallback(combat5, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
local arr1 = {
{0, 0, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0},
{0, 1, 0},
{1, 2, 1},
{1, 0, 1},
}
local arr2 = {
{0, 0, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0},
{0, 1, 0},
{0, 2, 0},
{0, 0, 0},
}
local arr3 = {
{0, 0, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0},
{0, 1, 0},
{0, 0, 0},
{0, 2, 0},
{0, 0, 0},
}
local arr4 = {
{0, 0, 0},
{0, 0, 0},
{0, 0, 0},
{0, 1, 0},
{0, 0, 0},
{0, 0, 0},
{0, 2, 0},
{0, 0, 0},
}
local arr5 = {
{0, 0, 0},
{0, 0, 0},
{0, 1, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0},
{0, 2, 0},
{0, 0, 0},
}
local arr6 = {
{0, 0, 0},
{0, 1, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0},
{0, 2, 0},
{0, 0, 0},
}
local arr7 = {
{0, 1, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0},
{0, 2, 0},
{0, 0, 0},
}
local area1 = createCombatArea(arr1)
local area2 = createCombatArea(arr2)
local area3 = createCombatArea(arr3)
local area4 = createCombatArea(arr4)
local area5 = createCombatArea(arr5)
setCombatArea(combat1, area1)
setCombatArea(combat2, area2)
setCombatArea(combat3, area3)
setCombatArea(combat4, area4)
setCombatArea(combat5, area5)
local function onCastSpell1(parameters)
doCombat(parameters.cid, parameters.combat1, parameters.var)
end
local function onCastSpell2(parameters)
doCombat(parameters.cid, parameters.combat2, parameters.var)
end
local function onCastSpell3(parameters)
doCombat(parameters.cid, parameters.combat3, parameters.var)
end
local function onCastSpell4(parameters)
doCombat(parameters.cid, parameters.combat4, parameters.var)
end
local function onCastSpell5(parameters)
doCombat(parameters.cid, parameters.combat5, parameters.var)
end
function onCastSpell(cid, var)
local parameters = { cid = cid, var = var,combat1 = combat1,combat2 = combat2,combat3 = combat3,combat4 = combat4,combat5 = combat5 }
addEvent(onCastSpell1, 100, parameters)
addEvent(onCastSpell2, 300, parameters)
addEvent(onCastSpell3, 500, parameters)
addEvent(onCastSpell4, 700, parameters)
addEvent(onCastSpell5, 900, parameters)
end
depois em spells.xml isto:
<instant name="kamehameha" words="kamehameha" direction="1" lvl="20" maglv="10" mana="100" soul="0" exhaustion="1" prem="0" enabled="1" script="attack\kamehameha.lua"><vocation id="1"/><vocation id="8"/><vocation id="2"/><vocation id="9"/></instant>
para lançar kamehameha
e agora faça o mesmo proceso para 7º e ultima spell e coloke o nome de esplosao de vis no arquivo e depois cole isto :
local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
function onGetFormulaValues(cid, level, maglevel)
min = -(level * 22) / 6
max = -(level * 38.5) / 6
return min, max
end
setCombatCallback(combat1, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
function onGetFormulaValues(cid, level, maglevel)
min = -(level * 22) / 5
max = -(level * 38.5) / 5
return min, max
end
setCombatCallback(combat2, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
local combat3 = createCombatObject()
setCombatParam(combat3, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
function onGetFormulaValues(cid, level, maglevel)
min = -(level * 22) / 4
max = -(level * 38.5) / 4
return min, max
end
setCombatCallback(combat3, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
local combat4 = createCombatObject()
setCombatParam(combat4, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
function onGetFormulaValues(cid, level, maglevel)
min = -(level * 22) / 3
max = -(level * 38.5) / 3
return min, max
end
setCombatCallback(combat4, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
local combat5 = createCombatObject()
setCombatParam(combat5, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
setCombatParam(combat5, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
function onGetFormulaValues(cid, level, maglevel)
min = -(level * 22) / 2
max = -(level * 38.5) / 2
return min, max
end
setCombatCallback(combat5, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
local arr1 = {
{1, 1, 0, 1, 1},
{1, 1, 0, 1, 1},
{1, 1, 0, 1, 1},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{0, 0, 3, 0, 0},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{1, 1, 0, 1, 1},
{1, 1, 0, 1, 1},
{1, 1, 0, 1, 1},
}
local arr2 = {
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{1, 1, 1, 1, 1},
{1, 1, 1, 1, 1},
{1, 1, 3, 1, 1},
{1, 1, 1, 1, 1},
{1, 1, 1, 1, 1},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
}
local arr3 = {
{1, 1, 0, 1, 1},
{1, 1, 0, 1, 1},
{1, 1, 0, 1, 1},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{0, 0, 3, 0, 0},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{1, 1, 0, 1, 1},
{1, 1, 0, 1, 1},
{1, 1, 0, 1, 1},
}
local arr4 = {
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{1, 1, 1, 1, 1},
{1, 1, 1, 1, 1},
{1, 1, 3, 1, 1},
{1, 1, 1, 1, 1},
{1, 1, 1, 1, 1},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
}
local arr5 = {
{1, 1, 0, 1, 1},
{1, 1, 0, 1, 1},
{1, 1, 0, 1, 1},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{0, 0, 3, 0, 0},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{1, 1, 0, 1, 1},
{1, 1, 0, 1, 1},
{1, 1, 0, 1, 1},
}
local arr6 = {
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{1, 1, 1, 1, 1},
{1, 1, 1, 1, 1},
{1, 1, 3, 1, 1},
{1, 1, 1, 1, 1},
{1, 1, 1, 1, 1},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
}
local arr7 = {
{1, 1, 0, 1, 1},
{1, 1, 0, 1, 1},
{1, 1, 0, 1, 1},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{0, 0, 3, 0, 0},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{1, 1, 0, 1, 1},
{1, 1, 0, 1, 1},
{1, 1, 0, 1, 1},
}
local arr8 = {
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{1, 1, 1, 1, 1},
{1, 1, 1, 1, 1},
{1, 1, 3, 1, 1},
{1, 1, 1, 1, 1},
{1, 1, 1, 1, 1},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
}
local area1 = createCombatArea(arr1)
local area2 = createCombatArea(arr2)
local area3 = createCombatArea(arr3)
local area4 = createCombatArea(arr4)
local area5 = createCombatArea(arr5)
setCombatArea(combat1, area1)
setCombatArea(combat2, area2)
setCombatArea(combat3, area3)
setCombatArea(combat4, area4)
setCombatArea(combat5, area5)
local function onCastSpell1(parameters)
doCombat(parameters.cid, parameters.combat1, parameters.var)
end
local function onCastSpell2(parameters)
doCombat(parameters.cid, parameters.combat2, parameters.var)
end
local function onCastSpell3(parameters)
doCombat(parameters.cid, parameters.combat3, parameters.var)
end
local function onCastSpell4(parameters)
doCombat(parameters.cid, parameters.combat4, parameters.var)
end
local function onCastSpell5(parameters)
doCombat(parameters.cid, parameters.combat5, parameters.var)
end
function onCastSpell(cid, var)
local parameters = { cid = cid, var = var,combat1 = combat1,combat2 = combat2,combat3 = combat3,combat4 = combat4,combat5 = combat5 }
addEvent(onCastSpell1, 100, parameters)
addEvent(onCastSpell2, 300, parameters)
addEvent(onCastSpell3, 500, parameters)
addEvent(onCastSpell4, 700, parameters)
addEvent(onCastSpell5, 900, parameters)
end
agora em spells.xml isto :
<instant name="esplosao de vis" words="muahahaha" direction="1" lvl="20" maglv="10" mana="100" soul="0" exhaustion="1" prem="0" enabled="1" script="attack\esplosao de vis.lua"><vocation id="1"/><vocation id="8"/><vocation id="2"/><vocation id="9"/></instant>
para lançar e muahahaha
agora acabol ^^ vc ja tem 7 magias novas