Ir para conteúdo
Propaganda

Posts Recomendados

  • Suporte

 

 

Boa tarde galera,

Antes de mais nada, este código é exclusivamente do tibiaDevs, não será permitido a cópia dele e nem postagem em outros fóruns, valeu 😄

Seguinte, fiz um código de bigorna que funciona da seguinte forma:
Ele verifica de qual clã o player é, por exemplo, Naturia ou Volcanic, e de acordo com o clã ele adiciona itens.

 

 

 

 

Como alterar o código:
local itemsPedraClan são os ID's das stones, elas são usadas para o craft.

local quantidadeStone é a quantidade de stone que será retirado do player a cada vez que ele clicar na bigorna

local itemsPremio São os ids dos items que o player pode ganhar, isso aqui você pode adicionar para cada clã

local keys são os ID's das keys de DG, caso no teu game tenha

 

Aqui você pode alterar a quantidade dos itens que o player vai ganhar e a % de chance que o player tem de ganhar o item

        randomItems = {
            {itemId = keys.naturia, quantity = 3, chance = 11},
            {itemId = itemsPremio.essenceShiny, quantity = 3, chance = 20},
            {itemId = itemsPremio.rareCandy, quantity = 5, chance = 30},
            {itemId = itemsPremio.boostStone, quantity = 3, chance = 35},
            {itemId = itemsPremio.shinyCharm, quantity = 1, chance = 3},
            {itemId = itemsPremio.diamond, quantity = 1, chance = 1}
        }



Bom, parte de configuração é isso ai.

Em actions.xml você precisa adicionar isso aqui:
 

    <action actionid="54367" event="script" value="bigorna.lua"/>


No remeres, basta adicionar uma bigorna e adicionar este actionid nela

em actions/scripts você precisa criar um script chamado bigorna.lua e adicionar o código abaixo.

Segue o código pra vocês:

--- Código desenvolvido pelo george192 do site tibiadevs
 
local itemsPedraClan = {
    Naturia = 11441,
    Volcanic = 11447,
    Seavell = 11442,
    Raibolt = 11444,
    Orebound = 11445,
    Psycraft = 11452,
    Malefic = 11450,
    Wingeon = 19694,
    Gardestrike = 11446
}
 
local quantidadeStone = 10
 
local itemsPremio = {
    boostStone = 12618,
    rareCandy = 6569,
    shinyCharm = 23468,
    essenceShiny = 23418,
    diamond = 2145
}
 
local keys = {
    naturia = 25295,
    volcanic = 25290,
    seavell = 25291,
    raibolt = 25292,
    orebound = 25297,
    psycraft = 25298,
    malefic = 25296,
    wingeon = 25294,
    gardestrike = 25293
}
 
function getRandomItem(playerClan)
    local randomItems = {}
   
    -- Defina as listas de itens para cada clã com chance de aparecimento
    if playerClan == "Naturia" then
        randomItems = {
            {itemId = keys.naturia, quantity = 3, chance = 11},
            {itemId = itemsPremio.essenceShiny, quantity = 3, chance = 20},
            {itemId = itemsPremio.rareCandy, quantity = 5, chance = 30},
            {itemId = itemsPremio.boostStone, quantity = 3, chance = 35},
            {itemId = itemsPremio.shinyCharm, quantity = 1, chance = 3},
            {itemId = itemsPremio.diamond, quantity = 1, chance = 1}
        }
    elseif playerClan == "Volcanic" then
        randomItems = {
            {itemId = keys.volcanic, quantity = 3, chance = 11}, --
            {itemId = itemsPremio.essenceShiny, quantity = 3, chance = 20},
            {itemId = itemsPremio.rareCandy, quantity = 5, chance = 30},
            {itemId = itemsPremio.boostStone, quantity = 3, chance = 35},
            {itemId = itemsPremio.shinyCharm, quantity = 1, chance = 3},
            {itemId = itemsPremio.diamond, quantity = 1, chance = 1}
        }
    elseif playerClan == "Seavell" then
        randomItems = {
            {itemId = keys.seavell, quantity = 3, chance = 11}, --
            {itemId = itemsPremio.essenceShiny, quantity = 3, chance = 20},
            {itemId = itemsPremio.rareCandy, quantity = 5, chance = 30},
            {itemId = itemsPremio.boostStone, quantity = 3, chance = 35},
            {itemId = itemsPremio.shinyCharm, quantity = 1, chance = 3},
            {itemId = itemsPremio.diamond, quantity = 1, chance = 1}
        }
    elseif playerClan == "Orebound" then
        randomItems = {
            {itemId = keys.orebound, quantity = 3, chance = 31}, --
            {itemId = itemsPremio.essenceShiny, quantity = 3, chance = 20},
            {itemId = itemsPremio.rareCandy, quantity = 5, chance = 30},
            {itemId = itemsPremio.boostStone, quantity = 3, chance = 35},
            {itemId = itemsPremio.shinyCharm, quantity = 1, chance = 3},
            {itemId = itemsPremio.diamond, quantity = 1, chance = 1}
        }
    elseif playerClan == "Wingeon" then
        randomItems = {
            {itemId = keys.wingeon, quantity = 3, chance = 11}, --
            {itemId = itemsPremio.essenceShiny, quantity = 3, chance = 20},
            {itemId = itemsPremio.rareCandy, quantity = 5, chance = 30},
            {itemId = itemsPremio.boostStone, quantity = 3, chance = 35},
            {itemId = itemsPremio.shinyCharm, quantity = 1, chance = 3},
            {itemId = itemsPremio.diamond, quantity = 1, chance = 1}
        }
    elseif playerClan == "Malefic" then
        randomItems = {
            {itemId = keys.malefic, quantity = 3, chance = 11}, --
            {itemId = itemsPremio.essenceShiny, quantity = 3, chance = 20},
            {itemId = itemsPremio.rareCandy, quantity = 5, chance = 30},
            {itemId = itemsPremio.boostStone, quantity = 3, chance = 35},
            {itemId = itemsPremio.shinyCharm, quantity = 1, chance = 3},
            {itemId = itemsPremio.diamond, quantity = 1, chance = 1}
        }
    elseif playerClan == "Gardestrike" then
        randomItems = {
            {itemId = keys.gardestrike, quantity = 3, chance = 11}, --
            {itemId = itemsPremio.essenceShiny, quantity = 3, chance = 20},
            {itemId = itemsPremio.rareCandy, quantity = 5, chance = 30},
            {itemId = itemsPremio.boostStone, quantity = 3, chance = 35},
            {itemId = itemsPremio.shinyCharm, quantity = 1, chance = 3},
            {itemId = itemsPremio.diamond, quantity = 1, chance = 1}
        }
    elseif playerClan == "Psycraft" then
        randomItems = {
            {itemId = keys.psycraft, quantity = 3, chance = 11}, --
            {itemId = itemsPremio.essenceShiny, quantity = 3, chance = 20},
            {itemId = itemsPremio.rareCandy, quantity = 5, chance = 30},
            {itemId = itemsPremio.boostStone, quantity = 3, chance = 35},
            {itemId = itemsPremio.shinyCharm, quantity = 1, chance = 3},
            {itemId = itemsPremio.diamond, quantity = 1, chance = 1}
        }
    elseif playerClan == "Raibolt" then
        randomItems = {
            {itemId = keys.raibolt, quantity = 3, chance = 11}, --
            {itemId = itemsPremio.essenceShiny, quantity = 3, chance = 20},
            {itemId = itemsPremio.rareCandy, quantity = 5, chance = 30},
            {itemId = itemsPremio.boostStone, quantity = 3, chance = 35},
            {itemId = itemsPremio.shinyCharm, quantity = 1, chance = 3},
            {itemId = itemsPremio.diamond, quantity = 1, chance = 1}
        }
    end
 
    -- Calcula a chance total
    local totalChance = 0
    for _, itemInfo in ipairs(randomItems) do
        totalChance = totalChance + itemInfo.chance
    end
 
    -- Seleciona um número aleatório dentro da chance total
    local randomChance = math.random(1, totalChance)
 
    -- Seleciona o item baseado na chance
    local accumulatedChance = 0
    for _, itemInfo in ipairs(randomItems) do
        accumulatedChance = accumulatedChance + itemInfo.chance
        if randomChance <= accumulatedChance then
            return itemInfo
        end
    end
 
    -- Se nenhum item for selecionado, retorna nil
    return nil
