Ir para conteúdo
  • Cadastre-se

Error script boss


Ir para solução Resolvido por Imperius,

Posts Recomendados

Estou tentando usar esse cript de boss, porem da esse error, alguem podeira me ajudar a fazer funcionar pf ?
TFS 0.4 8.60

 

Citar

local config = {
    monster = {"Boss"}, -- nome dos monstros, separados por vírgulas.
    items = {
        {itemID = 9693, chance = 10}, -- item [1] -- 10% de chance
        {itemID = 9971, chance = 5},  -- item [2] -- 5% de chance
        -- Adicione o resto dos itens aqui
    },
    effect = 27, -- efeito ao matar o monstro.
}

function onKill(cid, target)
    if isInArray(config.monster, getCreatureName(target)) then
        local player = Player(cid)
        if player then
            local droppedItem = false
            for _, itemData in ipairs(config.items) do
                if math.random(100) <= itemData.chance then
                    player:addItem(itemData.itemID, 1)
                    droppedItem = true
                    break -- Se um item cair, saia do loop.
                end
            end

            if droppedItem then
                doBroadcastMessage("O Boss morreu e você obteve um item!", MESSAGE_STATUS_WARNING)
            else
                doBroadcastMessage("O Boss morreu, mas você não obteve nenhum item.", MESSAGE_STATUS_WARNING)
            end

            doSendMagicEffect(getThingPos(cid), config.effect)
        end
    end
    return true
end



ERROR:
 

Citar

[13:43:25.786] [Error - CreatureScript Interface]
[13:43:25.787] data/creaturescripts/scripts/premio_boss.lua:onKill
[13:43:25.788] Description:
[13:43:25.789] data/creaturescripts/scripts/premio_boss.lua:18: attempt to index global 'getPlayerIp' (a function value)

 

Link para o post
Compartilhar em outros sites

Que diabos? Este script foi feito para o TFS 1.x, não para o TFS 0.4.

Vamos verificar se o script foi feito para o TFS 1.x ou 0.4. Preste atenção aqui.

 

TFS 1.X.

  local player = Player(cid)

player:addItem(itemData.itemID, 1)

 

TFS 0.4.

 doPlayerAddItem(cid, itemData.itemID, 1)

 

o resto é quase igual.

 

o script pronto aqui..

local config = {
    monster = {"Boss"}, -- nome dos monstros, separados por vírgulas.
    items = {
        {itemID = 9693, chance = 10}, -- item [1] -- 10% de chance
        {itemID = 9971, chance = 5},  -- item [2] -- 5% de chance
        -- Adicione o resto dos itens aqui
    },
    effect = 27, -- efeito ao matar o monstro.
}

function onKill(cid, target)
    if isInArray(config.monster, getCreatureName(target)) then
        if isPlayer(target) then
            local droppedItem = false
            for _, itemData in ipairs(config.items) do
                if math.random(100) <= itemData.chance then
                    doPlayerAddItem(cid, itemData.itemID, 1)
                    droppedItem = true
                    break -- Se um item cair, saia do loop.
                end
            end

            if droppedItem then
                doBroadcastMessage("O Boss morreu e você obteve um item!", MESSAGE_STATUS_WARNING)
            else
                doBroadcastMessage("O Boss morreu, mas você não obteve nenhum item.", MESSAGE_STATUS_WARNING)
            end

            doSendMagicEffect(getThingPos(cid), config.effect)
        end
    end
    return true
end

 

Link para o post
Compartilhar em outros sites

