• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Their Master's Voice quest

Andronico

Member
Joined
Nov 13, 2010
Messages
82
Reaction score
12
Location
Chile
Hello! how i can fix this?

Code:
local position = {
    Position(33313, 31852, 9),
    Position(33313, 31865, 9),
    Position(33313, 31881, 9),
    Position(33328, 31860, 9),
    Position(33328, 31885, 9),
    Position(33308, 31873, 9),
    Position(33320, 31873, 9),
    Position(33336, 31914, 9),
    Position(33343, 31914, 9),
    Position(33361, 31914, 9),
    Position(33352, 31900, 9),
    Position(33355, 31861, 9),
    Position(33355, 31885, 9),
    Position(33345, 31864, 9),
    Position(33345, 31881, 9),
    Position(33309, 31867, 9),
    Position(33311, 31854, 9),
    Position(33334, 31889, 9),
    Position(33340, 31890, 9),
    Position(33347, 31889, 9)
}

local creatureNames = {
    'iron servant',
    'golden servant',
    'diamond servant'
}

local function getFungusInArea(fromPos, toPos)
    for x = fromPos.x, toPos.x do
        for y = fromPos.y, toPos.y do
            for itemId = 13585, 13589 do
                if Tile(Position(x, y, fromPos.z)):getItemById(itemId) then
                    return true
                end
            end
        end
    end
    return false
end

local function summonMonster(name, position)
    Game.createMonster(name, position)
    position:sendMagicEffect(CONST_ME_TELEPORT)
end

function onUse(player, item, fromPosition, target, toPosition, isHotkey)
    if not isInArray({13585, 13586, 13587, 13588, 13589}, target.itemid) then
        return false
    end

    if player:getStorageValue(Storage.TheirMastersVoice.SlimeGobblerTimeout) < os.time() then
        target:transform(13590)
        player:setStorageValue(Storage.TheirMastersVoice.SlimeGobblerTimeout, os.time() + 5)
        toPosition:sendMagicEffect(CONST_ME_POFF)
        if not getFungusInArea(Position(33306, 31847, 9), Position(33369, 31919, 9)) then
            for i = 1, #position do
                addEvent(summonMonster, 5 * 1000, creatureNames[math.random(#creatureNames)], position[i])
            end
            player:getPosition():sendMagicEffect(CONST_ME_FIREWORK_RED)
            player:say('COME! My servants! RISE!', TALKTYPE_MONSTER_SAY)
            Game.setStorageValue(GlobalStorage.TheirMastersVoice.ServantsKilled, 0)
            Game.setStorageValue(GlobalStorage.TheirMastersVoice.CurrentServantWave, 0)
        else
            player:say('The slime gobbler gobbles large chunks of the slime fungus with great satisfaction.', TALKTYPE_MONSTER_SAY)
            player:addExperience(20, true, true)
        end
    end
    return true
end

sxdvsh.jpg
 
Code:
local function getFungusInArea(fromPos, toPos)
    for x = fromPos.x, toPos.x do
        for y = fromPos.y, toPos.y do
            for itemId = 13585, 13589 do
                local tile = Tile(Position(x, y, fromPos.z))
                if tile then
                    if tile:getItemById(itemId) then
                        return true
                    end
                end
            end
        end
    end
    return false
end
 
Back
Top