Você poderia postar sobre como colocar magias com danos exatos. mínimo e máximo de dano :x
- Fórum
- OTServ
- Tutoriais
- Tutoriais de Scripting
- [Tutorial] Spells
5
4k
info
Grupo: Cavaleiro
Registrado: 30/09/08
Posts: 174
Reputação: +60
Char no Tibia: Knight do Momento

10 de julho de 2011 às 08:15
info
Grupo: Campones
Registrado: 11/05/10
Posts: 28
Reputação: +11
Char no Tibia: Deadlock

10 de julho de 2011 às 12:03
Minimo e maximo fica muito ruim no momento que voce
decidi a formula
nesse exemplo a partir do momento que alguem almentar 0.1 em um dos dois
vai almentar em media 50 de dano
info
Grupo: Cavaleiro
Registrado: 30/09/08
Posts: 174
Reputação: +60
Char no Tibia: Knight do Momento

10 de julho de 2011 às 16:24
Sim mas seria bom apresentar e mostrar como funciona já que seu tutorial é sobre spells deveria mostra tudo que relacione a ela.
3 meses depois...
info
Grupo: Herói
Registrado: 22/04/11
Posts: 2.5k
Reputação: +293
Gênero: Masculino
Char no Tibia: Thyn Zare

12 de outubro de 2011 às 22:15
Aprovado, Parabéns, Continue Assim!
Movido para a Seção Correta!



info
Grupo: Campones
Registrado: 11/05/10
Posts: 28
Reputação: +11
Char no Tibia: Deadlock
Bom. muitos tem duvidas no fato de como almentar o dano mudar os efeitos a area e tudo mais sobre as magias entao vou explica-las.
Crie Um Bloco de Notas Com O Nome DE "exemplo" Sem Aspas
Nesse Tutorial Usaremos o Seguinte Script, sendo uma magia de ataque em area que podera sempre ser usada como base.
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE,COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT,CONST_ME_FIREAREA)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -2.0, 0, -1.0, 0)
arr = {
{0, 0, 0, 0, 0, 0, 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, 1, 1, 0, 0, 0},
{0, 0, 0, 1, 2, 1, 0, 0, 0},
{0, 0, 0, 1, 1, 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}
}
local area = createCombatArea(arr)
setCombatArea(combat, area)
function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end
-Damage Type-
Nesse Script temos como Damage o formato COMBAT_PHYSICALDAMAGE que pode ser trocado por qualquer um desses:
-Efeito-
Temos como efeito CONST_ME_FIREAREA que pode ser trocado por qualquer um desses:
-Formula-
A Formula desta magia é COMBAT_FORMULA_LEVELMAGIC, -2.0, 0, -1.0, 0 Ou Seja o Dano Dela ira variar do seu Level e de Seu Magic Level.(Aconselho sempre Usar FORMULA_LEVELMAGIC. e Alterar Somente no 2.0 e no 1.0 nunca mudar os que estao somente 0)Vamos usar como exemplo que -2.0, seria o level e -1.0 o magic level ou seja a magia ira Hitar muito mais quando o player upar 1 Level do que quando upar 1 Magic Level,Porem se fosse mudado para -0.8 e 1.0 Se o Player Almentasse 1 magic level iria hitar mais do que se upasse 1 Level.
PS:É aconselhavel sempre que mexer na formula testar a magia para verificar o Damage.
-Area-
Neste Caso a Area Vai Ser 8 Quadrados exatos em volta do player.
o Numero 2 Representa a posição do Player.
O numero 1 Representara onde a magia ira acertar
O Numero 0 Será somente espaço onde você pode colocar o Numero 1
arr = {
{0, 0, 0, 0, 0, 0, 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, 1, 1, 0, 0, 0},
{0, 0, 0, 1, 2, 1, 0, 0, 0},
{0, 0, 0, 1, 1, 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}
}
-Spells.xml-
<instant group="attack" spellid="137" name="NOME DA MAGIA" words="OQUE O PLAYER DIGITARA PARA MANDAR A MAGIA" lvl="30" mana="45" selftarget="1" prem="1" cooldown="4000" groupcooldown="2000" needlearn="0" script="attack/exemplo.lua">
<vocation name="Sorcerer"/>
<vocation name="Master Sorcerer"/>
</instant>
Grat'Z DeadLock