Ir para conteúdo

Featured Replies

Postado

Olá.... sou novo em postar por aqui então lá vai..
Estou tentando criar um script em weapons onde uma arma pode tanto atacar em um capo de 3x3 ao redor do alvo como atacar somente no alvo.. (verificando por storage)
e ambos os tipos de ataque deveriam sair com elemento random.
Pois bem.. eu consegui fazer o ataque "somente no alvo" sair com elemento random como queria..
porém no ataque em 3x3 o script pega somente um elemento... e este elemento so muda quando reiniciado o servidor.

Sei que está bem bagunçado, já que é um dos primeiros scripts que tento fazer. Parte dele peguei aqui do forum.
meu script

local w = {
    [1] = {ef = 36, sh = 3, dmg = COMBAT_FIREDAMAGE},
    [2] = {ef = 42, sh = 28, dmg = COMBAT_ICEDAMAGE},
    [3] = {ef = 46, sh = 38, dmg = COMBAT_POISONDAMAGE},
    [4] = {ef = 17, sh = 31, dmg = COMBAT_DEATHDAMAGE},
    [5] = {ef = 47, sh = 35, dmg = COMBAT_ENERGYDAMAGE},
    [6] = {ef = 36, sh = 31, dmg = COMBAT_PHYSICALDAMAGE},
    [7] = {ef = 49, sh = 37, dmg = COMBAT_HOLYDAMAGE}
}
    local wx = w[math.random(#w)]
    local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_TYPE, wx.dmg)
setCombatParam(combat, COMBAT_PARAM_EFFECT, wx.ef)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, wx.sh)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0, -2000, -0, -3000)
 local area = createCombatArea( { {1, 1, 1}, {1, 3, 1}, {1, 1, 1} } )
setCombatArea(combat, area)
function onUseWeapon(cid, var)
    local gt = getPlayerStorageValue(cid,2482)
        if gt == 1 then -- <<<<< Ataque em 3x3 ao redor do alvo
        if target ~= 0 then
    local wx = w[math.random(#w)]
        doCombat(cid, combat, var)
        end
        elseif gt == 2 then --  <<<<< ataque somente no alvo
        local target = getCreatureTarget(cid)
        
        if target ~= 0 then
                local wx = w[math.random(#w)]
                local min, max = 2000,3000
                doSendDistanceShoot(getThingPos(cid), getThingPos(target), wx.sh)
                addEvent(doAreaCombatHealth, 100, cid, wx.dmg, getThingPos(target), 0, -min, -max, wx.ef)
        end
        
        return true
end
end


 

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

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

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 520k

Informação Importante

Confirmação de Termo