Ir para conteúdo

Vodkart

Héroi
  • Registro em

Tudo que Vodkart postou

  1. Possivelmente algo na tabela está errado, ai á esse erro... Você tem que me enviar pelo pastebin o seu mods editado para mim olhar.
  2. Não está criando o arquivo... vc instalou corretamente? criou a pasta lá como foi pedido e talz?
  3. @Doidodepeda function onUse(cid, item, frompos, item2, topos) local config = { timeForUse = 1, -- tempo em horas que o player poderá entrar na cave. storage = 789450, toKnow = 456789, effect = 27 -- efeito que dará ao usar o item. } local time = getPlayerStorageValue(cid, config.storage) - os.time() <= 0 and (os.time() + config.timeForUse * 60) or (getPlayerStorageValue(cid, config.storage) + config.timeForUse * 60) setPlayerStorageValue(cid, config.storage, time) doRemoveItem(item.uid,1) setPlayerStorageValue(cid, config.toKnow, 1) doSendMagicEffect(getThingPos(cid), config.effect) doPlayerSendTextMessage(cid, 19, "Voce Usou a Bonus Area") return true end
  4. vc registrou o evento no player?
  5. não tenha dúvidas disso!
  6. function onKill(cid, target, lastHit) local tab = { ["rat"] = {msg = "oi", storage = 78001, item = 2160}, ["tiger"] = {msg = "ola", storage = 78002, item = 2159} } if isPlayer(cid) and isMonster(target) then local var = tab[getCreatureName(target):lower()] if var then print(var.msg, var.storage, var.item) -- aqui vc faz oq quiser end end return true end
  7. Foi criada uma função para checar se o nome do monstro procurado pelo param está em monsters.xml ExistMonsterByName(name) caso retorne falso, é dado a lista dos monstro que existem no seu servidor, também no monsters.xml. (essa última função já era sua)
  8. tenta usar assim: function ExistMonsterByName(name) -- by vodka local monster = io.open("data/monster/monsters.xml", "r"):read("*all") local get = monster:lower():match('name="' .. name:lower() ..'"') if get == nil or get == "" then return false end return true end function getDirMonsterByNameMonster(name) local t = {} local monster = io.open("data/monster/monsters.xml", "r") for i in monster:read("*a"):gmatch('<monster name="'..tostring(name)..'" file="(.-)"/>') do table.insert(t, tostring(i)) end return t[1] or 0 end function getMonsterLootItens(name) local dir = "data/monster/"..getDirMonsterByNameMonster(name).."" local monster = io.open(""..dir.."", "r") str = "" for i in monster:read("*a"):gmatch('id="(.-)"') do str = ""..str.." - "..getItemNameById(i).."" end return str end function getAllMonster() local str = "" local monster = io.open("data/monster/monsters.xml", "r") str = "Voce digitou incorretamente o nome do monstro veja a lista de monstro\n" for i in monster:read("*a"):gmatch('<monster name="(.-)"') do str = ""..str.." - "..i.."" end return str end function getAttrMonster(name) return "Life = "..getMonsterInfo(name).health.."\nExp = "..getMonsterInfo(name).experience.."\n" end function onSay(cid, words, param, channel) if param == "" or not param or param == " " then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce precisa dizer o nome do monstro") return true end local name = param:lower() if not ExistMonsterByName(name) then doShowTextDialog(cid, 1397, getAllMonster()) return true end local name = name:gsub("(%l)(%w*)", function(a,b) return string.upper(a)..b end) doShowTextDialog(cid, 1397, "Info Monster "..name.."\n"..getAttrMonster(name).."\n\nLoots = "..getMonsterLootItens(name).."") return true end
  9. usa if isCreature(...) then bloco end posta o reflect system pra mim ver...
  10. Vodkart postou uma resposta no tópico em Suporte Tibia OTServer
    position é sempre do MENOR para o MAIOR... seja X, Y ou Z. testa assim: boss_hours = { ["01:00"] = {boss_name = "Phoenix Boss", pos = {fromPosition = {x=238, y=915, z=7}, toPosition = {x=1024, y=1142, z=8}}, time = 30, extra_time = 10}, ["02:00"] = {boss_name = "Gogeta Boss", pos = {fromPosition = {x=213, y=775, z=7}, toPosition = {x=1024, y=915, z=7}}, time = 30, extra_time = 10}, ["03:00"] = {boss_name = "Dende Boss", pos = {fromPosition = {x=542, y=433, z=6}, toPosition = {x=1024, y=915, z=7}}, time = 30, extra_time = 10}, ["04:00"] = {boss_name = "Phoenix Boss", pos = {fromPosition = {x=238, y=915, z=7}, toPosition = {x=1024, y=1142, z=8}}, time = 30, extra_time = 10}, ["05:00"] = {boss_name = "Gogeta Boss", pos = {fromPosition = {x=213, y=775, z=7}, toPosition = {x=1024, y=915, z=7}}, time = 30, extra_time = 10}, ["06:00"] = {boss_name = "Dende Boss", pos = {fromPosition = {x=542, y=433, z=6}, toPosition = {x=1024, y=915, z=7}}, time = 30, extra_time = 10}, ["07:00"] = {boss_name = "Phoenix Boss", pos = {fromPosition = {x=238, y=915, z=7}, toPosition = {x=1024, y=1142, z=8}}, time = 30, extra_time = 10}, ["08:00"] = {boss_name = "Gogeta Boss", pos = {fromPosition = {x=213, y=775, z=7}, toPosition = {x=1024, y=915, z=7}}, time = 30, extra_time = 10}, ["09:00"] = {boss_name = "Dende Boss", pos = {fromPosition = {x=542, y=433, z=6}, toPosition = {x=1024, y=915, z=7}}, time = 30, extra_time = 10}, ["10:00"] = {boss_name = "Phoenix Boss", pos = {fromPosition = {x=238, y=915, z=7}, toPosition = {x=1024, y=1142, z=8}}, time = 30, extra_time = 10}, ["11:00"] = {boss_name = "Gogeta Boss", pos = {fromPosition = {x=213, y=775, z=7}, toPosition = {x=1024, y=915, z=8}}, time = 30, extra_time = 10}, ["12:00"] = {boss_name = "Dende Boss", pos = {fromPosition = {x=542, y=433, z=6}, toPosition = {x=1024, y=915, z=7}}, time = 30, extra_time = 10}, ["13:00"] = {boss_name = "Phoenix Boss", pos = {fromPosition = {x=238, y=915, z=7}, toPosition = {x=1024, y=1142, z=8}}, time = 30, extra_time = 10}, ["14:00"] = {boss_name = "Gogeta Boss", pos = {fromPosition = {x=213, y=775, z=7}, toPosition = {x=1024, y=915, z=7}}, time = 30, extra_time = 10}, ["15:00"] = {boss_name = "Dende Boss", pos = {fromPosition = {x=542, y=433, z=6}, toPosition = {x=1024, y=915, z=7}}, time = 30, extra_time = 10}, ["16:00"] = {boss_name = "Phoenix Boss", pos = {fromPosition = {x=238, y=915, z=7}, toPosition = {x=1024, y=1142, z=8}}, time = 30, extra_time = 10}, ["17:00"] = {boss_name = "Gogeta Boss", pos = {fromPosition = {x=213, y=775, z=7}, toPosition = {x=1024, y=915, z=7}}, time = 30, extra_time = 10}, ["18:00"] = {boss_name = "Dende Boss", pos = {fromPosition = {x=542, y=433, z=6}, toPosition = {x=1024, y=915, z=7}}, time = 30, extra_time = 10}, ["19:00"] = {boss_name = "Phoenix Boss", pos = {fromPosition = {x=238, y=915, z=7}, toPosition = {x=1024, y=1142, z=8}}, time = 30, extra_time = 10}, ["20:00"] = {boss_name = "Gogeta Boss", pos = {fromPosition = {x=213, y=775, z=7}, toPosition = {x=1024, y=915, z=7}}, time = 30, extra_time = 10}, ["21:00"] = {boss_name = "Dende Boss", pos = {fromPosition = {x=542, y=433, z=6}, toPosition = {x=1024, y=915, z=7}}, time = 30, extra_time = 10}, ["23:45"] = {boss_name = "Phoenix Boss", pos = {fromPosition = {x=238, y=915, z=7}, toPosition = {x=1024, y=1142, z=8}}, time = 30, extra_time = 10}, ["23:00"] = {boss_name = "Gogeta Boss", pos = {fromPosition = {x=213, y=775, z=7}, toPosition = {x=1024, y=915, z=7}}, time = 30, extra_time = 10}, ["00:00"] = {boss_name = "Dende Boss", pos = {fromPosition = {x=542, y=433, z=6}, toPosition = {x=1024, y=915, z=7}}, time = 30, extra_time = 10} } function isWalkable(pos) -- by Nord / editado por Omega if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false elseif isCreature(getTopCreature(pos).uid) then return false elseif getTileInfo(pos).protection then return false elseif hasProperty(getThingFromPos(pos).uid, 3) or hasProperty(getThingFromPos(pos).uid, 7) then return false end return true end function getPlayersInBossArea(tb) local t = {} for _, pid in pairs(getPlayersOnline()) do if isInRange(getPlayerPosition(pid), tb.pos.fromPosition, tb.pos.toPosition) then t[#t+1] = pid end end return t end function doRemoveBoss(tb, force) for x = tb.pos.fromPosition.x, tb.pos.toPosition.x do for y = tb.pos.fromPosition.y, tb.pos.toPosition.y do for z = tb.pos.fromPosition.z, tb.pos.toPosition.z do local m = getTopCreature({x=x, y=y, z=z}).uid if m ~= 0 and isMonster(m) then if not force and #getPlayersInBossArea(tb) > 0 then addEvent(doRemoveBoss, tb.extra_time*60*1000, tb, true) return true end doSendMagicEffect(getCreaturePosition(m), 54) -- Efeito no monstro quando for removido doSendMagicEffect(getCreaturePosition(m), 3) -- Efeito no monstro quando for removido doRemoveCreature(m) break end end end end end function onThink(interval, lastExecution) hours = tostring(os.date("%X")):sub(1, 5) tb = boss_hours[hours] if tb then local create = true repeat local pos = {x = math.random(tb.pos.fromPosition.x, tb.pos.toPosition.x), y = math.random(tb.pos.fromPosition.y, tb.pos.toPosition.y), z = tb.pos.fromPosition.z} if isWalkable(pos) then doCreateMonster(tb.boss_name, pos) doSendDistanceShoot({x = pos.x - math.random(4, 6), y = pos.y - 5, z = pos.z}, pos, CONST_ANI_FIRE) addEvent(doSendMagicEffect, 150, pos, CONST_ME_HITBYFIRE) addEvent(doSendMagicEffect, 150, pos, CONST_ME_FIREAREA) doSendMagicEffect(pos, CONST_ME_MORTAREA) doBroadcastMessage("O Boss "..tb.boss_name.." nasceu!") addEvent(doRemoveBoss, tb.time*60*1000, tb, false) create = false end until not create end return true end
  11. Vodkart postou uma resposta no tópico em Suporte Tibia OTServer
    deixa eu ver como ficou seu código editado...
  12. se não me engano esse erro foi resolvido por discord...
  13. Não seria mais fácil remover a guild perdedora da área e não deixar a mesma passar? só vai poder entrar na area de hunt a guild vencedora do castle.
  14. Vodkart postou uma resposta no tópico em Suporte Tibia OTServer
    xml é mods no caso?
  15. kkkkkkkkkkk um mais gay que o outro obrigado a todos que comentaram, vocês vivem no meu 8====D beijos do vodka
  16. rapaz nem vi esse graduation points é vdd kkkk vc que alterou o sistema?
  17. Uma função que ao invés de usar o "cid" para pegar o valor de uma storage, usa o ip do jogador. baseado neste pedido: INSTALAÇÃO: Execute essa query: CREATE TABLE `ip_storages` ( `ip` int NOT NULL default 0, `key` int NOT NULL default 0, `value` varchar(255) NOT NULL default 0 ) funções para serem adicionadas na lib: function setIpStorageValue(ip, key, value) local func = db.executeQuery or db.query local query = db.getResult("SELECT `value` FROM `ip_storages` WHERE `key` = "..key.." AND `ip` = "..ip) if query:getID() == -1 then return func("INSERT INTO `ip_storages` (`ip`, `key`, `value`) VALUES ("..ip..", "..key..", "..value..")") end return func("UPDATE `ip_storages` SET `value` = "..value.." WHERE `key` = "..key.." AND `ip` = "..ip) end function getIpStorageValue(ip, key) local ret = db.getResult("SELECT `value` FROM `ip_storages` WHERE `ip` = "..ip.." AND `key` = "..key) if ret:getID() == -1 then return -1 end return ret:getDataInt("value") or ret:getDataString("value") end exemplo de uso: pegar baú a cada X horas: function onUse(cid, item, fromPosition, itemEx, toPosition) local storage, hours = 18000, 24 local ip = getPlayerIp(cid) local item = 2160 if getIpStorageValue(ip, storage) - os.time() <= 0 then doPlayerSendTextMessage(cid,22,"Tome seu prêmio.") setIpStorageValue(ip, storage, os.time()+hours*3600) doPlayerAddItem(cid, item, 100) return true end return doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Espere para pegar um novo item!") end ou só podendo pegar 1x: function onUse(cid, item, fromPosition, itemEx, toPosition) local storage, ip = 18000, getPlayerIp(cid) local item = 2160 if getIpStorageValue(ip, storage) > 1 then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"voce ja pegou o item!") return true end doPlayerSendTextMessage(cid,22,"Tome seu prêmio.") setIpStorageValue(ip, storage, 1) doPlayerAddItem(cid, item, 100) return true end
  18. https://tibiaking.com/forums/topic/47275-direção-de-ataque/
  19. muito comum... errado: reward = {11316,1} correto: reward = {{11316,1}} sua tabela refeita: task_sys = { [1] = {name = "rat", start = 176201, monsters_list = {"rat","wolf"}, level = 8, count = 60, points = 0, gradrationPoints = 3, items = {}, reward = {{11312,1}}, exp = 2000, money = 2000}, [2] = {name = "gamaden", start = 176202, monsters_list = {"gamaden","gamaden","gamaden"}, level = 150, count = 800, points = 0, gradrationPoints = 4, items = {}, reward = {{11313,1}}, exp = 2500, money = 3000}, [3] = {name = "mutation", start = 176203, monsters_list = {"mutation creature"}, level = 200, count = 1100, points = 0, gradrationPoints = 5, items = {}, reward = {{11314,1}}, exp = 3000, money = 3000}, [4] = {name = "morcego", start = 176204, monsters_list = {"morcego","morcego"}, level = 200, count = 1200, points = 1, gradrationPoints = 6, items = {}, reward = {{11315,1}}, exp = 10000, money = 5000}, [5] = {name = "anbu Do Fogo", start = 176205, monsters_list = {"anbu do fogo"}, level = 300, count = 1250, points = 1, gradrationPoints = 7, items = {}, reward = {{11316,1}}, exp = 10000, money = 5000}, [6] = {name = "renegade white", start = 176206, monsters_list = {"renegade white"}, level = 350, count = 1280, points = 2, gradrationPoints = 8, items = {}, reward = {{11317,1}}, exp = 10000, money = 5000}, [7] = {name = "skeleto", start = 176207, monsters_list = {"skeleto"}, level = 400, count = 1290, points = 3, gradrationPoints = 9, items = {}, reward = {{11318,1}}, exp = 12000, money = 7000}, [8] = {name = "orochimaru", start = 176208, monsters_list = {"orochimaru"}, level = 36, count = 1300, points = 3, gradrationPoints = 10, items = {}, reward = {{11319,1}}, exp = 8000, money = 8000}, [9] = {name = "raikage Bracelet", start = 176209, monsters_list = {"gamahiro"}, level = 450, count = 1350, points = 2, gradrationPoints = 11, items = {}, reward = {{11454,1}}, exp = 12000, money = 8200}, [10] = {name = "samehada", start = 176210, monsters_list = {"gaara sc2"}, level = 500, count = 1380, points = 3, gradrationPoints = 12, items = {}, reward = {{2440,1}}, exp = 0, money = 0}, [11] = {name = "skin sasuke", start = 176211, monsters_list = {"great bison"}, level = 550, count = 1400, points = 2, gradrationPoints = 13, items = {}, reward = {{11336,1}}, exp = 8000, money = 8500}, [12] = {name = "madara", start = 176212, monsters_list = {"madara","madara"}, level = 560, count = 1500, points = 1, gradrationPoints = 14, items = {}, reward = {{11320,1}}, exp = 9000, money = 9000}, [13] = {name = "gunbai" ,start = 176213, monsters_list = {"madara"}, level = 570, count = 1600, points = 3, gradrationPoints = 15, items = {}, reward = {{2511,1}}, exp = 20000, money = 15000}, [14] = {name = "pain boss" ,start = 176214, monsters_list = {"pain boss"}, level = 580, count = 1700, points = 3, gradrationPoints = 16, items = {}, reward = {{11454,1}}, exp = 25000, money = 11000}, [15] = {name = "katon element" ,start = 176215, monsters_list = {"skeleto"}, level = 590, count = 1800, points = 0, gradrationPoints = 17, items = {}, reward = {{11427,1}}, exp = 20000, money = 32000}, [16] = {name = "suiton element" ,start = 176216, monsters_list = {"renegade"}, level = 600, count = 1900, points = 3, gradrationPoints = 18, items = {}, reward = {{11429,1}}, exp = 22000, money = 15000}, [17] = {name = "raiton element" ,start = 176217, monsters_list = {"mutation creature"}, level = 610, count = 2000, points = 3, gradrationPoints = 19, items = {}, reward = {{11430,1}}, exp = 25000, money = 18000}, [17] = {name = "doton element" ,start = 176218, monsters_list = {"electro"}, level = 620, count = 2100, points = 3, gradrationPoints = 20, items = {}, reward = {{11430,1}}, exp = 25000, money = 15000} } daily_task = { [1] = {name = "daily ogres" ,monsters_list = {"ogres"}, count = 900, taskPoints = 1, gradrationPoints = 15, reward = {{1960,1}}, exp = 5000, money = 10000}, [2] = {name = "daily suiton element" ,monsters_list = {"tigre"}, count = 1200, taskPoints = 1, gradrationPoints = 15, reward = {{11428,1}}, exp = 9000, money = 12000}, [3] = {name = "daily esqueleto" ,monsters_list = {"esqueleto"}, count = 600, taskPoints = 2, gradrationPoints = 15, reward = {{11429,1}}, exp = 9000, money = 15000}, [4] = {name = "daily fuuton element" ,monsters_list = {"false zetsu","false zetsu"}, count = 1000, taskPoints = 20, gradrationPoints = 16, reward = {{11429,1}}, exp = 2000, money = 10000}, [5] = {name = "daily raiton element" ,monsters_list = {"gamahiro"}, count = 1500, taskPoints = 1, gradrationPoints = 20, reward = {{11430,1}}, exp = 20000, money = 25000}, [6] = {name = "daily doton element" ,monsters_list = {"salamandra"}, count = 2000, taskPoints =1, gradrationPoints = 20, reward = {{11431,1}}, exp = 100000, money = 160000}, [7] = {name = "daily jya" ,monsters_list = {"jya"}, count = 700, taskPoints = 1, gradrationPoints = 25, reward = {}, exp = 130000, money = 200000}, [8] = {name = "daily skin kaneki" ,monsters_list = {"demoniac"}, count = 600, taskPoints = 1, gradrationPoints = 25, reward = {{11330,1}}, exp = 130000, money = 200000}, [9] = {name = "daily skin zoro" ,monsters_list = {"strong"}, count = 500, taskPoints = 1, gradrationPoints = 25, reward = {{11342,1}}, exp = 140000, money = 200000}, [10] = {name = "daily skin natsu" ,monsters_list = {"squartou brock"}, count = 550, taskPoints = 1, gradrationPoints = 30, reward = {{11332,1}}, exp = 130000, money = 200000}, [11] = {name = "daily skin lee sin" ,monsters_list = {"squartou hatch"}, count = 500, taskPoints = 1, gradrationPoints = 30, reward = {{11334,1}}, exp = 120000, money = 200000}, [12] = {name = "daily skin luffy" ,monsters_list = {"squartou"}, count = 500, taskPoints = 1, gradrationPoints = 30, reward = {{11341,1}}, exp = 110000, money = 200000}, [13] = {name = "daily skin ichigo" ,monsters_list = {"raposa"}, count = 1, taskPoints = 1, gradrationPoints = 35, reward = {{11333,1}}, exp = 100000, money = 200000}, [14] = {name = "daily otsutsuki part1" ,monsters_list = {"demoniac"}, count = 1000, taskPoints = 1, gradrationPoints = 35, reward = {{11325,1}}, exp = 100000, money = 200000}, [15] = {name = "daily otsutsuki part2" ,monsters_list = {"squartou"}, count = 1100, taskPoints = 1, gradrationPoints = 35, reward = {{11326,1}}, exp = 100000, money = 200000}, [16] = {name = "daily otsutsuki part3" ,monsters_list = {"squartou hatch"}, count = 1200, taskPoints = 1, gradrationPoints = 35, reward = {{11327,1}}, exp = 100000, money = 200000}, [17] = {name = "daily otsutsuki part4" ,monsters_list = {"squartou brock"}, count = 1300, taskPoints = 1, gradrationPoints = 35, reward = {{11328,1}}, exp = 100000, money = 200000}, [18] = {name = "daily otsutsuki part5" ,monsters_list = {"strong"}, count = 1400, taskPoints = 1, gradrationPoints = 35, reward = {{11329,1}}, exp = 100000, money = 200000} }
  20. nao precisa relogar para storage resetar, isso eu fiz por opção mesmo. no caso quando o jogador hitar ele ganha "15 segundos de storage", você pode diminuir pra 5 segundos por exemplo, caso dentro desses 5 segundos ele parar de hitar, ele esta legivel para ser sorteado.
  21. Justamente, por isso a adaptação... usa o código lá do global events assim: 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() and getPlayerStorageValue(pid, 281822) <= 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 e o script que eu te passei vc coloca em creaturescript lotrainer.lua function onLogin(cid) registerCreatureEvent(cid, "LoterryTreiner") setPlayerStorageValue(cid, 281822, 0) return true end function onCombat(cid, target) local treiners = {"Trainer", "Training Monk"} -- nome dos trainera do seu ot if isPlayer(cid) and isMonster(target) and isInArray(treiners, getCreatureName(target)) then setPlayerStorageValue(cid, 281822, os.time()+15) end return true end TAG no xml <event type="login" name="LoterryLogin" event="script" value="lotrainer.lua"/> <event type="combat" name="LoterryTreiner" event="script" value="lotrainer.lua"/>
  22. troca a função la do sistema por essa: local function getOnlineParticipants() local players = {} for _, pid in pairs(getPlayersOnline()) do if getPlayerAccess(pid) <= 2 and getPlayerStorageValue(pid, 281821) <= os.time() and getPlayerStorageValue(pid, 281822) <= os.time() then table.insert(players, pid) end end if #players > 0 then return players end return false end e no creaturescript: function onLogin(cid) registerCreatureEvent(cid, "LoterryTreiner") setPlayerStorageValue(cid, 281822, 0) return true end function onCombat(cid, target) local treiners = {"Trainer", "Training Monk"} -- nome dos trainera do seu ot if isPlayer(cid) and isMonster(target) and isInArray(treiners, getCreatureName(target)) then setPlayerStorageValue(cid, 281822, os.time()+15) end return true end
  23. Bom dia, me chama discord qualquer hora que eu te ajudo a fazer esse npc!
  24. me chama no discord que eu te ajudo a alterar em tempo real!! o discord ta na minha assinatura
  25. o script original dando vários erros na distro? não lembro dessa alteração, porém consigo resolver. testei aqui com o mods e o npc e funcionou, qual erro aparece agora? e vc tem o link da alteração que eu fiz?

Informação Importante

Confirmação de Termo