• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

GlobalEvent TM - Boss Raid System v1.3.0 (Release/Updated)

2 words It ROX nusing rep+

Cool no problem :)

I made a small patch (1.3.1) for a minor bug where the broadcasting was not disabling when the raid is set to disable.

Patch 1.3.1:
1.3.1
  • Fixed a minor bug with broadcasting. (The broadcasting was not disabling when the raid was set to disable.)
 

Attachments

  • [LATEST] [0.3+0.4] [Teh Maverick] Boss Raid System v1.3.1.rar
    9.4 KB · Views: 8 · VirusTotal
Last edited:
I have a suggestion for an additional talkaction for the GMs.

!raidlist

and it would just list what raids you have, the number of the raids in order by number, and if they are enabled or disabled.

An example would be, with using the horned fox raid you gave as example.

When you would type !raidlist, it would popup an fyi box and say:

1. The Horned Fox <enabled>
2. Zombie Invasion <disabled>

Just for examples.

I think this would be very useful for people keeping track of multiple raids.
 
I have a suggestion for an additional talkaction for the GMs.

!raidlist

and it would just list what raids you have, the number of the raids in order by number, and if they are enabled or disabled.

An example would be, with using the horned fox raid you gave as example.

When you would type !raidlist, it would popup an fyi box and say:

1. The Horned Fox <enabled>
2. Zombie Invasion <disabled>

Just for examples.

I think this would be very useful for people keeping track of multiple raids.

Nice idea :) I had planned on adding a command that lists all the raids but never got around to adding it. Thanks for reminding me, I'll work on that now I think xD
 
Update! (1.3.5) For the implementation of raid listing in-game. See the main thread post for details on which files were edited.

Patch 1.3.5:
1.3.5
  • Added new in-game raid listing feature. Allows you to list all raids using a talkaction /raidlist [optional filter]. The filters will allow you to give you the raids with specific status's e.g. /raidlist enabled gives you the raids that are enabled.
  • Filter Params: enabled, disabled, active, inactive, boss name/raid name, raid id.

4vft37.png


15:24 /raidlist
15:24 [1] The Horned Fox <enabled> <active>
15:24 [2] Orshabaal <disabled> <active>
15:24 [3] Cave Rat <enabled> <active>

15:22 /raidlist disabled
15:22 [2] Orshabaal <disabled> <active>

15:23 /raidlist enabled
15:23 [1] The Horned Fox <enabled> <active>
15:23 [3] Cave Rat <enabled> <active>

15:25 /raidlist active
15:25 [1] The Horned Fox <enabled> <active>
15:25 [2] Orshabaal <disabled> <active>
15:25 [3] Cave Rat <enabled> <active>

15:26 /raidlist orshabaal
15:26 [2] Orshabaal <disabled> <active>

15:26 /raidlist 3
15:26 [3] Cave Rat <enabled> <active>
 

Attachments

  • [LATEST] [0.3+0.4] [Teh Maverick] Boss Raid System v1.3.5.rar
    10.8 KB · Views: 6 · VirusTotal
Last edited:
!! Very good work, I'm sure i'm not the only one who would benefit from this. Thank you for your work on adding this feature.

I also have some more ideas to improve your raid system.. and just general questions about how it works that I can't find addressed in the thread.

Some of these questions might be a bit noobish, but bare with me XD.

1. Is it possible to set the boss to spawn at a specific coordinate on the map (rather than spawning in the range)?
2. Is it possible to have a timer in the script to remove the raid monsters and boss after the raid occurs?
3. Is it possible to have two (or more) raids happening at the same time?
4. Is it possible to have the monsters spawn in "waves", in sync with broadcasts leading up to the boss actually spawning? (meaning the monsters spawn at different times, leading up to the boss spawning)
5. When a raid occurs, is it possible to have it spawn a chest, with configurable items inside of the chest, to a specific coordinate, and have a certain amount of time before the chest would be removed?
6. Continuing on question 4, is it possible to have raid "quest" chests, meaning they would only be attainable once doing the raid, but by any player, and have the storage value given for attaining the reward be removed, so that during the next raid, it is possible to get the chest quest again.
7. Is it possible to make a quest/reward chest only appear after the boss is killed?

I know that most of these things can be done, but maybe some of them go out scope of what is possible within just one script.. the raid script that is.

Hope I am not bothering you with these questions, they are just ideas I have had, and I always like to see what people like of my ideas.
 
!! Very good work, I'm sure i'm not the only one who would benefit from this. Thank you for your work on adding this feature.

