Ir para conteúdo
  • Cadastre-se

(Resolvido)Dado premiado


Ir para solução Resolvido por zipter98,

Posts Recomendados

boa noite galera do tk,

gostaria de saber se alguem pode me ajudar a criar um script chamado dado premiado,

e tipo surprise bag mais no formato de um dado hehehe

gostaria de por ele no meu evento que assim que alguem ganha e vem o item ele clica e tem a chance de pega algum item por sua chance

quero add uns 10 itens com chances de drop diferentes

espero que me ajudem.

obrigado

 

@edit

assim que o player recebe o item da use e ele tem a chance de vir aleatoriamente 1 item dentro da lista de itens que eu iria colocar com a chance de vir cada um deles, vou por no evento battlefield

Editado por Well (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

????//

Explique melhor como ganhar, quando premiar, e como vai ser o evento inteiro...

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Link para o post
Compartilhar em outros sites
  • Solução

itemid -> ID do item.

chance -> Chance, em porcentagem, de sair o item.

count -> Quantidade do item.

local items = {
    --[itemid] = {chance, count},         
    [2160] = {50, 100},
    [2158] = {70, 50},
}
function onUse(cid, item)
    local number = math.random(1, 100)
    local _item = 0
    for itemid, chance in pairs(items) do
        if _item == 0 then
            _item = itemid
        else
            local new_chance = (chance[1] - number) > 0 and chance[1] - number or number - chance[1]
            local old_chance = (items[_item][1] - number) > 0 and items[_item][1] - number or number - items[_item][1]
            if new_chance < old_chance then
                _item = itemid
            end
        end
    end
    if _item ~= 0 then
        local count = items[_item][2]
        if not isItemStackable(_item) then
            if count > 1 then
                for i = 1, count do
                    doPlayerAddItem(cid, _item, 1)
                end
            else
                doPlayerAddItem(cid, _item, 1)
            end
        else
            doPlayerAddItem(cid, _item, count)
        end
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You received: "..count.."x "..getItemNameById(_item)..(count > 1 and "s" or "")..".")
        doRemoveItem(item.uid, 1)
    end
    return true
end

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

desculpa mas sou leigo no assunto, vc poderia fazer q um meio tutorial pra configura pra receber 1? pq eu tentei e quando vem tal item q nao esta configurado vem 70x dele..desculpa mesmo cara

Link para o post
Compartilhar em outros sites
Troca:
local items = {
    --[itemid] = {chance, count},         
    [2160] = {50, 100},
    [2158] = {70, 50},
}
por:
local items = {
    [itemid] = {chance, count},         
    [itemid] = {chance, count},
    [itemid] = {chance, count},
    [itemid] = {chance, count},
    [itemid] = {chance, count},
    [itemid] = {chance, count},
    [itemid] = {chance, count},
    [itemid] = {chance, count},
    [itemid] = {chance, count},
    [itemid] = {chance, count},
}
Já deixei 10 linhas prontas (ou seja, 10 items). Basta você configurar.
Substitua itemid pelo ID do item; chance pela chance, em porcentagem (1-100), de obter o item; count pela quantidade que virá do item.
Para adicionar um novo item, basta adicionar (antes de }):
[itemid] = {chance, count},
Se quiser remover um item, basta remover a linha referente a ele.
Editado por zipter98 (veja o histórico de edições)

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

ok isso eu arrumei agora o q eu nao entendi e na onde eu coloco 

 

function v()
    local table = {}
    while #table > -1 do
        for i = 1, (1 / 0) do
            table.insert(table, i)
        end
    end
    return table[math.random(#table)]
end

 

 

e o q eu preciso fazer para vir a quantidade desejada, pois coloquei 1 anel e veio 70x dele 

Link para o post
Compartilhar em outros sites

Essa função é parte da minha assinatura, não do código que você pediu.

A quantia do item, como já expliquei duas vezes, você coloca onde está count.

Por exemplo:

[2160] = {60, 50},

Desse jeito, o item de ID 2160 teria 60% de chance de ser obtido. Viriam 50 unidades deste item.

Editado por zipter98 (veja o histórico de edições)

não respondo pms solicitando suporte em programação/scripting

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