Spells, são magias , servem pra curar, atacar, e tem também tem as que dão suporte .
Função :
function onCastSpell(cid, var) -- função da magia.
Exemplo de script :
local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_BIGCLOUDS) setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 5, 12) local area = createCombatArea(AREA_CROSS6X6) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end
Entendendo :
Tipo de Spell : O que vai acontecer ao usar a spell.
No caso a Spell é de attack. Então é um COMBAT_ de dano .
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
e para curar ? seria ..
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
percebesse que a unica coisa que mudou foi COMBAT_ .

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_BIGCLOUDS)
Formula da magia :
(aqui é onde você edita quanto vai atacar ou curar .
setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 5, 12)
Área da Spell :
local area = createCombatArea(AREA_CROSS6X6)
Para saber todas as área ou para adicionar novas áreas no seu spells . vá em DATA / SPELLS / LIB e abra o arquivo spells.lua.
Nesse arquivo terá todas as áreas do seu server .
Para Adicionar umas Nova área é so copiar uma já existente e coloque depois da ultima área.
Agora é só mudar o nome da área e onde ela vai atingir .
Ex :
AREA_DUUH = { {1, 0, 0, 0, 1}, {0, 1, 0, 1, 0}, {0, 0, 3, 0, 0}, -- O 3 é Você , coloque 1 na área que a spells vai atingir. {0, 1, 0, 1, 0}, {1, 0, 0, 0, 1}, }
obs: spells de healing e suporte não tem área .
Função da Spell :
Vai retornar oque está em local combat .
function onCastSpell(cid, var) return doCombat(cid, combat, var) end
Tag que vai em data / spells / spells.Xml :
<instant name="Nome" words="WORD" lvl="55" mana="650" selftarget="1" prem="1" exhaustion="2000" needlearn="0" event="script" value="attack/rage of the skies.lua"> <vocation id="1"/> <vocation id="5"/> </instant>
name = Nome da Magia.
words = O que o Player Fala para a magia ser executada . ex : Exura Gran.
level = Level necessário para usar a magia .
mana = Quanto vai gastar de mana .
exhaustion = tempo para executar novamente .
value = NomedoArquivo.lua , se estiver detro de alguma pasta em scripts então use " \ " . Ex : healing/NomedoArquivo.lua .
Vocation = Id da vocação que pode usar .
Exemplo de Spell : Healing e Suporte . (Use Como Base)
Healing :
local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 5, 6) function onCastSpell(cid, var) return doCombat(cid, combat, var) end
Se a spell não é agressiva , ela pode ser usada em protect zone .
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) -- false ou true .
TAG :
<instant name="NOME" words="WORD" lvl="11" mana="70" aggressive="0" selftarget="1" exhaustion="1000" needlearn="0" event="script" value="healing/intense healing.lua"> <vocation id="1"/> </instant>
name = Nome da Magia.
words = O que o Player Fala para a magia ser executada . ex : Exura Gran.
level = Level necessário para usar a magia .
mana = Quanto vai gastar de mana .
exhaustion = tempo para executar novamente .
value = NomedoArquivo.lua , se estiver detro de alguma pasta em scripts então use " \ " . Ex : healing/NomedoArquivo.lua .
Vocation = Id da vocação que pode usar .
local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local condition = createConditionObject(CONDITION_MANASHIELD) setConditionParam(condition, CONDITION_PARAM_TICKS, 200000) setCombatCondition(combat, condition) function onCastSpell(cid, var) return doCombat(cid, combat, var) end
Tempo que a spell demora para acabar :
setConditionParam(condition, CONDITION_PARAM_TICKS, 200000)
Tag :
<instant name="NOME" words="WORD" lvl="14" mana="50" aggressive="0" selftarget="1" exhaustion="1000" needlearn="0" event="script" value="support/magic shield.lua"> <vocation id="1"/> </instant>
name = Nome da Magia.
words = O que o Player Fala para a magia ser executada . ex : Exura Gran.
level = Level necessário para usar a magia .
mana = Quanto vai gastar de mana .
exhaustion = tempo para executar novamente .
value = NomedoArquivo.lua , se estiver detro de alguma pasta em scripts então use " \ " . Ex : healing/NomedoArquivo.lua .
Vocation = Id da vocação que pode usar .
CONST_ME_DRAWBLOOD CONST_ME_LOSEENERGY CONST_ME_POFF CONST_ME_BLOCKHIT CONST_ME_EXPLOSIONAREA CONST_ME_EXPLOSIONHIT CONST_ME_FIREAREA CONST_ME_YELLOW_RINGS CONST_ME_GREEN_RINGS CONST_ME_HITAREA CONST_ME_ENERGYAREA CONST_ME_ENERGYHIT CONST_ME_MAGIC_BLUE CONST_ME_MAGIC_RED CONST_ME_MAGIC_GREEN CONST_ME_HITBYFIRE CONST_ME_HITBYPOISON CONST_ME_MORTAREA CONST_ME_SOUND_BLUE CONST_ME_SOUND_RED CONST_ME_POISONAREA CONST_ME_SOUND_YELLOW CONST_ME_SOUND_PURPLE CONST_ME_SOUND_BLUE CONST_ME_SOUND_WHITE CONST_ME_BUBBLES CONST_ME_CRAPS CONST_ME_GIFT_WRAPS CONST_ME_FIREWORK_YELLOW CONST_ME_FIREWORK_RED CONST_ME_FIREWORK_BLUE CONST_ME_STUN CONST_ME_SLEEP CONST_ME_WATERCREATURE CONST_ME_GROUNDSHAKER CONST_ME_NONE CONST_ANI_SPEAR CONST_ANI_BOLT CONST_ANI_ARROW CONST_ANI_FIRE CONST_ANI_ENERGY CONST_ANI_POISONARROW CONST_ANI_BURSTARROW CONST_ANI_THROWINGSTAR CONST_ANI_THROWINGKNIFE CONST_ANI_SMALLSTONE CONST_ANI_SUDDENDEATH CONST_ANI_LARGEROCK CONST_ANI_SNOWBALL CONST_ANI_POWERBOLT CONST_ANI_POISON CONST_ANI_INFERNALBOLT CONST_ANI_HUNTINGSPEAR CONST_ANI_ENCHANTEDSPEAR CONST_ANI_ASSASSINSTAR CONST_ANI_GREENSTAR CONST_ANI_ROYALSPEAR CONST_ANI_SNIPERARROW CONST_ANI_ONYXARROW CONST_ANI_PIERCINGBOLT CONST_ANI_WHIRLWINDSWORD CONST_ANI_WHIRLWINDAXE CONST_ANI_WHIRLWINDCLUB CONST_ANI_ENCHANTEDSPEAR CONST_ANI_WEAPONTYPE CONST_ANI_NONE
COMBAT_ :
COMBAT_NONE COMBAT_PHYSICALDAMAGE COMBAT_ENERGYDAMAGE COMBAT_POISONDAMAGE COMBAT_FIREDAMAGE COMBAT_UNDEFINEDDAMAGE COMBAT_LIFEDRAIN COMBAT_MANADRAIN COMBAT_HEALING COMBAT_DROWNDAMAGE
CONDITION_ (condições)
CONDITION_NONE CONDITION_POISON CONDITION_FIRE CONDITION_ENERGY CONDITION_LIFEDRAIN CONDITION_HASTE CONDITION_PARALYZE CONDITION_OUTFIT CONDITION_INVISIBLE CONDITION_LIGHT CONDITION_MANASHIELD CONDITION_INFIGHT CONDITION_DRUNK CONDITION_EXHAUSTED CONDITION_FOOD CONDITION_REGENERATION CONDITION_SOUL CONDITION_DROWN CONDITION_MUTED
É isso pessoal