I also have some more ideas to improve your raid system.. and just general questions about how it works that I can't find addressed in the thread.

Some of these questions might be a bit noobish, but bare with me XD.

1. Is it possible to set the boss to spawn at a specific coordinate on the map (rather than spawning in the range)?
2. Is it possible to have a timer in the script to remove the raid monsters and boss after the raid occurs?
3. Is it possible to have two (or more) raids happening at the same time?
4. Is it possible to have the monsters spawn in "waves", in sync with broadcasts leading up to the boss actually spawning? (meaning the monsters spawn at different times, leading up to the boss spawning)
5. When a raid occurs, is it possible to have it spawn a chest, with configurable items inside of the chest, to a specific coordinate, and have a certain amount of time before the chest would be removed?
6. Continuing on question 4, is it possible to have raid "quest" chests, meaning they would only be attainable once doing the raid, but by any player, and have the storage value given for attaining the reward be removed, so that during the next raid, it is possible to get the chest quest again.
7. Is it possible to make a quest/reward chest only appear after the boss is killed?

I know that most of these things can be done, but maybe some of them go out scope of what is possible within just one script.. the raid script that is.

Hope I am not bothering you with these questions, they are just ideas I have had, and I always like to see what people like of my ideas.

1. Is it possible to set the boss to spawn at a specific coordinate on the map (rather than spawning in the range)?
I haven't added a way to set hardcode the position of the boss spawn. This could be something to add though.

2. Is it possible to have a timer in the script to remove the raid monsters and boss after the raid occurs?
This feature has not been added, however the raid monsters will not stack. I will think about adding a way to remove creatures after a certain amount of time.

3. Is it possible to have two (or more) raids happening at the same time?
Yes of course. Repeat steps 2,3,4 to add more raids.

4. Is it possible to have the monsters spawn in "waves", in sync with broadcasts leading up to the boss actually spawning? (meaning the monsters spawn at different times, leading up to the boss spawning)
I had not thought about this to be honest. I like that idea and will most likely add it in an update soon.

5. When a raid occurs, is it possible to have it spawn a chest, with configurable items inside of the chest, to a specific coordinate, and have a certain amount of time before the chest would be removed?
This would be possible to add, however I'm not sure I will do so in my system. Will keep it in mind however :)

6. Continuing on question 4, is it possible to have raid "quest" chests, meaning they would only be attainable once doing the raid, but by any player, and have the storage value given for attaining the reward be removed, so that during the next raid, it is possible to get the chest quest again.

Again, I will keep the idea of questing through the raid system in mind. Could make for a nice add-on system.

7. Is it possible to make a quest/reward chest only appear after the boss is killed?
Continue of question 5. This could be a nice add-on, we will see ;)

Thanks for the suggestions! Appreciated.
 
Thank you for responding, glad you like my suggestions.

Not sure if you understood my third question though.

I meant, for two raids happening at the EXACT time.

Meaning, if I have a rookgaard on the server, and a mainland, a raid could happen in rook, at the same time one is in a town in main. Or two raids, occuring at the same time, in two different places, in real time.

Sorry for not being more.. specific with what I asked XD
 
Thank you for responding, glad you like my suggestions.

Not sure if you understood my third question though.

I meant, for two raids happening at the EXACT time.

Meaning, if I have a rookgaard on the server, and a mainland, a raid could happen in rook, at the same time one is in a town in main. Or two raids, occuring at the same time, in two different places, in real time.

Sorry for not being more.. specific with what I asked XD

Ya ofc you can have two raids running at the same time :p
 
Ya ofc you can have two raids running at the same time :p

Ah, alright, thanks your your quick replys.

and again, thanks for taking my ideas into consideration.

I want to make raids more attractive to go to, and adding in "raid quests" is something I have always wanted to do. In fact, i've made maps specifically so, that the raids will occur in a castle of sorts, and the players have to work their way through it..

Hmm, one last thing I've always wondered is making an onkill event that will make a raid happen.

Such as, having an old man as a monster wondering around in an outkeep. The oldman would be a non-aggressive monster, but if you would kill him, it would trigger a raid to start.

Just ideas I have.. I have too many of them x.x
 
Hello. I've got this in console:

