Criando Spells 7.92 E 8.0

Wallacy
em Tutoriais de Scripting
  • 1
  • 2

Wallacy

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 04/07/07Posts: 103

Esse tutorial é dedicado à todas as pessoas que têm net compartilhada e não podem usar o rapidshare. Esse tutorial é também um apelo para que parem de colocar todos os downloads com esse link. PORÉM, quero que todos saibam que, o que um programa pode fazer, um teclado também pode. --Registrado. Tutorial By Koti.--

 

Vou dividir o tutorial em seis partes: 1- Magias do tipo "UE" 2- Magias do tipo "Wave" 3- Magias do tipo "Heal" 4- Magias do tipo "Haste" 5- Magias de conjuração 6- Magias de "runa".

 

A parte 1 do tutorial vai ser usada como base para não alterar a estética do tópico e não ficar repitindo o que já foi dito anteriormente.

 

Começando

 

Um server padrão 8.0 contém em sua pasta "data" um arquivo chamado "global". Ele contém As animações que seu server pode ou não fazer. PORÉM, na maioria das vezes ele vem incompleto, limitando suas magias. Para acabar com esse problema é só adicionar os seguintes complementos em meio as tag "parecidas".

 

ATENÇÃO: Adicionar nas tags com o mesmo prefixo, quer dizer que o início da "tag", deve ser o mesmo, na coluna na qual você vai adicionar. Ex: CONST_ME ou CONST_ANI. O mesmo vale para qualquer magia. Ex: Se você tirou um CONST_ME, você terá que colocar no lugar outro CONST_ME.

CONST_ME_WATERCREATURE = 33

CONST_ME_GROUNDSHAKER = 34

CONST_ME_STUN = 31

CONST_ME_SLEEP = 32

 

CONST_ANI_ENCHANTEDSPEAR = 17

CONST_ANI_ASSASSINSTAR = 18

CONST_ANI_GREENSTAR = 19

CONST_ANI_ROYALSPEAR = 20

CONST_ANI_SNIPERARROW = 21

CONST_ANI_ONYXARROW = 22

CONST_ANI_PIERCINGBOLT = 23

CONST_ANI_WHIRLWINDSWORD = 24

CONST_ANI_WHIRLWINDAXE = 25

CONST_ANI_WHIRLWINDCLUB = 26

CONST_ANI_ENCHANTEDSPEAR = 27

CONST_ANI_WEAPONTYPE = 254

Uma vez feito isso vamos trabalhar:

 

Parte 1: Magias do tipo "UE"

 

1- A magia do tipo "UE" consiste em uma magia que não tem direção, e que pode ser bloqueada.

 

2- Pra começar, copie um arquivo de data>spells>scripts cole-o em qualquer local e renomei-o para um nome de sua escolha.

 

3- Pra facilitar a vida de todo mundo eu colocarei uma "fórmula" para fazer magias desse tipo, O que você deve fazer é só alterar algumas partes e sua magia vai estar pronta. (Só altere as partes coloridas)

Fórmula:

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_EXPLOSIONAREA)

setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -2.0, -150, -1.6, -150)

 

local condition = createConditionObject(CONDITION_FIRE)

setConditionParam(condition, CONDITION_PARAM_DELAYED, 2)

addDamageCondition(condition, 5, 2000, -35)

setCombatCondition(combat, condition)

 

arr = {

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

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

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

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

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

{1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1},

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

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

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

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

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

}

 

local area = createCombatArea(arr)

setCombatArea(combat, area)

 

function onCastSpell(cid, var)

return doCombat(cid, combat, var)

end

Vermelho: Essa é talvez a coisa que mais foi modificada do server 7.9 para os servers 7.92 e 8.0. Essa frase define não só o tipo da magia (físico..) como também a antiga "hiteffect" (a animação que ocorre quando algo é atingido).

Verde: Opcional.

Azul: A animação da área da magia.

Preto: Valor do dano da magia.

Marrom: Condição que o player vai ficar, nesse exemplo, o player vai ficar pegando fogo após ser atingido pela magia.

