Ir para conteúdo
  • 0

Arma que só ataca Player


iagonp

Pergunta

Galera alguém sabe como colocar uma condição na arma para quando o player atacar um monstro hitar no máximo 800 e se atacar player o hite é calculado pelo Level e ML, dai o hite iria ser mais que 9k.

 

Ex: Player com a arma editada ataca outro player a arma calula o Level e ML como se fosse uma skill para tirar o dano aproximado de 9000, mais se o player ataca um monstro o dano será apenas 800 ou calcular com o Level e ML mais o hite seria próximo a 800.

 

Tem como fazer uma arma assim? Seria tipo uma arma PVP, que serviria mais para x1 ou WAR do que UPA.

 

Alguém teria ideia de como fazer se for possível? Agradeço!

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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á!

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...