Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::GeorgeS's Tools

Development::GeorgeS's Tools A forum just for GeorgeS's tools

Reply
 
Thread Tools Display Modes
  #1  
Old 06-10-2009, 05:26 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default New Adventure Tool Request

Georges,

We were discussing creating the new Adventure zones for LDoN and others that would have multiple versions of each zone, and it made me think that you might be able to incorporate something for it into your NPC Loot Editor. Here is the thread where I brought the idea up at:

http://www.eqemulator.net/forums/sho...t=28512&page=2

I haven't made any adventure zones yet, so I don't really know all of the details needed to make them, but here are some ideas about what I think the tool would need to take into consideration for making copies of Adventure zones:

1. Use the NPC Loot Editor to select a zone.
2. Add a new button on the Editor to create a new Version Copy of the zone.
3. Pressing that button would pop up a new window that gives options for creating the version copy. The options I think would be most important off of the top of my head are:
A. Field for setting the Zone Version number that the new copy should use.
B. Toggle button to give the option to remove loot table IDs from the new copy or to carry over the existing ones.
C. Field for setting the level difference for the new zone from the one being copied. This field could either have positive (add levels) or negative (subtract levels) values put into it. When the new copy is created, this is a flat number that all NPCs in the zone will have added or subtracted from their level setting in the original copy. So, if all of the NPCs in the zone are level 20 and you set this field to 10, all of the NPCs in the copied Version of the zone will be level 30 when the copy is created.
D. Field for setting a percentage increase/decrease for Min/Max hit if the current value of the NPC is > 0. I think the default for this field should be 100, meaning that the Min/Max hit would be the same for the copy. If this field was set to 50, all NPCs in the copy would have 50% of the Min/Max hit of the NPCs they are being copied from. If this field was set to 200, all of the NPCs in the new copy would have double the Min/Max hit of the original NPCs, and so on.
E. Field for setting HP/Mana to a percentage of the original NPCs being copied. This would work the same as the field for Min/Max hit and default would also be 100 for this field.
F. Field for setting all remaining stats (STR, STA, Etc, Resists, Attack Rating, Accuracy, Etc) to a percentage of the original NPCs being copied. This too would work like the Min/Max Hit field, and Default would also be 100. Of course, if any of these fields are set to 0, they remain 0 after the change.
G. Toggle button for copying all of the NPC pathing Grids for the new spawn groups so they use the same pathing as the originals. Default would be to have it set to use the same grids, but there could be an option to stop it from carrying over the grids. This field is optional, as in almost all cases, I think the grids would be wanted for every copy, so this field is not a priority to have in the tool. Just trying to think of extra possible features for it.
H. This one isn't too important to have in the tool, but if possible, it might be nice to have a field for automatically creating new loot table IDs for each Unique loot table ID in the original zone and assign them to the NPCs in the new zone. Basically, if you have 20 NPCs all using the same loot table, the new copy would be using a new loot table ID for all of those same NPCs. Then, the main point of this field is to be able to set coin drop min and max to a percentage of the original loot tables. So, if you are copying NPCs that are level 20 and you want to make the new Version for level 40s, you could have it generate all of the new Loot tables and add double the coin to their loot tables. This way, all of the new loot tables would be there and ready to go and all you would need to do is add in the actual loot. Just trying to cut down time on making the new version copies as much as possible. But, this field is definitely not something that would be required to make the tool extremely helpful.


I am sure you are probably pretty busy as always, so if you don't have time to add a feature like this, it is perfectly understandable. I just wanted to make the suggestion in case you get the time and were looking for some new features to make your tools even more feature packed than they already are Seems like most of these features would just be writing up some fairly simple queries and then putting them in so the tool can use them as needed.

Also, if possible, Cavedude requested that the tool generate an SQL file of the changes that it is making (or trying to make) with the tool, since he doesn't have GUI access on PEQ. Maybe that could be one of the options in the Version Copy window to have a Toggle that is default set to automatically update the database, but also has the option of only generating the SQL to do the edit and not actually editing anything directly.

Thanks in advance either way, GeorgeS!
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #2  
Old 06-13-2009, 12:12 PM
GeorgeS
Forum Guide
 
Join Date: Sep 2003
Location: California
Posts: 1,475
Default

That sounds like a great challenge - great timing - I just came back from a business trip where I learned some pretty cool sql stuff, so I'm pretty prepared for writing this add-on.

Replication of a zone requires the following workflow (i'm just thinking out-loud)

easy parts
/1/ Creation of a replicate new zone entry in 'zone' table -- pretty easy.
/2/ Assign a new zone-id number in that table, and new shortname
moderately hard parts
/3/ Find NPC's from the zone - easy query (I already have this one made)
/4/ Replicate these NPC's with new id's -easy to do
/4a/ Ability to "wipe" zone clean of npc or it's loot - easy
Hard part
/5/ Find spawngroups from the zone (easy) but create new spawngroups with original npc's - brutal to write, but doable

That's the hard part because of the many table dependencies there. I'm confident i can manage the code. New Spawngroups are needed so as to create a distinct, and not a relational copy.

Easy
/6/ Have it re-use (if needed) grids - easy no issue there
/7/ Remove loot table IDs from the new copy or to carry over the existing ones - easy sql

I'll prototype this today, and start a progress log.
This can definitely be used for any zone, and assist in zone npc building better.

GeorgeS
__________________
Your source for EQ database tools
Toolshop is open for business


http://www.georgestools.chrsschb.com//
Reply With Quote
  #3  
Old 06-13-2009, 12:21 PM
ChaosSlayerZ's Avatar
ChaosSlayerZ
Demi-God
 
Join Date: Mar 2009
Location: Umm
Posts: 1,492
Default

I want to point out that a zone not nessesrily have to be a COPY of existing zone. It could be a stand alone instance zone which doesn't exist as mundane. It also also not nesesarily may have multyple versions of itself (unlike LDON)
Reply With Quote
  #4  
Old 06-13-2009, 01:19 PM
cavedude's Avatar
cavedude
The PEQ Dude
 
Join Date: Apr 2003
Location: -
Posts: 1,988
Default

Quote:
Originally Posted by GeorgeS View Post
/1/ Creation of a replicate new zone entry in 'zone' table -- pretty easy.
/2/ Assign a new zone-id number in that table, and new shortname
I just wanted to point out that those two aren't necessary. With instances, KLS has added a "version" column to spawn2 (and I've added it to npc_types, so I can keep track of which zone version the NPC is in.) That column allows us to have multiple versions of the same zone for instances. The basic point is, if you specify version 5 in the adventure template or instance quest functions, then only NPCs with a version 5 spawnpoint will spawn. So on your end, all you would need to do while copying is have an option to specify which version you want the copy to be. That would fill in version in both spawn2 and npc_types. Setting it to the same version as the source would be a 1:1 copy basically, for those wanting to copying spawns to other zones (which would be a cool thing to do I think as well) From there, the user could specify how they want the levels/stats/etc to adjust for the copy.
Reply With Quote
  #5  
Old 06-13-2009, 06:26 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Yeah, since the main thing we need is to make an exact copy of the current zone for use in the same zone, but maybe some different values for stats, I don't think it should be as bad as you think, GeorgeS. The idea to copy spawns to another zone is interesting, but there is no way to really handle the spawn2 locations for 2 separate zones easily. In those cases, it is easy enough to just use #npctypespawn in game and #npcspawn add the new spawns in. We just need exact copies of the current zone as far as spawn points go and then copies of the original NPCs in those spawn points. You could probably just append "v1" or "v2" or whatever version to the end of the existing spawngroup name.

Actually, it might make things more simple if you just made something that does an exact copy of the zone and sets it to be used in the new version, and then the other stats can be modified after the new copies are created. To do the modifications, you could add in a new percentage option for adjusting entire columns. It would be similar to the Propogate/Copy field function you already have, accept it would pop up a window that would let you adjust all fields by adding, subtracting, multiplying, or dividing from the original value in the field. So, if you set it to the divide option (radial button or something), then set it to divide all by 2, each field would be half of what it previously was set to. Of course, it would have to be able to use decimals when dividing or multiplying. But, this option would make it really quick to be able to adjust an entire zone column by column to scale exactly how you want to. It also might make your work a bit easier lol.

Thanks in advance as usual, GeorgeS!
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #6  
Old 06-13-2009, 10:50 PM
GeorgeS
Forum Guide
 
Join Date: Sep 2003
Location: California
Posts: 1,475
Default

