Ir para conteúdo

Featured Replies

Postado

local configs = {
    radius = {2, 2}, -- 2 X 2
    validSlots = {1, 4, 7, 8}, -- Head, Body, Legs, Feet
    msg = "Armors Attack!",
}

local sets = {
    [1] = {items = {7900, 7899, 7894, 7891}, distaceEffect = CONST_ANI_FIRE, effect = CONST_ME_FIREATTACK, combat = COMBAT_FIREDAMAGE, chance = 20, min_max = {100, 300}}, 
    [2] = {items = {11499, 11500, 11501, 11502}, distaceEffect = CONST_ANI_ICE, effect = CONST_ME_ICEATTACK, combat = COMBAT_ICEDAMAGE, chance = 40, min_max = {1000, 3000}}, 
}

local function getCreaturesInArea(fromPos, toPos)
    local retPlayers = {}

    for x = fromPos.x, toPos.x do
        for y = fromPos.y, toPos.y do
            local player = getTopCreature({x=x, y=y, z=fromPos.z})

            if isMonster(player.uid) then

                table.insert(retPlayers, player.uid)
            end
        end
    end
    return retPlayers
end

local function table.compare(table1, table2)
    local n = 0
    local maxn = 0

    if #table1 == #table2 then
        maxn = #table1
    else
        return false
    end

    for i = 1, #table1 do
        for s = 1, #table2 do
            if table1[i] == table2[s] then

                n = n + 1
            end
        end
    end
    if n == maxn then
        return true
    end
    return false
end

function onStatsChange(cid, attacker, type, combat, value)
    local playerSet = {}

    for s = 1, #configs.validSlots do
        if getPlayerSlotItem(cid, configs.validSlots[s]).uid > 0 then

            table.insert(playerSet, getPlayerSlotItem(cid, configs.validSlots[s]).itemid)
        end
    end
    for i = 1, #sets do
        if table.compare(sets[i].items, playerSet) then
            if math.random(100) <= sets[i].chance then
                local creatures = getCreaturesInArea({x = getThingPos(cid).x - configs.radius[1], y = getThingPos(cid).y - configs.radius[1], z = getThingPos(cid).z}, {x = getThingPos(cid).x + configs.radius[2], y = getThingPos(cid).y + configs.radius[2]})
                if isPlayer(attacker) then

                    table.insert(creatures, attacker)
                end

                doSendMagicEffect(getThingPos(cid), sets[i].effect)
                doCreatureSay(cid, configs.msg, TALKTYPE_MONSTER)
                for c = 1, #creatures do
                    addEvent(function()
                        doSendDistanceShoot(getThingPos(cid), getThingPos(creatures[c]), sets[i].distaceEffect)
                        doAreaCombatHealth(cid, sets[i].combat, getThingPos(creatures[c]), 0, - sets[i].min_max[1],  - sets[i].min_max[2], sets[i].effect)
                    end, c * 100)
                end
            end
        end
    end
    return true
end
 

aqui ta dando  erro 28 '(' expected near ','

 

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

  • Respostas 16
  • Visualizações 1.2k
  • Created
  • Última resposta

Top Posters In This Topic

Postado
  • Autor
local configs = {
    radius = {2, 2}, -- 2 X 2
    validSlots = {1, 4, 7, 8}, -- Head, Body, Legs, Feet
    msg = "Armors Attack!",
}

local sets = {
    [1] = {items = {7900, 7899, 7894, 7891}, distaceEffect = CONST_ANI_FIRE, effect = CONST_ME_FIREATTACK, combat = COMBAT_FIREDAMAGE, chance = 20, min_max = {100, 300}}, 
    [2] = {items = {11499, 11500, 11501, 11502}, distaceEffect = CONST_ANI_ICE, effect = CONST_ME_ICEATTACK, combat = COMBAT_ICEDAMAGE, chance = 40, min_max = {1000, 3000}}, 
}

local function getCreaturesInArea(fromPos, toPos)
    local retPlayers = {}

    for x = fromPos.x, toPos.x do
        for y = fromPos.y, toPos.y do
            local player = getTopCreature({x=x, y=y, z=fromPos.z})

            if isMonster(player.uid) then

                table.insert(retPlayers, player.uid)
            end
        end
    end
    return retPlayers
end

local function table.compare(table1, table2)
    local n = 0
    local maxn = 0

    if #table1 == #table2 then
        maxn = #table1
    else
        return false
    end

    for i = 1, #table1 do
        for s = 1, #table2 do
            if table1[i] == table2[s] then

                n = n + 1
            end
        end
    end
    if n == maxn then
        return true
    end
    return false
end

function onStatsChange(cid, attacker, type, combat, value)
    local playerSet = {}

    for s = 1, #configs.validSlots do
        if getPlayerSlotItem(cid, configs.validSlots[s]).uid > 0 then

            table.insert(playerSet, getPlayerSlotItem(cid, configs.validSlots[s]).itemid)
        end
    end
    for i = 1, #sets do
        if table.compare(sets[i].items, playerSet) then
            if math.random(100) <= sets[i].chance then
                local creatures = getCreaturesInArea({x = getThingPos(cid).x - configs.radius[1], y = getThingPos(cid).y - configs.radius[1], z = getThingPos(cid).z}, {x = getThingPos(cid).x + configs.radius[2], y = getThingPos(cid).y + configs.radius[2]})
                if isPlayer(attacker) then

                    table.insert(creatures, attacker)
                end

                doSendMagicEffect(getThingPos(cid), sets[i].effect)
                doCreatureSay(cid, configs.msg, TALKTYPE_MONSTER)
                for c = 1, #creatures do
                    addEvent(function()
                        doSendDistanceShoot(getThingPos(cid), getThingPos(creatures[c]), sets[i].distaceEffect)
                        doAreaCombatHealth(cid, sets[i].combat, getThingPos(creatures[c]), 0, - sets[i].min_max[1],  - sets[i].min_max[2], sets[i].effect)
                    end, c * 100)
                end
            end
        end
    end
    return true
end
 

aqui ta dando  erro 28 '(' expected near ','

 

 

Opa brother, obrigado por reportar. Já arrumei no tópico.

Tony Araújo  ;D 

 

Postado

ae pq aqui fica dando esse erro

data/creaturescripts/scripts/armorsattack.lua:onStatschange

<LuaGetThingPosition>Thing not found  

 

acho q so acontece quando ele ta tipo em andar de cima ai da o erro 

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