IA
pedido

Arma que só ataca Player

Por iagonp, 04 de dez. de 2013 em Scripts

armas players
resolvido
18
2.7k
KilluaK
04 de dezembro de 2013 às 22:34

Kkkkkkkkk entendi sr. Jedi obrigado. Eu odeio mecher com esses combat, entao isso nem passa pela minha mente kkk

OmegaO
04 de dezembro de 2013 às 23:25

Como você moveu o tópico eu vou lhe pedir por aqui, mais darei rep lá do mesmo jeito.

 

É que a formulá de ML funciono mais a de Skill eu esqueci de dizer.

 

Tipo, o player ataca com arma física seria a SkillTotal + Attack * Level..

 

Tentei de todo jeito aqui e não funcionou. Teria como me passar a formula para ataques físicos? Agradeço muito se puder ajudar!

 

Bom, tenta assim então, aí escolhe a fórmulas diferentes: uma pra monstro e outra pra jogador.

Vou postar aqui pra alguém poder ver depois, se quiser o mesmo tipo de script. Se ainda não for o que você quer, eu movo de volta.

 

 

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYHIT)
setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)

function getCombatFormulas(cid, lv, maglv)
	local formula_min = -((lv*2 + maglv*10) * 0.2)
	local formula_max = -((lv*2 + maglv*10) * 0.5)
	return formula_min, formula_max
end

setCombatCallback(combat1, CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas")

local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_BLOCKARMOR, true)
setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_WEAPONTYPE)
setCombatParam(combat2, COMBAT_PARAM_USECHARGES, true)

function onGetFormulaValues(cid, level, skill, attack, factor)
	local skillTotal, levelTotal = skill + attack * 2, level / 5 * 2
	return -(skillTotal / 3 + levelTotal), -(skillTotal + levelTotal)
end

setCombatCallback(combat2, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")

function onUseWeapon(cid)
	local target = getCreatureTarget(cid)
	local var = numberToVariant(getCreatureTarget(cid))
	if isMonster(target) then
		return doCombat(cid, combat2, var)
	end	
	return doCombat(cid, combat1, var)
end

 

 

 

Kkkkkkkkk entendi sr. Jedi obrigado. Eu odeio mecher com esses combat, entao isso nem passa pela minha mente kkk

É, isso é bastante dor de cabeça, mas vale a pena aprender. E nem precisava fazer assim, dá pra fazer pegando os skills, criar uma fórmula e depois usar doTargetCombatHealth. Mas dá mais trabalho. Creaturescripts é muito bom, mas não resolve tudo.

E é Mestre Jedi pra você clown.gif

1 mês depois...
iagonpI
20 de janeiro de 2014 às 06:12

Omega eu criei uma arma e queria uma coisa só..

 

A wand ela ta contando Lv + ML do jeito que você configurou se bater em player mais se bater em monstro ela conta o hit definido ali, eu sei que se tirar a condição IF vai contar o Lv + ML só que eu queria deixar 2 configurações da formula do hit..

 

Tipo quando o palyer atacar outro player a formula seria assim:

    local formula_min = -((lv * 1 + maglv * 18) * 0.7)
    local formula_max = -((lv * 1 + maglv * 18) * 0.8)
    return formula_min, formula_max 

E quando atacasse um monstro ficaria assim:

    local formula_min = -((lv * 1 + maglv * 18) * 0.4)
    local formula_max = -((lv * 1 + maglv * 18) * 0.5)
    return formula_min, formula_max 

Só fiz mudar a multiplicação no final para que no monstro não bata muito mais continue contando o LV + ML, tem como você fazer isso? Agradeço desde já!