Ir para conteúdo
  • Cadastre-se

(Resolvido)[Spells] Juntar script sem bugar ajuda


Ir para solução Resolvido por poko360,

Posts Recomendados

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
Link para o post
Compartilhar em outros sites
  • Respostas 15
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 28) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 41) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, 28) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 41) local combat3 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_IC

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(getThi

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, -DAN

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)
Link para o post
Compartilhar em outros sites

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)

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

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)
Link para o post
Compartilhar em outros sites

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

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Estatísticas dos Fóruns

    96847
    Tópicos
    519607
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo