
Tudo que Vodkart postou
-
[8.6] Task System 4.0! (Task system + Daily Task System)
Possivelmente algo na tabela está errado, ai á esse erro... Você tem que me enviar pelo pastebin o seu mods editado para mim olhar.
-
[TFS] New Auto Loot Unlimited Edition 2.0
Não está criando o arquivo... vc instalou corretamente? criou a pasta lá como foi pedido e talz?
-
Acumular tempo - Actions
@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
-
[Tabela] Mensagem ao Matar Monstros
vc registrou o evento no player?
-
[LUA] IP STORAGE
não tenha dúvidas disso!
-
[Tabela] Mensagem ao Matar Monstros
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.72] Info Monster - Talkaction
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)
-
[7.72] Info Monster - Talkaction
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
-
Check se o Attacker está vivo
usa if isCreature(...) then bloco end posta o reflect system pra mim ver...
-
Event BOSS
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
-
Event BOSS
deixa eu ver como ficou seu código editado...
-
estou com problema nas bags
se não me engano esse erro foi resolvido por discord...
-
EXP Diminuída com guildas diferentes no mesmo local
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.
-
Event BOSS
xml é mods no caso?
-
[LUA] IP STORAGE
kkkkkkkkkkk um mais gay que o outro obrigado a todos que comentaram, vocês vivem no meu 8====D beijos do vodka
-
Simple Task [ERRO] Ajuda não entrega as recompensas
rapaz nem vi esse graduation points é vdd kkkk vc que alterou o sistema?
-
[LUA] IP STORAGE
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
-
Script de virar para o Alvo Não vira se o alvo tiver em diagonal
https://tibiaking.com/forums/topic/47275-direção-de-ataque/
-
Simple Task [ERRO] Ajuda não entrega as recompensas
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} }
-
Lottery system com limitação a trainers
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.
-
Lottery system com limitação a trainers
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"/>
-
Lottery system com limitação a trainers
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
-
Erro em NPC de quest com tasks
Bom dia, me chama discord qualquer hora que eu te ajudo a fazer esse npc!
-
Simple Task 0.4 não funciona
me chama no discord que eu te ajudo a alterar em tempo real!! o discord ta na minha assinatura
-
Simple Task 0.4 não funciona
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?