Roxo: A quantidade de dano. Nesse exemplo o player vai tomar "5" danos de "35" cada um (o traço "-" antes no valor do damage é necessário).

Rosa: Área da magia. "0": Representa uma área em que a magia não vai pegar. "1": Representa uma área em que a magia vai pegar. "3 ou 2": "3": Representa o centro da magia, onde o player vai estar, a magia vai passar embaixo do player mais não vai dar dano. "2": A magia não passa embaixo do player.

 

4- Agora no SPELLS.XML Coloque:

<instant name="Ultimate Explosion" words="exevo gran mas vis" lvl="60" maglv="3" mana="600" soul="0" exhaustion="1" prem="1" enabled="1" script="ultimate explosion.lua"><vocation id="1"/><vocation id="5"/><vocation id="9"/></instant>

Vermelho: Level necessário para usar a magia.

Azul: Magic level necessário para usar a magia.

Verde: Palavras necessárias para se usar a spell.

Marrom: Se é premium ou não. "1"= É premium. "0"= Não é premium.

Preto: O valor de Soul que a magia vai gastar.

Roxo: Qalquer um.

Laranja: Pode ser feito de duas maneiras: 1- Alterar apenas o valor de "mana". 2- Digitar ao invés de só: mana="600" digitar: manapercent="20" no lugar. Isso vai definir uma porcentagem de mana utilizada. Para definir a porcentagem é só alterar o valor em negrito.

Rosa: O nome do documento, escolhido anteriormente.

Cinza: Vocações que poderão usar a magia.

 

Pronto! Agora é só configurar do seu jeito e fazer a magia.

 

Parte 2: Magias do tipo "Wave"

 

1- Repita o passo 2 da parte um do tutorial.

 

2- "Fórmula":

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)

setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.7, -3, -1.1, 0)

 

local condition = createConditionObject(CONDITION_FIRE)

setConditionParam(condition, CONDITION_PARAM_DELAYED, 2)

addDamageCondition(condition, 5, 2000, -35)

setCombatCondition(combat, condition)

 

local arr = {

{1, 1, 1},

{1, 1, 1},

{1, 1, 1},

{0, 1, 0},

{0, 3, 0},

}

 

local area = createCombatArea(arr)

 

setCombatArea(combat, area)

 

function onCastSpell(cid, var)

return doCombat(cid, combat, var)

end

Cores: Têm o MESMO signoficado das cores da parte 1

 

3- No spells.xml coloque:

<instant name="Fire Wave" words="exevo flam hur" direction="1" lvl="18" maglv="3" mana="80" soul="0" exhaustion="1" prem="0" enabled="1" script="fire wave.lua"><vocation id="1"/><vocation id="5"/><vocation id="9"/></instant>

 

MUDANÇA!: ADICIONE ISSO NA TAG.

 

Cores: Têm o MESMO signoficado das cores da parte 1

 

4- Agora é só configurar do seu jeito.

 

Parte 3: Magias do tipo "Heal"

 

Existem 3 tipos de magia heal:

1: Heal Condition Ex: Exana pox

2: Heal Life Ex: Exura

3: Heal Area Ex: Exura gran mas res.

 

Eu vou ensinar os 3.

 

Heal Condition

 

1- Repita o passo 2 da parte um do tutorial.

 

2- Fórmula:

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)

setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)

setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_POISON)

 

function onCastSpell(cid, var)

return doCombat(cid, combat, var)

end

Vermelho: A animação que vai "aparecer" em você quando usar a magia.

Azul: A condição que ela deve curar.

 

3- No spells.xml:

<instant name="Antidote" words="exana pox" selftarget="1" aggressive="0" lvl="10" maglv="2" mana="30" soul="0" exhaustion="1" prem="0" enabled="1" script="antidote.lua"><vocation id="2"/><vocation id="1"/><vocation id="3"/></instant>

MUDANÇA!: ADICIONE ISSO NA TAG.

 

