Bumpage !
2 words It ROX nusing rep+
1.3.1
- Fixed a minor bug with broadcasting. (The broadcasting was not disabling when the raid was set to disable.)
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.
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.
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>
!! 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.
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
[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>
Maybe an odd question but, Does this also works on the new 0.2.9 TFS Distro?
Thanks in Advance!
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?
--[[+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+* |
| 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
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.
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.
forexecuteBroadcastSequence(config, broadcasting, interval)
while executing onTime() ?executeBroadcastSequence(config, broadcasting, 0)