Ir para conteúdo

Featured Replies

Postado

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

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.

VI6MDIG.png

 

"O fracasso é a oportunidade de se começar de novo inteligentemente"

Minhas Redes Sociais: Youtube | Página & Grupo | Steam  | Discord TibiaKing

 

Postado
  • 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

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.

VI6MDIG.png

 

"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.

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