Entao amigo, eu pedir para um cara complementar a parte de da so 1 item e para ter chance de qual item o player iria ganhar, porem eles fez dessa forma ai e nao funcionou, e ele desapareceu. E como voce disse ai ta pra tfs x. e o meu e 0.4. Acho q ele se passou =[

o script de verdade é esse aqui. q ele modificou para esse q postei antes. Se voce manja, teria como da essa força namoral ?
pra funcionar na tfs 0.4

 

Citar

local config = {
monster = {"Boss Hits"}, -- nome dos monstros, separado por vírgulas.
item = {[1] = 9693, [2] = 9971, [3] = 7440, [4] = 8300, [5] = 12289,}, -- [um numero maior que o anterior] = ID do item1, ID do item2, ID do item3...
qnt = {[1] = 1, [2] = 100, [3] = 1, [4] = 1, [5] = 1,}, -- [um numero maior que o anterior] = quantidade do item1, quantidade do item2, quantidade do item3...
effect = 27, -- efeito ao matar o monstro.
}

function onKill(cid, target)
    if isInArray(config.monster, getCreatureName(target)) then
        for i = 1, #config.item do
            doPlayerAddItem (cid, config.item[i], config.qnt[i])
            local players = getPlayersOnline()
    if #players > 0 then
        local t,v = {},{}
        for _, pid in pairs(players) do
            if not isInArray(t, getPlayerIp(pid)) then 
                t[#t+1] = getPlayerIp(pid)
                v[#v+1] = pid
            end
        end
        end
        end
        doSendMagicEffect (getThingPos (cid), config.effect)
    end
return true
end

 

Link para o post
Compartilhar em outros sites
function onKill(player, target)
    if isPlayer(target) and isMonster(target) then
        local bossName = getCreatureName(target)
        local chanceToDropItem = math.random(1, 100) -- Gera um número aleatório entre 1 e 100
        
        if bossName == "Boss Hits" then
            if chanceToDropItem <= 50 then -- 50% de chance de receber um item
                local itemsToDrop = {
                    1234, -- ID do primeiro item
                    5678, -- ID do segundo item
                    91011 -- ID do terceiro item, e assim por diante
                }
                
                local randomItemID = itemsToDrop[math.random(1, #itemsToDrop)] 
                
                local newItem = doCreateItem(randomItemID, 1)
                if newItem then
                    doPlayerAddItem(player, newItem)
                    doPlayerSendTextMessage(player, MESSAGE_EVENT_DEFAULT, "Você recebeu um item raro como recompensa por derrotar o Boss!")
                end
            else
                doPlayerSendTextMessage(player, MESSAGE_EVENT_DEFAULT, "Você não recebeu nenhum item como recompensa por derrotar o Boss.")
            end
        end
    end
end

tentar!

Link para o post
Compartilhar em outros sites
3 minutos atrás, GM Vortex disse:

function onKill(player, target)
    if isPlayer(target) and isMonster(target) then
        local bossName = getCreatureName(target)
        local chanceToDropItem = math.random(1, 100) -- Gera um número aleatório entre 1 e 100
        
        if bossName == "Boss Hits" then
            if chanceToDropItem <= 50 then -- 50% de chance de receber um item
                local itemsToDrop = {
                    1234, -- ID do primeiro item
                    5678, -- ID do segundo item
                    91011 -- ID do terceiro item, e assim por diante
                }
                
                local randomItemID = itemsToDrop[math.random(1, #itemsToDrop)] 
                
                local newItem = doCreateItem(randomItemID, 1)
                if newItem then
                    doPlayerAddItem(player, newItem)
                    doPlayerSendTextMessage(player, MESSAGE_EVENT_DEFAULT, "Você recebeu um item raro como recompensa por derrotar o Boss!")
                end
            else
                doPlayerSendTextMessage(player, MESSAGE_EVENT_DEFAULT, "Você não recebeu nenhum item como recompensa por derrotar o Boss.")
            end
        end
    end
end

tentar!

Sem nenhum error no console, porem o monstro n morre e nao ganha o item.

Link para o post
Compartilhar em outros sites
function onKill(player, target)
    if isMonster(target) then
        local bossName = getCreatureName(target)
        print("Nome do Boss: " .. bossName) 

        if bossName == "Boss Hits" then
            local chanceToDropItem = math.random(1, 100)
            print("Chance de drop: " .. chanceToDropItem)

            if chanceToDropItem <= 50 then
                local itemsToDrop = {
                    1234,
                    5678, 
                    91011 
                }
                
                local randomItemID = itemsToDrop[math.random(1, #itemsToDrop)] 
                local newItem = doCreateItem(randomItemID, 1)

                if newItem then
                    doPlayerAddItem(player, newItem)
                    doSendMagicEffect(getCreaturePosition(player), CONST_ME_MAGIC_RED)
                    doPlayerSendTextMessage(player, MESSAGE_EVENT_DEFAULT, "Você recebeu um item raro como recompensa por derrotar o Boss!")
                    print("Item dropado: " .. randomItemID) 
                end
            else
                doPlayerSendTextMessage(player, MESSAGE_EVENT_DEFAULT, "Você não recebeu nenhum item como recompensa por derrotar o Boss.")
            end
        else
            print("Boss não encontrado no banco de dados ou não é 'Boss Hits'.")
        end
    end
end

Tirei a função isPlayer, mantendo apenas isMonster. Também adicionei um print para fins de depuração e ele será enviado para o seu console. Assim, será possível identificar onde está o erro. Isso ajudará a entender, e poderei corrigi-lo na próxima etapa. Por favor, faça o teste e me envie o console. O que for indicado no print sobre se foi encontrado ou não, etc

Link para o post
Compartilhar em outros sites
8 minutos atrás, GM Vortex disse:


function onKill(player, target)
    if isMonster(target) then
        local bossName = getCreatureName(target)
        print("Nome do Boss: " .. bossName) 

        if bossName == "Boss Hits" then
            local chanceToDropItem = math.random(1, 100)
            print("Chance de drop: " .. chanceToDropItem)

            if chanceToDropItem <= 50 then
                local itemsToDrop = {
                    1234,
                    5678, 
                    91011 
                }
                
                local randomItemID = itemsToDrop[math.random(1, #itemsToDrop)] 
                local newItem = doCreateItem(randomItemID, 1)

                if newItem then
                    doPlayerAddItem(player, newItem)
                    doSendMagicEffect(getCreaturePosition(player), CONST_ME_MAGIC_RED)
                    doPlayerSendTextMessage(player, MESSAGE_EVENT_DEFAULT, "Você recebeu um item raro como recompensa por derrotar o Boss!")
                    print("Item dropado: " .. randomItemID) 
                end
            else
                doPlayerSendTextMessage(player, MESSAGE_EVENT_DEFAULT, "Você não recebeu nenhum item como recompensa por derrotar o Boss.")
            end
        else
            print("Boss não encontrado no banco de dados ou não é 'Boss Hits'.")
        end
    end
end

Tirei a função isPlayer, mantendo apenas isMonster. Também adicionei um print para fins de depuração e ele será enviado para o seu console. Assim, será possível identificar onde está o erro. Isso ajudará a entender, e poderei corrigi-lo na próxima etapa. Por favor, faça o teste e me envie o console. O que for indicado no print sobre se foi encontrado ou não, etc

n morre e ficou isso no console sem parar...
 

sadsadsadsa.png

3 minutos atrás, Doidodepeda disse:

n morre e ficou isso no console sem parar...
 

sadsadsadsa.png

 

dddddddddd.png

 

Irmão, n querendo encomodar... mas se tu souber bolar um script que funfe no 0.4, eu so faço questo do script entregar 1 item e com %

tipo...
matou o boss ganha 1 item
[item] 8300 - [porcentagem] 10% de vim esse item

[item] 8301 - [porcentagem] 20% de vim esse item

[item] 8302 - [porcentagem] 30% de vim esse item

[item] 8303 - [porcentagem] 40% de vim esse item

Editado por Doidodepeda (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
local config = {
    NameBoss = "Boss Hits",
    rewardItem1 = {itemID = 8300, chance = 10}, -- 10% de chance de vim esse item
    rewardItem2 = {itemID = 8301, chance = 20}, -- 20% de chance de vim esse item
    rewardItem3 = {itemID = 8302, chance = 30}, -- 30% de chance de vim esse item
    rewardItem4 = {itemID = 8303, chance = 40}, -- 40% de chance de vim esse item
    effect = CONST_ME_MAGIC_RED
}

function onDeath(cid, corpse, deathList)
    local bossName = getCreatureName(cid)

    if bossName == config.NameBoss then
        local chanceToDropItem = math.random(1, 100)
        print("Chance de drop: " .. chanceToDropItem)

        local rewardItemID = nil

        if chanceToDropItem <= config.rewardItem1.chance then
            rewardItemID = config.rewardItem1.itemID
        elseif chanceToDropItem <= config.rewardItem1.chance + config.rewardItem2.chance then
            rewardItemID = config.rewardItem2.itemID
        elseif chanceToDropItem <= config.rewardItem1.chance + config.rewardItem2.chance + config.rewardItem3.chance then
            rewardItemID = config.rewardItem3.itemID
        elseif chanceToDropItem <= config.rewardItem1.chance + config.rewardItem2.chance + config.rewardItem3.chance + config.rewardItem4.chance then
            rewardItemID = config.rewardItem4.itemID
        end

        if rewardItemID then
            doPlayerAddItemEx(deathList[1], rewardItemID, 1)
            doSendMagicEffect(getCreaturePosition(deathList[1]), config.effect)
            doPlayerSendTextMessage(deathList[1], MESSAGE_EVENT_DEFAULT, "Você recebeu um item raro como recompensa por derrotar o Boss!")
            print("Item dropado: " .. rewardItemID)
        else
            doPlayerSendTextMessage(deathList[1], MESSAGE_EVENT_DEFAULT, "Você não recebeu nenhum item como recompensa por derrotar o Boss.")
        end
    end
end

Deve registrar no monstro. Procure por esta linha </monster> antes do final e adicione. Por exemplo, assim aqui

 

<script>
<event name="Boss Hits"/>

</script>
</monster>

ou aqui funçao onKill..

local config = {
    NameBoss = "Boss Hits",
    rewardItem1 = {itemID = 8300, chance = 10}, -- 10% de chance de vim esse item
    rewardItem2 = {itemID = 8301, chance = 20}, -- 20% de chance de vim esse item
    rewardItem3 = {itemID = 8302, chance = 30}, -- 30% de chance de vim esse item
    rewardItem4 = {itemID = 8303, chance = 40}, -- 40% de chance de vim esse item
    effect = CONST_ME_MAGIC_RED
}

function onKill(cid, target)
    if isMonster(target) then
        local bossName = getCreatureName(target)
        print("Nome do Boss: " .. bossName) 

        if bossName == config.NameBoss then
            local chanceToDropItem = math.random(1, 100)
            print("Chance de drop: " .. chanceToDropItem)

            local rewardItemID = nil

            if chanceToDropItem <= config.rewardItem1.chance then
                rewardItemID = config.rewardItem1.itemID
            elseif chanceToDropItem <= config.rewardItem1.chance + config.rewardItem2.chance then
                rewardItemID = config.rewardItem2.itemID
            elseif chanceToDropItem <= config.rewardItem1.chance + config.rewardItem2.chance + config.rewardItem3.chance then
                rewardItemID = config.rewardItem3.itemID
            elseif chanceToDropItem <= config.rewardItem1.chance + config.rewardItem2.chance + config.rewardItem3.chance + config.rewardItem4.chance then
                rewardItemID = config.rewardItem4.itemID
            end

            if rewardItemID then
                doPlayerAddItemEx(cid, rewardItemID, 1)
                doSendMagicEffect(getCreaturePosition(cid), config.effect)
                doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você recebeu um item raro como recompensa por derrotar o Boss!")
                print("Item dropado: " .. rewardItemID)
            else
                doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você não recebeu nenhum item como recompensa por derrotar o Boss.")
            end
        else
            print("Boss não encontrado no banco de dados ou não é 'Boss Hits'.")
        end
    end
end

 

Editado por GM Vortex (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
17 minutos atrás, GM Vortex disse:

local config = {
    NameBoss = "Boss Hits",
    rewardItem1 = {itemID = 8300, chance = 10}, -- 10% de chance de vim esse item
    rewardItem2 = {itemID = 8301, chance = 20}, -- 20% de chance de vim esse item
    rewardItem3 = {itemID = 8302, chance = 30}, -- 30% de chance de vim esse item
    rewardItem4 = {itemID = 8303, chance = 40}, -- 40% de chance de vim esse item
    effect = CONST_ME_MAGIC_RED
}

function onDeath(cid, corpse, deathList)
    local bossName = getCreatureName(cid)

    if bossName == config.NameBoss then
        local chanceToDropItem = math.random(1, 100)
        print("Chance de drop: " .. chanceToDropItem)

        local rewardItemID = nil

        if chanceToDropItem <= config.rewardItem1.chance then
            rewardItemID = config.rewardItem1.itemID
        elseif chanceToDropItem <= config.rewardItem1.chance + config.rewardItem2.chance then
            rewardItemID = config.rewardItem2.itemID
        elseif chanceToDropItem <= config.rewardItem1.chance + config.rewardItem2.chance + config.rewardItem3.chance then
            rewardItemID = config.rewardItem3.itemID
        elseif chanceToDropItem <= config.rewardItem1.chance + config.rewardItem2.chance + config.rewardItem3.chance + config.rewardItem4.chance then
            rewardItemID = config.rewardItem4.itemID
        end

        if rewardItemID then
            doPlayerAddItemEx(deathList[1], rewardItemID, 1)
            doSendMagicEffect(getCreaturePosition(deathList[1]), config.effect)
            doPlayerSendTextMessage(deathList[1], MESSAGE_EVENT_DEFAULT, "Você recebeu um item raro como recompensa por derrotar o Boss!")
            print("Item dropado: " .. rewardItemID)
        else
            doPlayerSendTextMessage(deathList[1], MESSAGE_EVENT_DEFAULT, "Você não recebeu nenhum item como recompensa por derrotar o Boss.")
        end
    end
end

Deve registrar no monstro. Procure por esta linha </monster> antes do final e adicione. Por exemplo, assim aqui

 

<script>
<event name="Kronos"/>
</script>
</monster>

ou aqui funçao onKill..


local config = {
    NameBoss = "Boss Hits",
    rewardItem1 = {itemID = 8300, chance = 10}, -- 10% de chance de vim esse item
    rewardItem2 = {itemID = 8301, chance = 20}, -- 20% de chance de vim esse item
    rewardItem3 = {itemID = 8302, chance = 30}, -- 30% de chance de vim esse item
    rewardItem4 = {itemID = 8303, chance = 40}, -- 40% de chance de vim esse item
    effect = CONST_ME_MAGIC_RED
}

function onKill(cid, target)
    if isMonster(target) then
        local bossName = getCreatureName(target)
        print("Nome do Boss: " .. bossName) 

        if bossName == config.NameBoss then
            local chanceToDropItem = math.random(1, 100)
            print("Chance de drop: " .. chanceToDropItem)

            local rewardItemID = nil

            if chanceToDropItem <= config.rewardItem1.chance then
                rewardItemID = config.rewardItem1.itemID
            elseif chanceToDropItem <= config.rewardItem1.chance + config.rewardItem2.chance then
                rewardItemID = config.rewardItem2.itemID
            elseif chanceToDropItem <= config.rewardItem1.chance + config.rewardItem2.chance + config.rewardItem3.chance then
                rewardItemID = config.rewardItem3.itemID
            elseif chanceToDropItem <= config.rewardItem1.chance + config.rewardItem2.chance + config.rewardItem3.chance + config.rewardItem4.chance then
                rewardItemID = config.rewardItem4.itemID
            end

            if rewardItemID then
                doPlayerAddItemEx(cid, rewardItemID, 1)
                doSendMagicEffect(getCreaturePosition(cid), config.effect)
                doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você recebeu um item raro como recompensa por derrotar o Boss!")
                print("Item dropado: " .. rewardItemID)
            else
                doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você não recebeu nenhum item como recompensa por derrotar o Boss.")
            end
        else
            print("Boss não encontrado no banco de dados ou não é 'Boss Hits'.")
        end
    end
end

 

error na onkill =[

 

error.png

Link para o post
Compartilhar em outros sites

tentou onDeath?

local config = {
    NameBoss = "Boss Hits",
    rewardItem1 = {itemID = 8300, chance = 10}, -- 10% de chance de vim esse item
    rewardItem2 = {itemID = 8301, chance = 20}, -- 20% de chance de vim esse item
    rewardItem3 = {itemID = 8302, chance = 30}, -- 30% de chance de vim esse item
    rewardItem4 = {itemID = 8303, chance = 40}, -- 40% de chance de vim esse item
    effect = CONST_ME_MAGIC_RED
}

function onKill(cid, target)
    if isMonster(target) then
        local bossName = getCreatureName(target)
        print("Nome do Boss: " .. bossName) 

        if bossName == config.NameBoss then
            local chanceToDropItem = math.random(1, 100)
            print("Chance de drop: " .. chanceToDropItem)

            local rewardItemID = nil

            if chanceToDropItem <= config.rewardItem1.chance then
                rewardItemID = config.rewardItem1.itemID
            elseif chanceToDropItem <= config.rewardItem1.chance + config.rewardItem2.chance then
                rewardItemID = config.rewardItem2.itemID
            elseif chanceToDropItem <= config.rewardItem1.chance + config.rewardItem2.chance + config.rewardItem3.chance then
                rewardItemID = config.rewardItem3.itemID
            elseif chanceToDropItem <= config.rewardItem1.chance + config.rewardItem2.chance + config.rewardItem3.chance + config.rewardItem4.chance then
                rewardItemID = config.rewardItem4.itemID
            end

            if rewardItemID then
                doPlayerAddItemEx(cid, rewardItemID, 1)
                doSendMagicEffect(getCreaturePosition(cid), config.effect)
                doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você recebeu um item raro como recompensa por derrotar o Boss!")
                print("Item dropado: " .. rewardItemID)
            else
                doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você não recebeu nenhum item como recompensa por derrotar o Boss.")
            end
        else
            print("Boss não encontrado no banco de dados ou não é 'Boss Hits'.")
        end
    end
end

 

Link para o post
Compartilhar em outros sites
19 minutos atrás, GM Vortex disse:

tentou onDeath?


local config = {
    NameBoss = "Boss Hits",
    rewardItem1 = {itemID = 8300, chance = 10}, -- 10% de chance de vim esse item
    rewardItem2 = {itemID = 8301, chance = 20}, -- 20% de chance de vim esse item
    rewardItem3 = {itemID = 8302, chance = 30}, -- 30% de chance de vim esse item
    rewardItem4 = {itemID = 8303, chance = 40}, -- 40% de chance de vim esse item
    effect = CONST_ME_MAGIC_RED
}

function onKill(cid, target)
    if isMonster(target) then
        local bossName = getCreatureName(target)
        print("Nome do Boss: " .. bossName) 

        if bossName == config.NameBoss then
            local chanceToDropItem = math.random(1, 100)
            print("Chance de drop: " .. chanceToDropItem)

            local rewardItemID = nil

            if chanceToDropItem <= config.rewardItem1.chance then
                rewardItemID = config.rewardItem1.itemID
            elseif chanceToDropItem <= config.rewardItem1.chance + config.rewardItem2.chance then
                rewardItemID = config.rewardItem2.itemID
            elseif chanceToDropItem <= config.rewardItem1.chance + config.rewardItem2.chance + config.rewardItem3.chance then
                rewardItemID = config.rewardItem3.itemID
            elseif chanceToDropItem <= config.rewardItem1.chance + config.rewardItem2.chance + config.rewardItem3.chance + config.rewardItem4.chance then
                rewardItemID = config.rewardItem4.itemID
            end

            if rewardItemID then
                doPlayerAddItemEx(cid, rewardItemID, 1)
                doSendMagicEffect(getCreaturePosition(cid), config.effect)
                doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você recebeu um item raro como recompensa por derrotar o Boss!")
                print("Item dropado: " .. rewardItemID)
            else
                doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você não recebeu nenhum item como recompensa por derrotar o Boss.")
            end
        else
            print("Boss não encontrado no banco de dados ou não é 'Boss Hits'.")
        end
    end
end

 

deu esse error

dddddddddddddddddddddddddddddddddddddddddddddd.png

Link para o post
Compartilhar em outros sites
  • Solução
5 horas atrás, Doidodepeda disse:

Estou tentando usar esse cript de boss, porem da esse error, alguem podeira me ajudar a fazer funcionar pf ?
TFS 0.4 8.60

 



ERROR:
 

 

 

data > creaturescripts > creaturescripts.xml

 

	<event type="kill"  name="killTheBoss" event="script" value="killTheBoss.lua"/>
	<event type="login" name="killTheBossLogin" event="script" value="killTheBoss.lua"/>

 

data > creaturescripts > scripts > killTheBoss.lua

 

local config = {
    monsters = {"Boss Hits"},
    rewards = {
        {itemID = 8300, chanceToGainInPercent = 10, quantity = 1},
        {itemID = 8301, chanceToGainInPercent = 20, quantity = 1},
        {itemID = 8302, chanceToGainInPercent = 30, quantity = 1},
        {itemID = 8303, chanceToGainInPercent = 40, quantity = 1},
    }, 
    effect = 27,
}

-- Função para selecionar um item com base na porcentagem
function selectRandomItem()
    local totalChance = 0

    for _, reward in pairs(config.rewards) do
        totalChance = totalChance + reward.chanceToGainInPercent
    end

    local randomValue = math.random(1, totalChance)
    local cumulativeChance = 0

    for _, reward in pairs(config.rewards) do
        cumulativeChance = cumulativeChance + reward.chanceToGainInPercent

        if randomValue <= cumulativeChance then
            return reward
        end
    end
end


function onKill(cid, target, lastHit)
    if isPlayer(cid) and isMonster(target) then
        
        if getCreatureMaster(target) ~= nil then
            return true
        end

        local monsterNameKilled = getCreatureName(target)

        if isInArray(config.monsters, monsterNameKilled) then            
            local selectedItem = selectRandomItem()
            doPlayerAddItem(cid, selectedItem.itemID, selectedItem.quantity)
            doSendMagicEffect(getCreaturePosition(cid), config.effect)
        end 
        
    end
    return true
end

function onLogin(cid)
    registerCreatureEvent(cid, "killTheBoss")
    return true
end

 

Link para o post
Compartilhar em outros sites
20 minutos atrás, Imperius disse:

 

data > creaturescripts > creaturescripts.xml

 


	<event type="kill"  name="killTheBoss" event="script" value="killTheBoss.lua"/>
	<event type="login" name="killTheBossLogin" event="script" value="killTheBoss.lua"/>

 

data > creaturescripts > scripts > killTheBoss.lua

 


local config = {
    monsters = {"Boss Hits"},
    rewards = {
        {itemID = 8300, chanceToGainInPercent = 10, quantity = 1},
        {itemID = 8301, chanceToGainInPercent = 20, quantity = 1},
        {itemID = 8302, chanceToGainInPercent = 30, quantity = 1},
        {itemID = 8303, chanceToGainInPercent = 40, quantity = 1},
    }, 
    effect = 27,
}

-- Função para selecionar um item com base na porcentagem
function selectRandomItem()
    local totalChance = 0

    for _, reward in pairs(config.rewards) do
        totalChance = totalChance + reward.chanceToGainInPercent
    end

    local randomValue = math.random(1, totalChance)
    local cumulativeChance = 0

    for _, reward in pairs(config.rewards) do
        cumulativeChance = cumulativeChance + reward.chanceToGainInPercent

        if randomValue <= cumulativeChance then
            return reward
        end
    end
end


function onKill(cid, target, lastHit)
    if isPlayer(cid) and isMonster(target) then
        
        if getCreatureMaster(target) ~= nil then
            return true
        end

        local monsterNameKilled = getCreatureName(target)

        if isInArray(config.monsters, monsterNameKilled) then            
            local selectedItem = selectRandomItem()
            doPlayerAddItem(cid, selectedItem.itemID, selectedItem.quantity)
            doSendMagicEffect(getCreaturePosition(cid), config.effect)
        end 
        
    end
    return true
end

function onLogin(cid)
    registerCreatureEvent(cid, "killTheBoss")
    return true
end

 

Funcionou man, Muito obrigado !

Link para o post
Compartilhar em outros sites

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

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

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo