Ir para conteúdo
Banner com Efeitos

Featured Replies

Postado

Bom Dia, tenho um script que ela é de uma quest que 1 player pode fazer, mas queria que o script também checasse se há gente nos 5 tiles, explicar melhor.

 

São 5 tiles, se tiver gente só nos 2 primeiros ela teleporta, se tiver gente nos 5 ela teleporta, se tiver só em 1 ela teleporta.

Se possivel gostaria que removesse esse item que precisa para fazer a quest.

 

function isOnSameFloor(fromPos, toPos)
    return fromPos.z == toPos.z and true or false
end

function isEven(arg)
    return arg % 2 == 0 and true or false
end

function getMiddlePos(fromPos, toPos)
    if not isOnSameFloor(fromPos, toPos) then
        return false
    end
    
    local middle = {x = 0, y = 0, z = 0}    
        middle.x = isEven(fromPos.x + toPos.x) and (fromPos.x + toPos.x)/2 or math.floor((fromPos.x + toPos.x)/2) + 1
        middle.y = isEven(fromPos.y + toPos.y) and (fromPos.y + toPos.y)/2 or math.floor((fromPos.y + toPos.y)/2) + 1
        middle.z = fromPos.z or toPos.z
    return middle
end

function getDistanceRadius(fromPos, toPos)
    if not isOnSameFloor(fromPos, toPos) then
        return false
    end
    
    local distance = getDistanceBetween(fromPos, toPos)
    return isEven(distance) and (distance/2) or math.floor(distance/2) + 1
end

function clearArea(middlePos, rangex, rangey)
    local final = {x=1030, y=1085, z=7} -- Posição onde será teleportado quando acabar o tempo
    
    for i = -rangex, rangex do
        for j = -rangey, rangey do
            pos = {x = middlePos.x + i, y = middlePos.y + j, z = middlePos.z}
            creature = getTopCreature(pos).uid
            
            if isMonster(creature) then
                doSendMagicEffect(getThingPos(creature), 14)
                doRemoveCreature(creature)
            elseif isPlayer(creature) then
                doSendMagicEffect(getThingPos(creature), 10)
                doTeleportThing(creature, final)
            end
        end
    end
    
    setGlobalStorageValue(sto, -123)
    return true
end

local t = {
    lvl = 150,
    entrada = {
        {x = 1067, y = 1067, z = 9}, -- pos players
    },
    saida = {
        {x = 717, y = 1013, z = 9}, -- pos para onde eles irão
    },
monstros = {
        {{x = 718, y = 1009, z = 9}, "Wizard"}, -- defina pos dos montros e nomes
    }
}
    


function onUse(cid, item, fromPosition, itemEx, toPosition)
    local configure = {
        fromPos = {x=702, y=988, z=9}, -- posição superior esquerda do mapa, da area em que esta mapeado a area.
        toPos = {x=811, y=1025, z=9}, -- posição inferior direita do mapa, da area em que esta mapeado a area.
        boss = "Wizard" -- Aqui você bota o nome do monstro que você quer remover
    }
    
    local config = {
        hnitem = "Você precisa de 1 Crystal coin para entrar.", --Mensagem que o player receberá caso não tenha o item.
        hitem = "Você entrou na Dungeon Quest.", --Mensagem que o player receberá caso tenha o item.
        item = 2160, --ID do item.
        qnt = 1, --Quantidade.
        position = {x=1067, y=1066, z=9}, -- Contagem
        fromPosition = {x=1065, y=1066, z=9},
        toPosition = {x=1085, y=1075, z=9},
        id = 1498,
        time = 1
    }


    local time = 1200
    local check = {}


for _, k in ipairs(t.entrada) do
         local x = getTopCreature(k).uid  
            if(x == 0 or not isPlayer(x)) then  
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você não tem o requisito mínimo.")
            return true
        end

 if getPlayerLevel(cid) <= 149 then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você precisa estar level 150+.")
            return true
        end    


            if getGlobalStorageValue(sto) == 123 then
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde até que a Dungeon seja liberada.")
                return true
            end

 if getPlayerItemCount (cid, config.item) >= config.qnt then
		doPlayerRemoveItem(cid, config.item, config.qnt)
                doPlayerSendTextMessage(cid, 19, config.hitem) -- Caso não queira que receba mensagem, apague essa linha.
        else
		doPlayerSendTextMessage(cid, 19, config.hnitem) -- Caso não queira que receba mensagem, apague essa linha.
return true
end
    
            
        table.insert(check, x)
    end
                    for _, summon in pairs(t.monstros) do
                    local creature = getTopCreature(summon[1]).uid
                    doCreateMonster(summon[2], summon[1])
                end
                
                    for i, tid in ipairs(check) do
                        doTeleportThing(tid, t.saida[i], false)
                        doSendMagicEffect(t.saida[i], 10)
                        doTransformItem(item.uid, item.itemid == 1810 and 1810 or 1810)
                    end
                    
            for i = 1,time do
                formula = time - 1*i
                addEvent(doSendAnimatedText, i*1000, config.position, formula, TEXTCOLOR_RED)
            end
    
    setGlobalStorageValue(sto, 123)
    local rx = getDistanceRadius(configure.fromPos, configure.toPos)
    addEvent(clearArea, config.time * 300 * 1000, getMiddlePos(configure.fromPos, configure.toPos), rx, rx)
    return true
end

 

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

Informação Importante

Confirmação de Termo