Well after looking through the code this is definitely out of my league. Though here is what I think needs to occur for zone instancing to work.
Add a UniqueID to field to the zone table that increments for every zone, including ones that are added.
Add a InstanceZoneType field to the zone table.
0 = Not a instance capable of being instanced
1 = A zone capable of being instanced that is for only one player
2 = A zone capable of being instanced that is for a group
3 = A zone capable of being instanced that is for a raid
Add a InstanceZoneFlag field to the character_ table
When the players InstanceZoneFlag field is set the server will need to create a new entry in the Zone table by copying all of the information from the zone’s entry that matches the short_name.
When a zone is started the server checks to see if that zone’s InstanceZoneType is greater then zero
If not the server goes about the zone loading as normal
If it is the server gets the zoning players character_.InstanceZoneFlag
The server then checks to see if a Zone.UniqueID matches that player’s InstanceZoneFlag
If it does then the zone is loaded and the player is sent to that zone based on the Zone.UniqueID
Sorry, if this post makes no sense. I was up all night looking through the source code trying to figure it out.
|