Ir para conteúdo

Featured Replies

Postado
Bom pessoal estou tendo problemas com este Script aqui:
lottery.lua é um GlobalEvent
local config = {
        lottery_hour = "2 hours", -- Tempo ate a proxima loteria (Esse tempo vai aparecer somente como broadcast message)
        rewards_id = {2494, 2472, 2514, 2160}, -- ID dos Itens Sorteados na Loteria
        crystal_counts = 10, -- Usado somente se a rewards_id for crystal coin (ID: 2160).
        website = "yes", -- Only if you have php scripts and table `lottery` in your database!
        days = {
                "Monday-01:00",
				"Monday-04:00",
				"Monday-08:00",
				"Monday-10:30",
                "Monday-13:00",
				"Monday-16:00",
                "Monday-19:30",
				"Monday-22:30",

                "Tuesday-01:00",
				"Tuesday-04:00",
				"Tuesday-08:00",
				"Tuesday-10:30",
                "Tuesday-13:00",
				"Tuesday-16:00",
                "Tuesday-19:30",
				"Tuesday-22:30",

                "Wednesday-01:00",
				"Wednesday-04:00",
				"Wednesday-08:00",
				"Wednesday-10:30",
                "Wednesday-13:00",
				"Wednesday-16:00",
                "Wednesday-19:30",
				"Wednesday-22:30",

                "Thursday-01:00",
				"Thursday-04:00",
				"Thursday-08:00",
				"Thursday-10:30",
                "Thursday-13:00",
				"Thursday-16:00",
                "Thursday-19:30",
				"Thursday-22:30",

				"Friday-01:00",
				"Friday-04:00",
				"Friday-08:00",
				"Friday-10:44",
                "Friday-13:00",
				"Friday-16:00",
                "Friday-19:30",
				"Friday-22:30",

                "Saturday-01:00",
				"Saturday-04:00",
				"Saturday-08:00",
				"Saturday-10:30",
                "Saturday-13:00",
				"Saturday-16:00",
                "Saturday-19:30",
				"Saturday-22:30",

                "Sunday-01:00",
				"Sunday-04:00",
				"Sunday-08:00",
				"Sunday-10:30",
                "Sunday-13:00",
				"Sunday-16:00",
                "Sunday-19:30",
				"Sunday-22:30"
                }
        }
local function getWorldCreatures(cid)
    if not(isPlayer(cid)) then
        return false
    end
    local pid = getPlayerGUID(cid)
    local worldPlayer = 0
    local result_plr = db.getResult("SELECT * FROM `players` WHERE `id` = "..pid..";")
    if(result_plr:getID() ~= -1) then
        worldPlayer = tonumber(result_plr:getDataInt("world_id"))
        result_plr:free()
        return worldPlayer
    end
    return false
end

local function getOnlineParticipants()
    local players = {}
    for _, pid in pairs(getOnlinePlayers()) do
        if getPlayerAccess(pid) <= 2 and getPlayerStorageValue(pid, 281821) <= os.time() then
            table.insert(players, pid)
        end
    end
    if #players > 0 then
        return players
    end
    return false
end
     