I think I understand this better - and just to clarify , I would need to:
(I'm using an example zone -- mmca, The Forlorn Caverns)
(user specified version #1 as a starting source#)

(1) Find spawngroups from 'mmca' version#1, (I count 106) , and
make copies of these version#1 106 spawngroups.
-- Assign a new version # (user specified) into the 'spawn2' table field='version'.

(2) Find distinct NPC's in 'mmca' version#1,
-- Make copies of those NPC's.
-- Insert a version# in the version field. The user will specify which version# to use as a destination. (1-20 already exist in this case). Say the user selects a new version#21

(2a) Place these new npc's in the spawnentry table using the new spawngroup id's made before
--modify spawngroup with new spawngroup.id and add a new spawngroup.name
--spawn2.version=21, and add spawngroupID to = new 106 spawngroups
--spawnentry.spawngroupID set to new 106 spawngroups
--spawnentry.npcID change to new NPC's we made before


(3) Allow field editing as Trevius mentioned before in main tool

I think this looks right. The order of the workflow is/will be determined later, but I already looked at the db structure and see what's going on.

GeorgeS
__________________
Your source for EQ database tools
Toolshop is open for business


http://www.georgestools.chrsschb.com//
Reply With Quote
  #7  
Old 06-13-2009, 11:00 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Yeah, that sounds right to me, but I haven't actually made any extra versions just yet. Cavedude would probably be the best to give the final verification on whether that is all that is needed or not.

One thing that might be worth mentioning is that I think spawning a zone initially will spawn it as version 0. So, you might need to have it copy version 0, or you could just set it to allow you to select which version to create the copy from and which version to save the new copy as. Again, CD would have to verify that to be 100% sure.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #8  
Old 06-14-2009, 12:28 AM
cavedude's Avatar
cavedude
The PEQ Dude
 
Join Date: Apr 2003
Location: -
Posts: 1,988
Default

Yep, that's correct.

Version 0 will always spawn, so an option is probably needed to tell the program whether to exclude version 0 entries or not.
Reply With Quote
  #9  
Old 06-14-2009, 04:25 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Oh, so if there is a version 0 of spawns in the zone, they will spawn in every instance version? I didn't know that lol. That being the case, it might be nice to also have a way to just change an entire zone to a different version as well. So, you could spawn a zone normally as version 0 with the normal commands and such and then once you are done, just use the tool to change them all over to whatever version number you chose. This would be an extra feature other than what was already listed. This one should be pretty easy though I think as it should just mean finding the mobs in the zone and then changing the version fields for them.

Oh, and that makes me think of another thing that you are probably already aware of, GeorgeS. When searching for the spawns in the zone, we would probably want an option to chose which version of the zone we are searching for, with the default being version 0.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #10  
Old 06-15-2009, 01:35 PM
cavedude's Avatar
cavedude
The PEQ Dude
 
Join Date: Apr 2003
Location: -
Posts: 1,988
Default

Yep, you can think of versions like spawn_conditions, except you cannot change them on the fly once the zone is up. Also, a bit off-topic but while I am thinking of it for the time being, spawn_conditions won't work in an instanced zone. I imagine what will happen is it'll work fine in the first version, but once the second version boots the conditions will effect both zones simultaneously.
Reply With Quote
  #11  
Old 06-15-2009, 01:55 PM
Shendare
Dragon
 
Join Date: Apr 2009
Location: California
Posts: 814
Default

Hmm... if Version 0 of spawns appear no matter what version of a zone you have loaded, and the default is version 0, then making a blank instanced version of a normal zone sounds like it could be rather difficult.

I suppose you could move all of the existing NPCs to Version 1, and load Version 2 when you want your instanced version, but then how do you make sure everyone is always loading Version 1 of a zone when they don't want the instance, instead of Version 0, which would now have no NPCs in it?

- Shendare
Reply With Quote
  #12  
Old 06-15-2009, 02:12 PM
cavedude's Avatar
cavedude
The PEQ Dude
 
Join Date: Apr 2003
Location: -
Posts: 1,988
Default

I'm sorry, I was mistaken. Version 0 spawnpoints will only spawn in the default (version 0) zone. If you want that particular NPC and spawngroup to spawn in another version, you need to copy the spawn2 entry and set a new version. I was thinking about doors, traps, and objects where they WILL spawn in all versions if set to 0.
Reply With Quote
  #13  
Old 06-15-2009, 02:16 PM
Shendare
Dragon
 
Join Date: Apr 2009
Location: California
Posts: 814
Default

Ah, now that makes sense.

Thanks for the clarification!

- Shendare
Reply With Quote
  #14  
Old 06-15-2009, 02:29 PM
cavedude's Avatar
cavedude
The PEQ Dude
 
Join Date: Apr 2003
Location: -
Posts: 1,988
Default

KLS just corrected me, only traps will appear in all versions if set to 0. doors and other object work like NPCs.
Reply With Quote
  #15  
Old 06-15-2009, 02:35 PM
Shendare
Dragon
 
Join Date: Apr 2009
Location: California
Posts: 814
Default

Cool! The more control, the better, IMO!

- Shendare
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 02:22 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3