Parabéns pela tradução do tutorial, deixe o tópico mais bonito para facilitar ao usuário.
A BlackOnix usava muito isso, mas agora, nosso sistema avançado de magias faz muito mais ![]()
info
Grupo: Visconde
Registrado: 10/06/06
Posts: 338
Reputação: +6
Char no Tibia: Setyte Berseker

Parabéns pela tradução do tutorial, deixe o tópico mais bonito para facilitar ao usuário.
A BlackOnix usava muito isso, mas agora, nosso sistema avançado de magias faz muito mais ![]()
Hmmm... Tradução?
Parabéns! ![]()
belo tutorial
Valeu.
info
Grupo: Visconde
Registrado: 19/06/07
Posts: 267
Reputação: +1
Gênero: Masculino
Char no Tibia: Rambocop Infernus

@Xiaoxu
Otimo tutorial mas só
ta faltando mas cor e vida! ![]()
@Nostradamus
A equipe BlackOnix esta de parabens
e cada vez vem inovando mais e mais... ![]()
Obrigado Albert José, infelizmente eu estava sem paciência, verdade seja dita.
Faltou mais cor, pra dar uma melhor explicação.
Se a pessoa ler sem prestar atenção, não entende.
Por exemplo.
[color="#0000FF"]Palavra1[/color] [color="#FF0000"]Palavra2[/color]
Significa Isso...
Signifika Akilo
Assim, facilita o entendimento.
Mas o conteúdo está ótimo, parabéns.
Creio que irá ajudar muitos iniciantes.
Abraço.
Obrigado.
otimo tutorial msmo ;]
eh pra que versao ?
e se eu quizer fazer uma magia tpw
:
:
:
:
: = fire
: = poison
: = energy
: = sd ^.-
tpw um exevo vis lux... soh que com "magias mistas"
\/ says : Exevo vis flam pox death hur.
0
/|\
:
:
:
:
.|
/ \
-----------
acho q deu pra entende o q eu quero fazer neh ?!?!? asehasheuiahse
Editado Setembro 6 por capeta7
info
Grupo: Campones
Registrado: 20/07/07
Posts: 98
Reputação: 0
Char no Tibia: Bloker Denn

HAHA CAPETA,, mt bem explikdo mlk
pra q versão q eh tbm gostaria d usar
zuo né capeta ashaushuahsuahsuahsusha
flws
meu topic n° 100
flws
É para versão 8.0, não testei com outras versões.
@capeta7 Bom, você teria que criar quatro áreas, com um quadrado cada, consecutivos em linha reta a partir do 2(que seria a posição do player que usa a magia). Cada uma das áreas deveria ter o seu respectivo efeito definido no começo da magia e o tempo de execução de cada uma das partes seria igual a 0.
Muito bom, mas, tem como fazer por ex, uma parte da magia como fire e outra como poison?
@gmcp Claro, é só definir na parte inicial onde ficam as fórmulas de dano.
Valeu.
Valeu ?
Creio que não é necessario ficar agradecendo.
@Post.
Parabéns ai gostei muito da pra ter uma ideia e por tal fazer divesas outras magias.
Vou fazer um Teste aqui qualquer dúvida em edito.
Editado Setembro 7 por Mister's
info
Grupo: Campones
Registrado: 16/11/05
Posts: 13
Reputação: 0
Olá a todos! Estou aqui para tentar mostrar como se faz uma magia "mista", com vários efeitos e etc...
Para começar abra a pasta spells\scripts e crie um novo arquivo .lua(ou copie um e apague tudo de dentro).
Vamos dar uma olhada nessa spell já pronta.
local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_EXPLOSIONAREA) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, 2.0, -150, 1.6, -150) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, 2.0, -150, 1.6, -150) local combat3 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat3, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, 2.0, -150, 1.6, -150) local combat4 = createCombatObject() setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat4, COMBAT_PARAM_EFFECT, CONST_ME_POISONAREA) setCombatFormula(combat4, COMBAT_FORMULA_LEVELMAGIC, 2.0, -150, 1.6, -150) local combat5 = createCombatObject() setCombatParam(combat5, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat5, COMBAT_PARAM_EFFECT, CONST_ME_WHIRLWIND) setCombatFormula(combat5, COMBAT_FORMULA_LEVELMAGIC, 2.0, -150, 1.6, -150) arr1 = { {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, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0}, {0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } arr2 = { {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, 1, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 1, 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, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } 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, 2, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 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}, } arr4 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 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, 1, 1, 1, 1, 0}, {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 1, 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}, } arr5 = { {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) local area3 = createCombatArea(arr3) local area4 = createCombatArea(arr4) local area5 = createCombatArea(arr5) setCombatArea(combat1, area1) setCombatArea(combat2, area2) setCombatArea(combat3, area3) setCombatArea(combat4, area4) setCombatArea(combat5, area5) 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 local function onCastSpell4(parameters) doCombat(parameters.cid, parameters.combat4, parameters.var) end local function onCastSpell5(parameters) doCombat(parameters.cid, parameters.combat5, parameters.var) end function onCastSpell(cid, var) local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3, combat4 = combat4, combat5 = combat5 } addEvent(onCastSpell1, 0, parameters) addEvent(onCastSpell2, 0, parameters) addEvent(onCastSpell3, 0, parameters) addEvent(onCastSpell4, 0, parameters) addEvent(onCastSpell5, 0, parameters) endCada um dos
é o tipo de dano(aqui no caso fisico), efeito visual(aqui no caso explosão) e cálculo de dano de cada uma das partes da magia(aqui no caso por ML).
As partes como
arr1 = { {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, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0}, {0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, }são as áreas de cada parte da magia(cada número de area corresponde ao mesmo número nas linhas de tipo de dano, etc...
Esta parte
function onCastSpell(cid, var) local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3, combat4 = combat4, combat5 = combat5 } addEvent(onCastSpell1, 0, parameters) addEvent(onCastSpell2, 0, parameters) addEvent(onCastSpell3, 0, parameters) addEvent(onCastSpell4, 0, parameters) addEvent(onCastSpell5, 0, parameters)corresponde ao tempo de execução de cada uma das partes da magia(aqui todos estão 0, a magia inteira é executada instantaneamente) em milissegundos a partir do momento em que o player pronuncia as palavras. Claro, cada um dos "addEvent(onCastSpellx, x, parameters)" corresponde ao tempo de execução de cada uma das partes da magia.
Esse exemplo é uma espécie de UE com 5 efeitos diferentes, um central e quatro nas diagonais. Você pode editar cada um dos tempos, efeitos, cálculo de dano, áreas para que a magia possa ser executada de inúmeras maneiras diferentes. Pode-se botar áreas iguais, com tempos e efeitos diferentes, para que elas se sobreponham uma atrás da outra, dando vários hits. Sintam-se livres para usar o meu exemplo de qualquer maneira que achem útil. Exijo apenas créditos se forem postar em algum lugar.
Espero ter ajudado, dúvidas por favor postem.
Créditos para mim e para um usuário de outro fórum, que criou uma UE progressiva que me inspirou o tutorial.
Editado Setembro 11 por Xiaoxu