function onThink(cid, interval)
    if table.find(config.days, os.date("%A-%H:%M")) then
        if(Game.getPlayerCount(cid) > 0)then
            return false
        end

        local query = db.query or db.executeQuery
        local random_item = config.rewards_id[math.random(1, #config.rewards_id)]
        local item_name = getItemIdByName(random_item)  
        local data = os.date("%d/%m/%Y - %H:%M:%S")
        local online = getOnlineParticipants()
       
        if online then
            local winner = online[math.random(1, #online)]
            local world = tonumber(getPlayerByName(winner))
           
            if(random_item == 2160) then
                setPlayerStorageValue(winner, 281821, os.time() + 3600 * 24)
                doPlayerAddItemEx(winner, random_item, config.crystal_counts)
                broadcastMessage("[LOTTERY SYSTEM] Winner: " .. getCreatureName(winner) .. ", Reward: " .. config.crystal_counts .." " .. getItemIdByName(random_item) .. "s! Congratulations! (Next lottery in " .. config.lottery_hour .. ")")
            else
                setPlayerStorageValue(winner, 281821, os.time() + 3600 * 24)
                broadcastMessage("[LOTTERY SYSTEM] Winner: " .. getCreatureName(winner) .. ", Reward: " ..getItemIdByName(random_item) .. "! Congratulations! (Next lottery in " .. config.lottery_hour .. ")")
                doPlayerAddItemEx(winner, random_item, 1)
            end
            if(config.website == "yes") then
                query("INSERT INTO `lottery` (`name`, `item`, `world_id`, `item_name`, `date`) VALUES ('".. getCreatureName(winner).."', '".. random_item .."', '".. world .."', '".. item_name .."', '".. data .."');")
            end
        else
            print("Ninguem OnLine pra ganhar na loteria")
        end
    end
    return true
end
E meu maior problema, creio eu, é nesta linha:
function onThink(cid, interval)
    if table.find(config.days, os.date("%A-%H:%M")) then
        if(Game.getPlayerCount(cid) > 0)then
            return false
        end
Tenho muitas dúvidas em relação a esta Função. Ja tentei muitas variações, apesar de não entender muito, mas fui trocando o que fui achando em outros scripts e de acordo com os erros que a distro acusava. O script Original é esse: (Estou tentando fazer rodar na versão do TFS 1.0)
local config = {
        lottery_hour = "2 hours", -- Tempo ate a proxima loteria (Esse tempo vai aparecer somente como broadcast message)
        rewards_id = {2494, 2472, 2514, 2160}, -- ID dos Itens Sorteados na Loteria
        crystal_counts = 10, -- Usado somente se a rewards_id for crystal coin (ID: 2160).
        website = "yes", -- Only if you have php scripts and table `lottery` in your database!
        days = {
                "Monday-08:00",
                "Monday-13:00",
                "Monday-19:30",

                "Tuesday-08:00",
                "Tuesday-13:00",
                "Tuesday-19:30",

                "Wednesday-08:00",
                "Wednesday-13:00",
                "Wednesday-19:30",

                "Thursday-08:00",
                "Thursday-13:00",
                "Thursday-19:30",

                "Friday-01:22",
                "Friday-13:00",
                "Friday-19:30",

                "Saturday-21:27",
                "Saturday-21:28",
                "Saturday-21:29",

                "Sunday-08:00",
                "Sunday-13:00",
                "Sunday-19:30"
                }
        }
local function getPlayerWorldId(cid)
    if not(isPlayer(cid)) then
        return false
    end
    local pid = getPlayerGUID(cid)
    local worldPlayer = 0
    local result_plr = db.getResult("SELECT * FROM `players` WHERE `id` = "..pid..";")
    if(result_plr:getID() ~= -1) then
        worldPlayer = tonumber(result_plr:getDataInt("world_id"))
        result_plr:free()
        return worldPlayer
    end
    return false
end

local function getOnlineParticipants()
    local players = {}
    for _, pid in pairs(getPlayersOnline()) do
        if getPlayerAccess(pid) <= 2 and getPlayerStorageValue(pid, 281821) <= os.time() then
            table.insert(players, pid)
        end
    end
    if #players > 0 then
        return players
    end
    return false
end
     
function onThink(cid, interval)
    if table.find(config.days, os.date("%A-%H:%M")) then
        if(getWorldCreatures(o) <= 0)then
            return true
        end

        local query = db.query or db.executeQuery
        local random_item = config.rewards_id[math.random(1, #config.rewards_id)]
        local item_name = getItemNameById(random_item)  
        local data = os.date("%d/%m/%Y - %H:%M:%S")
        local online = getOnlineParticipants()
       
        if online then
            local winner = online[math.random(1, #online)]
            local world = tonumber(getPlayerWorldId(winner))
           
            if(random_item == 2160) then
                doPlayerSetStorageValue(winner, 281821, os.time() + 3600 * 24)
                doPlayerAddItem(winner, random_item, config.crystal_counts)
                doBroadcastMessage("[LOTTERY SYSTEM] Winner: " .. getCreatureName(winner) .. ", Reward: " .. config.crystal_counts .." " .. getItemNameById(random_item) .. "s! Congratulations! (Next lottery in " .. config.lottery_hour .. ")")
            else
                doPlayerSetStorageValue(winner, 281821, os.time() + 3600 * 24)
                doBroadcastMessage("[LOTTERY SYSTEM] Winner: " .. getCreatureName(winner) .. ", Reward: " ..getItemNameById(random_item) .. "! Congratulations! (Next lottery in " .. config.lottery_hour .. ")")
                doPlayerAddItem(winner, random_item, 1)
            end
            if(config.website == "yes") then
                query("INSERT INTO `lottery` (`name`, `item`, `world_id`, `item_name`, `date`) VALUES ('".. getCreatureName(winner).."', '".. random_item .."', '".. world .."', '".. item_name .."', '".. data .."');")
            end
        else
            print("Ninguem OnLine pra ganhar na loteria")
        end
    end
    return true
end
Se alguém puder me ajudar, por favor. +REP
O Script que eu já editei, postado acima, esta Printando (Ninguem Online para ganhar na Loteria) Referente a linha 128      ->       print("Ninguem OnLine pra ganhar na loteria")
O Script é do natanael beckman Link da Postagem: globalevents-perfect-lottery-system-mysql-atualizado
Desde já agradeço a atenção. 

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

--

Att,

Lucas Soledade  :pirate:
 
Desenvolvedor de Servidores  :wow: 
Inovação  :D 


-> Colossus Server <-

A4Zbobt.jpg

Postado
  • Autor

Não entendi, qual seria o problema?

O Script não esta funcionando no TFS 1.0. postei o que eu ja editei e o original. Fiz algumas mudança removendo os erros que acusavam na distro. Só que eu não entendo muito de Scripts, mesmo com os erros aparentemente sanados, o script não funciona. Essa Função "onThink" todos os erros estão girando em torno dela.
Resumindo, queria esse script adaptado para o TFS 1.0. 

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

--

Att,

Lucas Soledade  :pirate:
 
Desenvolvedor de Servidores  :wow: 
Inovação  :D 


-> Colossus Server <-

A4Zbobt.jpg

Postado
globalevents\scripts
lottery

local premio = {
[1] = {item = 2537, count = 1},
[2] = {item = 6433, count = 1},
[3] = {item = 8880, count = 1},
[4] = {item = 8926, count = 1},
[5] = {item = 2656, count = 1},
[6] = {item = 6391, count = 1},
[7] = {item = 2470, count = 1},
[8] = {item = 2472, count = 1},
[9] = {item = 2514, count = 1},
}

local configs = {
        hours = 1, -- 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("[" .. i .. "Baiak-Lero Lottery] Winner: " .. getCreatureName(playerwin) .. ", Reward: " .. premio[e].count .. " " .. getItemNameById(premio[e].item) .. ", Congratulations!")
        if i == winners then
                doBroadcastMessage("(Proxima Baiak-Lero Lottery " .. configs.hours .. " hora.)")
        end
        doSendMagicEffect(getThingPos(playerwin), 12)
end

return true
end

globalevents

      <globalevent name="lottery" interval="3000" event="script" value="lottery.lua"/> 

Explicando

Em 
local premio = {
[1] = {item = 2537, count = 1},
[2] = {item = 6433, count = 1},
[3] = {item = 8880, count = 1},
[4] = {item = 8926, count = 1},
[5] = {item = 2656, count = 1},
[6] = {item = 6391, count = 1},
[7] = {item = 2470, count = 1},
[8] = {item = 2472, count = 1},
[9] = {item = 2514, count = 1},
}

é oque os player vai ganhar 
[1] = {item = Id do item, count = Quantidade},

caso queira reduzir a quantia é so apagar eses [1]~[9] ou adicionar copia e cola outro igual!


:D Espero ter ajudado :D

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

Rosario__Vampire_Cast400x226.jpg

                   rosario_vampire_girl_bat_moon_25562_2560

Postado
  • Autor
globalevents\scripts
lottery

Conteúdo Oculto

globalevents

Conteúdo Oculto

Explicando

Em 
local premio = {
[1] = {item = 2537, count = 1},
[2] = {item = 6433, count = 1},
[3] = {item = 8880, count = 1},
[4] = {item = 8926, count = 1},
[5] = {item = 2656, count = 1},
[6] = {item = 6391, count = 1},
[7] = {item = 2470, count = 1},
[8] = {item = 2472, count = 1},
[9] = {item = 2514, count = 1},
}

é oque os player vai ganhar 
[1] = {item = Id do item, count = Quantidade},

caso queira reduzir a quantia é so apagar eses [1]~[9] ou adicionar copia e cola outro igual!


:D Espero ter ajudado :D

Obrigado pela ajuda brother. Mas esse script esta com mesmo problema, ate porque a tag dele não é de TFS 1.0. Mesmo assim, muito obrigado pela atenção ai. Ja achei um script mais simples aqui e que supriu minhas necessidades.

--

Att,

Lucas Soledade  :pirate:
 
Desenvolvedor de Servidores  :wow: 
Inovação  :D 


-> Colossus Server <-

A4Zbobt.jpg

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.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo