RunUO Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Mega Spawner System

Morxeton

Sorceror
Mega Spawner System

Mega Spawner System v3.68 (for RunUO v1)
Released: October 9, 2004 @ 10:22 PM CST

Important information:
I no longer support this version.

EDIT: 2/12/2011
Mega System is in progress. The forums can be found here: http://www.orbsydia.org/forum/forumdisplay.php?157-Mega-System

EDIT: 2/2/2009
Forward progress has been made on the new system and it is turning out great thus far. I do not expect any kind of release to be made for another month or two.

Click here for a link to a compatible version of MegaSpawner v3.68 on RunUO2 RC1 (it also seems to work on RC2)

Updates:
v3.68
-Created a plug-in to fix invalid entry amounts (amount = 0) on overridden spawners, which caused the priority to only spawn the first entry on the spawner.
-Fixed import processes to correct invalid entry amounts when loading.
-Fixed bug in EditSpawnGump when editting an entry on an overridden spawner, going to page 2 then back to page 1 would cause a server crash due to it not checking which page you are on before trying to read from a text entry that does not exist on that page.

v3.67
-Fixed Despawn to check if FocusMob != null then it wont despawn the mobile.
-Fixed bug in CompileSameCriteriaList() in MasterControl which is the method for producing the duped spawner list. It would cause a server crash due to incorrectly updating an arraylist.

v3.66
-Fixed a crash bug in the new method SelectIndex which would result in a crash if there were no entries on the spawner. shaDoze discovered the bug and posted the fix. Thanks shaDoze!

v3.65
-Fixed timer priority from EveryTick to OneSecond.
-Updated overridden spawners to allow you to set the "Amount" on each entry to be a priority level for the entry. The higher the priority, the more of a chance the entry will be spawned.

v3.64
-Changed Spawn method so when a spawner is inside of a container, it will spawn in that container instead of checking RootParent for container.
-Added in a check in the SpawnEntry method to check and see if Map == null or Map.Internal then will delete the spawn if so.
-Added [DupeMS command to allow you to dupe Mega Spawners. Using [Dupe will cause the spawner and the duped spawner(s) to share the same arraylists which causes problems.

v3.63
-Updated Conversion Utility to set the item's Movable check true or false based on the item's default item.Movable setting.

v3.62
-Fixed a bug when choosing to save all spawners and pressing ok without entering a name will result in it still prompting you to enter a name as well as the file menu gump popping back up.
-Fixed a bug when choosing to save all spawners and someone added a mega spawner in which did not get updated in the current user's arraylist would cause a crash due to arraylist sizes not matching.
-Fixed a bug when worldsave it would crash the server based on an invalid setting in the SettingsList.
-Fixed a bug when choosing to "Delete Selected Settings" when Override Individual Entries is the setting selected, it would cause a crash due to failing to update two arraylists correctly.
-Fixed a bug in CompileSameCriteriaList which would cause a crash due to a for loop arraylist issue.

v3.61
-Fixed bug in ConfirmDeleteSetting.cs and ConfirmDeleteSettings.cs which were based off of the old method for the SettingsList and would result in a crash when trying to remove the "Override Individual Entries" setting.

v3.6
-Improved code for the SettingsList. Uses embedded arraylists instead of a string parser. Due to the changes, the old SettingsList method will be converted to the new SettingsList method upon loading.
-Fixed bug when updating the "Override Individual Entries" setting, it would not respawn correctly by removing current spawns then respawning.
-Changed the plug-in interface and added a RegisterPlugIn() method for each plug-in to use. The new changes allows the plug-ins to now be sorted alphabetically, which is done automatically as plug-ins are loaded. Also, plug-in's will now have a help description. When clicking on help, you may click on a plug-in for a description of what the plug-in will do.
-Changed the settings listing to automatically sort first by entry then by alphabetical. If it is a spawner-wide setting like "Override Individual Entries" then those get sorted first alphabetically before the entry settings.
-Updated all of the gumps that use checkboxes to where you may now click on the checkbox at the top of the column to toggle selecting/deselecting all checkboxes on the current page.
-Added "Go To Spawner Location" toggle button above the spawner buttons on the spawner list gump. What it does is, when you press the button, it will toggle on/off whether the spawner buttons will either edit the spawner or go to it's location.
-Added option to misc config in system configuration called "Staff Can Trigger Events". When this is checked, it allows staff members (Counselor and above) to trigger events such as proximity and speech events.
-Overrided dupe method to now allow correct duping of Mega Spawners.
-Fixed bug where if more than one person was logged into the system, and the spawner list was modified, it would crash due to not properly updating the arraylists.
-Updated edit spawn gump to flag each setting that you cannot modify if the spawner is overridden.
-Fixed bug in Accounts Management where you were able to delete any of the accounts by means of "Delete All Accounts" or "Delete Selected Accounts" without regards to your AccessLevel. Master Admin and Default User accounts were not affected.
-Added new search option called "Duped Spawners". This option will search for all spawners that have the same criteria, disregarding their location.
-Updated Edit Account:
-You may not grant other users access to admin menus that you do not have access to.
-You may not add accounts that do not have the accesslevel requirement to use the [MegaSpawner command.
-Updated to use RootParent instead of Parent. Using Parent instead of RootParent would create problems for example if a spawner was placed inside of a container and then that container placed in another container. This will resolve any of those types of issues.
-Changed the Mega Spawner Edit Gump to no longer default to command page 1 upon returning to spawner list then editting another spawner. It will now save the last command page it was on.
-Fixed bug in SpawnEntry method which would convert to BaseCreature regardless if the mobile was derived from BaseCreature or not. Town Criers are an example of mobiles not derived from BaseCreature, therefore it resulted in catching an exception and never spawning.
-Fixed typo in Misc Configuration which was labeled "Timer Configuration" after you have selected Misc Config.

...The rest of the changelog is in the attached file called "MSS changelog.txt"...

Summary:
A new spawning system with ease of use and power. Everything is controlled via gumps and you can change style and text color settings to suit your taste. The specialty about this system is that each spawn entry can have it's own criteria (min/max delay, spawn range, walk range, spawn type, etc...)

Note:
I released v3.0 a little earlier than I wanted to. It's been over a month since the release of v2. I wanted to release this soon, but I would have liked to add more features to this. I decided on releasing it now and allowing people to benefit from it. Also, to obtain bug reports/suggestions.

Description:
v3.0
Many things have been updated/added in this version. I may miss a few on this list:

***All of the gumps have been redone. Gumps are now configurable via "Edit Your Personal Configuration" option to change the gump style and text colors used. The gumps are now using AddHtml for the majority of the information displayed. Information is now "centered" in the columns. The messages window at the bottom of the gump can be minimized. While minimized, you will not see any messages.
***Account system has been added. Five accesslevels are as follows: Master Admin, Head Admin, Admin, User, None. This makes it so you can restrict/grant access to different parts of the system. The first admin account on the server will be the "Master Admin" and this account can never be editted or deleted and has full access to the system. Anyone's account that has access to the [MegaSpawner command (GM and above) and not added into the system will result in them falling under the "Default User" account. By default, "Default User" has no access to the system. You may edit "Default User" and change it to anything that you'd like. Each accesslevel that has access to accounts management may NOT edit their own account or edit an account of equal or greater accesslevel. An accesslevel of "User" never has access to the admin menu, period.
***Accounts management has been added and accessible from the admin menu. This is where you can add/edit/delete user accounts from the system. This does NOT delete accounts from the shard. It only uses their shard account name for a reference to base their accesslevel from.
***System configuration has been added and accessible from the admin menu. This is where you can change different configuration options. For now, there is only one (more to be added of course). You may find out more detailed information from the help system within the gump.
***Protection system has been added. When a person edits a spawner, it locks out that spawner from being editted, period. You cannot edit the spawner via the gump or double clicking it on the ground. When someone is creating "New Spawner Workspace" it prevents any of those spawners from being editted as well (explanation of spawner workspace is down further). When someone is editting a file, no one can access any of those spawners from being editted (explanation of file editting is down further as well).
***Export file format has been changed from StreamWriter method to XmlWriter method.
***When loading a file, it checks for duplicate spawners and removes them. In the future, this will be changed to an option you can configure to have the dupe spawner check run or not.
***File menu has been added. This allows you to view all loaded spawner export files in the system. You may click on a file to view the contents of the file. Basically, this means you will view only those spawners within that file. While viewing the file, nobody else can access any of those spawners. You can load/unload files from this menu and open the file browser. You can also save export files and save a backup file from this menu as well. There is also a new feature "New Spawner Workspace" that has been added.
***File browser has been added for ease of use of loading known file types.
***"New Spawner Workspace" has been added. What this does is allow you to start from a blank spawner list and add spawners to that list. Any spawners you add will not be active and no one else can edit them. You can configure them any way you like. When finished, you choose to save the workspace (the File Menu button turns into the Save Workspace button). All spawners added within the workspace will be deleted. The purpose of this is to allow you to create spawner export files without adding live spawners to your shard.
***Delete protection has been added. This prevents someone from using the [delete or [remove command on a Mega Spawner that someone else is working on. An overhead message appears above the Mega Spawner when you are not allowed to delete it.
***More options have been added to "Add Entry." There is now a search button to allow you to search for partial names. It will pop up a list with all matches of the partial name you have typed in. Also, if you do not specify a name, it pulls up all valid mobile/item types on the server. "Stack Amount Between" has been added. If an entry is a stackable item, it will randomly spawn between the min and max amount you have entered. "Item Movable" checkbox has been added. If the entry is an item, it will spawn in "movable" based on whether you chose to have it movable or not via the checkbox. "Keyword" text entry has been increased in size. "Case Sensitive" checkbox has been added. This allows the keyword to be case sensitive or not.
***"Edit Settings" has been added. You can add certain settings to the spawner. For now, there are only two settings (more to be added in the future of course). "Override Individual Entries" is one of the settings you may choose. This allows you to override each spawn entry's own criteria and allow you to set criteria that will be used for all entries. This makes the spawner act as a distro spawner in it's method. The amount specified will be the total amount to spawn. This will allow certain entries to not spawn at all if they don't get randomly chosen to spawn. "Add Item To Spawn Entry" setting allows you to add an item to a spawn entry. If the entry you choose does not have a backpack or is not a container, then you cannot select that entry. You can add as many items you want to a spawn entry. Within the gump, if the item chosen is a container, you can choose to add items inside of it as well. This is not completely done. I plan on adding modification of item properties in the future.

There are probably more features I have added and forgot to mention at the moment. There are a ton more ideas/features that will be added in the future. If you have any suggestions or bug reports, please post them to this thread.

Installation:
Upgrade from v1 or v2:
Delete ALL older Mega Spawner scripts.

Make sure you backup your "Saves" folder in the event something may go wrong.

Extract the two files attached to this thread into your "Scripts/Custom" directory. Fire up your server and type [MegaSpawner to access the system.

When the system is first run, the first person to log into the system will be granted "Master Admin" access. Once in the system, you can configure each account seperately giving them each their own accesslevel. Any account not in the system that has access to the [MegaSpawner command (GM and above) will fall under "Default User." If you do not want or care to control what people can access in the system, then I suggest modifying "Default User" and change the access level to "Head Admin" and click on all the checkboxes for the admin menu. This will give everyone that has access to the [MegaSpawner command full access in the system. Be careful, you may want to hide certain settings from people tampering with.

Important Note:
All pre v3.2 spawners due to the support added for multiple entries of same entry type and serialization changes due to that support, will have all of their spawned entries wiped and all spawners respawned. When the server starts up, it will take longer to load for this process to finish. This only happens once.
 

Attachments

  • MSS changelog.txt
    20.6 KB · Views: 3,977
  • Mega Spawner v3.68 Part 1 of 2.zip
    92.8 KB · Views: 8,743
  • Mega Spawner v3.68 Part 2 of 2.zip
    89.5 KB · Views: 7,499
  • [2.0]Mega Spawner System.rar
    472.4 KB · Views: 439
  • MSS Plug-Ins.rar
    5.9 KB · Views: 231

flowerbudd

Sorceror
Morxeton said:
That is correct.
ive added my gms in the admin menu of the spawner, and set them to admin lvl, and checked accts management and system config so they are checked, and still my gms cant log on, it tells them unauthorized
 

Morxeton

Sorceror
flowerbudd said:
ive added my gms in the admin menu of the spawner, and set them to admin lvl, and checked accts management and system config so they are checked, and still my gms cant log on, it tells them unauthorized
Hmm.... ok, I will look into this right away. It worked fine for me. Do their account names have any capital letters in it? Maybe perhaps I missed a .ToLower() somewhere... :)
 

Morxeton

Sorceror
Hmm... I just tried and I can't reproduce this problem. Are you typing in their account name? You can't use their character's name, it goes by account name.
 

Morxeton

Sorceror
Morxeton said:
Hmm... I just tried and I can't reproduce this problem. Are you typing in their account name? You can't use their character's name, it goes by account name.
Oh whoops, I had default user set to admin access.. I changed it to none and now I see the problem. It's due to capitalization. Lemme fix it and post the fix in a sec. Thanks for the bug report.
 

Morxeton

Sorceror
Ok, problem solved. There was an issue in GetAccessLevel in MasterControl.cs. I had forgotten .ToLower() as I previously mentioned. Download the new file attached to this post.

Edit: This file is obsolete and has been removed.
 

flowerbudd

Sorceror
Morxeton said:
Hmm... I just tried and I can't reproduce this problem. Are you typing in their account name? You can't use their character's name, it goes by account name.

yes heres what i did step by step
logged on
type [megaspawner
click admin menu
click account management menu
click add account
keep at user
type in name of acct
didn't check accounts mngment or system config
click submit acct

when that staff member types [megaspawner he gets this msg
you do not have authorization to use that command



*edit* Oh ok, tyvm, this is looking like a very fantastic system :)
 

Gembone

Wanderer
I am haveing some slight issues with this script.
I would love to try it but am unable to even bring up the gumps.
started fresh shard installed script and my head admin (creater of shard)
is told he does not have access to this.
please let me know what the prob is so I can try this spawner
thanks
 

Morxeton

Sorceror
Gembone said:
I am haveing some slight issues with this script.
I would love to try it but am unable to even bring up the gumps.
started fresh shard installed script and my head admin (creater of shard)
is told he does not have access to this.
please let me know what the prob is so I can try this spawner
thanks
Go to "Admin Menu" and "Accounts Management" and add your head admin's account into the system.. give him like "Head Admin" accesslevel and check both "accounts management" and "system config" boxes to allow him to access those menus
 

Morxeton

Sorceror
I have noticed that the first admin account that the system pulls from accounts.xml may not be the admin account of the person who set up the initial admin account on the shard when the console prompted you to create an administrator account. I will figure out a way to set up the master admin account... Maybe I will have it set to the first person who uses the [MegaSpawner command will be set up as master admin. Obviously the person installing the script will run the command first. If I can think of another way, I'll do that instead... For now, if you cannot access the system after installing it because it says you have no access, go to your Data/Mega Spawner System directory and edit accounts.mcf... the first account listed in there, change the name to your account username you use to log onto your shard with. It will be in between <Name> </Name> is where you should change the account name to yours.
 

fasternu

Wanderer
i think adding that would be a great idea, gembone and i tried for about 30 min to get your system working to no avail, so we hastily trashed it for a slower but usable system that we knew worked, didnt have the time to rewrite it so sorry but good luck next time
 

Morxeton

Sorceror
wraith said:
I also have a problem, if i do a

[megaspawner

then i hit add spawner
then close the gump
then doubleclick the spawner and open the gump
here is the problem, if i hit delete spawner it reboots my server.
I have tried this 12 times and it does it everytime.
I'll look into this right away.
 

Morxeton

Sorceror
fasternu said:
i think adding that would be a great idea, gembone and i tried for about 30 min to get your system working to no avail, so we hastily trashed it for a slower but usable system that we knew worked, didnt have the time to rewrite it so sorry but good luck next time
I apologize for the inconvenience. I will fix the issue by making the first person to open the gump the "master admin." This will resolve your issue.
 

Morxeton

Sorceror
v3.02 has been released and resolves some prior issues with not being able to log into the system. The delete bug that wraith has pointed out has been fixed as well.
 

flowerbudd

Sorceror
I've found you should not touch the spawner gem at all, do it all from the spawner menu. if you delete it with [remove it doesnt leave, plus it crashes shard.
 

Morxeton

Sorceror
flowerbudd said:
I've found you should not touch the spawner gem at all, do it all from the spawner menu. if you delete it with [remove it doesnt leave, plus it crashes shard.
The delete protection won't allow you to delete it using [remove to prevent people from deleting spawners that other people might be editting from within the system. It should not crash the shard, but I will look into it. Please tell me exactly what you did in the best of detail as possible to help further resolve the problem. I will be creating a command specifically for removing spawners similar to using [remove. The only difference would be that this new command will check to see if the spawner is being editted, a part of a spawner workspace creation, or a part of a file someone is editting before allowing deletion.
Thanks for the bug report.
 
Top