Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Development

Development::Development Forum for development topics and for those interested in EQEMu development. (Not a support forum)

Reply
 
Thread Tools Display Modes
  #151  
Old 02-11-2009, 09:12 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

I wouldn't mind seeing that packet log if possible Or at least I need a single SendAA packet to see what I am doing wrong with AAs. I have tried many different variations on the struct and it should be setup right or very close to right. I haven't been able to get it to display anything. I am almost wondering if it may be an issue with the UI not having the correct version of the AA window to display tabs properly. Though, it looks like EQLive's AA window to me, so it should be the same. The base AA before any effects added onto it should be 104 bytes long for SoF (it is on Live). I can get it to log in with as little as 96 bytes long, but it seems to crash alot more. The issue may just be that I have to fill in the database with the expansion number and tab information that each AA is supposed to be from. On Live, they replaced the "type" field, which just tells the AA window which tab to display the AA on, into 2 fields. One field that tells it which tab to display on (1-4) and one field that tells it which expansion it is from. I think 0 means it is a tradeskill, but 3 to 15 are the other expansion values I see, so I am guessing they mean Velious to Current. It is pretty easy to read the packet for SendAA from Live, as little has changed from Titanium.

I am also working on the /who all struct and I think I know what needs to be done. I have the 3 related structs all built, but I need to get the encodes/decodes working correctly for them. I have the encodes/decodes basically built, but there are a couple issues with them. At least now I get the "search returned no results" messages or whatever.

For Icon to show up, I think it needs null terminators after strings for Item Name, Lore, and the ITxxx strings. Then, the few int8s after that should be correct. The only one I would wonder about is the Price field. It looks to me like it is actually an int64, but that is the first and only time I have seen anything that might use int64 in EQ, so I don't know if that is correct or not. Maybe the change to int64 came in more recently, so you might want to try it as an int32. I recall reading a recent EQLive patch message that says they corrected an issue with selling stacks of items that totaled over 4million PP or so. So, maybe that was when they changed it from an int32 to int64. That is all just speculation though. I imagine the older log files you guys have would confirm that pretty easily.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #152  
Old 02-11-2009, 09:33 PM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

I've got this now:

I used Derision's packet as a start since his was a bit easier to read than mine. The one I wrote still has sequence # and size on it so it can get a little hard to read esp when you're reading a lot of hex etc etc.

Something in the item header if not set correctly makes the item not show up which was what was throwing me off.

Right now item is like this:

Code:
uint32 Stacksize
uint32 Some Zero Value
uint32 Slot
uint32 Somevalue, prob price as that's what it is in other
uint32 merchant_slot or 1
uint32 some zero value
uint32 unique identifier
uint32 SomeValue prolly nodropinst
uint32 SomeValue prolly potion or item type
uint32 some value 0xffffffff or 0x00000000
uint32 some zero value x5
3 bytes of 0x00 usually sometimes the last byte is 0x01, all bags seem to have the last byte as 0x01
c-string name
c-string lore
c-string idfile
uint32 itemid
Obv everything's not the same as middle of 2008 client but it was a bit closer than the current client.

Last edited by KLS; 02-12-2009 at 05:36 AM..
Reply With Quote
  #153  
Old 02-12-2009, 12:18 AM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

Again:


I think the itemtype field has changed which is why it appears like that but I'm not sure. I get to start plugging in values all over and see what they do.
Reply With Quote
  #154  
Old 02-12-2009, 01:50 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

I just noticed that your items are showing up in the old item UI window like Titanium. I prefer the old one (Titanium version) to the new window for item stats on Live. I thought it was already changed in SoF though. Or, is there an option somewhere that lets you decide which one to use? I know I saw a screenshot of an item from SoF when it was being beta tested, and it had the new item window. Maybe they still used the old one when that particular build was made?

Also, I looked at the SendAA packets from Derision's ShowEQ log and it looks like it lines up the same as EQLive does now. Same size and layout of the structure as far as I can tell. Here is an example of one of those packets without any extra effects on it:

