Bom, vejo que muitas pessoas querem adicionar uma sprite wand e não consegue, ou querer fazer uma varinha nova pra druida ou mago, então vim até aqui e postei sobre o assunto, xD, ae vai.
ANTES DE TUDO!!! Só funciona com versão 7.81 ou maior se eu não me engano, porque versão 7.6 não tem a pasta \data\weapons que vai ser usado pra funcionar a varinha.
EXPLIQUEI BEM CERTINHO
Pra começar, entre no teu ot, pegue um id de uma varinha ou até mesmo arma(se é que você quer transforma-lá em varinha).
Dentro da pasta do seu ot, entre na pasta \data\weapons\scirpts e crie um arquivo .lua
Exemplo: Sprite wand.lua
Vamos usar o exemplo da flecha de fogo.
Então adicione esses códigos no arquivo criado:
local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_EXPLOSIONAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.3, 0, -0.6, 0) local area = createCombatArea( { {1, 1, 1}, {1, 3, 1}, {1, 1, 1} } ) setCombatArea(combat, area) function onUseWeapon(cid, var) return doCombat(cid, combat, var) end
Legendas:
setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1)
Defesa de armadura...Por exemplo, quando a varinha acertar um jogador/monstro, quanto maior a defesa do jogador/monstro menos dano a varinha causa(OBS: só funciona se tiver o número 1 depois do COMBAT_PARAM_BLOCKARMOR e se os dois stiverem separados por vírgula).
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
Esse é o tipo do dano que a varinha vai causar, no caso foi usado COMBAT_PHYSICALDAMAGE que significa mesma coisa que dano físico(sd, explosion, UE, exori), ou seja, acerta em todos os bichos menos em fantasma (que é imune a dano físico).
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_EXPLOSIONAREA)
Efeito da varinha ao tocar em um jogador/monstro a Wand of inferno por exemplo usa o CONST_ME_FIREAREA que é o code que faz um foguinho no alvo , no caso ele ta usando CONST_ME_EXPLOSIONAREA que é area de explosão, igual explosion, bem parecido com wand of inferno mas é diferente...
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
Esse é o efeito que a vairnha faz antes de chegar no jogador/monstro. No caso ela vai até o jogador/monstro com um formato como se fosse uma bola de fogo, lol.
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.3, 0, -0.6, 0)
Essa é a fórmula do dano causado pela varinha, eu não sei calcular muito bem isso, é mais ou menos assim:
O -0.3 mostrado na fórmula é o dano mínimo da varinha, e ele é multiplicado 10x e depois é multiplicado denovo junto com o magic level do player,
Exemplo de um player com magic level 40 usando magia com -0.5 na fórmula:
0.5x10 = 5
5x40 = 200
Então se a fórmula for -0.5 e o magic level do player for 40 ele vai causar 200 de dano(não é certeza, a fórmula é mais ou menos essa...).
ja o -0.6 usado na fórmula é o máximo que ele pode causar, e usa a mesma fórmula anterior(multiplica ele por 10x e multiplica com o magic level do player)
E os dois zeros que estão ali não usam fórmulas, eles são: mínimo e máximo.
Exemplo:
Se a fórmula estiver assim:
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 0, -50, 0, -150)
Ele vai causar um número entre 50 e 150(Exemplos:75, 90, 120, 140) no jogador/monstro.
Agora vamos para o penúltimo code:
local area = createCombatArea( { {1, 1, 1}, {1, 3, 1}, {1, 1, 1} } ) setCombatArea(combat, area)
Essa é a área afetada pela varinha(no caso esse é da flecha de fogo), como pode-se observar, ela tem 3 tipos de números, eles são:
0: não faz efeito da explosão(não apareçe ali porque a flecha de fogo usa toda área
1: área afetada pela magia
2: não sei
3: centro(aonde a magia vai fazer o efeito, não coloque o número 3 la no canto por exemplo que vai ficar tudo torta a magia .
De preferência se você for por área faça assim:
local area = createCombatArea ( { {1, 1, 1}, {1, 3, 1}, {1, 1, 1} } ) setCombatArea(combat, area)
Quer aumentar e não sabe? só você adicionar zeros e vírgulas.
Veja:
local area = createCombatArea ( { {1, 1, 1, 1, 1}, {1, 1, 1, 1, 1}, {1, 1, 3, 1, 1}, {1, 1, 1, 1, 1}, {1, 1, 1, 1, 1} } ) setCombatArea(combat, area)
Depois que terminar coloque como estava antes, tudo na mesma linha(igual aqui: ( { {1, 1, 1}, {1, 3, 1}, {1, 1, 1} } ))
Nossa, que sofrimento pra faze
Tem mais uma parte
A parte em que você adiciona a varinha (não é fácil mas vale a pena xD Aquela parte era apenas os efeitos que a varinha vai produzir...)
Va na pasta do teu ot e entre na pasta \data\weapons e abra o arquivo weapons.xml.
La dentro vai aparecer mais ou menos assim:
<?xml version="1.0"?> <weapons> ----------------- Sorcerer Wands ----------------- <wand id="2190" lvl="7" range="6" mana="2" enabled="1" script="wand of vortex.lua"><vocation name="Sorcerer"/><vocation name="Master Sorcerer"/><vocation name="Supreme Sorcerer"/></wand> <wand id="2191" lvl="14" range="5" mana="3" enabled="1" script="wand of dragonbreath.lua"><vocation name="Sorcerer"/><vocation name="Master Sorcerer"/><vocation name="Supreme Sorcerer"/></wand> <wand id="2188" lvl="21" range="4" mana="6" enabled="1" script="wand of plague.lua"><vocation name="Sorcerer"/><vocation name="Master Sorcerer"/><vocation name="Supreme Sorcerer"/></wand> <wand id="2189" lvl="28" range="3" mana="10" enabled="1" script="wand of cosmic energy.lua"><vocation name="Sorcerer"/><vocation name="Master Sorcerer"/><vocation name="Supreme Sorcerer"/></wand> <wand id="2187" lvl="35" range="2" mana="15" enabled="1" script="wand of inferno.lua"><vocation name="Sorcerer"/><vocation name="Master Sorcerer"/><vocation name="Supreme Sorcerer"/></wand> ------------------- Druid Rods ------------------- <wand id="2182" lvl="7" range="6" mana="2" enabled="1" script="snakebite rod.lua"><vocation name="Druid"/><vocation name="Elder Druid"/><vocation name="Druid of Wrath"/></wand> <wand id="2186" lvl="14" range="5" mana="3" enabled="1" script="moonlight rod.lua"><vocation name="Druid"/><vocation name="Elder Druid"/><vocation name="Druid of Wrath"/></wand> <wand id="2185" lvl="21" range="4" mana="6" enabled="1" script="volcanic rod.lua"><vocation name="Druid"/><vocation name="Elder Druid"/><vocation name="Druid of Wrath"/></wand> <wand id="2181" lvl="28" range="3" mana="10" enabled="1" script="quagmire rod.lua"><vocation name="Druid"/><vocation name="Elder Druid"/><vocation name="Druid of Wrath"/></wand> <wand id="2183" lvl="35" range="2" mana="15" enabled="1" script="tempest rod.lua"><vocation name="Druid"/><vocation name="Elder Druid"/><vocation name="Druid of Wrath"/></wand> <wand id="2453" lvl="50" range="3" mana="25" enabled="1" script="sprite wand.lua"><vocation name="Druid"/><vocation name="Elder Druid"/><vocation name="Druid of Wrath"/><vocation name="Sorcerer"/><vocation name="Master Sorcerer"/><vocation name="Supreme Sorcerer"/></wand> <wand id="2433" lvl="100" range="5" mana="50" enabled="1" script="es.lua"><vocation name="Druid"/><vocation name="Elder Druid"/><vocation name="Druid of Wrath"/><vocation name="Sorcerer"/><vocation name="Master Sorcerer"/><vocation name="Supreme Sorcerer"/></wand> ------------ Paladin Spears and Arrow ------------ <distance id="2545" range="6" enabled="1" exhaustion="0" hitchance="70" ammo="removecount" script="poison arrow.lua"></distance> <distance id="2546" range="6" enabled="1" exhaustion="0" hitchance="60" ammo="removecount" script="explosive arrow.lua"></distance> </weapons>
Veja bem como que faz:
<wand id="2182" lvl="7" range="6" mana="2" enabled="1" script="nome do arquivo que você fez.lua"><vocation name="Druid"/><vocation name="Elder Druid"/><vocation name="Sorcerer"/><vocation name="Master Sorcerer"/></wand>
Onde ta de cor vermelha você adiciona o id da sua varinha.
Onde ta de azul você adiciona o nível pra poder usar a varinha.
Onde ta de cor roxa coloque a distância que a varinha consegue alcançar.
Onde ta de cor laranja é a mana que gasta pra usa a varinha.
E o que ta de verde é o nome do arquivo que você fez.
Salva e os arquivos e da restart no ot, pronto...
Finished
Meu deus, vocês não imaginam o trabalho que me deu fazer isso, passei umas 2 horas aqui pra fazer, espero que ajudem vocês a fazer varinhas novas, ahh sim, to me esquecendo...
local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 0, -60, 0, -70) function onUseWeapon(cid, var) return doCombat(cid, combat, var) end
Esse é o code da wand of inferno, reparem nisso aqui:
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 0, -60, 0, -70)
A varinha causa de 60 a 70... vocês podem mudar ela colocando -100 e -200, dai la no \data\weapons\weapons.xml vocês colocam mana="20" pra gastar mais mana e talz...
Espero que tenha ajudado vocês, que sufoco :lol:
Valew pra todos
Espero que gostem do tópico
Grato
Guilherme OTmaster