Ir para conteúdo
  • 0

alguem da uma ajuda aqui rapidin


Emooooo

Pergunta

nao estou conseguir deixa que seja exibido apenas uma mensagem de loot quando a criatura morre , gostaria de deixar aparecer apenas a mensagem debaixo e colocar (boosted loot) . usei a I.A para fazer o script e ela nao resolve essa parte

ai como esta sendo exibido.

13:08 Loot of rat: 3 gold coin, (boosted loot)
13:08 Loot of a rat: cheese, 3 gold coins, 3 gold coins.

gostaria que fosse assim.

13:08 Loot of a rat: cheese, 3 gold coins, 3 gold coins. (boosted loot)

Citar

local BOOSTED_MONSTER = 56404
local boostedMonstersList = {"rat"}
local experienceBonus = 8.0

function onDeath(cid, corpse, deathList)
    local master = getCreatureMaster(cid)
    if (master and master ~= cid) then
        return true
    end

    local boostedMonster = boostedMonstersList[getGlobalStorageValue(BOOSTED_MONSTER)]
    if getCreatureName(cid):lower() == boostedMonster then
        -- Inicializa a mensagem de loot
        local lootMessage = "Loot of " .. getCreatureName(cid):lower() .. ": "
        local lootAdded = false

        for i = 1, #deathList do
            -- Experiência bônus
            local bonusExperience = getMonsterInfo(getCreatureName(cid)).experience / i * getPlayerRates(deathList[i])[SKILL__LEVEL] * experienceBonus
            doPlayerAddExperience(deathList[i], bonusExperience)
            doSendAnimatedText(getPlayerPosition(deathList[i]), bonusExperience, 215)

            -- Iteração sobre o loot
            local lootList = getMonsterLootList(getCreatureName(cid))
            for _, loot in pairs(lootList) do
                if loot.count > 1 then
                    local numb = math.random(1, loot.count)
                    doAddContainerItem(corpse.uid, loot.id, numb)
                    if not lootAdded then
                        lootMessage = lootMessage .. numb .. " " .. getItemNameById(loot.id) .. ", "
                        lootAdded = true
                    end
                elseif math.random(1, 100000) <= loot.chance then
                    doAddContainerItem(corpse.uid, loot.id, 1)
                    if not lootAdded then
                        lootMessage = lootMessage .. getItemNameById(loot.id) .. ", "
                        lootAdded = true
                    end
                end
            end
        end

        -- Adiciona "(boosted loot)" ao final da mensagem
        lootMessage = lootMessage .. "(boosted loot)"
        
        -- Envia a mensagem de loot para todos os jogadores
        for i = 1, #deathList do
            doPlayerSendTextMessage(deathList[i], MESSAGE_INFO_DESCR, lootMessage)
        end
    end

    return true
end
 

 

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0
local BOOSTED_MONSTER = 56404
local boostedMonstersList = {"rat"}
local experienceBonus = 8.0

function onDeath(cid, corpse, deathList)
    local master = getCreatureMaster(cid)
    if (master and master ~= cid) then
        return true
    end

    local boostedMonster = boostedMonstersList[getGlobalStorageValue(BOOSTED_MONSTER)]
    if getCreatureName(cid):lower() == boostedMonster then
        -- Inicializa a mensagem de loot
        local lootMessage = "Loot of " .. getCreatureName(cid):lower() .. ": "
        local lootList = getMonsterLootList(getCreatureName(cid))
        local firstLoot = true

        for _, loot in pairs(lootList) do
            if loot.count > 1 then
                local numb = math.random(1, loot.count)
                doAddContainerItem(corpse.uid, loot.id, numb)
                if firstLoot then
                    lootMessage = lootMessage .. numb .. " " .. getItemNameById(loot.id)
                    firstLoot = false
                else
                    lootMessage = lootMessage .. ", " .. numb .. " " .. getItemNameById(loot.id)
                end
            elseif math.random(1, 100000) <= loot.chance then
                doAddContainerItem(corpse.uid, loot.id, 1)
                if firstLoot then
                    lootMessage = lootMessage .. getItemNameById(loot.id)
                    firstLoot = false
                else
                    lootMessage = lootMessage .. ", " .. getItemNameById(loot.id)
                end
            end
        end

        -- Adiciona "(boosted loot)" ao final da mensagem
        lootMessage = lootMessage .. ". (boosted loot)"

        -- Envia a mensagem de loot para todos os jogadores
        for i = 1, #deathList do
            doPlayerSendTextMessage(deathList[i], MESSAGE_INFO_DESCR, lootMessage)
        end
    end

    return true
end

 

Link para o comentário
Compartilhar em outros sites

  • 0
2 horas atrás, El Rusher disse:
local BOOSTED_MONSTER = 56404
local boostedMonstersList = {"rat"}
local experienceBonus = 8.0

function onDeath(cid, corpse, deathList)
    local master = getCreatureMaster(cid)
    if (master and master ~= cid) then
        return true
    end

    local boostedMonster = boostedMonstersList[getGlobalStorageValue(BOOSTED_MONSTER)]
    if getCreatureName(cid):lower() == boostedMonster then
        -- Inicializa a mensagem de loot
        local lootMessage = "Loot of " .. getCreatureName(cid):lower() .. ": "
        local lootList = getMonsterLootList(getCreatureName(cid))
        local firstLoot = true

        for _, loot in pairs(lootList) do
            if loot.count > 1 then
                local numb = math.random(1, loot.count)
                doAddContainerItem(corpse.uid, loot.id, numb)
                if firstLoot then
                    lootMessage = lootMessage .. numb .. " " .. getItemNameById(loot.id)
                    firstLoot = false
                else
                    lootMessage = lootMessage .. ", " .. numb .. " " .. getItemNameById(loot.id)
                end
            elseif math.random(1, 100000) <= loot.chance then
                doAddContainerItem(corpse.uid, loot.id, 1)
                if firstLoot then
                    lootMessage = lootMessage .. getItemNameById(loot.id)
                    firstLoot = false
                else
                    lootMessage = lootMessage .. ", " .. getItemNameById(loot.id)
                end
            end
        end

        -- Adiciona "(boosted loot)" ao final da mensagem
        lootMessage = lootMessage .. ". (boosted loot)"

        -- Envia a mensagem de loot para todos os jogadores
        for i = 1, #deathList do
            doPlayerSendTextMessage(deathList[i], MESSAGE_INFO_DESCR, lootMessage)
        end
    end

    return true
end

 

22:28 Loot of rat: 4 gold coin, cheese. (boosted loot)
22:28 Loot of a rat: cheese, 4 gold coins, cheese, 4 gold coins.  

continua do mesmo jeito.                                    tsf 0.3.6 a versao 

Link para o comentário
Compartilhar em outros sites

  • 0

gostaria que mostrasse a mensagem do loot  assim nesse script com esse (boosted loot) no final do loot da creatura.

imagem

 

local BOOSTED_MONSTER = 56404
local boostedMonstersList = {"rat"}
local experienceBonus = 0.5

function onDeath(cid, corpse, deathList)

local master = getCreatureMaster(cid)
  if (master and master ~= cid) then
    return true
  end

  local boostedMonster = boostedMonstersList[getGlobalStorageValue(BOOSTED_MONSTER)]
    if getCreatureName(cid):lower() == boostedMonster then
    
for i = 1, #deathList do
    
-- exp bonus
    local bonusExperience = getMonsterInfo(getCreatureName(cid)).experience/i * getPlayerRates(deathList[i])[SKILL__LEVEL] * experienceBonus
    doPlayerAddExperience(deathList[i], bonusExperience)
    doSendAnimatedText(getPlayerPosition(deathList[i]), bonusExperience, 215)
    print('boost')
    
-- loot bonus
    local lootList = getMonsterLootList(getCreatureName(cid))
    for i, _ in pairs(lootList) do
        if lootList[i].count > 1 then
            local numb = math.random(1, lootList[i].count)
            doAddContainerItem(corpse.uid, lootList[i].id, numb)
        elseif math.random(1,100000) <= lootList[i].chance then
            doAddContainerItem(corpse.uid, lootList[i].id, 1)
        end
    end
    
end
    
    end
    return true
end

 

Link para o comentário
Compartilhar em outros sites

  • 0
Em 25/12/2024 em 08:42, Emooooo disse:

gostaria que mostrasse a mensagem do loot  assim nesse script com esse (boosted loot) no final do loot da creatura.

imagem

 

local BOOSTED_MONSTER = 56404
local boostedMonstersList = {"rat"}
local experienceBonus = 0.5

function onDeath(cid, corpse, deathList)

local master = getCreatureMaster(cid)
  if (master and master ~= cid) then
    return true
  end

  local boostedMonster = boostedMonstersList[getGlobalStorageValue(BOOSTED_MONSTER)]
    if getCreatureName(cid):lower() == boostedMonster then
    
for i = 1, #deathList do
    
-- exp bonus
    local bonusExperience = getMonsterInfo(getCreatureName(cid)).experience/i * getPlayerRates(deathList[i])[SKILL__LEVEL] * experienceBonus
    doPlayerAddExperience(deathList[i], bonusExperience)
    doSendAnimatedText(getPlayerPosition(deathList[i]), bonusExperience, 215)
    print('boost')
    
-- loot bonus
    local lootList = getMonsterLootList(getCreatureName(cid))
    for i, _ in pairs(lootList) do
        if lootList[i].count > 1 then
            local numb = math.random(1, lootList[i].count)
            doAddContainerItem(corpse.uid, lootList[i].id, numb)
        elseif math.random(1,100000) <= lootList[i].chance then
            doAddContainerItem(corpse.uid, lootList[i].id, 1)
        end
    end
    
end
    
    end
    return true
end

 

qual tfs vc esta usando amigo ? explique melhor tambem é um tipo de mostro especial porque nao vi id de loot ai explique melhor com mais detalhes  como nao entendi bem o que vc falou eu fiz assim testa ai e me fala .

-- Código enviado por extremelordeescanor em 31/12/2024

local BOOSTED_MONSTER = 56404 -- Defina o ID do monstro "boosted" aqui
local boostedMonstersList = {"rat"} -- Lista dos monstros com loot aumentado (modifique conforme necessário)
local experienceBonus = 0.5 -- Bônus de experiência (ajuste o valor conforme desejado)

function onDeath(cid, corpse, deathList)

    -- Verifica se o monstro tem um mestre e impede o processamento se for de outro jogador
    local master = getCreatureMaster(cid)
    if (master and master ~= cid) then
        return true -- Não faz nada se a criatura tiver um mestre
    end

    -- Verifica se o monstro é o "boosted" e se está na lista
    local boostedMonster = boostedMonstersList[getGlobalStorageValue(BOOSTED_MONSTER)]
    if getCreatureName(cid):lower() == boostedMonster then

        for i = 1, #deathList do

            -- Cálculo do bônus de experiência baseado no monstro e nas taxas do jogador
            local bonusExperience = getMonsterInfo(getCreatureName(cid)).experience / i * getPlayerRates(deathList[i])[SKILL__LEVEL] * experienceBonus
            doPlayerAddExperience(deathList[i], bonusExperience) -- Adiciona a experiência ao jogador
            doSendAnimatedText(getPlayerPosition(deathList[i]), bonusExperience, 215) -- Exibe texto animado com a quantidade de experiência
            print('boost') -- Mensagem no console para debug

            -- Adiciona o loot boostado ao corpo da criatura
            local lootList = getMonsterLootList(getCreatureName(cid))
            for i, _ in pairs(lootList) do
                if lootList[i].count > 1 then
                    local numb = math.random(1, lootList[i].count)
                    doAddContainerItem(corpse.uid, lootList[i].id, numb) -- Adiciona a quantidade de itens ao corpo
                elseif math.random(1, 100000) <= lootList[i].chance then
                    doAddContainerItem(corpse.uid, lootList[i].id, 1) -- Adiciona item ao corpo baseado na chance
                end
            end

            -- Envia uma mensagem para o jogador sobre o "boosted loot"
            -- Você pode personalizar o texto da mensagem abaixo:
            doPlayerSendTextMessage(deathList[i], MESSAGE_INFO_DESCR, "You have received boosted loot!") 
            -- Aqui é onde você pode alterar o texto da mensagem. Por exemplo:
            -- "Você recebeu um loot aumentado!" (para português)

            -- Envia um efeito visual para indicar que o loot foi boostado
            doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS) -- Efeito visual

        end

    end
    return true
end
 

Link para o comentário
Compartilhar em outros sites

  • 0
5 horas atrás, ianvi disse:

qual tfs vc esta usando amigo ? explique melhor tambem é um tipo de mostro especial porque nao vi id de loot ai explique melhor com mais detalhes  como nao entendi bem o que vc falou eu fiz assim testa ai e me fala .

-- Código enviado por extremelordeescanor em 31/12/2024

local BOOSTED_MONSTER = 56404 -- Defina o ID do monstro "boosted" aqui
local boostedMonstersList = {"rat"} -- Lista dos monstros com loot aumentado (modifique conforme necessário)
local experienceBonus = 0.5 -- Bônus de experiência (ajuste o valor conforme desejado)

function onDeath(cid, corpse, deathList)

    -- Verifica se o monstro tem um mestre e impede o processamento se for de outro jogador
    local master = getCreatureMaster(cid)
    if (master and master ~= cid) then
        return true -- Não faz nada se a criatura tiver um mestre
    end

    -- Verifica se o monstro é o "boosted" e se está na lista
    local boostedMonster = boostedMonstersList[getGlobalStorageValue(BOOSTED_MONSTER)]
    if getCreatureName(cid):lower() == boostedMonster then

        for i = 1, #deathList do

            -- Cálculo do bônus de experiência baseado no monstro e nas taxas do jogador
            local bonusExperience = getMonsterInfo(getCreatureName(cid)).experience / i * getPlayerRates(deathList[i])[SKILL__LEVEL] * experienceBonus
            doPlayerAddExperience(deathList[i], bonusExperience) -- Adiciona a experiência ao jogador
            doSendAnimatedText(getPlayerPosition(deathList[i]), bonusExperience, 215) -- Exibe texto animado com a quantidade de experiência
            print('boost') -- Mensagem no console para debug

            -- Adiciona o loot boostado ao corpo da criatura
            local lootList = getMonsterLootList(getCreatureName(cid))
            for i, _ in pairs(lootList) do
                if lootList[i].count > 1 then
                    local numb = math.random(1, lootList[i].count)
                    doAddContainerItem(corpse.uid, lootList[i].id, numb) -- Adiciona a quantidade de itens ao corpo
                elseif math.random(1, 100000) <= lootList[i].chance then
                    doAddContainerItem(corpse.uid, lootList[i].id, 1) -- Adiciona item ao corpo baseado na chance
                end
            end

            -- Envia uma mensagem para o jogador sobre o "boosted loot"
            -- Você pode personalizar o texto da mensagem abaixo:
            doPlayerSendTextMessage(deathList[i], MESSAGE_INFO_DESCR, "You have received boosted loot!") 
            -- Aqui é onde você pode alterar o texto da mensagem. Por exemplo:
            -- "Você recebeu um loot aumentado!" (para português)

            -- Envia um efeito visual para indicar que o loot foi boostado
            doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS) -- Efeito visual

        end

    end
    return true
end
 

era pro tfs 0.3.6 ,quando mata o mostro era para mostra a mensagem : Loot of an orc shaman: a corncob, 8 gold coins (boosted loot).           com esse (boosted loot) no final do loot , mas usei a inteligencia artificial e ele fazia aparece 2 mensagem de loot a do monstro boostado e da loot normal e so a do loot normal ficava com a mensagem de (boosted loot).   Loot of an orc shaman: a corncob (boosted loot).  Loot of an orc shaman: a 2 corncob, 8 gold coins, 15 gold coins 

Link para o comentário
Compartilhar em outros sites

  • 0
8 horas atrás, Emooooo disse:

era pro tfs 0.3.6 ,quando mata o mostro era para mostra a mensagem : Loot of an orc shaman: a corncob, 8 gold coins (boosted loot).           com esse (boosted loot) no final do loot , mas usei a inteligencia artificial e ele fazia aparece 2 mensagem de loot a do monstro boostado e da loot normal e so a do loot normal ficava com a mensagem de (boosted loot).   Loot of an orc shaman: a corncob (boosted loot).  Loot of an orc shaman: a 2 corncob, 8 gold coins, 15 gold coins 

tenta assim agora 

-- Código enviado por extremelordeescanor em 01/01/2025

local BOOSTED_MONSTER = 56404 -- Defina o ID do monstro "boosted" aqui
local boostedMonstersList = {"orc shaman"} -- Lista dos monstros com loot aumentado (modifique conforme necessário)

function onDeath(cid, corpse, deathList)
    -- Verifica se o monstro é o "boosted"
    local boostedMonster = boostedMonstersList[getGlobalStorageValue(BOOSTED_MONSTER)]
    if getCreatureName(cid):lower() == boostedMonster then
        
        local lootDescription = "Loot of " .. getCreatureName(cid):lower() .. ": "
        local lootAdded = false -- Flag para verificar se algo foi adicionado

        -- Gera o loot boostado
        local lootList = getMonsterLootList(getCreatureName(cid))
        for i, loot in pairs(lootList) do
            local count = loot.count > 1 and math.random(1, loot.count) or 1
            if math.random(1, 100000) <= loot.chance then
                doAddContainerItem(corpse.uid, loot.id, count) -- Adiciona o loot ao corpo
                lootDescription = lootDescription .. (count > 1 and count .. " " or "") .. getItemNameById(loot.id) .. ", " -- Adiciona ao texto
                lootAdded = true
            end
        end

        -- Remove a vírgula final e adiciona "(boosted loot)" se houver loot
        if lootAdded then
            lootDescription = lootDescription:sub(1, -3) .. " (boosted loot)."
        else
            lootDescription = lootDescription .. "nothing (boosted loot)."
        end

        -- Envia a mensagem para os jogadores que mataram o monstro
        for i = 1, #deathList do
            doPlayerSendTextMessage(deathList[i], MESSAGE_INFO_DESCR, lootDescription)
        end

        return false -- Impede que a mensagem padrão de loot seja exibida
    end

    return true -- Processa normalmente para monstros não boostados
end
 

Link para o comentário
Compartilhar em outros sites

  • 0
51 minutos atrás, ianvi disse:

tenta assim agora 

-- Código enviado por extremelordeescanor em 01/01/2025

local BOOSTED_MONSTER = 56404 -- Defina o ID do monstro "boosted" aqui
local boostedMonstersList = {"orc shaman"} -- Lista dos monstros com loot aumentado (modifique conforme necessário)

function onDeath(cid, corpse, deathList)
    -- Verifica se o monstro é o "boosted"
    local boostedMonster = boostedMonstersList[getGlobalStorageValue(BOOSTED_MONSTER)]
    if getCreatureName(cid):lower() == boostedMonster then
        
        local lootDescription = "Loot of " .. getCreatureName(cid):lower() .. ": "
        local lootAdded = false -- Flag para verificar se algo foi adicionado

        -- Gera o loot boostado
        local lootList = getMonsterLootList(getCreatureName(cid))
        for i, loot in pairs(lootList) do
            local count = loot.count > 1 and math.random(1, loot.count) or 1
            if math.random(1, 100000) <= loot.chance then
                doAddContainerItem(corpse.uid, loot.id, count) -- Adiciona o loot ao corpo
                lootDescription = lootDescription .. (count > 1 and count .. " " or "") .. getItemNameById(loot.id) .. ", " -- Adiciona ao texto
                lootAdded = true
            end
        end

        -- Remove a vírgula final e adiciona "(boosted loot)" se houver loot
        if lootAdded then
            lootDescription = lootDescription:sub(1, -3) .. " (boosted loot)."
        else
            lootDescription = lootDescription .. "nothing (boosted loot)."
        end

        -- Envia a mensagem para os jogadores que mataram o monstro
        for i = 1, #deathList do
            doPlayerSendTextMessage(deathList[i], MESSAGE_INFO_DESCR, lootDescription)
        end

        return false -- Impede que a mensagem padrão de loot seja exibida
    end

    return true -- Processa normalmente para monstros não boostados
end
 

matei o monstro boostado que era o goblin assassin, apareceu a mensagem do loot boost . mas o corpo sumia e nao dava o bosster no loot 

Sem títulodddd.png

Link para o comentário
Compartilhar em outros sites

  • 0
7 horas atrás, Emooooo disse:

matei o monstro boostado que era o goblin assassin, apareceu a mensagem do loot boost . mas o corpo sumia e nao dava o bosster no loot 

Sem títulodddd.png

to começando intender  precisa ver como esta o sistema de corpo essas coisas mas eu acho que para vc n ter tanto trabalho compensa criar um monstro novo com nome boosted e loots com esse tipo de nome 

 

Link para o comentário
Compartilhar em outros sites

  • 0
2 horas atrás, ianvi disse:

to começando intender  precisa ver como esta o sistema de corpo essas coisas mas eu acho que para vc n ter tanto trabalho compensa criar um monstro novo com nome boosted e loots com esse tipo de nome 

 

um cara falou no outro forum que teria que mecher numa pasta que nao tem nesse tfs , ai nem mudei deixei como tava o script mesmo , sem a mudança no loot.

Link para o comentário
Compartilhar em outros sites

  • 0
Em 01/01/2025 em 17:25, Emooooo disse:

um cara falou no outro forum que teria que mecher numa pasta que nao tem nesse tfs , ai nem mudei deixei como tava o script mesmo , sem a mudança no loot.

teria que mexer na source exatamente isso 

Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...