end
 
function onUse(cid, item, frompos, item2, topos)
    local playerClan = getPlayerClanName(cid)
    local quantidadeStone = 10
   
    if playerClan then
        local stoneID = itemsPedraClan[playerClan]
        if getPlayerItemCount(cid, stoneID) >= quantidadeStone then
            doPlayerRemoveItem(cid, stoneID, quantidadeStone)
            local randomItem = getRandomItem(playerClan)
            if randomItem then
                doPlayerAddItem(cid, randomItem.itemId, randomItem.quantity)
                -- Exibe uma mensagem para o jogador
                doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Voce ganhou: " .. getItemNameById(randomItem.itemId) .. " (Quantidade: " .. randomItem.quantity .. ")")
                return true
            else
                doPlayerSendCancel(cid, "Não foi possível selecionar um item para craft. Por favor, verifique as configurações.")
            end
        else
            doPlayerSendCancel(cid, "Voce nao tem pedras suficientes para fazer o craft. 10 stones do seu cla, por exemplo leaf stone = NATURIA")
        end
    else
        doPlayerSendCancel(cid, "Você não faz parte de um clã.")
    end
end
  • Like 1
  • Thanks 1
Link para o comentário
https://tibiadevs.com/forums/topic/369-036-craft-system-de-cl%C3%A3/
Compartilhar em outros sites

  • Administrador
1 minuto atrás, george192 disse:

Boa tarde galera,

Antes de mais nada, este código é exclusivamente do tibiaDevs, não será permitido a cópia dele e nem postagem em outros fóruns, valeu 😄

Seguinte, fiz um código de bigorna que funciona da seguinte forma:
Ele verifica de qual clã o player é, por exemplo, Naturia ou Volcanic, e de acordo com o clã ele adiciona itens.

Como alterar o código:
local itemsPedraClan são os ID's das stones, elas são usadas para o craft.

local quantidadeStone é a quantidade de stone que será retirado do player a cada vez que ele clicar na bigorna

local itemsPremio São os ids dos items que o player pode ganhar, isso aqui você pode adicionar para cada clã

local keys são os ID's das keys de DG, caso no teu game tenha

 

Aqui você pode alterar a quantidade dos itens que o player vai ganhar e a % de chance que o player tem de ganhar o item

        randomItems = {
            {itemId = keys.naturia, quantity = 3, chance = 11},
            {itemId = itemsPremio.essenceShiny, quantity = 3, chance = 20},
            {itemId = itemsPremio.rareCandy, quantity = 5, chance = 30},
            {itemId = itemsPremio.boostStone, quantity = 3, chance = 35},
            {itemId = itemsPremio.shinyCharm, quantity = 1, chance = 3},
            {itemId = itemsPremio.diamond, quantity = 1, chance = 1}
        }



Bom, parte de configuração é isso ai.

Em actions.xml você precisa adicionar isso aqui:
 

    <action actionid="54367" event="script" value="bigorna.lua"/>


No remeres, basta adicionar uma bigorna e adicionar este actionid nela

em actions/scripts você precisa criar um script chamado bigorna.lua e adicionar o código abaixo.

Segue o código pra vocês:

--- Código desenvolvido pelo george192 do site tibiadevs
 
local itemsPedraClan = {
    Naturia = 11441,
    Volcanic = 11447,
    Seavell = 11442,
    Raibolt = 11444,
    Orebound = 11445,
    Psycraft = 11452,
    Malefic = 11450,
    Wingeon = 19694,
    Gardestrike = 11446
}
 
local quantidadeStone = 10
 
local itemsPremio = {
    boostStone = 12618,
    rareCandy = 6569,
    shinyCharm = 23468,
    essenceShiny = 23418,
    diamond = 2145
}
 
local keys = {
    naturia = 25295,
    volcanic = 25290,
    seavell = 25291,
    raibolt = 25292,
    orebound = 25297,
    psycraft = 25298,
    malefic = 25296,
    wingeon = 25294,
    gardestrike = 25293
}
 
function getRandomItem(playerClan)
    local randomItems = {}
   
    -- Defina as listas de itens para cada clã com chance de aparecimento
    if playerClan == "Naturia" then
        randomItems = {
            {itemId = keys.naturia, quantity = 3, chance = 11},
            {itemId = itemsPremio.essenceShiny, quantity = 3, chance = 20},
            {itemId = itemsPremio.rareCandy, quantity = 5, chance = 30},
            {itemId = itemsPremio.boostStone, quantity = 3, chance = 35},
            {itemId = itemsPremio.shinyCharm, quantity = 1, chance = 3},
            {itemId = itemsPremio.diamond, quantity = 1, chance = 1}
        }
    elseif playerClan == "Volcanic" then
        randomItems = {
            {itemId = keys.volcanic, quantity = 3, chance = 11}, --
            {itemId = itemsPremio.essenceShiny, quantity = 3, chance = 20},
            {itemId = itemsPremio.rareCandy, quantity = 5, chance = 30},
            {itemId = itemsPremio.boostStone, quantity = 3, chance = 35},
            {itemId = itemsPremio.shinyCharm, quantity = 1, chance = 3},
            {itemId = itemsPremio.diamond, quantity = 1, chance = 1}
        }
    elseif playerClan == "Seavell" then
        randomItems = {
            {itemId = keys.seavell, quantity = 3, chance = 11}, --
            {itemId = itemsPremio.essenceShiny, quantity = 3, chance = 20},
            {itemId = itemsPremio.rareCandy, quantity = 5, chance = 30},
            {itemId = itemsPremio.boostStone, quantity = 3, chance = 35},
            {itemId = itemsPremio.shinyCharm, quantity = 1, chance = 3},
            {itemId = itemsPremio.diamond, quantity = 1, chance = 1}
        }
    elseif playerClan == "Orebound" then
        randomItems = {
            {itemId = keys.orebound, quantity = 3, chance = 31}, --
            {itemId = itemsPremio.essenceShiny, quantity = 3, chance = 20},
            {itemId = itemsPremio.rareCandy, quantity = 5, chance = 30},
            {itemId = itemsPremio.boostStone, quantity = 3, chance = 35},
            {itemId = itemsPremio.shinyCharm, quantity = 1, chance = 3},
            {itemId = itemsPremio.diamond, quantity = 1, chance = 1}
        }
    elseif playerClan == "Wingeon" then
        randomItems = {
            {itemId = keys.wingeon, quantity = 3, chance = 11}, --
            {itemId = itemsPremio.essenceShiny, quantity = 3, chance = 20},
            {itemId = itemsPremio.rareCandy, quantity = 5, chance = 30},
            {itemId = itemsPremio.boostStone, quantity = 3, chance = 35},
            {itemId = itemsPremio.shinyCharm, quantity = 1, chance = 3},
            {itemId = itemsPremio.diamond, quantity = 1, chance = 1}
        }
    elseif playerClan == "Malefic" then
        randomItems = {
            {itemId = keys.malefic, quantity = 3, chance = 11}, --
            {itemId = itemsPremio.essenceShiny, quantity = 3, chance = 20},
            {itemId = itemsPremio.rareCandy, quantity = 5, chance = 30},
            {itemId = itemsPremio.boostStone, quantity = 3, chance = 35},
            {itemId = itemsPremio.shinyCharm, quantity = 1, chance = 3},
            {itemId = itemsPremio.diamond, quantity = 1, chance = 1}
        }
    elseif playerClan == "Gardestrike" then
        randomItems = {
            {itemId = keys.gardestrike, quantity = 3, chance = 11}, --
            {itemId = itemsPremio.essenceShiny, quantity = 3, chance = 20},
            {itemId = itemsPremio.rareCandy, quantity = 5, chance = 30},
            {itemId = itemsPremio.boostStone, quantity = 3, chance = 35},
            {itemId = itemsPremio.shinyCharm, quantity = 1, chance = 3},
            {itemId = itemsPremio.diamond, quantity = 1, chance = 1}
        }
    elseif playerClan == "Psycraft" then
        randomItems = {
            {itemId = keys.psycraft, quantity = 3, chance = 11}, --
            {itemId = itemsPremio.essenceShiny, quantity = 3, chance = 20},
            {itemId = itemsPremio.rareCandy, quantity = 5, chance = 30},
            {itemId = itemsPremio.boostStone, quantity = 3, chance = 35},
            {itemId = itemsPremio.shinyCharm, quantity = 1, chance = 3},
            {itemId = itemsPremio.diamond, quantity = 1, chance = 1}
        }
    elseif playerClan == "Raibolt" then
        randomItems = {
            {itemId = keys.raibolt, quantity = 3, chance = 11}, --
            {itemId = itemsPremio.essenceShiny, quantity = 3, chance = 20},
            {itemId = itemsPremio.rareCandy, quantity = 5, chance = 30},
            {itemId = itemsPremio.boostStone, quantity = 3, chance = 35},
            {itemId = itemsPremio.shinyCharm, quantity = 1, chance = 3},
            {itemId = itemsPremio.diamond, quantity = 1, chance = 1}
        }
    end
 
    -- Calcula a chance total
    local totalChance = 0
    for _, itemInfo in ipairs(randomItems) do
        totalChance = totalChance + itemInfo.chance
    end
 
    -- Seleciona um número aleatório dentro da chance total
    local randomChance = math.random(1, totalChance)
 
    -- Seleciona o item baseado na chance
    local accumulatedChance = 0
    for _, itemInfo in ipairs(randomItems) do
        accumulatedChance = accumulatedChance + itemInfo.chance
        if randomChance <= accumulatedChance then
            return itemInfo
        end
    end
 
    -- Se nenhum item for selecionado, retorna nil
    return nil
