Ir para conteúdo

Featured Replies

Postado

.Qual servidor ou website você utiliza como base? 

OTX

Qual o motivo deste tópico? 

Bom galera, desculpe qualquer coisa, minha ignorancia quanto a isso e tals, mas eu gostaria de saber se esse seria um bom sistema de lotery ou se ja existe algum mais otimizado aqui no forum, e se for esse um otimo sistema, gostaria de saber se é possivel adicionar mais de 1 item pra ser sorteado, pra ganhar aleatoriamente, por exemplo, ter 3 items lá que possa ser sorteado, e na hora do sorteio ter uma % de tal item sair, quero por items mais dificieis de ganhar e outros mais faceis, muito obrigado pela paciencia e pela ajuda ! <3

Está surgindo algum erro? Se sim coloque-o aqui. 

Citar

 

 

Você tem o código disponível? Se tiver publique-o aqui: 

local premio = {
[1] = {item = 9693, count = 1},
}
 
local configs = {
        hours = 5, -- quantas em quantas horas, vai acontecer.
        winners = 1, -- qntos players podem ganhar.
}
 
function onThink(interval, lastExecution)
 
local p = getPlayersOnline()
local winners = configs.winners
 
if #p < winners then
        winners = #p
end
 
 
for i = 1, winners do
        local p = getPlayersOnline()
        local c, w = #p, #premio
        local d, e = math.random(c), math.random(w)
        local playerwin = p[d]
        doPlayerAddItem(playerwin, premio[e].item, premio[e].count)
        doBroadcastMessage("[LOTTERY SYSTEM] Ganhador: " .. getCreatureName(playerwin) .. ", Premio: " .. premio[e].count .. " " .. getItemNameById(premio[e].item) .. ", Parabens!")
        if i == winners then
                doBroadcastMessage("(Proxima loteria em " ..configs.hours.. " horas.)")
        end
        doSendMagicEffect(getThingPos(playerwin), 12)
end
 
return true
end

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

 

Postado

Creio que para te ajudar tem esse Script um pouco mais otimizado...

Agora sobre a questão da % em cada "item", acho que seria mais complicado.

Spoiler


local config = {

    lottery_hour = "2 Hours", -- Tempo ate a proxima loteria (Esse tempo vai aparecer somente como broadcast message)

    rewards_id = {12344, 2160, 12618, 15646, 12338, 19221, 15645, 15644, 19244, 19536, 15679}, -- ID dos Itens Sorteados na Loteria

    crystal_counts = 50,

    website = "no"

    }

function onThink(interval, lastExecution)

        if(getWorldCreatures(0) == 0)then

                return true

        end


    local list = {}

    for i, tid in ipairs(getPlayersOnline()) do

                list[i] = tid

        end


        local winner = list[math.random(1, #list)]

        local random_item = config.rewards_id[math.random(1, #config.rewards_id)]


        if(random_item == 2160) then

                doPlayerAddItem(winner, random_item, config.crystal_counts)

                doBroadcastMessage("o Jogador: " .. getCreatureName(winner) .. ", Ganhou: " .. config.crystal_counts .. " " .. getItemNameById(random_item) .. "s!  (Proxima Loteria em " .. config.lottery_hour .. ")")

        else

                doBroadcastMessage("[LOTTERY SYSTEM] Winner: " .. getCreatureName(winner) .. ", Reward: " .. getItemNameById(random_item) .. "! Congratulations! (Proxima Loteria em " .. config.lottery_hour .. ")")

                doPlayerAddItem(winner, random_item, 1)

        end


        if(config.website == "yes") then

                db.executeQuery("INSERT INTO `lottery` (`name`, `item`) VALUES ('".. getCreatureName(winner) .."', '".. getItemNameById(random_item) .."');")

        end

        return true

end

 

Postado
  • Autor
5 minutos atrás, Theo aula disse:

Creio que para te ajudar tem esse Script um pouco mais otimizado...

Agora sobre a questão da % em cada "item", acho que seria mais complicado.

  Ocultar conteúdo


local config = {

    lottery_hour = "2 Hours", -- Tempo ate a proxima loteria (Esse tempo vai aparecer somente como broadcast message)

    rewards_id = {12344, 2160, 12618, 15646, 12338, 19221, 15645, 15644, 19244, 19536, 15679}, -- ID dos Itens Sorteados na Loteria

    crystal_counts = 50,

    website = "no"

    }

function onThink(interval, lastExecution)

        if(getWorldCreatures(0) == 0)then

                return true

        end


    local list = {}

    for i, tid in ipairs(getPlayersOnline()) do

                list[i] = tid

        end


        local winner = list[math.random(1, #list)]

        local random_item = config.rewards_id[math.random(1, #config.rewards_id)]


        if(random_item == 2160) then

                doPlayerAddItem(winner, random_item, config.crystal_counts)

                doBroadcastMessage("o Jogador: " .. getCreatureName(winner) .. ", Ganhou: " .. config.crystal_counts .. " " .. getItemNameById(random_item) .. "s!  (Proxima Loteria em " .. config.lottery_hour .. ")")

        else

                doBroadcastMessage("[LOTTERY SYSTEM] Winner: " .. getCreatureName(winner) .. ", Reward: " .. getItemNameById(random_item) .. "! Congratulations! (Proxima Loteria em " .. config.lottery_hour .. ")")

                doPlayerAddItem(winner, random_item, 1)

        end


        if(config.website == "yes") then

                db.executeQuery("INSERT INTO `lottery` (`name`, `item`) VALUES ('".. getCreatureName(winner) .."', '".. getItemNameById(random_item) .."');")

        end

        return true

end

 

Opa meu amigo, já é algo mais bem elaborado, posso por varios itens ali, vou testar aqui, mas creio que vai dar certo esse mesmo, muito obrigado pela ajuda <3

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo