Ir para conteúdo

Featured Replies

Postado

.Qual servidor ou website você utiliza como base? 

TFS 0.4

Qual o motivo deste tópico? 

Achei esse script aqui no tibiaking e adaptei pra um so player, para uma bossroom, porem, eu gostaria que ele sumonasse o boss de acordo com o level.

Tentei reaproveitar a tabela que ja tinha no script pra fazer o que eu queria, porem ele sumona os dois monstros registrados, e não de acordo com intervalo de level

fiz essa adaptação

 

 

local monster_pos = {
    [1] = { pos = { 462, 83, 7 }, minlevel=1, maxlevel=1999, monster = "Daily boss" },
    [2] = { pos = { 462, 83, 7 }, minlevel=2000, maxlevel=2999, monster = "Ultima Dracony" },
}

 

Essa foi a linha que modifiquei para fazer o sumon, porem ele sumona todos os monstros da lista. Se alguem puder dar aquela forcinha pra o script reconhecer o intervalo de level pra sumonar apenas o sumon equivalente.

____

                 for b = 1, #monster_pos do
					 if (getPlayerLevel(cid) <= monster_pos[b].minlevel) or (getPlayerLevel(cid) >= monster_pos[b].maxlevel) then
                        doSummonCreature(monster_pos[b].monster, { x = monster_pos[b].pos[1], y = monster_pos[b].pos[2], z = monster_pos[b].pos[3] })
                   
					end
					end


____
Script

 

Spoiler

 




-- CONFIG --
local playersOnly = "no"
local questLevel = 1
local STORAGE_BOSS_CD = 50000
local cdtime = 1 * 1 * 1 -- exhaust in seconds

local room = { -- boss room
    fromX = 448,
    fromY = 77,
    fromZ = 7,
    --------------
    toX = 477,
    toY = 92,
    toZ = 7
}

local monster_pos = {
    [1] = { pos = { 462, 83, 7 }, minlevel=1, maxlevel=1999, monster = "Daily boss" },
    [2] = { pos = { 462, 83, 7 }, minlevel=2000, maxlevel=2999, monster = "Ultima Dracony" },
}

local players_pos = {
    { x = 395, y = 18, z = 7, stackpos = 253 }
}

local new_player_pos = {
    { x = 462, y = 86, z = 7 }
}
-- CONFIG END --

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local all_ready, monsters, player, level = 0, 0, {}, 0

    if item.itemid == 9826 then
        for i = 1, #players_pos do
            table.insert(player, 0)
        end
        for i = 1, #players_pos do
            player[i] = getThingfromPos(players_pos[i])
            if player[i].itemid > 0 then
                if string.lower(playersOnly) == "yes" then
                    if isPlayer(player[i].uid) == true then
                        all_ready = all_ready + 1
                    else
                        monsters = monsters + 1
                    end
                else
                    all_ready = all_ready + 1
                end
            end
        end
        if all_ready > 0 then
            for i = 1, #players_pos do
                player[i] = getThingfromPos(players_pos[i])
                if isPlayer(player[i].uid) == true then
                    if getPlayerStorageValue(player[i].uid, STORAGE_BOSS_CD) > os.time() then
                        doPlayerSendCancel(cid, "Acesso so liberado a cada 20h.")
                        return false
                    end
                    if getPlayerLevel(player[i].uid) >= questLevel then
                        level = level + 1
                    end
                else
                    level = level + 1
                end
            end
            if level == #players_pos then
                if string.lower(playersOnly) == "yes" and monsters == 0 or string.lower(playersOnly) == "no" then
                   for b = 1, #monster_pos do
					 if (getPlayerLevel(cid) <= monster_pos[b].minlevel) or (getPlayerLevel(cid) >= monster_pos[b].maxlevel) then
                        doSummonCreature(monster_pos[b].monster, { x = monster_pos[b].pos[1], y = monster_pos[b].pos[2], z = monster_pos[b].pos[3] })
                   
					end
					end
                    for i = 1, #players_pos do
                        if isPlayer(player[i].uid) then
                            doSendMagicEffect(players_pos[i], CONST_ME_POFF)
                            doTeleportThing(player[i].uid, new_player_pos[i])
                            doSendMagicEffect(new_player_pos[i], CONST_ME_ENERGYAREA)
                            setPlayerStorageValue(player[i].uid, STORAGE_BOSS_CD, os.time() + cdtime)
                        end
                    end
                    doTransformItem(item.uid, 9825)
                else
                    doPlayerSendTextMessage(cid, 19, "Only players can do this quest.")
                    return false
                end
            else
                doPlayerSendTextMessage(cid, 19, "All Players have to be level " .. questLevel .. " to do this quest.")
                return false
            end
        else
            doPlayerSendCancel(cid, "You need " .. table.getn(players_pos) .. " players to do this quest.")
            return false
        end
    elseif item.itemid == 9825 then
        local player_room = 0
        for x = room.fromX, room.toX do
            for y = room.fromY, room.toY do
                for z = room.fromZ, room.toZ do
                    local pos = { x = x, y = y, z = z, stackpos = 253 }
                    local thing = getThingfromPos(pos)
                    if thing.itemid > 0 then
                        if isPlayer(thing.uid) == true then
                            player_room = player_room + 1
                        end
                    end
                end
            end
        end
        if player_room >= 1 then
            doPlayerSendTextMessage(cid, 19, "There is already a team in the quest room.")
            return false
        elseif player_room == 0 then
            for x = room.fromX, room.toX do
                for y = room.fromY, room.toY do
                    for z = room.fromZ, room.toZ do
                        local pos = { x = x, y = y, z = z, stackpos = 253 }
                        local thing = getThingfromPos(pos)
                        if thing.itemid > 0 then
                            doRemoveCreature(thing.uid)
                        end
                    end
                end
            end
            doTransformItem(item.uid, 9826)
        end
    end

    return true
end

 

 

 

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

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.9k

Informação Importante

Confirmação de Termo