Code:
Jul 24 2008 14:16:39:296 [Decoded] [Server->Client] [Size: 104]
[OPCode: 0x2c77]
000 | ba 00 00 00 01 ba 00 00 00 ba 00 00 00 ba 00 00  | ................ 
016 | 00 ba 00 00 00 3b 00 00 00 03 00 00 00 47 00 00  | .....;.......G.. 
032 | 00 01 00 00 00 00 00 00 00 00 00 00 00 03 00 00  | ................ 
048 | 00 d4 0a 00 00 07 00 00 00 07 00 00 00 00 08 00  | ................ 
064 | 00 01 00 00 00 ff ff ff ff ff ff ff ff 03 00 00  | ................ 
080 | 00 00 00 00 00 00 00 00 03 00 00 00 ff ff ff ff  | ................ 
096 | 00 00 00 00 00 00 00 00                          | ........
One thing to help alot with items is the 13th floor:
http://eqitems.13th-floor.org/

Just search for the item you are trying to break down and then look at the raw data. It should help a ton when lining up the fields.

I also use HexVis alot or Windows Calculator for converting the hex easily to see if it matches 13th floor.

Code:
3 bytes of 0x00 usually sometimes the last byte is 0x01, all bags seem to have the last byte as 0x01
That last uint8 is Item Type. It is 00 for normal items, 01 for bags and should be 02 for books. This should be done on the Serialization because I think it tells the client how treat the item when you right click it. Since you can't read books or use clickies if an item is inside a bag, it should be because the item type isn't sent when they are inside a bag, so the client knows only to show the item stats.


Just from looking at the log Derision posted, here is my best guess for item Serialization (pretty much matches with what KLS has so far):

Code:
35 00 00 00 - Not sure what this is.  Maybe a total items count?
//This field only got sent before the first item.  No other items have it.

01 00 00 00 uint32 stacksize;
00 00 00 00 uint32 unknown004;
1c 00 00 00 uint32 slot;
00 00 00 00 uint32 price;
01 00 00 00 uint32 merchcount;
00 00 00 00 uint32 unknown020;
1a b9 02 00 uint32 serialnumber;
00 00 00 00 uint32 instnodrop;
00 00 00 00 uint32 unknown032;
00 00 00 00 uint32 typepotion;
00 00 00 00 uint32 unknown040;
00 00 00 00 uint32 unknown044;
00 00 00 00 uint32 unknown048;
00 00 00 00 uint32 unknown052;
00 00 00 00 uint32 unknown056;
00 uint8 unknown060;
00 uint8 unknown061; 
01 uint8 itemtype; // this is a bag
Here is the best breakdown I can figure for the beginning of the Item Struct:
Code:
4a 6f 75 72 6e 65 79 6d 61 6e 27 73 20 42 6f 6f 74 73 00 | Journeyman's Boots - char Name
4a 6f 75 72 6e 65 79 6d 61 6e 27 73 20 42 6f 6f 74 73 00 | Journeyman's Boots - char Lore
49 54 36 33 00  | IT63 - char IDFile
fc 08 00 00 | 2300 - uint32 ID
19 | 2.5 - uint8 Weight
01 - uint8 NoRent
00 00 - uint16 NoDrop
01 - uint8 Size
00 00 08 00 | 524288 - uint32 Slots
00 00 00 00 - uint32 Price
fc 02 00 00 | 764 - uint32 Icon
01 - uint8 unknown0013
01 00 00 00 - uint32 unknown0014
00 - bool BenefitFlag
00 - bool	Tradeskills
00 - sint8	CR
00 - sint8	DR
00 - sint8	PR
00 - sint8	MR
00 - sint8	FR
00 - sint8	Corruption
00 - sint8	AStr
00 - sint8	ASta
00 - sint8	AAgi
00 - sint8	ADex
00 - sint8	ACha
00 - sint8	AInt
00 - sint8	AWis
00 00 00 00 - sint32	HP
00 00 00 00 - sint32	Mana
00 00 00 00 - uint32	Endur
01 00 00 00 - sint32	AC
00 00 00 00 - sint32	unknown0015
00 00 00 00 - sint32	unknown0016
00 00 00 00 - sint32	unknown0017
ff ff 00 00 - sint32	Classes
ff ff 00 00 - sint32	Races
00 00 00 00 - sint32	Deity
00 00 00 00 - sint32	SkillModValue
00 00 00 00 - uint32	unknown0038
ff ff ff ff - uint32	SkillModType
00 00 00 00 - uint32	BaneDmgRace
00 00 00 00 - uint32	BaneDmgBody
00 00 00 00 - uint32	BaneDmgRaceAmt
00 00 00 00 - sint32	BaneDmgAmt
01 00 00 00 - bool	Magic
00 00 00 00 - sint32	CastTime_
00 - uint8	ReqLevel
00 - uint8	RecLevel
00 - uint8	RecSkill
00 00 00 00 - uint32	BardType
00 00 00 00 - sint32	BardValue
00 - sint8	Light
00 - uint8	Delay
00 - uint8	ElemDmgType
00 00 00 00 - uint32	ElemDmgAmt
00 00 00 00 - uint32	Range
00 00 00 00 - uint32	Damage
00 00 00 ff - uint32	Color
0a - uint8	ItemType
01 00 00 00 - uint8	Material
00 00 00 00 - uint32	unknown0060
00 00 00 00 - uint8	unknown0061
00 00 c6 42 - uint32	SellRate
Most of the rest of it should line up with the structure breakdown I posted for EQLive items. I can work out the rest of it if needed. I will definitely check into these logs more later tonight.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #155  
Old 02-12-2009, 01:58 AM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

