Ir para conteúdo

Posts Recomendados

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

separador+blog.jpg

Entendendo :

separador+blog.jpg

 

 

 

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_ .

separador+blog.jpg
Efeito da magia : O efeito que sai quando você usa a magia .
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_BIGCLOUDS)

separador+blog.jpg

 

 

Formula da magia :

(aqui é onde você edita quanto vai atacar ou curar .

setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 5, 12)

separador+blog.jpg

 

 

Á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 .

 

separador+blog.jpg

 

 

Função da Spell :

Vai retornar oque está em local combat .

function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end

separador+blog.jpg

 

 

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 .

separador+blog.jpg

 

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 .

 

Suporte :

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 .

 

 

 

Efeitos :

 

 

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 :D

Editado por DuuhCarvalho
Link para o comentário
Compartilhar em outros sites

Duhcarvalho,obrigado por este otimo tutorial,alias todos os seus tutoriais são muito bom,continue assim cara!!

 

Agradeço , pretendo fazer ainda mais tutoriais pra ajudar os iniciantes .

E também espero que os membros não venham só pedir e sim fazer .

 

alguém pode fazer um script baseado no tutorial ...

Editado por DuuhCarvalho
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...