end
 
function onUse(cid, item, frompos, item2, topos)
    local playerClan = getPlayerClanName(cid)
    local quantidadeStone = 10
   
    if playerClan then
        local stoneID = itemsPedraClan[playerClan]
        if getPlayerItemCount(cid, stoneID) >= quantidadeStone then
            doPlayerRemoveItem(cid, stoneID, quantidadeStone)
            local randomItem = getRandomItem(playerClan)
            if randomItem then
                doPlayerAddItem(cid, randomItem.itemId, randomItem.quantity)
                -- Exibe uma mensagem para o jogador
                doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Voce ganhou: " .. getItemNameById(randomItem.itemId) .. " (Quantidade: " .. randomItem.quantity .. ")")
                return true
            else
                doPlayerSendCancel(cid, "Não foi possível selecionar um item para craft. Por favor, verifique as configurações.")
            end
        else
            doPlayerSendCancel(cid, "Voce nao tem pedras suficientes para fazer o craft. 10 stones do seu cla, por exemplo leaf stone = NATURIA")
        end
    else
        doPlayerSendCancel(cid, "Você não faz parte de um clã.")
    end
end

Amei, obrigado pela contribuição seria massa uns printszin ou vídeo dele funcionando.

  • Like 1
Link para o comentário
https://tibiadevs.com/forums/topic/369-036-craft-system-de-cl%C3%A3/#findComment-1935
Compartilhar em outros sites

  • Suporte
Agora, TELASKO disse:

Amei, obrigado pela contribuição seria massa uns printszin ou vídeo dele funcionando.

Adicionado

  • Thanks 1
Link para o comentário
https://tibiadevs.com/forums/topic/369-036-craft-system-de-cl%C3%A3/#findComment-1936
Compartilhar em outros sites

Em 06/04/2024 em 13:38, george192 disse:

Adicionado

Poderia fazer outro desse para mim sem ser de clan, livre para todoas tlgd

 

Link para o comentário
https://tibiadevs.com/forums/topic/369-036-craft-system-de-cl%C3%A3/#findComment-1964
Compartilhar em outros sites

  • Suporte
10 horas atrás, PokeXTibia disse:

Poderia fazer outro desse para mim sem ser de clan, livre para todoas tlgd

 

É só vc retirar a validação do clã ali e pimba, sistema funcional 🙂

Link para o comentário
https://tibiadevs.com/forums/topic/369-036-craft-system-de-cl%C3%A3/#findComment-1975
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
  • Criar Novo...