Code:
[22:22:13.238] [Error - GlobalEvent Interface] 
[22:22:13.238] data/globalevents/scripts/raids/thehornedfox.lua:onThink
[22:22:13.238] Description: 
[22:22:13.239] data/globalevents/scripts/raids/lib/eventraids.lua:137: attempt to concatenate local 'lastExecution' (a nil value)
[22:22:13.239] stack traceback:
[22:22:13.239] 	data/globalevents/scripts/raids/lib/eventraids.lua:137: in function 'setRaidToActive'
[22:22:13.239] 	data/globalevents/scripts/raids/lib/eventraids.lua:234: in function 'executeBossRaid'
[22:22:13.239] 	data/globalevents/scripts/raids/thehornedfox.lua:57: in function <data/globalevents/scripts/raids/thehornedfox.lua:56>

Whata fak?
 
Last edited:
Maybe an odd question but, Does this also works on the new 0.2.9 TFS Distro?

Thanks in Advance!

No, I have not yet written this for 0.2.9 distro.

Hello. I've got this in console:

Code:
[22:22:13.238] [Error - GlobalEvent Interface] 
[22:22:13.238] data/globalevents/scripts/raids/thehornedfox.lua:onThink
[22:22:13.238] Description: 
[22:22:13.239] data/globalevents/scripts/raids/lib/eventraids.lua:137: attempt to concatenate local 'lastExecution' (a nil value)
[22:22:13.239] stack traceback:
[22:22:13.239] 	data/globalevents/scripts/raids/lib/eventraids.lua:137: in function 'setRaidToActive'
[22:22:13.239] 	data/globalevents/scripts/raids/lib/eventraids.lua:234: in function 'executeBossRaid'
[22:22:13.239] 	data/globalevents/scripts/raids/thehornedfox.lua:57: in function <data/globalevents/scripts/raids/thehornedfox.lua:56>

Whata fak?

I'll fix this error message. It's not a serious error. What operating system are you using? Windows or Linux?

EDIT: You need to update your the horned fox.lua file with the latest one.

example of the latest raid file:
Code:
  --[[+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+* |
    |                  Boss Raid System                  |
    |               Made by: Teh Maverick             |
    |                   www.otland.net                 |
    |                    Version 1.3.5                |
    | +*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+* |]]--
    
--[[Config Help:
    *enabled - the can be used to enable or disable the raid (true/false)
    *id - this is the id of the raid, this is important if you want to be able to disable the raid in-game. (Note: Make sure it is unique)
    *topLeft - the top left cordinate of the boss invasion area
    *bottomRight - the botton right cordinate of the boss invasion area
    *autoCleanSpawns - { enabled = true/false, time = time for the autoclean to execute (make sure the time is less or equal to the interval time in globalevents.xml)}, Auto cleans the spawns after a set time.
    *broadcast - If you would like the raid to broadcast to all players online (default: false)
    *boss - {
        name = String name of the boss you want to summon (note: might be cap sensitive),
        amount = the maximum number of bosses that may appear (default is 1): amount=0 to disable,
        chance = the chance (%) out of 100% that the boss will appear when this script is run
    }
    *trashspawn - {
        name = String name of the trash monster you want to summon (note: might be cap sensitive),
        amount = the maximum number of trash monsters that may appear: amount=0 to disable,
        chance = the chance (%) out of 100% that the trash monster will appear when this script is run (default:100 - recommended if you want trash spawn to summon everytime)
    } 
    *checkThreshold - the distance the script will check outside the set cords for the boss creature in case of luring (0 = disable)
]]

--[[*******Config Begin*******]]--

    local config = 
    {
        id = 1,
        boss = {name = "The Horned Fox", amount = 1, pos = {x=nil,y=nil,z=nil}},
        spawnBossChance = 100, --(%)
        enabled = true,
        topLeft={x=1020, y=801, z=7, stackpos=253},
        bottomRight={x=1032, y=806, z=7, stackpos=253},
        autoCleanSpawns = {enabled = true, time = 80000},
        broadcast = true,
        trashspawn = {
            {name = "Minotaur", amount = 3, chance = 100},
            {name = "Minotaur Guard", amount = 3, chance = 100},
            {name = "Minotaur Mage", amount = 3, chance = 100} --No comma (,) for the last entry
        },
        checkThreshold = 10
    }
    
    local broadcasting = 
    {
          --{text = string, interval = integer[milliseconds], activate = boolean[true/false]} NOTE: Only have ONE 'true' value for the activate param
          --(or it will activate more than once.) it will activate on the last text by default if no activate value is found.
          --The raid creatures will not spawn until it reaches the broadcast text with activate parameter 'true'.
            {text = "Minotaurs have been sighted moving towards thais, beware!", interval = 500, activate = false},
            {text = "Prepare for battle citizens of thais! Take arms against the Minotaurs", interval = 10000, activate = false},
            {text = "Minotaurs are attacking thais! Defeat their leader "..config.boss.name.." before it is too late.", interval = 10000, activate = true} --No comma (,) for the last entry
    }

