DA
dúvida

Spell

Por Dasdor, 07 de out. de 2012 em Scripts

spell
otserv
tibia
script
10
1.5k
DasdorD
07 de outubro de 2012 às 15:21

Ola a todossmile_positivo.gif

eu nao consigo fazer com que uma wand aumente o dano dela dependendo do skill do player como sword ou club e nao com o magic

 

data\weapons\weapons.xml

 

<wand id="2384" level="1" mana="0" min="100" max="200" type="fire" event="script" value="fire_wand.lua"> <!-- wand -->

<vocation id="1">

<vocation id="2">

</vocation></vocation></wand>

 

 

data\weapons\scripts\fire_wand.xml

 

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)

setCombatParam(combat, COMBAT_PARAM_EFFECT, 5)

setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 38)

setCombatFormula(combat, COMBAT_FORMULA_SKILL_CLUB, -1.5, -6, -1.5, -7)

 

function onUseWeapon(cid, var)

return doCombat(cid, combat, var)

end

 

 

data\items\items.xml

 

<item id="2384" article="a" name="fire wand">

<attribute key="weight" value="2000">

<attribute key="weaponType" value="wand">

<attribute key="shootType" value="fire">

<attribute key="range" value="3">

</attribute></attribute></attribute></attribute></item>

 

 

nao apareçe nem um erro no console mais o problema q a wand nao hita nada e o skill club esta 90

uso o crystal server 0.1.2 8.7

brun123B
07 de outubro de 2012 às 17:54

não existe COMBAT_FORMULA_SKILL_CLUB

apenas COMBAT_FORMULA_SKILL

DasdorD
07 de outubro de 2012 às 19:30

intao nao tem como eu colocar pra aumentar a damage pelo skills do player?huh.png

brun123B
07 de outubro de 2012 às 21:38

amigo... o COMBAT_FORMULA_SKILL calcula a skill envolvendo essas variáveis:

 

ataque da arma utilizada

a skill do player que a arma usa (se for uma sword, vai pegar o sword fighting, se for axe será o axe fighting...)

o fator de ataque do player (se está no modo full attack, balanced ou full defense)

o level do player

 

isso não vai funcionar do jeito que você espera a menos que você coloque no items.xml que a skill que usa na wand é club

 

você pode fazer sua própria fórmula da seguinte maneira:

 

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 5)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 38)

function getMinMaxValues(cid, level, magiclevel)
local skill = getPlayerSkillLevel(cid, SKILL_CLUB)
local min = skill * 2 + level/2 + magiclevel/4
local max = min * math.random(105, 125) / 100
return min, max
end

setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "getMinMaxValues")

function onUseWeapon(cid, var)
return doCombat(cid, combat, var)
end

 

basta alterar o min/max ali

a fórmula que eu escrevi soma os seguintes valores:

 

skill de club do player multiplicado por 2

level do player dividido por 2

magic level do player dividido por 4

 

um player com club 70, level 40 e magic level 5 vai tirar no mínimo 161, e no máximo 201 com minha fórmula

achei muito, mas é apenas um exemplo

Editado Outubro 7 por brun123

DasdorD
08 de outubro de 2012 às 19:26

cara continua do mesmo jeito, nao da dano no monstro ja mudei para club no itens tbm e nao vai usei o seu script nao vai...

Editado Outubro 9 por Dasdor

DasdorD
12 de outubro de 2012 às 12:47

ajudaworriedsmiley.gif

Piabeta KunP
12 de outubro de 2012 às 13:41

ajudaworriedsmiley.gif

 

Reportando flood e double post, tenha paciencia até que alguem possa te ajudar, as veses demora pelo fato de niguem que viu saber como te ajudar ou se esta sendo respondio, o membro pode estar ocupado ou nao viu o topico denovo, nao precisa floodar e nem dar double post, se está sendo atendido por alguem manda um mp!

 

Apenas aguarde!

brun123B
12 de outubro de 2012 às 15:51

experimente usar a tag assim:

 

<distance id="2384" event="script" value="script.lua"/>

 

e se não der certo, tente usar a tag de melee

OneshotO
12 de outubro de 2012 às 15:55

Na verdade, o brun123 só esqueceu de negativar os valores de retorno da função, para que o sistema entenda que é dano e não cura.

DasdorD
12 de outubro de 2012 às 21:03

deu certo! meu obrigado a vcs é claro q nao vou esquecer de dar mais rep