Cores: Têm o MESMO signoficado das cores da parte 1

 

4- Agora é só configurar a seu gosto.

 

Heal Life

 

1- Repita o passo 2 da parte um do tutorial.

 

2- "Fórmula":

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)

setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1)

setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)

setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)

 

function onGetFormulaValues(cid, level, maglevel)

min = (level * 2 + maglevel * 3) * 2

max = (level * 2 + maglevel * 3) * 2.8

 

return min, max

end

 

setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

 

function onCastSpell(cid, var)

return doCombat(cid, combat, var)

end

Preto: O quanto de vida aumenta.

Vermelho: Animação da cura.

Azul: Condição a ser curada quando usa spell. (Nesse caso é paralyze)

Verde: Opcional

 

3- No spells.xml, a tag dessa magia vai ser igual a tag anterior, você só deve alterar os valores.

 

4- Configure a magia do seu jeito.

 

Heal Area

 

1- Repita o passo 2 da parte um.

 

2- "Fórmula":

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)

setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)

setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1)

setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 0.6, -30, 1.2, 0)

 

local arr = {

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

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

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

{1, 1, 1, 3, 1, 1, 1},

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

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

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

}

 

local area = createCombatArea(arr)

setCombatArea(combat, area)

 

function onCastSpell(cid, var)

return doCombat(cid, combat, var)

end

Vermelho: Animação da magia.

Preto: O quanto a magia cura.

Azul: Área da magia.

 

3- No spells.xml:

<instant name="Mass Healing" words="exura gran mas res" aggressive="0" lvl="36" maglv="3" mana="150" soul="0" exhaustion="1" prem="1" enabled="1" script="mass healing.lua"><vocation id="2"/><vocation id="6"/><vocation id="10"/></instant>

 

Negrito: A ÚNICA coisa que deve ser adicionada na tag, o resto dela é igual ao da parte 1 do tutorial.

 

4- Agora é só configurar.

 

Parte 4: Magias do tipo "Haste"

 

Magias do tipo haste, pra você que não sabe o que é haste, pense em: "utani hur".

 

1- Repita o passo 2 da parte um do tutorial.

 

2- "Fórmula":

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_GREEN)

setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)

 

local condition = createConditionObject(CONDITION_HASTE)

setConditionParam(condition, CONDITION_PARAM_TICKS, 20000)

setConditionFormula(condition, 0.7, -56, 0.7, -56)

setCombatCondition(combat, condition)

 

function onCastSpell(cid, var)

return doCombat(cid, combat, var)

end

Vermelho: Animação da magia.

Verde: Tempo de haste

Azul: O quanto de velocidade aumenta.

 

3- No spells.xml:

<instant name="Strong Haste" words="utani gran hur" selftarget="1" aggressive="0" lvl="20" maglv="3" mana="100" soul="0" exhaustion="1" prem="1" enabled="1" script="strong haste.lua"><vocation id="2"/><vocation id="1"/><vocation id="6"/><vocation id="5"/><vocation id="9"/><vocation id="10"/></instant>

 

MUDANÇA!: ADICIONE ISSO NA TAG.

 

Cores: Têm o MESMO signoficado das cores da parte 1

 

4- Agora configure a seu gosto.

 

Parte 5: Magias de conjuração

 

Tem dois tipos de magia de conjuração:

1: Runas, Energy Staff, Enchanted Spear.

2: Munição.

 

Vou ensinar as duas.

 

Runas, Energy Staff, Enchanted Spear

 

1: Abra o spells.xml e crie uma linha como essa:

<conjure name="Light Magic Missile" words="adori" reagentId="2260" conjureId="2287" aggressive="0" conjureCount="1" maglv="3" mana="120" soul="0" prem="0" enabled="1" function="conjureRune"><vocation id="2"/><vocation id="1"/><vocation id="3"/><vocation id="11"/></conjure>

Vermelho: Nome da magia (qualeur um)

Azul: Palavras mágicas

Verde: O id do item que tem que estar na sua mão para se transformar em outro (nesse caso é a blank rune)

Marrom: O id do item que o id do reagente irá se tornar (nesse caso uma hmm)

Preto: Quantas cargas vai ter.

Cinza: Vocações

Roxo: O quanto de soul ela gasta.

Rosa: Magic level necessário.

Laranja: Mana

 

2- Configure e pronto! As magias de conjuração não têm script.

 

Munição

 

1: Abra o spells.xml e crie uma linha como essa:

<conjure name="Conjure Arrow" words="exevo con" conjureId="2544" conjureCount="100" aggressive="0" lvl="8" maglv="0" mana="100" soul="0" prem="0" enabled="1" function="conjureItem"><vocation id="3"/><vocation id="7"/><vocation id="11"/></conjure>

 

É idêntica a tag de cima. Só o que muda é a function e o conjure id, que nesse caso não tem reagent id.

 

2- Agora é só configurar.

 

Parte 6: Magias de "runa"

 

Existem dois tipos de magias de runas:

Focadas Ex: SD

De área Ex: Great fire ball.

 

Vou ensinar as duas:

 

Focadas

 

1- Repita o passo 2 da primeira parte do tutorial.

 

2- "fórmula":

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)

setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH)

setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.4, -50, -1.9, 0)

 

function onCastSpell(cid, var)

return doCombat(cid, combat, var)

end

Vermelho: Tipo de dano.

Azul: A animação que faz quando acerta o player. (só funciona em runas)

Verde: Animação do tiro. (ex: sd, fogo...)

Marrom: Dano.

 

3- No spells.xml:

<rune name="Sudden Death" id="2268" charges="1" needtarget="1" maglv="15" exhaustion="1" enabled="1" allowfaruse="1" script="sd.lua"></rune>

Verde: Nome da runa.

Vermelho: ID da runa.

Rosa: Nome do script.

Cinza: Número de cargas.

Laranja: Magic level necessário para se usar a runa.

Preto: Se precisa ser tacado em um alvo como uma criatura ou player, é por esse número que você não pode tacar sd no chão. "1"= Precisa. "0"= Não precisa.

 

4- Agora é só configurar.

 

De área

 

1- Repita o passo 2 da primeira parte do tutorial.

 

2- "fórmula":

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)

setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)

setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.2, -30, -0.4, 0)

 

local arr = {

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

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

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

{1, 1, 1, 3, 1, 1, 1},

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

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

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

}

 

local area = createCombatArea(arr)

setCombatArea(combat, area)

 

function onCastSpell(cid, var)

return doCombat(cid, combat, var)

end

Azul: Tipo de dano.

Verde: Efeito na área atingida.

Laranja: Animação do projétil. (nesse caso é uma bola de fogo)

Roxo: Dano causado.

Preto: Área afetada.

 

3- No spells.xml:

<rune name="Great Fireball" id="2304" charges="2" maglv="4" exhaustion="1" enabled="1" allowfaruse="1" script="gfb.lua"></rune>

 

Só o que muda é que não tem a tag do needtarget.

 

4- Agora basta configurar.

 

Bem pessoal, é só isso. Simples não?

Espero que façam grandes criações, Atenciosamente, Koti. (tempo para fazer o tópico: 4h e 22 min)

unled4g.gif

Dekooo

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 21/05/07Posts: 377Char no Tibia: Sirke Amere *( AsTeRa )*

Muito bom tuto velhow

pra qm eh iniciante nessa parte de spells :)~

assinatura bugada, vide sobre mim

lucasbro

Campeão 2º Concurso de Scripting
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 23/04/07Posts: 34
Marrom: Se é premium ou não. "1"= É premium. "2"= Não é premium.

 

Na verdade 1 = só para premiums, 0 = não premiums!

 

O resto etá muito bom, parabéns!

Dekooo

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 21/05/07Posts: 377Char no Tibia: Sirke Amere *( AsTeRa )*

lucasbro esta certo!

tente arrumar..

assinatura bugada, vide sobre mim

Wallacy

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 04/07/07Posts: 103
lucasbro esta certo!

