Ir para conteúdo
Propaganda

Kill Drop Automatic


Posts Recomendados

OPA GALERINHA HOJE TRAGO AQUI UM SISTEMA DE KILL DROP, ELE FUNCIONA ASSIM: VOCE COLOCA NO CODIGO O ITEM QUE VC DESEJA, E O EFEITO.

 


local itens = {
    -- Cada item tem um id, um efeito e uma mensagem
    {id = 12162, efeito = 173, mensagem = "DROP ESPECIAL."},
    {id = 12161, efeito = 173, mensagem = "Você usou uma pedra vermelha."},
    {id = 1002, efeito = 173, mensagem = "Você usou uma pedra verde."},
    {id = 1003, efeito = 173, mensagem = "Você usou uma pedra amarela."}
}


local function isDrop(itemid)
    for i, item in ipairs(itens) do
        if item.id == itemid then
            return true
        end
    end
    return false
end

local function getEffectAndMessage(itemid)
    for i, item in ipairs(itens) do
        if item.id == itemid then
            return item.efeito, item.mensagem
        end
    end
    return nil
end

local function sendTimedAnimatedText(cid, pos, text, color, duration)
    if not isCreature(cid) then
        return true
    end
    local ticks = duration / 1000 
    local interval = 1 
    local totalTicks = ticks / interval
    local currentTick = 0

    local function sendText()
        if currentTick >= totalTicks then
            return
        end
        currentTick = currentTick + 1
        doSendAnimatedText(pos, text, color)
        addEvent(sendText, interval * 1000) 
    end

    sendText()
end

local function sendTimedMagicEffect(pos, effect, duration)
    if not pos or not effect then
        return
    end
    doSendMagicEffect(pos, effect)
    addEvent(doSendMagicEffect, duration, pos, CONST_ME_NONE)
end

local function useItem(cid, position, corpseid)
    if not isCreature(cid) then
        return true
    end
    local corpse = getTileItemById(position, corpseid).uid
    if corpse <= 1 or not isContainer(corpse) then
        return true
    end
    local player = getCreatureMaster(cid)
    if not isPlayer(player) then
        return true
    end
    local itemsToAdd = {}
    local itemsToRemove = {} 
    for slot = 0, (getContainerSize(corpse) - 1) do
        local item = getContainerItem(corpse, slot)
        if item.uid > 1 then
            if isDrop(item.itemid) then
                local effect, message = getEffectAndMessage(item.itemid)
                table.insert(itemsToAdd, {itemid = item.itemid, count = item.type})
                sendTimedMagicEffect(position, effect, 10000) 
                sendTimedAnimatedText(position, message, math.random(150, 190), 10000) 
                table.insert(itemsToRemove, item.uid)
            end
        end
    end
   
    for _, uid in ipairs(itemsToRemove) do
        doRemoveItem(uid)
    end
    
    for _, itemData in ipairs(itemsToAdd) do
        doPlayerAddItem(player, itemData.itemid, itemData.count)
    end
end


function onKill(cid, target, lastHit)
    if not ehMonstro(target) then
        return true
    end
    local corpse = getMonsterInfo(getCreatureName(target)).lookCorpse
    addEvent(useItem, 5, getCreatureSummons(cid)[1], getThingPos(target), corpse)
    return true
end

registra isso no login.lua \/
registerCreatureEvent(cid, "killdrop")

isso no creaturescript.lua
<event type="kill" name="killdrop" event="script" value="killdrop.lua"/>

APÓS REGISTRADO E CONFIGURADO O SCRIPT FUNCIONARA DA SEGUINTE FORMA:
SEMPRE QUE UM DESSES ITENS CAIR DO CORPO DO POKEMON ELES IRAO AUTOMATICO PARA A BAG DO PLAYER

CASO QUEIRAM TESTAR FIQUEM A VONTADE, JA FIZ TESTE PELO /M E O LOOT VAI PRA QUEM INVOCO NO CASO EU, E FIZ NA PESCA COM PLAYER O OUTRO PLAYER MATO MAIS NAO OBTEVE O LOOT, E SIM EU, POIS FOI EU QUE O SCRIPT MARCO COMO ALVO.

 

Link para o comentário
Compartilhar em outros sites

  • Moderador

Tópico Aprovado!
Somos gratos por sua contribuição, com certeza será útil para toda a comunidade! ❤️  RE
P+

muito bom Kevin.

Link para o comentário
Compartilhar em outros sites

Participe da Conversa

Você pode postar agora e se cadastrar mais tarde. Cadastre-se Agora para publicar com Sua Conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.

×
  • Criar Novo...