It's probably my UI, I use default_old from titanium. To save room I only change out the files that need to be between my versions of the client. So while titanium UI default was overwritten my default_old folder wasn't.

Maybe that has something to do with this not looking right, good catch on that sir... I probably woulda never noticed otherwise.
Reply With Quote
  #156  
Old 02-12-2009, 02:34 AM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

You realize you saved me a week of pointless work because I wouldn't of caught that for a week:


I had to dl an itemwindow from eqinterface cause apparently I overwrote mine and didn't back it up =(

Item fields seem fairly accurate to derision's log and sorta accurate to the live log tho the live one's is different in spots, but that's to be expected after a year.

Now I gotta put it all into a structured format, right now I'm just pushing ints and bytes onto my data stream then nail down the exact size to be able to send more than one at a time.

Last edited by KLS; 02-12-2009 at 10:36 AM..
Reply With Quote
  #157  
Old 02-12-2009, 04:46 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Nice! Glad I could help lol

Another thing I noticed from Derision's log is that his first item, Jboots, reports in the serialize as being in slot 30. For Titanium, slot 30 should be cursor I think, but I doubt he had them on his cursor when he logged in. My guess is that it was actually in the bottom right main inventory slot (like you show in your screenshots, KLS). If that is so, then I am guessing that all slots got bumped up one when the Power Source slot was added, because in Titanium, that slot is slot 29, not 30. Oddly, I don't see a power source slot in the UI that comes with SoF, but it should already be in since Power Source was added with Burried Sea. I see the power source slot just fine when I log into Live now. Either way, I am betting that Power Source got added as being slot 22 and that just bumped all of the main inventory slots up by 1.

Also, I finally figured out a major graphics issue I was having in some of the new zones. Apparently, it isn't a good idea to have min and max clip plane for fog 1 2 and 3 set to the same values lol. I don't know how many hours I wasted trying different graphics settings and different video drivers versions. Either way, the new zones now show up perfectly to me. I will post the SQL to update/add them all if Cavedude hasn't already gotten them all added yet. His would probably be much better than mine anyway. I am just using 1 example and copying it for all zones, so they all have the same fog settings and what-not.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #158  
Old 02-12-2009, 05:00 AM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

Yeah slot 30 is what I have the boots set to in that SS. The items on character seem to work fine I'm guessing the bag slots all got bumped up one.

Also I don't see a power source slot on the default ui that came with sof either =/
Reply With Quote
  #159  
Old 02-12-2009, 06:50 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

After trying about 5 different UIs that came out around the time that SoF was released and that all work with SoF (though some have buggyness), I am at the conclusion that maybe something needs to be sent from the server for the Power Source slot to show up. None of the UIs I tried had a power source slot. Since it came out with Burried Sea (one expansion before SoF), I have to assume that it should definitely be working when SoF came out. All of the UIs I tried looked like they had an empty area of the inventory window that could be used for the power source slot, but none of them actually had it.

Here is a preview of one of the UIs I tried that shows the Power Source slot in the UI:

http://www.eqinterface.com/downloads...ew.php?id=9182

But, when I actually tried that UI, it wasn't there. That UI hasn't been updated since 10/5/2007, so I know it wasn't added after SoF came out. I know it isn't a big issue for now, but at some point, I will probably try to figure out what needs to be sent to load that slot in the UI. It is probably something in the player profile I am guessing.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #160  
Old 02-12-2009, 01:46 PM
Derision
Developer
 
Join Date: Feb 2004
Location: UK
Posts: 1,540
Default

Whether the Power Source slot appears is governed by the info sent in OP_ExpansionInfo. The struct has changed, rather than just a uint32, it is now 64 unknown (unused from a look in IDA) bytes, followed by the expansion bitfield.

I have this sorted in my Working Copy and it will come with the Character Creation stuff when I commit that.

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

Quote:
Originally Posted by trevius View Post
I will post the SQL to update/add them all if Cavedude hasn't already gotten them all added yet. His would probably be much better than mine anyway. I am just using 1 example and copying it for all zones, so they all have the same fog settings and what-not.
Please post them. I have for the past week been trying to get some world building done with SoF, but I keep getting sidetracked with other projects or requests. :(
Reply With Quote
  #162  
Old 02-13-2009, 01:37 AM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

The size of the item packet is not the same as the live from june sadly. I don't know if it's too long or too short just that it doesn't align. I also have a feeling there's an option somewhere that dictates how data is displayed cause my first thought was to look at the stats in the item window and see if I could find where they were in relation but it's not making sense compared to the packet im making. =(

Hooray spending hours adjusting the size up and down by bits at a time ><
Reply With Quote
  #163  
Old 02-13-2009, 03:30 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Here is the SQL to get all of the new zones (after Titanium) working with SoF. This is just a basic setup to give a usable safe point and have the zone display correctly. I am sure that each one could use tweaking (fog, min/max clips, etc), but this is definitely better than what I started with :P

Code:
INSERT INTO `zone` VALUES ('arcstone', null, 'Arcstone', '0', '0', '550', '0', '0', '80', '369', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('ashengate', null, 'Ashengate, Reliquary of the Scale', '0', '26', '3.1', '0', '0', '80', '406', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('atiiki', null, 'Jewel of Atiiki', '0', '0', '-76', '0', '0', '80', '418', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('barren', null, 'Barren Coast', '800', '335', '33', '0', '0', '80', '422', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('befallenb', null, 'Befallen', '0', '0', '0', '0', '0', '80', '411', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('blacksail', null, 'Blacksail Folly', '4500', '1600', '309', '0', '0', '80', '428', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('bloodmoon', '', 'Bloodmoon Keep', '100', '100', '4', '0', '0', '0', '445', '0', '0', '1', '', '-2030', '450', '3000', '10', '3000', '210', '200', '200', '1', '0', '1.00', '0.4', '2', '200', '200', '210', '10', '3000', '200', '200', '210', '10', '450', '200', '200', '210', '10', '3000', '200', '200', '210', '10', '450', '', '2', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('buriedsea', null, 'The Buried Sea', '1225', '0', '310', '0', '0', '80', '423', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('commonlands', null, 'Commonlands', '0', '0', '24.2', '0', '0', '80', '408', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('crescent', null, 'Crescent Reach', '-550', '-430', '80', '0', '0', '80', '394', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '2', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('cryptofshade', '', 'Crypt of Shade', '985', '-445', '-39', '0', '0', '0', '449', '0', '0', '1', '', '-2030', '450', '3000', '10', '3000', '210', '200', '200', '1', '0', '1.00', '0.4', '2', '200', '200', '210', '10', '3000', '200', '200', '210', '10', '450', '200', '200', '210', '10', '3000', '200', '200', '210', '10', '450', '', '2', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('crystallos', '', 'Crystallos, Lair of the Awakened', '0', '0', '0', '0', '0', '0', '446', '0', '0', '1', '', '-2030', '450', '3000', '10', '3000', '210', '200', '200', '1', '0', '1.00', '0.4', '2', '200', '200', '210', '10', '3000', '200', '200', '210', '10', '450', '200', '200', '210', '10', '3000', '200', '200', '210', '10', '450', '', '2', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('deadbone', null, 'Deadbone Reef', '2500', '-3500', '544', '0', '0', '80', '427', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('devastationa', null, 'The Seething Wall', '200', '250', '4', '0', '0', '80', '373', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('devastion', null, 'The Devastation', '650', '800', '100', '0', '0', '80', '372', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('direwind', null, 'Direwind Cliffs', '0', '0', '-16', '0', '0', '80', '405', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('dragonscale', '', 'Dragonscale Hills', '0', '0', '58', '0', '0', '0', '442', '0', '0', '1', '', '-2030', '450', '3000', '10', '3000', '210', '200', '200', '1', '0', '1.00', '0.4', '2', '200', '200', '210', '10', '3000', '200', '200', '210', '10', '450', '200', '200', '210', '10', '3000', '200', '200', '210', '10', '450', '', '2', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('elddar', null, 'The Elddar Forest', '0', '0', '220', '0', '0', '80', '378', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('elddara', null, 'Tunare/s Shrine', '-30', '30', '-5', '0', '0', '80', '379', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('freeportacademy', null, 'Academy of Arcane Science', '0', '200', '0', '0', '0', '80', '385', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('freeportarena', null, 'Arena', '0', '0', '3', '0', '0', '80', '388', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('freeportcityhall', null, 'City Hall', '0', '150', '-11', '0', '0', '80', '389', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('freeporteast', null, 'East Freeport', '0', '0', '10', '0', '0', '80', '382', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('freeporthall', null, 'Hall of Truth', '-500', '1000', '-177', '0', '0', '80', '391', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('freeportmilitia', null, 'Freeport Militia House', '-50', '-150', '-25', '0', '0', '80', '387', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('freeportsewers', null, 'Freeport Sewers', '-150', '-50', '-95', '0', '0', '80', '384', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('freeporttemple', null, 'Temple of Marr', '0', '0', '10', '0', '0', '80', '386', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('freeporttheater', null, 'Theater', '0', '-150', '-27', '0', '0', '80', '390', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('freeportwest', null, 'West Freeport', '-240', '0', '-83', '0', '0', '80', '383', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('frostcrypt', null, 'Frostrypt, Throne of the Shade King', '0', '0', '0', '0', '0', '80', '402', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('guardian', '', 'The Mechamatic Guardian', '-115', '60', '4', '0', '0', '0', '447', '0', '0', '1', '', '-2030', '450', '3000', '10', '3000', '210', '200', '200', '1', '0', '1.00', '0.4', '2', '200', '200', '210', '10', '3000', '200', '200', '210', '10', '450', '200', '200', '210', '10', '3000', '200', '200', '210', '10', '450', '', '2', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('gyrospireb', '', 'Gyrospire Beza', '500', '-200', '6', '0', '0', '0', '440', '0', '0', '1', '', '-2030', '450', '3000', '10', '3000', '210', '200', '200', '1', '0', '1.00', '0.4', '2', '200', '200', '210', '10', '3000', '200', '200', '210', '10', '450', '200', '200', '210', '10', '3000', '200', '200', '210', '10', '450', '', '2', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('gyrospirez', '', 'Gyrospire Zeka', '500', '-200', '6', '0', '0', '0', '441', '0', '0', '1', '', '-2030', '450', '3000', '10', '3000', '210', '200', '200', '1', '0', '1.00', '0.4', '2', '200', '200', '210', '10', '3000', '200', '200', '210', '10', '450', '200', '200', '210', '10', '3000', '200', '200', '210', '10', '450', '', '2', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('highpasshold', null, 'Highpass Hold', '-90', '-80', '-20', '0', '0', '80', '407', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('highpasskeep', null, 'HighKeep', '0', '0', '0', '0', '0', '80', '412', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('hillsofshade', '', 'Hills of Shade', '100', '100', '33', '0', '0', '0', '444', '0', '0', '1', '', '-2030', '450', '3000', '10', '3000', '210', '200', '200', '1', '0', '1.00', '0.4', '2', '200', '200', '210', '10', '3000', '200', '200', '210', '10', '450', '200', '200', '210', '10', '3000', '200', '200', '210', '10', '450', '', '2', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('icefall', null, 'Icefall Glacier', '300', '50', '80', '0', '0', '80', '400', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('innothuleb', null, 'Innothule Swamp', '0', '0', '0', '0', '0', '80', '413', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('jardelshook', null, 'Jardels Hook', '2815', '-1077', '318.1', '0', '0', '80', '424', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('kattacastrum', null, 'Katta Castrum', '0', '0', '0', '0', '0', '80', '416', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('kithforest', null, 'Kithicor Forest', '0', '0', '0', '0', '0', '80', '410', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('lopingplains', '', 'Loping Plains', '0', '0', '93', '0', '0', '0', '443', '0', '0', '1', '', '-2030', '450', '3000', '10', '3000', '210', '200', '200', '1', '0', '1.00', '0.4', '2', '200', '200', '210', '10', '3000', '200', '200', '210', '10', '450', '200', '200', '210', '10', '3000', '200', '200', '210', '10', '450', '', '2', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('maidensgrave', null, 'Maidens Grave', '-3615', '3335', '400', '0', '0', '80', '429', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('mansion', '', 'Meldrath\'s Majestic Mansion', '0', '0', '0', '0', '0', '0', '437', '0', '0', '1', '', '-2030', '450', '3000', '10', '3000', '210', '200', '200', '1', '0', '1.00', '0.4', '2', '200', '200', '210', '10', '3000', '200', '200', '210', '10', '450', '200', '200', '210', '10', '3000', '200', '200', '210', '10', '450', '', '2', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('mechanotus', '', 'Fortress Mechanotus', '0', '0', '478', '0', '0', '0', '436', '0', '0', '1', '', '-2030', '450', '3000', '10', '3000', '210', '200', '200', '1', '0', '1.00', '0.4', '2', '200', '200', '210', '10', '3000', '200', '200', '210', '10', '450', '200', '200', '210', '10', '3000', '200', '200', '210', '10', '450', '', '2', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('mesa', null, 'Goru`Kar Mesa', '-1155', '7', '47', '0', '0', '80', '397', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('mistythicket', null, 'Misty Thicket', '0', '0', '0', '0', '0', '80', '415', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('monkeyrock', null, 'Monkey Rock', '0', '0', '0', '0', '0', '0', '425', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('moors', null, 'Blightfire Moors', '-200', '-10', '80', '0', '0', '0', '395', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('northro', null, 'North Ro', '-1027', '6354', '23.2', '0', '0', '80', '392', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('oceanoftears', null, 'Ocean Of Tears', '0', '0', '0', '0', '0', '80', '409', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('rage', null, 'Sverag, Stronghold of Rage', '500', '120', '0', '0', '0', '80', '374', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('ragea', null, 'Razorthorn, Tower of Sullon Zek', '0', '0', '0', '0', '0', '80', '375', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('redfeather', null, 'Redfeather Isle', '-3100', '1400', '310', '0', '0', '80', '430', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('relic', null, 'Relic', '200', '385', '420', '0', '0', '80', '370', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('roost', null, 'Blackfeather Roost', '-700', '3000', '-191', '0', '0', '80', '398', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('shipmvm', null, 'The Open Sea', '-200', '-200', '33', '0', '0', '80', '435', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('shipmvp', null, 'The Open Sea', '-80', '-120', '46', '0', '0', '80', '431', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('shipmvu', null, 'The Open Sea', '-75', '-75', '46', '0', '0', '80', '432', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('shippvu', null, 'The Open Sea', '-75', '-75', '46', '0', '0', '80', '433', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('shipuvu', null, 'The Open Sea', '-75', '-75', '46', '0', '0', '80', '434', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('shipworkshop', '', 'S.H.I.P. Workshop', '300', '400', '113', '0', '0', '0', '439', '0', '0', '1', '', '-2030', '450', '3000', '10', '3000', '210', '200', '200', '1', '0', '1.00', '0.4', '2', '200', '200', '210', '10', '3000', '200', '200', '210', '10', '450', '200', '200', '210', '10', '3000', '200', '200', '210', '10', '450', '', '2', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('silyssar', null, 'Silyssar, New Chelsith', '-175', '-185', '-59', '0', '0', '80', '420', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('skylance', null, 'Skylance', '0', '0', '251.1', '0', '0', '80', '371', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('solteris', null, 'Solteris, the Throne of Ro', '0', '0', '-20', '0', '0', '80', '421', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('southro', null, 'South Ro', '-1000', '1000', '42', '0', '0', '80', '393', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('steamfactory', '', 'The Steam Factory', '0', '100', '90', '0', '0', '0', '438', '0', '0', '1', '', '-2030', '450', '3000', '10', '3000', '210', '200', '200', '1', '0', '1.00', '0.4', '2', '200', '200', '210', '10', '3000', '200', '200', '210', '10', '450', '200', '200', '210', '10', '3000', '200', '200', '210', '10', '450', '', '2', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('steamfontmts', '', 'Steamfont Mountains', '-500', '-100', '3', '0', '0', '0', '448', '0', '0', '1', '', '-2030', '450', '3000', '10', '3000', '210', '200', '200', '1', '0', '1.00', '0.4', '2', '200', '200', '210', '10', '3000', '200', '200', '210', '10', '450', '200', '200', '210', '10', '3000', '200', '200', '210', '10', '450', '', '2', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('steppes', null, 'The Steppes', '300', '0', '130', '0', '0', '80', '399', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('stonehive', null, 'Stone Hive', '400', '0', '58', '0', '0', '80', '396', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('suncrest', null, 'Suncrest Isle', '-2125', '-178', '406', '0', '0', '80', '426', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('sunderock', null, 'Sunderock Springs', '165', '325', '211', '0', '0', '80', '403', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('takishruins', null, 'Ruins of Takish-Hiz', '-460', '-200', '50', '0', '0', '80', '376', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('takishruinsa', null, 'The Root of Ro', '800', '-190', '-90', '0', '0', '80', '377', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('thalassius', null, 'Thalassius, the Coral Keep', '0', '0', '0', '0', '0', '80', '417', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('theater', null, 'Theater of Blood', '2933', '715', '380', '0', '0', '80', '380', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('theatera', null, 'Deathknell, Tower of Dissonance', '100', '0', '3.2', '0', '0', '80', '381', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('toxxulia', null, 'Toxxulia Forest', '0', '0', '66.6', '0', '0', '80', '414', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('valdeholm', null, 'Valdeholm', '300', '50', '0', '0', '0', '80', '401', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('vergalid', null, 'Vergalid Mines', '0', '0', '0', '0', '0', '80', '404', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
INSERT INTO `zone` VALUES ('zhisza', null, 'Zhisza, the Shissar Sanctuary', '0', '850', '305', '0', '0', '80', '419', '0', '0', '1', null, '-2030', '450', '3000', '10', '3000', '0', '0', '0', '1', '1', '0.00', '0.4', '2', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '0', '0', '0', '10', '3000', '0', '0', '0', '450', '450', '', '1', '1', '1', '1', '0', '5000');
To add this in, you will need to open your zones table and do a sort by zoneidnumber, and then delete all lines from zoneidnumber 369 up to 449. Then, the SQL above should be able to be sourced in the table ok, as long as your table is setup the same way mine is. I got mine from PEQ, but it was a year ago, and there have been a couple of additions to that table from source revision updates since then. So, it might be good to check if it lines up with this setup I have for my zone table:

Code:
CREATE TABLE `zone` (
  `short_name` varchar(16) NOT NULL default '',
  `file_name` varchar(16) default NULL,
  `long_name` text NOT NULL,
  `safe_x` float NOT NULL default '0',
  `safe_y` float NOT NULL default '0',
  `safe_z` float NOT NULL default '0',
  `graveyard_id` float NOT NULL default '0',
  `min_level` tinyint(3) unsigned NOT NULL default '0',
  `min_status` tinyint(3) unsigned NOT NULL default '0',
  `zoneidnumber` int(4) NOT NULL default '0',
  `timezone` int(5) NOT NULL default '0',
  `maxclients` int(5) NOT NULL default '0',
  `weather` smallint(6) NOT NULL default '1',
  `note` varchar(80) default NULL,
  `underworld` float NOT NULL default '0',
  `minclip` float NOT NULL default '450',
  `maxclip` float NOT NULL default '450',
  `fog_minclip` float NOT NULL default '450',
  `fog_maxclip` float NOT NULL default '450',
  `fog_blue` tinyint(3) unsigned NOT NULL default '0',
  `fog_red` tinyint(3) unsigned NOT NULL default '0',
  `fog_green` tinyint(3) unsigned NOT NULL default '0',
  `sky` tinyint(3) unsigned NOT NULL default '1',
  `ztype` tinyint(3) unsigned NOT NULL default '1',
  `zone_exp_multiplier` decimal(6,2) NOT NULL default '0.00',
  `walkspeed` float NOT NULL default '0.4',
  `time_type` tinyint(3) unsigned NOT NULL default '2',
  `fog_red1` tinyint(3) unsigned NOT NULL default '0',
  `fog_green1` tinyint(3) unsigned NOT NULL default '0',
  `fog_blue1` tinyint(3) unsigned NOT NULL default '0',
  `fog_minclip1` float NOT NULL default '450',
  `fog_maxclip1` float NOT NULL default '450',
  `fog_red2` tinyint(3) unsigned NOT NULL default '0',
  `fog_green2` tinyint(3) unsigned NOT NULL default '0',
  `fog_blue2` tinyint(3) unsigned NOT NULL default '0',
  `fog_minclip2` float NOT NULL default '450',
  `fog_maxclip2` float NOT NULL default '450',
  `fog_red3` tinyint(3) unsigned NOT NULL default '0',
  `fog_green3` tinyint(3) unsigned NOT NULL default '0',
  `fog_blue3` tinyint(3) unsigned NOT NULL default '0',
  `fog_minclip3` float NOT NULL default '450',
  `fog_maxclip3` float NOT NULL default '450',
  `fog_red4` tinyint(3) unsigned NOT NULL default '0',
  `fog_green4` tinyint(3) unsigned NOT NULL default '0',
  `fog_blue4` tinyint(3) unsigned NOT NULL default '0',
  `fog_minclip4` float NOT NULL default '450',
  `fog_maxclip4` float NOT NULL default '450',
  `flag_needed` varchar(128) NOT NULL default '',
  `canbind` tinyint(4) NOT NULL default '1',
  `cancombat` tinyint(4) NOT NULL default '1',
  `canlevitate` tinyint(4) NOT NULL default '1',
  `castoutdoor` tinyint(4) NOT NULL default '1',
  `insttype` tinyint(1) unsigned zerofill NOT NULL default '0',
  `shutdowndelay` bigint(16) unsigned NOT NULL default '5000',
  PRIMARY KEY  (`short_name`),
  UNIQUE KEY `zoneidnumber` (`zoneidnumber`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
For working out the item structure size and field locations, I am always willing to give it a shot. If we can find the Heroic stats section of the struct, it shouldn't be much after that. If you stick something up on the SVN for items, I will definitely give it a shot

Also, I think I may know why AAs aren't loading, and I am guessing it may be due to an issue with the player profile struct. I think I have verified that many fields are in the correct locations, but some of them are a bit more complicated. And, I am not quite sure which things in game for the client come from the player profile or the spawn struct, since they are both redundant in alot of things.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #164  
Old 02-13-2009, 03:46 AM
OscarGrouch05
Sarnak
 
Join Date: Apr 2008
Posts: 71
Default

I use this site the help me or i read the eqnews.txt file in client
http://eqplayers.station.sony.com/game_updates.vm

to help me out with what was changed or fixed

the newest client i have found to be open and say i have all expanshions
is 04/11/08 update, i'm waiting for the next one to be soon i hope and keep my fingers crossed

as i have noticed the opcodes for login have changed after May of 08.
i'll keep working on the login opcodes if i find more info i'll be sure to let
you known.
Reply With Quote
  #165  
Old 02-13-2009, 04:13 AM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

Took a couple hours but:


Hopefully can get items basically loading soonish, I have a decent idea on augments but I'm gonna probably hold off at first. There's a lot of other packets to do with items that will need to be covered, item links, moving items, using clicky items etc. Every item packet with a slot ref will have to be encoded/decoded even if it hasn't changed because of the 22-39 getting bumped up a slot.

...but ima go lie down now I think.
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 11:11 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 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3