DE

As Benditas Spells "mistas"

Por DeadKennedy, 05 de nov. de 2007 em Tutoriais de Scripting

otserv
tibia
script
14
3.2k
DeadKennedyD
05 de novembro de 2007 às 18:32

INTRODUÇÃO:

Vi que muitas pessoas adoram quelas spells que tem um milhão de efeitos,

ou quem sabe, um só efeito em diversas "camadas".

Vou logo avisando, eu não sou profissional, mas me esforço bastante.

 

O TUTORIAL:

Este tutorial não será um passo a passo, e sim uma "aulinha".

 

Aqui está o script que eu vou esplicando aos poucos:

 

Entendao uma coisa: é a mesma coisa que juntar 3 spells numa só!

 

-- Exori gran bem loko By KingCPI

local combat1 = createCombatObject()

setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)

setCombatFormula(combat1, COMBAT_FORMULA_SKILL, 0, 0, 1.7, 0)

 

local combat2 = createCombatObject()

setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)

setCombatFormula(combat2, COMBAT_FORMULA_SKILL, 0, 0, 1.7, 0)

 

local combat3 = createCombatObject()

setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combat3, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)

setCombatFormula(combat3, COMBAT_FORMULA_SKILL, 0, 0, 1.7, 0)

 

local arr1 = {

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

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

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

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

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

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

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

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

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

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

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

}

local arr2 = {

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

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

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

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

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

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

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

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

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

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

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

}

local arr3 = {

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

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

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

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

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

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

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

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

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

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

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

}

 

local area1 = createCombatArea(arr1)

local area2 = createCombatArea(arr2)

local area3 = createCombatArea(arr3)

 

setCombatArea(combat1, area1)

setCombatArea(combat2, area2)

setCombatArea(combat3, area3)

 

local function onCastSpell1(parameters)

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

end

 

local function onCastSpell2(parameters)

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

end

 

local function onCastSpell3(parameters)

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

end

 

function onCastSpell(cid, var)

local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2,combat3 = combat3 }

addEvent(onCastSpell1, 100, parameters)

addEvent(onCastSpell2, 200, parameters)

addEvent(onCastSpell3, 300, parameters)

end

 

ESPLICANDO:

 

------------------------------------------------------------------------------

MARRON

local combat1 = createCombatObject()

setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)

setCombatFormula(combat1, COMBAT_FORMULA_SKILL, 0, 0, 1.7, 0)

 

Nesta parte é muito parecida com uma spell normal, você escolhe o tipo de ataque, a formua, o efeito e etc.

Se quiser usar mais de um efeito, sinta-se avontade ;)

 

O que muda é que ela se repete de acordo com a quantidade de efeitos que a spell terá, mesmo se for o mesmo efeito eu

aconselho a repetir isso.

Exemplo: uma spell tem 3 efeitos(como a do exemplo), essa parte se repete as 3 veses.

 

ATENÇÃO: Caso tenha mais de um lembre-se de mudar "combat1" para "combat2", e assim por diante, em cada cópia dessa tabela, igual o script de exemplo.

------------------------------------------------------------------------------

 

------------------------------------------------------------------------------

LARANJADO

local arr1 = {

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

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

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

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

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

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

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

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

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

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

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

}

 

Esta parte diz a area que será atingida pelo efeito nº 1("combat1").

Faça quantas areas precisar, de acordo com o nº de efeitos, no caso aqui 3.

Assim como na parte MARRON, mude "arr1"

para "arr2", e assim por diante.

------------------------------------------------------------------------------

 

------------------------------------------------------------------------------

VERDE

local area1 = createCombatArea(arr1)

 

Serei sincero, não sei pra que isso serve :withstupidsmiley:

Sei de uma coisa: você deve repetir isso de acordo com a quantidade de efeitos...

mudando como sempre o nº 1, exemplo:

"area1" troca por "area2"

e

(arr1) troca por (arr2)

e assim por diante...

------------------------------------------------------------------------------

 

------------------------------------------------------------------------------

VERMELHO

setCombatArea(combat1, area1)

Mais uma vez eu não o que isso faz, porém eu imagino que é o que junta a area de ataque, e o efeito.

Sabe como é né??? Repete isso, mudando os nºs. Agora vou dar um exemplo mais detalhado:

Se o script tiver 5 efeitos

setCombatArea(combat1, area1)

setCombatArea(combat2, area2)

setCombatArea(combat3, area3)

setCombatArea(combat4, area4)

setCombatArea(combat5, area5)

Isso vale pras "cores" acima.

------------------------------------------------------------------------------

 

------------------------------------------------------------------------------

ROSA

local function onCastSpell1(parameters)

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

end

 

Não sei o que faz também, sei que sem isso a spell não funciona né...

