[Tutorial] Criando Magias

Kimoszin
em Tutoriais de Scripting
  • 1
  • 2

Kimoszin

Aprendendo Script~
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 30/01/11Posts: 81

Introdão

Ao Motivo de fechar a minha "fabrica de spells" resolvi criar esse tutorial. Para os iniciantes aprederem sozinhos. Organizei em Spoiler os Tipos de Magia.

 

Spell De Attack:

 

 

#O Corpo da Spell:

 

#Simples: 1 Efeito

 

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

 

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

 

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.

tutorial1.png

 

 

#Fazendo Sua Magia: 2 Efeitos

 

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

tutorialw.png

 

 

 

Spell De Cura:

 

#Corpo da Spell:

 

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:

 

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.

tutorialrm.png

 

 

 

Spell de Suport:

 

#Corpo da Spell:

#Correr:

 

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

 

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

 

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

 

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:

 

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:

 

 

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

 

Abraços

Assinatura fora das regras.

Demonbholder

avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 13/10/08Posts: 1551Char no Tibia: Demonbholder

Legal cara, vai ajudar bastante o pessoal. Bem explicado, tópico formatado, se coubesse a mim a decisão, o tópico seria aprovado.

 

Até mais.

Oie :D

Kimoszin

Aprendendo Script~
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 30/01/11Posts: 81

Vlw Cara (:

 

So quero ver se vai ser aprovado.

 

Abraços

Assinatura fora das regras.

fsg

Felipe Sartori
avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 16/05/10Posts: 1510Char no Tibia: Alia Dori

Tutorial aprovado e movido!

Guarani da minha vida, a razão do meu viver, se ele jogasse lá no céu eu morreria só pra te ver! 1911 - 2015 ♥ 

Kimoszin

Aprendendo Script~
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 30/01/11Posts: 81

Vlw FezZinN!

Fico feliz por ter ajudado.

 

Abraços

Assinatura fora das regras.

champzika

PhoenixxX
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 10/04/11Posts: 35Char no Tibia: Wlizky

Tenho , uma duvida é quando o effects seria tipo esses :

 

setCombatParam(combat1, COMBAT_PARAM_EFFECT, 44)

setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, 11)

 

tipo é 2combat ai , seria como ? poderia da um exemplo ?


to57.png

bejim do ombro pra inveja passa longe !

 

 

@vtSHOWWW

niverton14

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 15/04/11Posts: 1Char no Tibia: nivertondoidao

ae desculpa so novato no xtibia se poderia me dizer onde eu posso fazer minhas perguntas MINHAS DUVIDAS

Kimoszin

Aprendendo Script~
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 30/01/11Posts: 81

Tenho , uma duvida é quando o effects seria tipo esses :

 

setCombatParam(combat1, COMBAT_PARAM_EFFECT, 44)

setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, 11)

 

tipo é 2combat ai , seria como ? poderia da um exemplo ?

 

Como assim cara?

Nao entendi sua duvida

 

ae desculpa so novato no xtibia se poderia me dizer onde eu posso fazer minhas perguntas MINHAS DUVIDAS

 

Depende Cara, vc pode pedir duvida nesses topicos:

Dúvidas sobre Scripts

Dúvidas sobre Mapping

Dúvidas sobre OT Servidores

Dúvidas sobre Websites

Dúvidas de programação

 

So escolher a area que vc tenha duvida, faça um topico com a duvida e espere um membro responder.

Abraços

 

 

Assinatura fora das regras.

Folspa

Eterno Lamecho
avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 16/08/10Posts: 1668Char no Tibia: Firimud Vivizenade

Tenho algumas dúvidas sobre a magia de luz:

 

Eu quero fazer um efeito grande, que se espalhe em cascata, em várias direções, o que eu altero no script?

sebast11.png

champzika

PhoenixxX
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 10/04/11Posts: 35Char no Tibia: Wlizky

Ex : Tpw , eu coloquei esses effects , em uma magia ai ela nao funcionava =/

queria , que você desse um exemplo de uma magia com 2 effects diferente .


to57.png

bejim do ombro pra inveja passa longe !

 

 

@vtSHOWWW

XJhoow

XJhoow
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 15/02/10Posts: 92Char no Tibia: Jhoow Stonyz

Brother, desculpa ai, seu tutorial está ótimo, quando digo ótimo é ótimo mesmo!

Mas , não achas que já tem 1 milhão de tutoriais sobre isso?

Não é querer ser chato, mas pá..

Valeu, obrigado a dedicação a fazer esse tuto..

 

Só minha opnião..

Abraços!

Colaborando com o XTibia!

xjpedido.png

 

Amigos inXTibia - Kaonic, Alissow, Moskitinho,Styre

e-mail: jhonatancw.inf@hotmail.com

Lucamarins

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 15/08/10Posts: 4

Cara,comecei a mexer hoje nesse negócio de server, otserver. então eu não entendi NADA o_O'. mas pelos comentários,deve ser uma coisa bem simples que eu , retardado,não entendi.

 

Abraços :D :XTibia_smile:

10 coisas que eu sei de você:

1.Você está lendo isso.

2.Você está no xtibia.

4.Você não percebeu que eu pulei o 3.

5.Você está conferindo.

7.Você não percebeu que eu pulei para o 7.

8.Você está conferindo.

9.Você está olhando para minha assinatura.

10.Você está rindo.

DiogoTemporario

Ex Bom Usuário
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 05/05/09Posts: 1231

deu até vontade de baixar um ot pra brincar de fazer spell, npc e monster denovo

pior é que to acostumado com o xml do 7.6, vou dar umas lidas nuns tutoriais aí

diiiiiiii

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 13/05/11Posts: 3

Não consegui ;x

Tipo, depois de tudo que é feito aí, não tem que levar algo pro spells.xml , e fazer algo tipo :

 

<instant name="Death Strike" words="exori mort" lvl="16" mana="20" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="attack/death strike.lua">

<vocation id="1"/>

<vocation id="2"/>

<vocation id="5"/>

<vocation id="6"/>

</instant>

 

onde você escolhe as palavas a serem ditas pra fazer a magia, e o nome da magia? Ou é só fazer o que você mostrou , salvar e pronto? Se for isso, não consegui mesmo.

 

 

Luansousa

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 04/09/11Posts: 11Char no Tibia: Hene Rene

bom trabalho Rep++

2862e94508cf431cb83628d4de822393.0.gif

  • 1
  • 2