Ir para conteúdo

Featured Replies

Postado
  • Diretor

Sem tsdfdítulo.png

 

Sistema de Drop Personalizado

 

Esse sistema de loot foi projetado para adicionar um elemento de sorte e surpresa ao derrotar monstros. Sempre que um jogador derrota um monstro, há uma chance configurada para que ele solte entre 1 a 3 itens especiais, garantindo recompensas valiosas ao jogador.

 

O sistema realiza as seguintes ações:

Chance de Drop: A cada morte de um monstro, há uma chance configurada para dropar itens específicos. O sistema permite que sejam dropados entre 1 a 3 unidades do item, tornando o sistema mais dinâmico.

 

Efeito Visual: Quando o loot é bem-sucedido, um efeito visual especial (ID 231) é exibido na posição exata onde o monstro foi derrotado, criando uma animação visual que destaca a recompensa.

 

Notificação ao Jogador: Após o drop, o jogador recebe uma mensagem personalizada informando a quantidade de itens obtidos. Essa notificação aparece após 3 segundos, adicionando uma camada de imersão e evitando sobrecarregar o chat imediatamente após a morte do monstro.

 

*Ótimo para fazer eventos de dropar certo itens para alguma missão ou resgates.

*Uso no meu TIBIA HARRY POTTER ORIGIN

 

VAi em creaturescripts/scripts.lua

local function findCorpse(position)
    for i = 1, 255 do
        position.stackpos = i
        local corpse = getThingfromPos(position)
        if isCorpse(corpse.uid) then
            return corpse.uid
        end
    end
    return false
end


local function dropLoot(position, killer)
    local corpse = findCorpse(position)
    if not corpse then
        return false
    end
    
    local itemId = 2160
    local chance = 23 

    
    if math.random(100) <= chance then
        local amountToDrop = math.random(1, 3)
        doAddContainerItem(corpse, itemId, amountToDrop)

        
        local corpsePosition = getThingPos(corpse)
        doSendMagicEffect(corpsePosition, 7)

        
        local function sendMessage()
            if isPlayer(killer) then
                local message = string.format("Você dropou %d Crystal Coin(s).", amountToDrop)
                doPlayerSendTextMessage(killer, MESSAGE_INFO_DESCR, message)
            end
        end

        
        addEvent(sendMessage, 2500)
    end

    return true
end


function onKill(cid, target)
    local position = getCreaturePosition(target)
    addEvent(dropLoot, 100, position, cid)
    return true
end

 

creaturescripts.xml

<event type="kill" name="GlobalDrops" registerTo ="GlobalDrops" event="script" value="globalDrops.lua"/>  

ou depende do tfs

<event type="kill" name="GlobalDrops" event="script" value="globalDrops.lua"/>  

 

Para ambos TFS registra o evento no login.lua

registerTo ="GlobalDrops"


feito isso.. agora todos os monstros do mapa vai cair os crystal coins de 1 há 3.

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código.  #OpenSource #Programação #Contribuição

 

  • L3K0T mudou o título para System Drop Global - L3K0T TFS 0.4

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