Ir para conteúdo
  • Cadastre-se

(Resolvido)Burst arrow antiga


Ir para solução Resolvido por LeoTK,

Posts Recomendados

.Qual servidor ou website você utiliza como base? 

otservbr-global

Qual o motivo deste tópico? 

Eu estou tentando fazer uma wand editada, a ideia é fazer ela bater em area, q nem era a burst arrow antigamente, aí fiz o script (anexado ai), só q tipo, eu queria q a area fosse aleatoria, n ficasse sempre batendo nos msm sqm tipo:

Ora bate assim                    Ora assim

❤️?❤️                             ?❤️?
❤️❤️❤️                             ❤️❤️?
??❤️                             ?❤️❤️

e por ai vai

 

Eu lembro q antigamente, qd ia escrever a area, dava pra por o 2 e ela servia como random, mas hj n dá em nda =\

Você tem o código disponível? Se tiver publique-o aqui: 

Spoiler

local area = createCombatArea({
     {1, 0, 1},
     {0, 3, 0},
     {1, 0, 1}
 })
 
 local combat = Combat()

 combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
 combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE)
 combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
 combat:setArea(area)

 
function onGetFormulaValues(player, level, maglevel)
    local min = (maglevel / 2)
    local max = (maglevel * 2)
    return -min, -max
end

combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")


 function onUseWeapon(player, variant)
    
     return combat:execute(player, variant)
 end
 

 

Editado por Artur Henrique (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

@Artur Henrique você precisar criar as variações e depois usar math.random para selecionar as áreas a cada hit porém existe várias maneiras de fazer o mesmo também

Compre seus Scripts Agora totalmente seguro e de forma rápida, aceitamos também encomendas.

discord.gg/phJZeHa2k4

 

Projeto ATS (Naruto)

Informações Abaixo

Facebook

Youtube
Discord

 

Tutoriais / Conteúdos

Clique Aqui

Link para o post
Compartilhar em outros sites

 

1 hora atrás, LeoTK disse:

@Artur Henrique você precisar criar as variações e depois usar math.random para selecionar as áreas a cada hit porém existe várias maneiras de fazer o mesmo também

Então, só que tipo, independente doq eu faça, o setArea não pode ficar dentro de uma function, ou seja, vai ser carregado só quando o server abrir, entao meio q vai ser um "random" q vai ser sorteado só qd o server abre, vc consegue me dar um "norte" pra isso?

Link para o post
Compartilhar em outros sites
  • Solução

@Artur Henrique achei este código em outro fórum porém é de uma magia da uma estudada e tenta implementar no seu já é meio caminho andado

 

Spoiler




local acombat, combat = createCombatObject(), createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_NONE)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ARROW)
setCombatFormula(combat, COMBAT_FORMULA_SKILL, 0, -9, 0.3, -5)

local arr1 = {
	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
	{1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1},
	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
}

setCombatArea(acombat, createCombatArea(arr1))

function onTargetTile(cid, pos)
	return math.random(2) == 1 and doCombat(cid, combat, positionToVariant(pos))
end
setCombatCallback(acombat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")

function onCastSpell(cid, var)
	return doCombat(cid, acombat, var)
end


 

 


achei esse código também

 

Spoiler



local areaCombat, combat = createCombatObject(), createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 7)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 5)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.2, 1, -0.3, 1)
local myArray = {{3}}
local area = createCombatArea(myArray)
setCombatArea(areaCombat, area)
function onTargetTile(cid, pos)
    local posx, posy = math.random(-1,1), math.random(-1,1)
    return doCombat(cid, combat, positionToVariant({x = pos.x + posx, y = pos.y + posy, z = pos.z}))
end
setCombatCallback(areaCombat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")
function onCastSpell(cid, var)
    addEvent(doCombat, 100, cid, areaCombat, var)
    addEvent(doCombat, 200, cid, areaCombat, var)
    addEvent(doCombat, 300, cid, areaCombat, var)
    return doCombat(cid, areaCombat, var)
end


 

 

Compre seus Scripts Agora totalmente seguro e de forma rápida, aceitamos também encomendas.

discord.gg/phJZeHa2k4

 

Projeto ATS (Naruto)

Informações Abaixo

Facebook

Youtube
Discord

 

Tutoriais / Conteúdos

Clique Aqui

Link para o post
Compartilhar em outros sites

Consegui, dei uma improvisada com os ifs e ficou bacana! brigadao ai ?
depois eu vou tentar arrumar pra n bater 2x no msm sqm
 

Spoiler

local areaCombat, combat = createCombatObject(), createCombatObject()
combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
 
function onGetFormulaValues(player, level, maglevel)
    local min = (maglevel / 2)
    local max = (maglevel * 2)
    return -min, -max
end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

local myArray = {{3}}
local area = createCombatArea(myArray)
setCombatArea(areaCombat, area)

function onTargetTile(cid, pos)
    local posx, posy = math.random(-1,1), math.random(-1,1)
    local posx2, posy2 = math.random(-1,1), math.random(-1,1)
    local posx3, posy3 = math.random(-1,1), math.random(-1,1)
    local posx4, posy4 = math.random(-1,1), math.random(-1,1)
    local posx5, posy5 = math.random(-1,1), math.random(-1,1)
    if posx == posy == 0 then
    local posx, posy = math.random(-1,1), math.random(-1,1)
        if posx == posy == 0 then    
            local posx, posy = 0, 1
        end
    end
    if posx2 == posy2 == 0 then
    local posx2, posy2 = math.random(-1,1), math.random(-1,1)
        if posx2 == posy2 == 0 then    
            local posx2, posy2 = 0, -1
        end
    end
    if posx3 == posy3 == 0 then
    local posx3, posy3 = math.random(-1,1), math.random(-1,1)
        if posx3 == posy3 == 0 then    
            local posx3, posy3 = 1, 0
        end
    end
    if posx4 == posy4 == 0 then
    local posx4, posy4 = math.random(-1,1), math.random(-1,1)
        if posx4 == posy4 == 0 then    
            local posx4, posy4 = -1, 0
        end
    end
    if posx5 == posy5 == 0 then
    local posx5, posy5 = math.random(-1,1), math.random(-1,1)
        if posx5 == posy5 == 0 then    
           local posx5, posy5 = math.random(-1,1), math.random(-1,1)
        end
    end
    return doCombat(cid, combat, positionToVariant({x = (pos.x + posx5), y = (pos.y + posy5), z = pos.z})), doCombat(cid, combat, positionToVariant({x = pos.x, y = pos.y, z = pos.z})), doCombat(cid, combat, positionToVariant({x = (pos.x + posx4), y = (pos.y + posy4), z = pos.z})), doCombat(cid, combat, positionToVariant({x = (pos.x + posx3), y = (pos.y + posy3), z = pos.z})), doCombat(cid, combat, positionToVariant({x = (pos.x + posx2), y = (pos.y + posy2), z = pos.z}))
end

setCombatCallback(areaCombat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")

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


 

 

Editado por Artur Henrique (veja o histórico de edições)
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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo