EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Development::Development (https://www.eqemulator.org/forums/forumdisplay.php?f=590)
-   -   Starting Work on SoF Opcodes/Structs (https://www.eqemulator.org/forums/showthread.php?t=26939)

trevius 02-11-2009 09:12 PM

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.

KLS 02-11-2009 09:33 PM

I've got this now:
http://i8.photobucket.com/albums/a2/...EQ000003-1.jpg
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.

KLS 02-12-2009 12:18 AM

Again:
http://i8.photobucket.com/albums/a2/...e/EQ000004.jpg

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.

trevius 02-12-2009 01:50 AM

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.

KLS 02-12-2009 01:58 AM

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.

KLS 02-12-2009 02:34 AM

You realize you saved me a week of pointless work because I wouldn't of caught that for a week:
http://i8.photobucket.com/albums/a2/...e/EQ000005.jpg

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.

trevius 02-12-2009 04:46 AM

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.

KLS 02-12-2009 05:00 AM

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 =/

trevius 02-12-2009 06:50 AM

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.

Derision 02-12-2009 01:46 PM

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.

http://www.rama.demon.co.uk/SoFInventory.jpg

cavedude 02-12-2009 02:03 PM

Quote:

Originally Posted by trevius (Post 164400)
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. :(

KLS 02-13-2009 01:37 AM

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 ><

trevius 02-13-2009 03:30 AM

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.

OscarGrouch05 02-13-2009 03:46 AM

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 :D

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.

KLS 02-13-2009 04:13 AM

Took a couple hours but:
http://i8.photobucket.com/albums/a2/...e/EQ000007.jpg

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.


All times are GMT -4. The time now is 01:11 PM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.