--[[*******Config End*******]]--


dofile(getDataDir().."globalevents/scripts/raids/raidsConfig.lua") --Dont touch this

function onThink(interval)
    executeBroadcastSequence(config, broadcasting, interval)
    return true
end

function onStartup()
local status = 0
    if config.enabled == true then
        status = 1
    end
        doRegisterRaid(config.id, status, config.boss.name)
end
 
Last edited:
Version 2.0.0a Build - Progress

I have been rebuilding the structure of the system and adding the following new features:
  • Set the boss to spawn at a specific coordinate on the map (rather than spawning in the range randomly) - Done
  • A timer in the script to remove the raid monsters and boss a certain amount of time after the raid occurs (configurable). - Done
  • Monsters spawn in "waves", in sync with broadcasts leading up to the boss spawning (configurable) - Still to be done

Report any known bugs that can be addressed in this update.

Regards,
Mav
 
Is there anyway to execute the raid manually? There is a /enableraid ID command, but it always says that the raid is enabled (but not executed).

And btw. is it possible to use onTime instead of onThink, and what function should I use? Because onTime doesn't have interval.
 
Is there anyway to execute the raid manually? There is a /enableraid ID command, but it always says that the raid is enabled (but not executed).

And btw. is it possible to use onTime instead of onThink, and what function should I use? Because onTime doesn't have interval.

Well, I have been rebuilding the system to be more dynamic these past few days. Now that I have restructured the code I will be able to add a way to manually execute the raid via a command or what ever you may like. This raid system uses the globalevents to execute raids so the onThink function is merely the trigger for the raid when the globalevent timer has ticked. I haven't done much with the onTime function tbh so can't help much there. I will add the ability to execute raids manually on the 2.0.0a update due in a few days, if possible (not a set date).

As for the /enableraid ID command bug, what version of TFS are you using? and have you updated this raid system from an older version, or not?
I have tested to make sure it works on 0.4 revs and haven't had any issues, so I could be that something has gone wrong in the setup. However I will double check it though.

EDIT: Check that all your raids have a different ID in their configs (make sure there are no conflicting ID's.) I will be trying to remove the use of ID's on the next update if possible, and make it more self maintained within the system.
 
Last edited:
Well, I have been rebuilding the system to be more dynamic these past few days. Now that I have restructured the code I will be able to add a way to manually execute the raid via a command or what ever you may like. This raid system uses the globalevents to execute raids so the onThink function is merely the trigger for the raid when the globalevent timer has ticked. I haven't done much with the onTime function tbh so can't help much there. I will add the ability to execute raids manually on the 2.0.0a update due in a few days, if possible (not a set date).

As for the /enableraid ID command bug, what version of TFS are you using? and have you updated this raid system from an older version, or not?
I have tested to make sure it works on 0.4 revs and haven't had any issues, so I could be that something has gone wrong in the setup. However I will double check it though.

EDIT: Check that all your raids have a different ID in their configs (make sure there are no conflicting ID's.) I will be trying to remove the use of ID's on the next update if possible, and make it more self maintained within the system.

Thanks for your reply. I can always help you with coding if you want to. About the /enableraid command, I don't think so it's bugged, it just always says that the raid is enabled, but I can enable / disable it anytime.

#edit

There is another way to execute raid like onTime - using LUA date and check the hour, but that's not the best way. The best will be if there will be new function like 'executeRaid([id])'.

I think I will work on this script when I'll get some time. Atleast I will try to rebuild that. :) I think it's worth that.
 
Last edited:
Thanks for your reply. I can always help you with coding if you want to. About the /enableraid command, I don't think so it's bugged, it just always says that the raid is enabled, but I can enable / disable it anytime.

#edit

There is another way to execute raid like onTime - using LUA date and check the hour, but that's not the best way. The best will be if there will be new function like 'executeRaid([id])'.

I think I will work on this script when I'll get some time. Atleast I will try to rebuild that. :) I think it's worth that.

Appreciate the offer to help me with the coding :p at the moment I am ok to do it by myself, but if I ever find I need some help I'll give you a shout :) If you are able to rebuild it like you said I would be interested in seeing it when it's done :X
 
Back
Top