Faça como nas "cores" anteriores... Copie a quantidade de veses equivalente a quantidade de efeitos,

substituindo os deguintes valores:

onCastSpell1

e

parameters.combat1

------------------------------------------------------------------------------

 

------------------------------------------------------------------------------

AMARELO

combat1 = combat1

Isso eu não sei também pra que serve, penso que é pros combats não perderem valor, nos efeitos seguintes.

Como sempre, copie isso, substituindo os nºs como feito no script, porém nessa cópia tem uma diferença:

Cole tudo antes de }

Exemplo de script com 5 efeitos:

{ cid = cid, var = var,combat1 = combat1, combat2 = combat2,combat3 = combat3 ,combat4 = combat4,combat5 = combat5 }

 

ANTENÇÃO: lembre-se de deixar um espaço entre o ultimo caractere e "}".

------------------------------------------------------------------------------

 

------------------------------------------------------------------------------

addEvent(onCastSpell1, 100, parameters)

 

Essa parte é divertida de editar e testar... ela faz o tempo de um efeito:

Quando você fala a magia, acontece várias coisas em tempos diferentes, é isso que determina o tempo.

 

O nº 100, é o tempo entre um efeito e otro.

 

Faça tudo igual aos outras cores: Copie, e substitua os nºs.

Exemplo de script com 5 efeitos

addEvent(onCastSpell1, 100, parameters)

addEvent(onCastSpell2, 200, parameters)

addEvent(onCastSpell3, 300, parameters)

addEvent(onCastSpell4, 400, parameters)

addEvent(onCastSpell5, 500, parameters)

 

Espero que gostem e aproveitem!

 

Bye

Editado Novembro 5 por KingCPI

42912264
05 de novembro de 2007 às 19:02

Faltou falar do Effect Secundario :)

 

 

//Aprovado//

 

 

Lord Lolzao.

DeadKennedyD
05 de novembro de 2007 às 22:43

Querido Lord lolzao:

 

Quando você postou, eu não tinha terminado o tutorial, mas mesmo assim já tinha:

Se quiser usar mais de um efeito, sinta-se avontade ;)

 

Mais de um efeito segnifica não só "effect secundário", mas "terceário" e etc...

 

Grato pelo pelomentária ;)

 

Bye

rookroxzR
06 de novembro de 2007 às 11:41

essas magias apavoram...

 

Li o tutorial e consegui criar uma pro meu ot,muito show!

 

Parabens pelo Tutorial,me ajudou muito concerteza.

 

-Aprovado-

LordfireL
10 de novembro de 2007 às 14:50

@KingCPI

Não existe terciário

Primeiro é primário, segundo é secundário, terceiro é secundário, quarto também

 

Haha, gostei :~

11 de novembro de 2007 às 22:43

Parabens

Otimo Tutorial

 

Abraços....

FerrysF
11 de novembro de 2007 às 23:11

muito bom king

 

aprovado

3 semanas depois...
AddictA
26 de novembro de 2007 às 15:36

Aprovado,

Movido para seção correta.

CleytinC
01 de dezembro de 2007 às 10:30

Valeu me ajudou muito...

 

Mas, tem como fazer isso pelo OTScript Live? Se tem, como faz?

 

Aguardo Resposta.

3 semanas depois...
MarcolinoGODM
18 de dezembro de 2007 às 14:43

Muito Legal essas magias... :bigsmile:

Porem eu não gosto muito dela

por causarem lag e um exemplo um cara vem e solta

uma magia mista com intevalos de tempo e o cara que ta tomando hit

resolve andar envolta de quem esta atacando; :rolleyes:

e o pobre coitado faz ser totalmente espancado por

uma unica magia randomica! :nuts:

 

Até mais... :hi:

DeadKennedyD
19 de dezembro de 2007 às 16:35

Valew galera!

 

@Cleytin

Po, vc ateh podes tentar fazer 3 spells e ir mudando as referencias só...

masfica feio :S

É memhlro faze na mão mesmo :D

 

Ateh +

AquacA
20 de dezembro de 2007 às 15:08

eu fiz essa magia no meu ot....mais fiz usando 5 areas e segui essas exemplos mais nao funciono....axo q tou errando em alguma parte pode me ajuda?

 

me add no msn:

tatianny_f_18@hotmail.com

2 meses depois...
lekmatL
02 de fevereiro de 2008 às 21:31

Issu me ajudo mto konsiguimos o hit dual por kausa dissu xD

5 meses depois...
FLuzXF
28 de julho de 2008 às 13:38

Pelo Post Ajudo mtu GENTE! Principalmente "EU" xP

 

So Seria Melhor c Vc Tira-c Akele Amarelo! Veh nada xP!

 

:positive: Bom PosT! :positive: