Postado Maio 16, 2020 5 anos Boa tarde/noite.. Alguém poderia me ajudar? Bom, eu tenho esse script pra sumonar X boss, em X posição no mapa, todos os bosses tem uma posição especifica.. Coloco no global events pra sumonar de 30 em 30 minutos.. Os bosses são sorteados, aleatoriamente, porém está acontecendo de um boss que já foi sumonado, ser sorteado novamente, assim, fazendo com que fiquem 2 bosses iguais no mesmo local.. Alguém poderia me ajudar, alterar o script, e vê se existe alguma verificação que impeça-o de sumonar 2 bosses no mesmo local? Por exemplo, o script anuncia na distro que X boss foi sumonado.. Por exemplo, 30 minutos se passaram: Sumoning BOSS: Smaug. Depois de 30 minutos o smaug foi sorteado novamente, ai, o sorteio acontecesse dnv, pra sortear outro? Pls, alguem me ajudaa CODIGO: local bosses = { {boss = "Smaug", pos = {x = 1893, y = 875, z = 2}}, {boss = "laracna", pos = {x = 1482, y = 1366, z = 12}}, {boss = "son of ancalagon", pos = {x = 1452, y = 871, z = 8}}, {boss = "son of ancalagon", pos = {x = 2154, y = 1111, z = 12}}, {boss = "Wormageddon", pos = {x = 835, y = 897, z = 8}}, {boss = "olog-hai", pos = {x = 1011, y = 1335, z = 10}}, {boss = "olog-hai", pos = {x = 2171, y = 1650, z = 8}}, {boss = "scatha", pos = {x = 1602, y = 1683, z = 0}}, {boss = "valaraukar", pos = {x = 832, y = 1008, z = 4}}, {boss = "valaraukar", pos = {x = 1055, y = 800, z = 1}}, {boss = "ferumbras", pos = {x = 2365, y = 1313, z = 0}}, {boss = "jormungand", pos = {x = 1115, y = 1027, z = 9}}, {boss = "adramelech", pos = {x = 2160, y = 1017, z = 11}}, {boss = "ancalagon", pos = {x = 2124, y = 1352, z = 14}}, {boss = "smaug", pos = {x = 1893, y = 875, z = 2}}, {boss = "eddie", pos = {x = 2135, y = 957, z = 11}}, {boss = "The Necromancer", pos = {x = 837, y = 1208, z = 1}}, {boss = "baalrog", pos = {x = 1052, y = 1266, z = 9}}, {boss = "emelianenko", pos = {x = 1712, y = 1266, z = 11}}, {boss = "khel thuzad", pos = {x = 2288, y = 953, z = 15}}, {boss = "ungoliant", pos = {x = 2292, y = 869, z = 6}}, {boss = "saruman", pos = {x = 1459, y = 1483, z = 1}}, {boss = "cerberus", pos = {x = 2285, y = 855, z = 12}}, {boss = "scatha", pos = {x = 1898, y = 709, z = 9}}, {boss = "azaka", pos = {x = 1037, y = 696, z = 6}}, {boss = "gaz'haragoth", pos = {x = 98, y = 1120, z = 12}}, {boss = "necropharus", pos = {x = 1493, y = 623, z = 9}}, {boss = "Melkors Summon", pos = {x = 812, y = 1346, z = 9}}, {boss = "Avari Leader", pos = {x = 1478, y = 1847, z = 8}}, {boss = "Azazel", pos = {x = 873, y = 687, z = 9}}, {boss = "Aragog", pos = {x = 2213, y = 1832, z = 8}}, {boss = "Nosferatu", pos = {x = 751, y = 1492, z = 7}}, {boss = "The Necromancer", pos = {x = 1059, y = 819, z = 0}}, {boss = "Hellgorak", pos = {x = 802, y = 545, z = 5}}, {boss = "Wormageddon", pos = {x=274, y=832, z=9}}, {boss = "Melkors Summon", pos = {x = 2040, y = 598, z = 13}}, {boss = "Lord of The Elements", pos = {x = 627, y = 1321, z = 13}} } function onThink(cid, interval) local random = math.random(1, #bosses) doSummonCreature(bosses[random].boss, bosses[random].pos) print("Summoning Boss: " .. bosses[random].boss) return true end
Postado Maio 17, 2020 5 anos Olá @Jonathan005 , tudo bom? Esse script foi alterado de um já existente e funcional, postado em outra plataforma... Ele apresenta algum erro no distro ao executar a função? Link de referência, postado aqui no tibiaking: Tente alterar por: Spoiler function onThink(cid, interval) local random = math.random(1, #bosses) if not getCreatureName(bosses[random].boss) then doSummonCreature(bosses[random].boss, bosses[random].pos) end print("Summoning Boss: " .. bosses[random].boss) return true end Já vi também algumas dessas funções serem utilizadas de forma diferente, como: local random = math.random(1, 1000) e doCreateMonster(boss[math.random(#boss)], pos) Realize testes em outras opções e notifique aqui o resultado. "O fracasso é a oportunidade de se começar de novo inteligentemente" Minhas Redes Sociais: Youtube | Página & Grupo | Steam | Discord TibiaKing
Postado Maio 17, 2020 5 anos Autor Fala irmão, tudo sim, obrigado pela moral, eu testei esse, porém a função "getCreatureByName" não tem no meu tFS 1.2 Aparece um erro na distro [Error - GlobalEvents::think] Failed to execute event: BossesS Lua Script Error: [GlobalEvent Interface] data/globalevents/scripts/spawn/testeboss.lua:onThink data/globalevents/scripts/spawn/testeboss.lua:48: attempt to call global 'getCreatureByName' (a nil value) stack traceback: [C]: in function 'getCreatureByName' data/globalevents/scripts/spawn/testeboss.lua:48: in function <data/globalevents/scripts/spawn/testeboss.lua:45> [Error - GlobalEvents::think] Failed to execute event: BossesS Lua Script Error: [GlobalEvent Interface] data/globalevents/scripts/spawn/testeboss.lua:onThink data/globalevents/scripts/spawn/testeboss.lua:48: attempt to call global 'getCreatureByName' (a nil value) stack traceback:
Postado Maio 17, 2020 5 anos Entendi, esse é para 0.X ... Um amigo recomendou este criado pelo Nekiro, para TFS 1.X : Spoiler local raids = { -- Bosses [1] = {type = 'BOSS', position = Position(32960, 32075, 6), monster = 'demodras', message = 'Demodras has spawned', chance = 30}, [2] = {type = 'BOSS', position = Position(998, 1006, 7), monster = 'orshabaal', chance = 40}, [3] = {type = 'BOSS', position = Position(998, 1006, 7), monster = 'ferumbras', chance = 30}, -- Raids fromPos, toPos [4] = {type = 'NORMAL', fromPos = Position(997, 1005, 7), toPos = Position(1009, 1014, 7), monsters = {'orc', 'orc Spearman', 'orc warrior'}, count = 10, message = 'orcs raid', chance = 20}, [5] = {type = 'NORMAL', fromPos = Position(997, 1005, 7), toPos = Position(1009, 1014, 7), monsters = 'demon', count = 10, message = 'demons raid', chance = 50}, } local spawnedBosses = {} local function isSpawned(name) for i = 1, #spawnedBosses do local monster = Monster(spawnedBosses[i]) if monster and monster:getName():lower() == name then return true else spawnedBosses[i] = nil end end return false end function onThink(interval, lastExecution, thinkInterval) local table = raids[math.random(#raids)] if math.random(100) > table.chance then return true end if table.type == 'BOSS' then if not isSpawned(table.monster:lower()) then local boss = Game.createMonster(table.monster, table.position, true, false) if boss then spawnedBosses[#spawnedBosses + 1] = boss:getId() end if table.message ~= nil then broadcastMessage(table.message, MESSAGE_EVENT_ADVANCE) end end elseif table.type == 'NORMAL' then for i = 1, table.count do local randomPosition = Position(math.random(table.fromPos.x, table.toPos.x), math.random(table.fromPos.y, table.toPos.y), table.fromPos.z) if type(table.monsters) == 'string' then Game.createMonster(table.monsters, randomPosition, true, false) else Game.createMonster(table.monsters[math.random(#table.monsters)], randomPosition, true, false) end end if table.message ~= nil then broadcastMessage(table.message, MESSAGE_EVENT_ADVANCE) end end return true end Tente utiliza-lo pois dentre a sua solicitação ele melhor atende a sua necessidade. "O fracasso é a oportunidade de se começar de novo inteligentemente" Minhas Redes Sociais: Youtube | Página & Grupo | Steam | Discord TibiaKing
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.