Ir para conteúdo
  • 0

Lotery System


japinhafah

Pergunta

Tenho um script de loterry so que queria que ele desse o item de 24 em 24h tenho um script aqui mais ele não funfa alguem pode me ajudar

 

script não funfa \/

´local premio = {

[1] = {item = 10503, count = 1}

}

 

local configs = {

hours = 24, -- quantas em quantas horas, vai acontecer.

winners = 1 -- qntos players podem ganhar.

}

 

function onThink(interval, lastExecution)

 

local online = {}

for _, pid in ipairs(getPlayersOnline()) do

if getPlayerAccess(pid) == 0 then

table.insert(online,pid)

end

end

 

local winners = configs.winners

 

if #online < winners then

winners = #online

 

end

 

for i = 1, winners do

local p = online

local c, w = #p, #premio

local d, e = math.random©, math.random(w)

local playerwin = p[d]

doPlayerAddItem(playerwin, premio[e].item, premio[e].count)

doBroadcastMessage("[" .. i .. "ST PLACE] Winner: " .. getCreatureName(playerwin) .. ", Reward: " .. premio[e].count

 

.. " " .. getItemNameById(premio[e].item) .. ", Congratulations!", MESSAGE_STATUS_CONSOLE_RED)

table.remove(online,d)

if i == winners then

doBroadcastMessage("(Next Lottery in " .. configs.hours .. " hours.)", MESSAGE_STATUS_CONSOLE_RED)

end

doSendMagicEffect(getThingPos(playerwin), 12)

end

 

return true

end

<globalevent name="lotery" time="20:00" event="script" value="loterry.lua"/>

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Tenta Assim :

 

Abra o "globalevents" é cole essa tag:

 

<globalevent name="lottery" interval="2400" script="lottery.lua"/>

 

é substitua seu lotery por este :

-- Lottery System
local config = {
   lottery_hour = "40 minutos", -- Tempo ate a proxima loteria (Esse tempo vai aparecer somente como broadcast message)
   rewards_id = {9693, 2503, 7424, 2160, 7417, 2538, 2494, 2173}, -- ID dos Itens Sorteados na Loteria
   crystal_counts = 300, -- Usado somente se a rewards_id for crystal coin (ID: 2160).
   website = "no" -- Only if you have php scripts and table `lottery` in your database!
   }
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("[LOTTERY SYSTEM] Winner: " .. getCreatureName(winner) .. ", Reward: " .. config.crystal_counts .. " " .. getItemNameById(random_item) .. "s! Congratulations! (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

 

Ajudei?Rep+

Link para o comentário
Compartilhar em outros sites

  • 0

Acho que eu sei o motivo de não funcionar, da erro distro por a caso? troca ele por isso:

 

 

local premio = {

[1] = {item = 10503, count = 1}

}

 

local configs = {

hours = 24, -- quantas em quantas horas, vai acontecer.

winners = 1 -- qntos players podem ganhar.

}

 

function onThink(interval, lastExecution)

 

local online = {}

for _, pid in ipairs(getPlayersOnline()) do

if getPlayerAccess(pid) == 0 then

table.insert(online,pid)

end

end

 

local winners = configs.winners

 

if #online < winners then

winners = #online

 

end

 

for i = 1, winners do

local p = online

local c, w = #p, #premio

local d, e = math.random©, math.random(w)

local playerwin = p[d]

doPlayerAddItem(playerwin, premio[e].item, premio[e].count)

doBroadcastMessage("[" .. i .. "ST PLACE] Winner: " .. getCreatureName(playerwin) .. ", Reward: " .. premio[e].count

 

.. " " .. getItemNameById(premio[e].item) .. ", Congratulations!", MESSAGE_STATUS_CONSOLE_RED)

table.remove(online,d)

if i == winners then

doBroadcastMessage("(Next Lottery in " .. configs.hours .. " hours.)", MESSAGE_STATUS_CONSOLE_RED)

end

doSendMagicEffect(getThingPos(playerwin), 12)

end

 

return true

end

 

 

E a tag por:

 

<globalevent name="lotery" interval="86400" event="script" value="loterry.lua"/>

 

Prontinho, não tava funcionando porque tava errada a tag, tava pra dar só 20:00 da noite. Coloquei a cada 24 hrs. boa sorte!

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...