tente arrumar..

 

Peço desculpas pelo erro, este já foi arrumado.

unled4g.gif

Darth Sidious

Em chamas...
avatar
Banidos
Banidos

INFOS

Grupo: BanidosRegistrado: 31/07/07Posts: 533Char no Tibia: Kninght'Danilo

Bom conteudo merece ser aprovado e parabéns Koti tutorial muito bem arrumado , bem explicado :-)


Xtibia 2006 ~ 2009!
Eu não to mais aguentando e a vida tá passando...





Quots :
QUOTE
17:24 Ulryx Shadowseeker [13]: eu acessava site pedofilo ~ Leo94
17:26 Next Shadowseeker [7]: SELL THAIS SWORD ~ Christian
'      Léo 1OO     diz:
ngm come minha xaninha
'      Léo 1OO     diz:
se nao tive
'      Léo 1OO     diz:
eu do meu cu

Shrimpzin

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 09/08/07Posts: 152

Uau.

 

 

Não tenho mais a falar

O mais perfeito dos tutoriais de spell qu já vi

Com cores, organizado, bem explicado, sem nenhum erro.

Resumindo: perfeito

Nota 1000 + fixo

...chamaram Osama bin Laden de Terrorista...



...só que morreu bem mais gente na bomba de Hiroshima...

 

 

28 tipos de cocô!

Usando o banco tibiano

capeta7

avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 22/04/06Posts: 238

rox cara

vc deve ter ficado 5hs fazendo esse tuto =D

acho que esse vai fixo, mto lgl me ajudo bastante xD

QUOTE
21:51 Gabriel Stoll [12]: aki é thais?
21:51 Gabriel Stoll [12]: ?
21:51 Gabriel Stoll [12]: ?
21:52 Djinn Middow [20]: n.. eh northport ^.-

-----------------
mithi_9@hotmail.com
-----------------
----> Bars <----

Aoria

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 01/06/07Posts: 123

Krakaaaa...

To sem palavras..

O único e melhor tutorial de spells q eu consegui entender direitinho...

Parabéns Bro.

Nota 10.

 

Abraço.

 

 

Atenciosamente, LancellotWillis.

luanfelipe

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 20/10/06Posts: 8

Pow kra valeu ae manu vlw mesmo me Ajudoo Muito :rolleyes::rolleyes::D:D Vlw velho flw ae Brigadaoooooooooo

lucasmlima

.:: XTibia 2008 ::.
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 07/07/07Posts: 70Char no Tibia: Esqueci oO

espestaaacular

 

 

 

 

nota 10,00

 

só q td ali funciona em 8.0 né?

RETIRED FROM XTIBIA




XTIBIA QUE SE ****

Jvchequer

"Veni, vidi, vici."
avatar
Lenda
Lenda

INFOS

Grupo: LendaRegistrado: 10/10/05Posts: 2161Char no Tibia: Master Chequer

Olá Xtibiano,

 

Parabéns, seu tutorial foi aprovado.

 

Estarei movendo ele para a área de tutoriais.

 

Obrigado por trazer conteúdo para o Xtibia.com e espero que continue com o ótimo trabalho.

 

 

Atenciosamente,

JV Chequer *Diretor de Fórum Xtibia.com*

1271330714-U1306.gif

 

~ Fiz parte da Equipe Xtibia em um tempo que Tibia era minha família. Saudades de todos vocês.

gonn_carrerinha

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 20/07/07Posts: 98Char no Tibia: Bloker Denn

mt bom mesm me ajudou bastant......

 

 

qual sera o próximo??

 

 

 

 

flws

 

atenciosamente gonn...

X TIBIA THE BEST





BARS:


Divizio

$
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 30/08/07Posts: 90

muito bom

Atenciosamente,
Divizio

Shoter Souls

Oi ^^
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 19/08/07Posts: 68

Muito bom ... ajudará mts q estão começando a mecher com otserver , e q querem aprender a fazer magias :D

Flw's..




  • 1
  • 2