Ir para conteúdo

Featured Replies

Postado
local config = {
	hits = 3, -- quantos hits vai dar
	effect = 41, -- efeito
	distance_effect = 28, -- efeito de distance
	delay = 350, -- tempo entre os hits
	damage = COMBAT_PHYSICALDAMAGE -- tipo de combat
}

local combat = createCombatObject()
local function doHitCreature(target, cid, times)
    if isCreature(cid) and isCreature(target) and times ~= 0 then
		doTargetCombatHealth(cid, target, config.damage, -getPlayerLevel(cid), -getPlayerLevel(cid), config.effect)
		doSendDistanceShoot(getThingPos(cid), getThingPos(target), config.distance_effect)
		addEvent(doHitCreature, config.delay, target, cid, times-1)
    end
	return true
end

function onTargetCreature(cid, target)
	return addEvent(doHitCreature, 1, target, cid, config.hits)
end

setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature")

function onCastSpell(cid, var)
	return doCombat(cid, combat,var)
end
  • Respostas 15
  • Visualizações 858
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 28) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 

  • local config = { hits = 3, -- quantos hits vai dar effect = 41, -- efeito distance_effect = 28, -- efeito de distance delay = 350, -- tempo entre os hits damage = COMBAT_PHYSICALDAMAGE -- tipo de

  • o dano tá aqui:     doTargetCombatHealth(cid, target, config.damage, -getPlayerLevel(cid), -getPlayerLevel(cid), config.effect) ta dando damage do cid (quem usa a magia) no target (pessoa que tá sen

Postado
  • Autor

Cara funcionou sim perfeitamente, mas tipo eu tenho outras magias pra editar como exemplo 1.5 de dano por level nas outras colocar area e tal tlg?

por isso to perguntando como junta aqueles 2 script pra eu ter uma noção como vou editar as outras tlg?

 

 

 

 

mas se nao tiver jeito nenhum que alguem me ajude,

ai eu queria te perguntar onde eu configuraria o dano nesse caso? '-'

Editado por poko360 (veja o histórico de edições)

Postado

o dano tá aqui:
    doTargetCombatHealth(cid, target, config.damage, -getPlayerLevel(cid), -getPlayerLevel(cid), config.effect)

ta dando damage do cid (quem usa a magia) no target (pessoa que tá sendo atacada), o tipo de dano é o config.damage 

damage = COMBAT_PHYSICALDAMAGE

ou seja, dano físico.
e o dano minimo e máximo é - o level do player. O efeito que vai sair é o config.effect,

Se vc quiser mudar o dano é só fazer

doTargetCombatHealth(cid, target, config.damage, -DANO MINIMO, -DANO MÁXIMO, config.effect)

lembrando sempre de colocar o - se não ele vai recuperar vida.

Se vc quiser que seja 1,5x o level do player só fazer
 

local min = math.ceil(getPlayerLevel(cid) * 1.5)
doTargetCombatHealth(cid, target, config.damage, -min, -min, config.effect)

ps: se vc quiser fazer em área é só mudar a função doTargetCombatHealth pra

doAreaCombatHealth(cid, type, pos, area, min, max, effect)

na area vc faz igual um script normal

area = {0,0,0,1,0,0,0,
        0,0,0,3,0,0,0,
        0,0,0,1,0,0,0}

e o resto tá no script acima

Editado por xWhiteWolf (veja o histórico de edições)

Postado
  • Autor

Whitewolf obrigado, entendi a parte de cima perfeitamente,

 

 

:accept: local min = math.ceil(getPlayerLevel(cid) * 1.5)
doTargetCombatHealth(cid, target, config.damage, -min, -min, config.effect)

 

 

so nao entendi essa aqui

\/

como eu devo montar? ta ligado? (em quais linhas devo colocar isso?)

 

:recuse: se no de cima voce colocou -min,-min, porque voce colocou esse min, max,?

 

@xWhiteWolf,

 

ps: se vc quiser fazer em área é só mudar a função doTargetCombatHealth pra

doAreaCombatHealth(cid, type, pos, area, min, max, effect)

 

na area vc faz igual um script

 

normalarea = {0,0,0,1,0,0,0,

                       0,0,0,3,0,0,0,

                       0,0,0,1,0,0,0}

 

e o resto tá no script acima

 

 

 

 

 

 

 

 

 

EDIT:

queria colocar isso nessa magia aqui:

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 36)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -1.2, -45, -1.2, 0)

local combat5 = createCombatObject()
setCombatParam(combat5, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat5, COMBAT_PARAM_EFFECT, 6)
setCombatFormula(combat5, COMBAT_FORMULA_LEVELMAGIC, -1.2, -45, -1.2, 0)

arr1 = {
{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, 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, 0, 0, 1, 3, 1, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
}



local area1 = createCombatArea(arr1)

local area5 = createCombatArea(arr1)
setCombatArea(combat1, area1)

setCombatArea(combat5, area5)

local function onCastSpell1(parameters)
doCombat(parameters.cid, parameters.combat1, parameters.var)
end



local function onCastSpell5(parameters)
doCombat(parameters.cid, parameters.combat5, parameters.var)
end

function onCastSpell(cid, var)
local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3, combat4 = combat4, combat5 = combat5 }
addEvent(onCastSpell1, 0, parameters)
addEvent(onCastSpell1, 100, parameters)
addEvent(onCastSpell1, 200, parameters)
addEvent(onCastSpell1, 300, parameters)
addEvent(onCastSpell5, 500, parameters)


return true
end

Editado por poko360 (veja o histórico de edições)

Postado

a formula é min e max mas no caso como vc queria uma spell que hitasse o level do cara multiplicado por um fator X, o mínimo e o máximo tinham que ser iguais, certo? Por isso eu chamei de min e min. Se vc quiser editar essa spell é só apagar as coisas desnecessárias (tudo), deixa só a área e function onCastSpell.. dai vc coloca em addEvent quantas vezes vc quer que a magia se repita usando a doAreaCombat... Eu não to em casa agora, devo voltar só segunda, se ninguém te ajudar até lá eu prometo que tento fazer pra ti

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo