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

4 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

acho que nao compreendi direito oq vc quer que aconteceça, poderia explicar melhor por gentileza

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

  • Quem Está Navegando   0 membros estão online

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