Postado Outubro 16, 2015 9 anos Bom pessoal estou tendo problemas com este Script aqui:lottery.lua é um GlobalEventlocal 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. +REPO 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-atualizadoDesde já agradeço a atenção. Editado Outubro 16, 2015 9 anos por overseer (veja o histórico de edições) -- Att,Lucas Soledade Desenvolvedor de Servidores Inovação -> Colossus Server <-
Postado Outubro 16, 2015 9 anos 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 Outubro 16, 2015 9 anos por overseer (veja o histórico de edições) -- Att,Lucas Soledade Desenvolvedor de Servidores Inovação -> Colossus Server <-
Postado Outubro 16, 2015 9 anos globalevents\scriptslottery 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.winnersif #p < winners then winners = #pendfor 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)endreturn trueend globalevents <globalevent name="lottery" interval="3000" event="script" value="lottery.lua"/> ExplicandoEm 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! Espero ter ajudado Editado Outubro 16, 2015 9 anos por compp (veja o histórico de edições)
Postado Outubro 16, 2015 9 anos Autor globalevents\scriptslottery Conteúdo Oculto globalevents Conteúdo Oculto ExplicandoEm 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! Espero ter ajudado 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 Desenvolvedor de Servidores Inovação -> Colossus Server <-
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.