Ir para conteúdo

[ Reprovado ][ Reprovado ][Tutorial] Criando Spells


Makelin1

Posts Recomendados

Ola Xtibia resolvi criar esse tutorial. Para os iniciantes aprederem sozinhos. Organizei em Spoiler os Tipos de Magia.

 

Spell De Attack:

 

Spoiler

#O Corpo da Spell:

 

#Simples: 1 Efeito

Spoiler

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_TYPE,COMBAT_PHYSICALDAMAGE)

setCombatParam(combat, COMBAT_PARAM_EFFECT,CONST_ME_HITAREA)

setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.0, -500, 1.6, -600)

 

arr = {

{0, 1, 0},

{1, 3, 1},

{0, 1, 0}

}

local area = createCombatArea(arr)

setCombatArea(combat, area)

 

function onCastSpell(cid, var)

return doCombat(cid, combat, var)

end

 

#Simples: 2 Efeitos

Spoiler

local combat1 = createCombatObject()

setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)

setCombatParam(combat1, COMBAT_PARAM_EFFECT, 21)

setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -6.0, -100, -3.0, -250)

 

local combat2 = createCombatObject()

setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)

setCombatParam(combat2, COMBAT_PARAM_EFFECT, 20)

setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -1.0, -500, -1.3, -680)

 

arr1 = {

{0, 1, 0},

{1, 3, 1},

{0, 1, 0}

}

 

 

 

 

arr2 = {

{1, 0, 1},

{0, 3, 0},

{1, 0, 1}

}

 

 

 

local area1 = createCombatArea(arr1)

local area2 = createCombatArea(arr2)

setCombatArea(combat1, area1)

setCombatArea(combat2, area2)

 

local function onCastSpell1(parameters)

doCombat(parameters.cid, combat1, parameters.var)

end

 

local function onCastSpell2(parameters)

doCombat(parameters.cid, combat2, parameters.var)

end

 

function onCastSpell(cid, var)

local parameters = { cid = cid, var = var}

addEvent(onCastSpell1, 100, parameters)

addEvent(onCastSpell2, 100, parameters)

 

return TRUE

end

 

#Contruindo a Spell

 

#Fazendo Sua Magia: Simples 1 Efeito

Spoiler

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_TYPE,COMBAT_PHYSICALDAMAGE)

setCombatParam(combat, COMBAT_PARAM_EFFECT,CONST_ME_HITAREA)

setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.0, -500, 1.6, -600)

 

setCombatParam(combat, COMBAT_PARAM_TYPE,COMBAT_PHYSICALDAMAGE) -> Tipo De Dano

setCombatParam(combat, COMBAT_PARAM_EFFECT,CONST_ME_HITAREA) -> Efeito da magia

setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.0, -500, 1.0, -600) -> Formula do HIT da Spell

 

arr = {

{0, 1, 0},

{1, 2, 1},

{0, 1, 0}

}

 

Local em que a Spell vai sair ou seja, aonde esta o 2 sera o player.

Obs: Botando 2 o efeito da magia nao sai no player, botando 3 o efeito sai encima do player tb

 

local area = createCombatArea(arr)

setCombatArea(combat, area)

 

function onCastSpell(cid, var)

return doCombat(cid, combat, var)

end

Nao mecheremos aqui, pois é uma spell simples.

 

 

#Fazendo Sua Magia: 2 Efeitos

Spoiler

local combat1 = createCombatObject()

setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)

setCombatParam(combat1, COMBAT_PARAM_EFFECT, 21)

setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -6.0, -100, -3.0, -250)

 

local combat2 = createCombatObject()

setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)

setCombatParam(combat2, COMBAT_PARAM_EFFECT, 20)

setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -1.0, -500, -1.3, -680)

 

setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE) -> Tipo de Dano do primeiro efeito

setCombatParam(combat1, COMBAT_PARAM_EFFECT, 21) -> Primeiro Efeito

setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -6.0, -100, -3.0, -250) -> Formula do HIT do primeiro efeito

 

setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE) -> Tipo de dano do segundo efeito

setCombatParam(combat2, COMBAT_PARAM_EFFECT, 20) -> Segundo Efeito

setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -1.0, -500, -1.3, -680) -> Formula do Hit do segundo efeito

 

arr1 = {

{0, 1, 0},

{1, 3, 1},

{0, 1, 0}

}

 

arr2 = {

{1, 0, 1},

{0, 3, 0},

{1, 0, 1}

}

arr1 = Onde a spell vai se 'criar' o primeiro efeito

arr2 = onde a spell vai se 'criar' o segundo efeito

 

addEvent(onCastSpell1, 100, parameters)

addEvent(onCastSpell2, 100, parameters)

addEvent(onCastSpell1, 100, parameters) -> Quantos segundos apos a fala da magia ira criar o primeiro efeito

addEvent(onCastSpell2, 100, parameters) -> Quantos segundos apos a fala da magia ira criar o segundo efeito

Obs: 100= 1 segundo, 300= 3 segundos, 1000= 10 segundos

 

 

Spell De Cura:

Spoiler

#Corpo da Spell:

Spoiler

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)

setCombatParam(combat, COMBAT_PARAM_EFFECT, 36)

setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)

setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)

setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 11, 15)

 

function onCastSpell(cid, var)

return doCombat(cid, combat, var)

end

 

#Criando Sua Spell:

 

#Fazendo Sua Magia:

Spoiler

 

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)

Esse Sera o a spell ira fazer

 

setCombatParam(combat, COMBAT_PARAM_EFFECT, 36)

Esse sera o efeito dela

 

setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)

Aqui e que essa spell nao é agressiva, entao pode ser usada em protect zone

 

setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)

Essa magia vai curar paralyze

 

setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 11, 15)

Formula da magia, o quanto ela vai healar.

 

function onCastSpell(cid, var)

return doCombat(cid, combat, var)

end

Nao precisamos mecher.

 

 

Spell de Suport:

Spoiler

#Corpo da Spell:

#Correr:

Spoiler

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)

setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)

 

local condition = createConditionObject(CONDITION_HASTE)

setConditionParam(condition, CONDITION_PARAM_TICKS, 33000)

setConditionFormula(condition, 0.3, -24, 0.3, -24)

setCombatCondition(combat, condition)

 

function onCastSpell(cid, var)

return doCombat(cid, combat, var)

end

#Luz

Spoiler

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)

setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)

 

local condition = createConditionObject(CONDITION_LIGHT)

setConditionParam(condition, CONDITION_PARAM_LIGHT_LEVEL, 6)

setConditionParam(condition, CONDITION_PARAM_LIGHT_COLOR, 215)

setConditionParam(condition, CONDITION_PARAM_TICKS, (6 * 60 + 10) * 1000)

setCombatCondition(combat, condition)

 

function onCastSpell(cid, var)

return doCombat(cid, combat, var)

end

 

#Uma magia qualquer de trap

Spoiler

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_EFFECT, 2)

setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1497)

 

local arr = {

{0, 0, 0, 1, 0, 0 ,0},

{0, 0, 1, 1, 1, 0 ,0},

{0, 1, 0, 0, 0, 1 ,0},

{1, 0, 0, 2, 0, 0 ,1},

{0, 1, 0, 0, 0, 1 ,0},

{0, 0, 1, 1, 1, 0 ,0},

{0, 0, 0, 1, 0, 0 ,0}

}

 

 

local area = createCombatArea(arr)

setCombatArea(combat, area)

 

 

function onCastSpell(cid, var)

return doCombat(cid, combat, var)

end

 

#Contruindo a Spell

 

#Correr

Spoiler

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)

Efeito da Magia

 

setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)

Magia nao Agressiva, pode ser usada em Portect Zone

 

local condition = createConditionObject(CONDITION_HASTE)

Condição de Correr

 

setConditionParam(condition, CONDITION_PARAM_TICKS, 33000)

Tempo que vai durar, nesse caso 33 segundos

 

setConditionFormula(condition, 0.3, -24, 0.3, -24)

Formula da velocidade

 

setCombatCondition(combat, condition)

 

function onCastSpell(cid, var)

return doCombat(cid, combat, var)

end

Nao Mechemos aqui

 

#Luz:

Spoiler

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)

Efeito da Magia

 

setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)

Magia nao agressiva, para ser usada em protect zone

 

local condition = createConditionObject(CONDITION_LIGHT)

Condição de criar Luz

 

setConditionParam(condition, CONDITION_PARAM_LIGHT_LEVEL, 6)

Tamanho da Luz

 

setConditionParam(condition, CONDITION_PARAM_LIGHT_COLOR, 215)

Cor da Luz

 

setConditionParam(condition, CONDITION_PARAM_TICKS, (6 * 60 + 10) * 1000)

Tempo que vai durar

 

setCombatCondition(combat, condition)

 

function onCastSpell(cid, var)

return doCombat(cid, combat, var)

end

Nao Mechemos aqui

 

#Uma Magia qualquer de Trap:

 

Spoiler

setCombatParam(combat, COMBAT_PARAM_EFFECT, 2)

Efeito que soltara, nesse caso "poff"

 

local arr = {

{0, 0, 0, 1, 0, 0 ,0},

{0, 0, 1, 1, 1, 0 ,0},

{0, 1, 0, 0, 0, 1 ,0},

{1, 0, 0, 2, 0, 0 ,1},

{0, 1, 0, 0, 0, 1 ,0},

{0, 0, 1, 1, 1, 0 ,0},

{0, 0, 0, 1, 0, 0 ,0}

}

Local em que as magic wall serao criadas

 

local area = createCombatArea(arr)

setCombatArea(combat, area)

 

 

function onCastSpell(cid, var)

return doCombat(cid, combat, var)

end

Aqui nao mecheremos.

 

Bom é isso Pessoal.

Espero que tenham Gostado!

Obs: Quando eu tiver tempo, mostrarei todos os effects

Link para o comentário
Compartilhar em outros sites

#Reportado, local errado, correto seria Aprovação de Tutoriais.

 

 

@Topic

 

reprovado também, tópico mal formatado, falta melhorar um Pouco.

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...

amgio evite postar conteudo ja saturado no forum! pois muitos scripts iguais dificultam a busca por algo na sessao! fora o fato da mal formataçao e erros ortografico!

 

use codes ou quotes para melhoe intendimento do conteudo até!

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...