Ir para conteúdo

Featured Replies

Postado

Olá pessoal do tk, gostaria de saber se podem me ajudar com um script que faça o boss dropar o loot todo no chao, para que todos possam ter chance de pegar....

Postado

Acho que isso não é possível, apenas colocando o corpse no id de um item.. ex: <look type="38" corpse="5977"/> altere o corpse pro id do item que você quer que vire.. 

Postado

O Oneshot/Garou havia feito um código semelhante ao seu pedido. A única diferença é que, na versão dele, o loot de todos os monstros é espalhado.

Escrevi uma pequena adaptação para que esta função limite-se apenas a alguns monstros, à sua escolha. 

data/creaturescripts/scripts

local bosses = {"monster_name", "monster_name", ...}                 --Configure esta tabela com o nome dos monstros que terão o loot espalhado.

local function doSpreadLoot(fromPosition, toPosition, container)
    for slot = (getContainerSize(container.uid) - 1), 0, -1 do
        local item = getContainerItem(container.uid, slot)
        if not isContainer(item.uid) then
            local position = {
                x = math.random(fromPosition.x, toPosition.x),
                y = math.random(fromPosition.y, toPosition.y),
                z = fromPosition.z,
            }
            local itemEx = doCreateItemEx(item.itemid, item.type)
            if doTileAddItemEx(position, itemEx) then
                doRemoveItem(item.uid)
            end
        else
            doSpreadLoot(fromPosition, toPosition, item)
            doRemoveItem(item.uid)
        end
    end    
    return true
end

function onKill(cid, target)
    if isMonster(target) and isInArray(bosses, getCreatureName(target)) then
        local position = getCreaturePosition(target)
        local name = getCreatureName(target)
        
        local fromPosition = {x = position.x - 1, y = position.y - 1, z = position.z}
        local toPosition = {x = position.x + 1, y = position.y + 1, z = position.z}
        
        addEvent(function()
            local container = getTileItemById(position, getMonsterInfo(name).lookCorpse)
            if container.uid > 0 then
                doSpreadLoot(fromPosition, toPosition, container)
            end
        end, 100)
    end
    return true
end

Tag (não se esqueça de registrar o evento em login.lua):

<event type="kill" name="SpreadLoot" event="script" value="nome_do_arquivo.lua"/>

 

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

não respondo pms solicitando suporte em programação/scripting

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