• Welcome to Valhalla Legends Archive.
 
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - KermEd

#1
Right now I've managed to program a little utility that loaded all the .ds1 and .dt1 info and created files for me that contain only the pathing data.  Its a pretty simple utility, it just records the Length, Width, and then each byte represents a 1 or 0 for each subtile's pathing.  (0 being walkable).

I've found the memory locations for the map data too and have begun creating a pathing using the current room your in, as right now I have it running off those binary map files I created and getting the .ds1 to load from memory.

As soon as I have completed both projects I'll post the information on here.

One thing I've been looking at is marking the entire tile as walkable or unwalkable to save on memory space, but using the subtiles seems to work fine.  Maybe I'll make the pathing option as tiles or subtiles configurable in the bot depending on the users computer.

Peace.
#2
 ;D

More Steps Towards Perfect Mapping For Bots - D2



I created this thread in the hope of opening the conversation on Mapping Concepts for Diablo II.  Personally, I am to create a bot that can move around on a map with the same knowledge present in a real player.  I want the bot to track the movement/location of all Objects/Units and the walking cells of the map.  It is my hopes that any information tossed in here might help contribute towards different working map techniques helping us to create our own, more complex, bots.

I am fairly novice so don't expect a lot from reading my blurb below, but hopefully someone finds the information useful in someway.



Mapping Concepts:

Generally speaking, there are two main concepts for laying out a map for your bot.  Objects, or Map Data.  Using either of these techniques, your bot will react to the position of different obstacles and manuver its way towards your desired goal.



Objects:

For Objects, you simply have your Bot react to the location of certain objects in view.  For instance Standard1 and Standard2 in Act1. 

These objects will come into view using packet 0x51 posted previously by Ringo

0x51
D2GS_OBJECTASIGNMENT
Lengh = 14

51 02 XX XX XX XX 25 00 59 16 A0 15 02 00
(BYTE) Object Type
(DWORD) Object ID
(WORD) Object Unique Code
(WORD) Location X
(WORD) Location Y
(BYTE) Objects State (0x00=no &HE will follow, 0x02=expect a &HE)
(BYTE) Interaction Conditions


The object's ID (35 or 36 in the case of Standard1 & Standard2) will match the Object Unique Code in this packet.

Bot Note:  It is always a good idea to seperate NPC/Monster/Summon/Merc/Player and Object types into seperate arrays to help with debugging your bot.  It also makes your own home-made minimap a little easier to use custom colours!

One importent decision to make is weither or not to work with object sizes.  I'm sure you've noticed during your playing that object sizes very, a lot.  And the location of the objects listed by 0x51 is not always entirely accurate. 

If you choose to ignore object sizes, make sure you set your bot to stay a set distance away from all objects.  This helps prevent your character from "sticking" to objects and being unable to walk past them.  The best idea using this method, is simply to scroll through the object list and look for the maximum object size out of all objects.  This should keep you relatively clear from object obsticles, but will reduce your pathing size.

If you use object sizes, keep the sizes and offsets listed in mind! 

Example: 
Your object might be size 10x10, at location 100,100. 
If the offset is 0, you can walk past the object fairly easily from 90,90 to 110,90. 
But if the objects offset is at -10, -10, remember your object Actually Exists at 90,90. 
And in that case, you might not be able to walk past it!



Map Information

To gather map information can be a little difficult. 

Packet0x07

One technique is to listen to the packet 0x07 for Area and Floor Information details.  Maybe someone can post more information on here about that technique?  I am currently working on using the 0x07 packet to determine the map information, but have no complete information to post on this.  I know it is made up of the 2 Words and 1 Byte (AreaID) but this packet changes format under certain circumstances.  I have tested this fairly well and determined on my own that it is indeed 2 Words and not 4 seperate bytes.

ReadProcessMemory/Use D2 Functions

Another technique is to simply emulate a Map Hack (such as Stings / Mousepads maphack) and to load this information into memory or a datafile instead of the minimap.  This is probably one of the best ways to do this, but is mostly for good C++ programmers.  I'm sure most people will tell you, playing with D2's functions by inserting dll's is very risky.  And loading any application as a .dll has the potential to be detected.  Its just my opinion but this can be one of the highest risks for getting banned for novice hackers looking to recreate the maps in D2.

On that account, a player can also ReadProcessMemory of Diablo 2 to grab the map information.

Origionally Posted by Myhrginoc on Phrozenkeep

Myhrginoc was able to gather some information on mapping that might be useful to C+ programmers
Code:6FD77190  /$  SUB ESP,438
6FD77196  |.  PUSH EBX
6FD77197  |.  MOV EBX,ECX                         
6FD77199  |.  PUSH EBP
6FD7719A  |.  PUSH ESI
6FD7719B  |.  MOV EAX,DWORD PTR DS:[EBX+20]
6FD7719E  |.  MOV ECX,DWORD PTR DS:[EBX]         
6FD771A0  |.  XOR EDX,EDX
6FD771A2  |.  PUSH EDI
6FD771A3  |.  MOV ESI,DWORD PTR DS:[EAX+8]        ;  "ptGetPreset"
6FD771A6  |.  MOV ECX,DWORD PTR DS:[ECX]
6FD771A8  |.  MOV EAX,DWORD PTR DS:[ESI+C]
6FD771AB  |.  MOV DWORD PTR SS:[ESP+30],EBX
6FD771AF  |.  MOV EDI,DWORD PTR DS:[ECX+4]
6FD771B2  |.  LEA EBP,DWORD PTR DS:[ESI+C]
6FD771B5  |.  CMP EAX,EDX
6FD771B7  |.  JNZ SHORT D2Common.6FD771E6
6FD771B9  |.  MOV EAX,DWORD PTR DS:[ESI+4]
6FD771BC  |.  LEA EAX,DWORD PTR DS:[EAX+EAX*2]
6FD771BF  |.  LEA EDX,DWORD PTR DS:[EAX+EAX*4]    ;  15 * [ESI+4]
6FD771C2  |.  MOV EAX,DWORD PTR DS:[ESI+8]        ;  ptr to LvlPrest.bin record
6FD771C5  |.  LEA EDX,DWORD PTR DS:[EAX+EDX*4+44] ;  get the name string for the file
6FD771C9  |.  PUSH EDX
6FD771CA  |.  MOV EDX,DWORD PTR DS:[ECX+8]
6FD771CD  |.  MOV ECX,EBP
6FD771CF  |.  CALL D2Common.6FD76AD0              ;  ds1 loader is down in here

Quote

Code:6FD771BF  |.  LEA EDX,DWORD PTR DS:[EAX+EAX*4]    ;  15 * [ESI+4]

[ESI+4] is the File Column Index in LvlPrest.txt (0 to 5 means column File1 to File6)
15 is the width of the string in the .bin for each File columns


Stack build that defines LvlPrest.bin, now you can see where the data is in the record:


Code:0012ECB0   6FDC970C  ASCII "Def"
0012ECB4   00000002
0012ECB8   00000000
0012ECBC   00000000
0012ECC0   00000000
0012ECC4   6FDC9704  ASCII "LevelId"
0012ECC8   00000002
0012ECCC   00000000
0012ECD0   00000004
0012ECD4   00000000
0012ECD8   6FDC96F8  ASCII "Populate"
0012ECDC   00000002
0012ECE0   00000000
0012ECE4   00000008
0012ECE8   00000000
0012ECEC   6FDC96EC  ASCII "Logicals"
0012ECF0   00000002
0012ECF4   00000000
0012ECF8   0000000C
0012ECFC   00000000
0012ED00   6FDC96E0  ASCII "Outdoors"
0012ED04   00000002
0012ED08   00000000
0012ED0C   00000010
0012ED10   00000000
0012ED14   6FDC96D8  ASCII "Animate"
0012ED18   00000002
0012ED1C   00000000
0012ED20   00000014
0012ED24   00000000
0012ED28   6FDC96CC  ASCII "KillEdge"
0012ED2C   00000002
0012ED30   00000000
0012ED34   00000018
0012ED38   00000000
0012ED3C   6FDC96C0  ASCII "FillBlanks"
0012ED40   00000002
0012ED44   00000000
0012ED48   0000001C
0012ED4C   00000000
0012ED50   6FDC94E4  ASCII "SizeX"
0012ED54   00000002
0012ED58   00000000
0012ED5C   00000028
0012ED60   00000000
0012ED64   6FDC94DC  ASCII "SizeY"
0012ED68   00000002
0012ED6C   00000000
0012ED70   0000002C
0012ED74   00000000
0012ED78   6FDC96B8  ASCII "AutoMap"
0012ED7C   00000002
0012ED80   00000000
0012ED84   00000030
0012ED88   00000000
0012ED8C   6FDC96B0  ASCII "Scan"
0012ED90   00000002
0012ED94   00000000
0012ED98   00000034
0012ED9C   00000000
0012EDA0   6FDC96A8  ASCII "Pops"
0012EDA4   00000002
0012EDA8   00000000
0012EDAC   00000038
0012EDB0   00000000
0012EDB4   6FDC96A0  ASCII "PopPad"
0012EDB8   00000002
0012EDBC   00000000
0012EDC0   0000003C
0012EDC4   00000000
0012EDC8   6FDC9698  ASCII "Files"
0012EDCC   00000002
0012EDD0   00000000
0012EDD4   00000040
0012EDD8   00000000
0012EDDC   6FDC9684  ASCII "File1"
0012EDE0   00000001
0012EDE4   0000003B
0012EDE8   00000044                 <--- offset for beginning of file names
0012EDEC   00000000
0012EDF0   6FDC967C  ASCII "File2"
0012EDF4   00000001
0012EDF8   0000003B
0012EDFC   00000080
0012EE00   00000000
0012EE04   6FDC9674  ASCII "File3"
0012EE08   00000001
0012EE0C   0000003B
0012EE10   000000BC
0012EE14   00000000
0012EE18   6FDC966C  ASCII "File4"
0012EE1C   00000001
0012EE20   0000003B
0012EE24   000000F8
0012EE28   00000000
0012EE2C   6FDC9664  ASCII "File5"
0012EE30   00000001
0012EE34   0000003B
0012EE38   00000134
0012EE3C   00000000
0012EE40   6FDC965C  ASCII "File6"
0012EE44   00000001
0012EE48   0000003B
0012EE4C   00000170
0012EE50   00000000
0012EE54   6FDC9654  ASCII "Dt1Mask"
0012EE58   00000002
0012EE5C   00000000
0012EE60   000001AC
0012EE64   00000000
0012EE68   6FDC9508  ASCII "Expansion"
0012EE6C   00000002
0012EE70   00000000
0012EE74   00000020
0012EE78   00000000
0012EE7C   6FDC5404  ASCII "end"
0012EE80   00000000
0012EE84   00000000
0012EE88   00000000
0012EE8C   00000000


Near as I can tell this first chunk of data is pulled from memory in regards to memory location in d2 memory.  The second set however, is the formula pulled from the LvlPrest.bin (MPQ information)

For more information follow this link

That form is mostly about MPQ editing for creating D2 mods, but can also be very useful for understanding how maps work in Diablo 2.



Reading D2Data (MPQ)

To gather the neccessary .txt files I used WinMPQ (gotta love it) and programmed an automatic TextFile re-formatter for the file.  The text files you want to get a hold of are:

Levels.txt
LvlSub.txt
LvlPrest.txt
LvlMaze.txt
LvlTypes.txt

These files can viewed by using Excel Viewer by Microsoft (good for win2000+)  These files are saved in a tabbed spreadsheet format.  Each column is seperated by a Tab (Ascii 09) character.  So if your good at programming its fairly easy to create a fileformat converter to retype these files in a better layed out  format.  I'll post my programs later for converting these files to a standard equally spaced text file, and to convert them to VB for coding later.

If have been adding NPCs/Monsters/Players/Merc/Summons/Objects to your arrays.  The only information you are missing is your map data.  Believe it or not, these maps aren't as random as you might think!  If you open your d2exp.mpq using WinMPQ and list all the *.ds1 files you will see there is only a set list of map options! 

For instance:  Rogue Town has 3 Possible Formats:  East, West, and South

Filenames:
data\global\tiles\ACT1\Town\townE1.ds1
data\global\tiles\ACT1\Town\townS1.ds1
data\global\tiles\ACT1\Town\townW1.ds1


Now if we open up Levels.txt we will see a list of areas and their specific information.  Here you will see sizeX, sizeY. 

You may notice that although it says sizeX for Rogue Encampment is 56, if you try to walk across it you will see it is actually much bigger.  And if you run the .DS1 file through a d2 map editor [such as] you will notice it is actually a size of 285.  So what is going on here?

Well, the sizeX and sizeY are listed in Cell sizes (think tile sizes) not actual coordinates.  The tiles are actually in 5x5 coordinate chunks.  56x5 = 280.  But you might also note that the cells begin at 0 not 1, so I added another 5 for the cell not counted.

So now we know rogue encampment is actually at a size of sizeX 285, sizeY 205.  If you look into it furthur, you will find out that the players start location <b>varies</b> in each of the three town types.

If your town exits East, your Town Entry will be in <b>Cell (30,13)</b>, Corpse location at 32,13
If your town exits West, your Town Entry will be <b>Cell (26,24)</b>, Corpse location at 28,24
If your town exists South, your Town Entry will be <b>Cell (14,18)</b>, Corpse location at 14,18.

We can easily use this to build the default Rogue Map box in our minimap!  If we know our start location as a cell position, we can simply build the map around ourselves!

While in the .txt file:

You'll also notice a term DrlgType

Quote
Paul Siramy Wrote:


1 = Maze
2 = Preset
3 = Outdoor


Mazes are handled by LvlMaze.txt
Presets by LvlPrest.txt
Outdoors are a bit complex as their infos are in Levels.txt, LvlSub.txt and LvlPrest.txt.

In the case of Rogue Encampment the DrlgType is set to Preset.

Which means its going to load information from LvlPrest.txt


You'll also notice a term LevelType

This is which line from LevelTypes.Txt will be loaded for your current map level.

Now you might notice not all the .DS1 files are actually maps, but sometimes tiles for floors etc.  This is because our level will also be run through the LevelTypes.txt, which grabs a list of DS1's that can be used for floortiles, walltiles, etc.


Whats Next?

Well now we know that a preset list of map types exist.  And we know that these lists are interconnected.  So the wilderness connected to Rogue Town is a set size, and defined in the level*.txt files.  We also know that we can determine if the level is dynamic or static.  We also know that the objects are generated randomly, but can be detected by listening to our packets.  And we know that objects like trees, and large objects, are loaded from other .ds1 files.

One concept, what I'm doing now, is writing a quick program that processes each .DS1 file, and saves a small tabbed excel file with a 1 or 0 for each cell, as to weither or not the player is able to walk on that location.

You can gather map data using objects, reading process memory, reading the .txt files, etc.  If you have any working mapping techniques or corrections to make to my posting please shout and I will update it ASAP.

- KermEd.
#3
Diablo II 11.1b - Unique Object Codes

Thought someone else might find this useful, I pulled it from the MPQ, and can help you know the sizing of different objects on the maps.

Normal Diablo: 0 - 409, Expansion: is 0 - 409 & 410-572


Id  |Desc                        |Token |X  |Y  |Yoff |Xoff |Xs |Ys |Act |Len |Top  |Wth |Hht |OnMap
--------------------------------------------------------------------------------------------------------
0   |Test Data                   |NU0   |0  |0  |0    |0    |0  |0  |0   |0   |0    |0   |0   |0     
1   |Casket #5                   |C5    |5  |3  |0    |0    |5  |5  |1   |0   |0    |0   |0   |0     
2   |Shrine                      |SF    |3  |3  |0    |0    |0  |0  |1   |3   |84   |0   |0   |310   
3   |Casket #6                   |C6    |5  |3  |0    |0    |5  |5  |1   |0   |0    |0   |0   |0     
4   |Urn #1                      |U1    |1  |1  |0    |0    |1  |1  |2   |0   |0    |0   |0   |0     
5   |Large Chest R               |L1    |1  |2  |0    |0    |0  |0  |7   |15  |0    |0   |0   |0     
6   |Large Chest L               |L2    |2  |1  |0    |0    |0  |0  |7   |15  |0    |0   |0   |0     
7   |Barrel                      |B1    |1  |1  |0    |0    |2  |2  |1   |0   |0    |0   |0   |0     
8   |Tower Tome                  |TT    |1  |1  |0    |0    |0  |0  |1   |0   |0    |0   |0   |427   
9   |Urn #2                      |U2    |1  |1  |0    |0    |1  |1  |2   |0   |0    |0   |0   |0     
10  |Bench                       |BE    |7  |1  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
11  |Barrel Exploding            |BX    |1  |1  |0    |0    |2  |2  |1   |0   |0    |0   |0   |0     
12  |Rogue Fountain              |FN    |3  |3  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
13  |Door Gate L                 |D1    |1  |3  |4    |1    |0  |0  |1   |-20 |-80  |40  |40  |0     
14  |Door Gate R                 |D2    |3  |1  |4    |1    |0  |0  |1   |-20 |-80  |40  |40  |0     
15  |Door Wooden L               |D3    |1  |3  |4    |0    |0  |0  |1   |-20 |-80  |40  |40  |0     
16  |Door Wooden R               |D4    |3  |1  |3    |1    |0  |0  |1   |-20 |-80  |40  |40  |0     
17  |StoneAlpha                  |S1    |3  |3  |0    |0    |0  |0  |1   |0   |0    |0   |0   |314   
18  |StoneBeta                   |S2    |3  |3  |0    |0    |0  |0  |1   |0   |0    |0   |0   |314   
19  |StoneGamma                  |S3    |3  |3  |0    |0    |0  |0  |1   |0   |0    |0   |0   |314   
20  |StoneDelta                  |S4    |3  |3  |0    |0    |0  |0  |1   |0   |0    |0   |0   |314   
21  |StoneLambda                 |S5    |3  |3  |0    |0    |0  |0  |1   |0   |0    |0   |0   |314   
22  |StoneTheta                  |S6    |3  |3  |0    |0    |0  |0  |1   |0   |0    |0   |0   |314   
23  |DoorCourtyard L             |D5    |1  |7  |1    |1    |0  |0  |1   |-20 |-80  |40  |40  |0     
24  |DoorCourtyard R             |D6    |7  |1  |1    |1    |0  |0  |1   |-20 |-80  |40  |40  |0     
25  |DoorCathedralDouble         |D7    |9  |1  |-11  |0    |0  |0  |1   |-20 |-80  |40  |40  |0     
26  |Cain Captured               |GI    |3  |3  |15   |-14  |0  |0  |1   |0   |0    |0   |0   |0     
27  |DoorMonestaryDouble R       |D8    |7  |1  |1    |1    |0  |0  |1   |-20 |-80  |40  |40  |0     
28  |Hole In Ground              |HI    |5  |3  |1    |1    |0  |0  |1   |0   |0    |0   |0   |0     
29  |Brazier                     |BR    |1  |1  |0    |0    |0  |0  |7   |0   |0    |0   |0   |0     
30  |Inifuss Tree                |IT    |5  |5  |0    |0    |0  |0  |1   |-40 |-40  |80  |80  |313   
31  |Fountain                    |BF    |3  |3  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
32  |Crucifix                    |CL    |3  |3  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
33  |Candles1                    |A1    |3  |1  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
34  |Candles2                    |A2    |1  |3  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
35  |Standard1                   |N1    |1  |1  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
36  |Standard2                   |N2    |1  |1  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
37  |Torch1 Tiki                 |TO    |1  |1  |0    |0    |0  |0  |7   |0   |0    |0   |0   |0     
38  |Torch2 Wall                 |WT    |1  |1  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
39  |RogueBonfire                |RB    |3  |3  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
40  |River1                      |R1    |0  |0  |-9   |0    |0  |0  |1   |0   |0    |0   |0   |0     
41  |River2                      |R2    |0  |0  |-9   |0    |0  |0  |1   |0   |0    |0   |0   |0     
42  |River3                      |R3    |0  |0  |-9   |0    |0  |0  |1   |0   |0    |0   |0   |0     
43  |River4                      |R4    |0  |0  |-9   |0    |0  |0  |1   |0   |0    |0   |0   |0     
44  |River5                      |R5    |0  |0  |-9   |0    |0  |0  |1   |0   |0    |0   |0   |0     
45  |Ambient Sound               |S1    |0  |0  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
46  |Crate                       |CT    |1  |1  |0    |0    |2  |2  |1   |0   |0    |0   |0   |0     
47  |Andariel's Door             |AD    |7  |1  |1    |1    |0  |0  |1   |-20 |-80  |40  |40  |0     
48  |RogueTorch                  |T1    |2  |1  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
49  |RogueTorch                  |T2    |1  |2  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
50  |CasketR                     |C1    |5  |3  |9    |0    |0  |0  |1   |0   |0    |0   |0   |0     
51  |CasketL                     |C2    |3  |5  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
52  |Urn #3                      |U3    |1  |1  |0    |0    |1  |1  |2   |0   |0    |0   |0   |0     
53  |Casket                      |C4    |5  |3  |4    |0    |5  |5  |1   |0   |0    |0   |0   |0     
54  |Rogue Corpse 1              |Z1    |1  |1  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
55  |Rogue Corpse 2              |Z2    |1  |1  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
56  |Rolling Rogue Corpse        |Z5    |1  |1  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
57  |Rogue On A Stick 1          |Z3    |1  |1  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
58  |Rogue On A Stick 2          |Z4    |1  |1  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
59  |Town Portal                 |TP    |4  |4  |0    |0    |0  |0  |15  |-40 |-100 |80  |110 |0     
60  |Permanent Town Portal       |PP    |1  |1  |0    |0    |0  |0  |15  |-40 |-100 |80  |110 |0     
61  |Invis Object                |SS    |5  |5  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
62  |Door Cathedral L            |D9    |1  |4  |1    |1    |0  |0  |1   |-20 |-80  |40  |40  |0     
63  |Door Cathedral R            |DA    |4  |1  |1    |1    |0  |0  |1   |-20 |-80  |40  |40  |0     
64  |Door Wooden L #2            |DB    |1  |4  |4    |-1   |0  |0  |1   |-20 |-80  |40  |40  |0     
65  |Invis River Sound1          |X1    |0  |32 |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
66  |Invis River Sound2          |X2    |32 |0  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
67  |Ripple                      |1R    |1  |1  |0    |0    |0  |0  |3   |0   |0    |0   |0   |0     
68  |Ripple                      |2R    |1  |1  |0    |0    |0  |0  |3   |0   |0    |0   |0   |0     
69  |Ripple                      |3R    |1  |1  |0    |0    |0  |0  |3   |0   |0    |0   |0   |0     
70  |Ripple                      |4R    |1  |1  |0    |0    |0  |0  |3   |0   |0    |0   |0   |0     
71  |Forest Night Sound #1       |F1    |1  |1  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
72  |Forest Night Sound #2       |F2    |1  |1  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
73  |Yeti Dung                   |YD    |1  |1  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
74  |Trap Door                   |TD    |3  |3  |0    |0    |0  |0  |2   |0   |0    |0   |0   |223   
75  |Door By Dock                |DD    |1  |3  |0    |0    |0  |0  |2   |-20 |-80  |40  |40  |0     
76  |Sewer Drip                  |SZ    |5  |5  |0    |0    |0  |0  |15  |0   |0    |0   |0   |0     
77  |Healthorama                 |SH    |3  |3  |0    |0    |0  |0  |1   |1   |84   |0   |0   |310   
78  |Invis Town Sound            |TA    |0  |0  |0    |0    |0  |0  |3   |0   |0    |0   |0   |0     
79  |Casket #3                   |C3    |4  |6  |-4   |0    |6  |8  |1   |0   |0    |0   |0   |0     
80  |Obelisk                     |OB    |1  |1  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
81  |Forest Altar                |AF    |3  |3  |0    |0    |0  |0  |1   |3   |84   |0   |0   |310   
82  |Pool Of Blood               |B2    |3  |3  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
83  |Shrine                      |HS    |3  |3  |0    |-20  |0  |0  |1   |3   |84   |0   |0   |310   
84  |HealingWell                 |HW    |3  |3  |0    |0    |0  |0  |1   |1   |84   |0   |0   |310   
85  |HealthShrine                |BC    |3  |3  |0    |0    |0  |0  |2   |1   |85   |0   |0   |310   
86  |Shrine                      |SG    |3  |3  |0    |0    |0  |0  |2   |3   |85   |0   |0   |310   
87  |Tombchest 1 Large L         |CA    |1  |3  |0    |0    |0  |0  |2   |20  |0    |0   |0   |0     
88  |Tombchest 2 Large R         |CB    |3  |1  |0    |0    |0  |0  |2   |20  |0    |0   |0   |0     
89  |Mummy CoffinL Tomb          |MC    |3  |5  |0    |0    |5  |5  |2   |0   |0    |0   |0   |0     
90  |Desert Obelisk              |DO    |1  |1  |0    |0    |0  |0  |2   |0   |0    |0   |0   |0     
91  |Tomb Door L                 |TL    |1  |7  |-8   |-11  |0  |0  |2   |-20 |-80  |40  |40  |0     
92  |Tomb Door R                 |TR    |7  |1  |2    |18   |0  |0  |2   |-20 |-80  |40  |40  |0     
93  |ManaShrine                  |iz    |3  |3  |0    |0    |0  |0  |8   |2   |0    |0   |0   |310   
94  |Urn #4                      |U4    |1  |1  |0    |0    |1  |1  |2   |0   |0    |0   |0   |0     
95  |Urn #5                      |U5    |1  |1  |0    |0    |1  |1  |2   |0   |0    |0   |0   |0     
96  |HealthShrine                |iy    |3  |3  |0    |0    |0  |0  |8   |1   |96   |0   |0   |310   
97  |MagicShrine                 |ix    |4  |4  |0    |0    |0  |0  |8   |3   |0    |0   |0   |310   
98  |Tomb Door L 2               |TS    |1  |7  |0    |0    |0  |0  |2   |-20 |-80  |40  |40  |0     
99  |Tomb Door R 2               |TU    |7  |1  |0    |0    |0  |0  |2   |-20 |-80  |40  |40  |0     
100 |Portal To Duriel            |SJ    |1  |3  |-38  |-14  |0  |0  |2   |-40 |-80  |80  |80  |0     
101 |Brazier3                    |B3    |1  |1  |0    |0    |0  |0  |15  |0   |0    |0   |0   |0     
102 |Floor Brazier               |FB    |1  |1  |0    |0    |0  |0  |15  |0   |0    |0   |0   |0     
103 |Flies                       |FL    |1  |1  |0    |0    |0  |0  |15  |0   |0    |0   |0   |0     
104 |Armor Stand 1R              |A3    |2  |1  |0    |0    |0  |0  |7   |0   |0    |0   |0   |0     
105 |Armor Stand 2L              |A4    |1  |2  |0    |0    |0  |0  |7   |0   |0    |0   |0   |0     
106 |Weapon Rack 1R              |W1    |2  |1  |0    |0    |0  |0  |7   |0   |0    |0   |0   |0     
107 |Weapon Rack 2L              |W2    |1  |2  |0    |0    |0  |0  |7   |0   |0    |0   |0   |0     
108 |Malus                       |HM    |2  |1  |0    |0    |0  |0  |1   |0   |0    |0   |0   |316   
109 |Shrine HealthR              |P2    |3  |3  |0    |0    |0  |0  |2   |1   |109  |0   |0   |310   
110 |Drinker                     |n5    |0  |0  |-10  |-35  |0  |0  |0   |0   |0    |0   |0   |0     
111 |Fountain 1                  |F3    |3  |3  |0    |0    |0  |0  |1   |0   |0    |0   |0   |309   
112 |Gesturer                    |n6    |0  |0  |10   |0    |0  |0  |0   |0   |0    |0   |0   |0     
113 |Fountain 2 Well             |F4    |3  |3  |0    |0    |0  |0  |2   |0   |0    |0   |0   |309   
114 |Turner                      |n7    |0  |0  |-5   |-5   |0  |0  |0   |0   |0    |0   |0   |0     
115 |Fountain 3                  |F5    |3  |3  |0    |0    |0  |0  |1   |0   |0    |0   |0   |309   
116 |Snakewoman Shrine           |SN    |3  |3  |0    |0    |0  |0  |2   |3   |109  |0   |0   |310   
117 |Jungle Torch                |JT    |1  |1  |0    |0    |0  |0  |4   |0   |0    |0   |0   |0     
118 |Fountain 4                  |F6    |3  |3  |0    |0    |0  |0  |5   |0   |0    |0   |0   |309   
119 |Waypoint Portal             |wp    |5  |5  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
120 |Healthshrine Dungeun        |dj    |3  |3  |0    |0    |0  |0  |1   |1   |120  |0   |0   |310   
121 |Placeholder #1              |ss    |1  |1  |0    |0    |0  |0  |2   |0   |0    |0   |0   |0     
122 |Placeholder #2              |ss    |1  |1  |0    |0    |0  |0  |2   |0   |0    |0   |0   |0     
123 |Innershrinehell2            |iw    |3  |3  |0    |0    |0  |0  |8   |3   |96   |0   |0   |310   
124 |Innershrinehell3            |iv    |4  |3  |0    |0    |0  |0  |8   |3   |96   |0   |0   |310   
125 |Ihobject3 Inner Hell        |iu    |1  |1  |0    |0    |0  |0  |8   |18  |0    |0   |0   |0     
126 |Skullpile Inner Hell        |is    |1  |1  |0    |0    |0  |0  |8   |18  |0    |0   |0   |0     
127 |Ihobject5 Inner Hell        |ir    |4  |4  |0    |0    |0  |0  |8   |18  |0    |0   |0   |0     
128 |Hobject4 Inner Hell         |hg    |1  |1  |0    |0    |0  |0  |8   |18  |0    |0   |0   |0     
129 |Secret Door 1               |h2    |1  |5  |0    |0    |0  |0  |15  |0   |0    |0   |0   |0     
130 |Pool Wilderness             |zw    |3  |3  |0    |0    |0  |0  |1   |750 |128  |1   |3   |309   
131 |Vile Dog Afterglow          |9b    |0  |0  |0    |0    |0  |0  |4   |18  |0    |0   |0   |0     
132 |Cathedralwell Inside        |zc    |3  |3  |0    |0    |0  |0  |3   |750 |128  |1   |3   |309   
133 |Shrine                      |xx    |3  |3  |0    |0    |0  |0  |1   |3   |85   |0   |0   |310   
134 |Shrine                      |zs    |3  |4  |0    |0    |0  |0  |2   |3   |85   |0   |0   |310   
135 |Shrine                      |zr    |2  |2  |0    |0    |0  |0  |2   |3   |85   |0   |0   |310   
136 |Shrine                      |zd    |6  |3  |0    |0    |0  |0  |2   |3   |85   |0   |0   |310   
137 |Desertwell Well Desert Tomb |zl    |3  |3  |0    |0    |0  |0  |2   |750 |128  |1   |3   |309   
138 |Cavewell Caves              |zy    |4  |4  |0    |0    |0  |0  |1   |750 |128  |1   |3   |309   
139 |Chest Large R               |q1    |3  |2  |0    |0    |0  |0  |1   |18  |0    |0   |0   |0     
140 |Chest Tall R                |q2    |1  |1  |0    |0    |0  |0  |1   |18  |0    |0   |0   |0     
141 |Chest Med R                 |q3    |3  |2  |0    |0    |0  |0  |1   |18  |0    |0   |0   |0     
142 |Jug1 Desert                 |q4    |1  |1  |0    |0    |0  |0  |2   |18  |0    |0   |0   |0     
143 |Jug2 Desert                 |q5    |1  |1  |0    |0    |0  |0  |2   |18  |0    |0   |0   |0     
144 |Chest1 L                    |q6    |1  |1  |0    |0    |0  |0  |1   |18  |0    |0   |0   |0     
145 |Waypointi Inner Hell        |wi    |1  |1  |0    |0    |0  |0  |8   |0   |0    |0   |0   |0     
146 |Chest2 R Chest Med L        |q9    |3  |1  |0    |0    |0  |0  |3   |18  |0    |0   |0   |0     
147 |Chest R Chest Large R       |q7    |3  |1  |0    |0    |0  |0  |3   |18  |0    |0   |0   |0     
148 |Chest L Tomb Chest L Large  |q8    |2  |2  |0    |0    |0  |0  |3   |18  |0    |0   |0   |0     
149 |Sun Altar Quest             |za    |4  |2  |0    |0    |0  |0  |2   |0   |0    |0   |0   |0     
150 |Shrine1                     |zv    |5  |5  |0    |0    |0  |0  |2   |3   |85   |0   |0   |310   
151 |Shrine4                     |ze    |5  |4  |0    |0    |0  |0  |2   |3   |85   |0   |0   |310   
152 |Holder For Horadric Staff   |HA    |3  |3  |0    |0    |0  |0  |2   |0   |0    |0   |0   |0     
153 |Tyrael's Door               |DX    |1  |5  |-18  |-8   |0  |0  |2   |-20 |-80  |40  |40  |0     
154 |Guard Corpse                |GC    |3  |3  |0    |0    |0  |0  |3   |0   |0    |0   |0   |0     
155 |Rock Wilderness             |c7    |1  |1  |0    |0    |0  |0  |1   |18  |0    |0   |0   |0     
156 |Waypoint                    |wm    |1  |1  |0    |0    |0  |0  |2   |0   |0    |0   |0   |0     
157 |WildernessWaypoint          |wn    |1  |1  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
158 |Corpse                      |cp    |3  |3  |0    |0    |0  |0  |15  |18  |0    |0   |0   |0     
159 |Rockb Wilderness            |cq    |1  |1  |0    |0    |0  |0  |1   |18  |0    |0   |0   |0     
160 |Fire Small                  |FX    |0  |0  |0    |0    |0  |0  |15  |0   |0    |0   |0   |0     
161 |Fire Medium                 |FY    |0  |0  |0    |0    |0  |0  |15  |0   |0    |0   |0   |0     
162 |Fire Large                  |FZ    |0  |0  |0    |0    |0  |0  |15  |1   |0    |0   |0   |0     
163 |Cliff Wilderness            |cf    |1  |1  |0    |0    |0  |0  |1   |18  |0    |0   |0   |0     
164 |Mana Well1                  |MB    |3  |3  |0    |0    |0  |0  |1   |2   |85   |0   |0   |310   
165 |Mana Well2                  |MD    |3  |3  |0    |0    |0  |0  |1   |2   |77   |0   |0   |310   
166 |Mana Well3 Tomb             |MF    |3  |3  |0    |0    |0  |0  |2   |2   |85   |0   |0   |310   
167 |Mana Well4 Harom            |MH    |3  |3  |0    |0    |0  |0  |2   |2   |85   |0   |0   |310   
168 |Mana Well5                  |MJ    |3  |3  |0    |0    |0  |0  |8   |2   |85   |0   |0   |310   
169 |Log                         |cz    |5  |1  |0    |0    |0  |0  |15  |18  |0    |0   |0   |0     
170 |Jungle Healwell             |JH    |3  |3  |0    |0    |0  |0  |4   |1   |170  |0   |0   |310   
171 |Corpseb                     |sx    |3  |3  |0    |0    |0  |0  |15  |18  |0    |0   |0   |0     
172 |Health Well/shrine Desert   |Mk    |2  |2  |0    |0    |0  |0  |2   |1   |172  |0   |0   |310   
173 |Mana Well/shrine Desert     |Mi    |2  |2  |0    |0    |0  |0  |2   |2   |172  |0   |0   |310   
174 |Rockc Wilderness            |RY    |1  |1  |0    |0    |0  |0  |1   |-18 |-20  |36  |30  |0     
175 |Rockd Wilderness            |RZ    |1  |1  |0    |0    |0  |0  |1   |18  |0    |0   |0   |0     
176 |Chest-L-med                 |c8    |1  |1  |0    |0    |0  |0  |15  |18  |0    |0   |0   |0     
177 |Chest-L-large               |c9    |1  |1  |0    |0    |0  |0  |15  |18  |0    |0   |0   |0     
178 |Guard On A Stick            |GS    |1  |1  |0    |0    |0  |0  |3   |0   |0    |0   |0   |0     
179 |Bookshelf1                  |b4    |1  |1  |0    |0    |0  |0  |1   |18  |0    |0   |0   |0     
180 |Bookshelf2                  |b5    |1  |1  |0    |0    |0  |0  |1   |18  |0    |0   |0   |0     
181 |Jungle Chest                |JC    |3  |1  |0    |0    |0  |0  |4   |18  |0    |0   |0   |0     
182 |Tombcoffin                  |tm    |1  |1  |0    |0    |0  |0  |2   |18  |0    |0   |0   |0     
183 |Chest-L-med Jungle          |jz    |1  |1  |0    |0    |0  |0  |4   |18  |0    |0   |0   |0     
184 |Jungle Shrine2              |jy    |3  |3  |0    |0    |0  |0  |4   |3   |184  |0   |0   |310   
185 |Jungle Object Act3          |jx    |2  |2  |0    |0    |0  |0  |4   |18  |0    |0   |0   |0     
186 |Jungle Object Act3          |jw    |1  |1  |0    |0    |0  |0  |4   |18  |0    |0   |0   |0     
187 |Jungle Object Act3          |jv    |2  |2  |0    |0    |0  |0  |4   |18  |0    |0   |0   |0     
188 |Jungle Object Act3          |ju    |1  |1  |0    |0    |0  |0  |4   |18  |0    |0   |0   |0     
189 |Cain Portal                 |tP    |0  |0  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
190 |Jungle Shrine3              |js    |3  |4  |0    |0    |0  |0  |4   |3   |184  |0   |0   |310   
191 |Jungle Shrine4              |jr    |3  |3  |0    |0    |0  |0  |4   |3   |184  |0   |0   |310   
192 |Tele Pad                    |7h    |1  |1  |0    |0    |0  |0  |2   |-30 |-80  |60  |80  |0     
193 |Lam Esen's Tome             |ab    |1  |1  |0    |0    |0  |0  |2   |0   |0    |0   |0   |427   
194 |Stairsl                     |sl    |6  |10 |0    |0    |0  |0  |15  |0   |0    |0   |0   |694   
195 |Stairsr                     |sv    |10 |6  |0    |0    |0  |0  |15  |0   |0    |0   |0   |693   
196 |Test Data Floortrap         |a5    |1  |1  |-18  |2    |0  |0  |15  |0   |0    |0   |0   |0     
197 |Jungleshrine                |jq    |3  |3  |0    |0    |0  |0  |4   |3   |184  |0   |0   |310   
198 |Chest General L             |c0    |1  |1  |0    |0    |0  |0  |15  |18  |0    |0   |0   |0     
199 |Mafistoshrine               |mz    |3  |4  |0    |0    |0  |0  |4   |3   |206  |0   |0   |310   
200 |Mafistoshrine               |my    |5  |3  |0    |0    |0  |0  |4   |3   |206  |0   |0   |310   
201 |Mafistoshrine               |mx    |4  |4  |0    |0    |0  |0  |4   |3   |206  |0   |0   |310   
202 |Mafistomana                 |mw    |3  |4  |0    |0    |0  |0  |4   |2   |206  |0   |0   |310   
203 |Mafistolair                 |mv    |1  |1  |0    |0    |0  |0  |4   |18  |0    |0   |0   |0     
204 |Box                         |mu    |1  |3  |0    |0    |0  |0  |4   |18  |0    |0   |0   |0     
205 |Altar                       |mt    |2  |2  |0    |0    |0  |0  |4   |18  |0    |0   |0   |0     
206 |Mafistohealth               |mr    |3  |4  |0    |0    |0  |0  |1   |1   |206  |0   |0   |310   
207 |Water Rocks In Wrok         |rw    |1  |1  |0    |0    |0  |0  |4   |0   |0    |0   |0   |0     
208 |Basket 1                    |bd    |1  |1  |0    |0    |1  |1  |4   |0   |0    |0   |0   |0     
209 |Basket 2                    |bj    |1  |1  |0    |0    |1  |1  |4   |0   |0    |0   |0   |0     
210 |Water Logs In Ne Logw       |lw    |1  |1  |0    |0    |0  |0  |4   |0   |0    |0   |0   |0     
211 |Water Rocks Girl In Wrob    |wb    |1  |1  |0    |0    |0  |0  |4   |0   |0    |0   |0   |0     
212 |Bubbles In Act3 Water       |yb    |1  |1  |0    |0    |0  |0  |4   |0   |0    |0   |0   |0     
213 |Water Logs In Logx          |wd    |1  |1  |0    |0    |0  |0  |4   |0   |0    |0   |0   |0     
214 |Water Rocks In Rokb         |wc    |1  |1  |0    |0    |0  |0  |4   |0   |0    |0   |0   |0     
215 |Water Rocks Girl In Watc    |we    |1  |1  |0    |0    |0  |0  |4   |0   |0    |0   |0   |0     
216 |Water Rocks In Waty         |wy    |1  |1  |0    |0    |0  |0  |4   |0   |0    |0   |0   |0     
217 |Water Logs In Logz          |lx    |1  |1  |0    |0    |0  |0  |4   |0   |0    |0   |0   |0     
218 |Web Covered Tree 1          |w3    |3  |9  |0    |0    |0  |0  |4   |0   |0    |0   |0   |0     
219 |Web Covered Tree 2          |w4    |9  |3  |0    |0    |0  |0  |4   |0   |0    |0   |0   |0     
220 |Web Covered Tree 3          |w5    |3  |3  |0    |0    |0  |0  |4   |0   |0    |0   |0   |0     
221 |Web Covered Tree 4          |w6    |3  |3  |0    |0    |0  |0  |4   |0   |0    |0   |0   |0     
222 |Hobject1                    |70    |2  |2  |0    |0    |0  |0  |4   |18  |0    |0   |0   |0     
223 |Cacoon                      |CN    |1  |1  |0    |0    |0  |0  |4   |18  |0    |0   |0   |0     
224 |Cacoon 2                    |CC    |1  |1  |0    |0    |0  |0  |4   |18  |0    |0   |0   |0     
225 |Hobject1                    |ib    |1  |1  |0    |0    |0  |0  |4   |18  |0    |0   |0   |0     
226 |Outershrinehell             |ia    |3  |4  |0    |0    |0  |0  |8   |3   |96   |0   |0   |310   
227 |Water Rock Girl Nw Blgb     |QX    |1  |1  |0    |0    |0  |0  |4   |0   |0    |0   |0   |0     
228 |Big Log Sw Blga             |qw    |1  |1  |0    |0    |0  |0  |4   |0   |0    |0   |0   |0     
229 |Slimedoor1                  |SQ    |7  |1  |5    |20   |0  |0  |2   |0   |0    |0   |0   |0     
230 |Slimedoor2                  |SY    |1  |7  |3    |-23  |0  |0  |2   |0   |0    |0   |0   |0     
231 |Outershrinehell2            |ht    |3  |4  |0    |0    |0  |0  |8   |3   |96   |0   |0   |310   
232 |Outershrinehell3            |hq    |4  |4  |0    |0    |0  |0  |8   |3   |96   |0   |0   |310   
233 |Hobject2                    |hv    |3  |3  |0    |0    |0  |0  |8   |18  |0    |0   |0   |0     
234 |Big Log Se Blgc             |Qy    |1  |1  |0    |0    |0  |0  |4   |0   |0    |0   |0   |0     
235 |Big Log Nw Blgd             |Qz    |1  |1  |0    |0    |0  |0  |4   |0   |0    |0   |0   |0     
236 |Health Wellforhell          |ho    |3  |3  |0    |0    |0  |0  |8   |18  |0    |0   |0   |310   
237 |Act3Waypoint Town           |wz    |1  |1  |0    |0    |0  |0  |4   |0   |0    |0   |0   |0     
238 |Waypointh                   |wv    |1  |1  |0    |0    |0  |0  |8   |0   |0    |0   |0   |0     
239 |Burning Town                |bz    |3  |3  |0    |0    |0  |0  |1   |18  |0    |0   |0   |0     
240 |Chest1 L                    |cy    |1  |3  |0    |0    |0  |0  |15  |18  |0    |0   |0   |0     
241 |Chest2 R                    |cx    |1  |1  |0    |0    |0  |0  |15  |18  |0    |0   |0   |0     
242 |Chest3 R                    |cu    |1  |1  |0    |0    |0  |0  |15  |18  |0    |0   |0   |0     
243 |Chest3 L                    |cd    |1  |1  |0    |0    |0  |0  |15  |18  |0    |0   |0   |0     
244 |Sewers                      |rn    |1  |1  |0    |0    |0  |0  |3   |18  |0    |0   |0   |0     
245 |Burning Town                |by    |1  |1  |0    |0    |0  |0  |1   |1   |0    |0   |0   |0     
246 |Sewers                      |ra    |1  |1  |0    |0    |0  |0  |3   |18  |0    |0   |0   |0     
247 |Bed                         |qa    |4  |2  |0    |0    |0  |0  |1   |18  |0    |0   |0   |0     
248 |Bed                         |qb    |2  |4  |0    |0    |0  |0  |1   |18  |0    |0   |0   |0     
249 |HellManaWell                |hn    |3  |3  |0    |0    |0  |0  |8   |2   |96   |0   |0   |310   
250 |Exploding Cow / Rare        |ew    |3  |1  |0    |0    |0  |0  |5   |18  |0    |0   |0   |0     
251 |Gidbinn Altar               |ga    |3  |1  |0    |0    |0  |0  |4   |0   |0    |0   |0   |0     
252 |Gidbinn Decoy               |gd    |3  |3  |0    |0    |0  |0  |4   |0   |0    |0   |0   |315   
253 |Diablo R Light              |11    |0  |0  |0    |0    |0  |0  |8   |0   |0    |0   |0   |0     
254 |Diablo L Light              |12    |0  |0  |0    |0    |0  |0  |8   |0   |0    |0   |0   |0     
255 |Diablo Start Point          |ss    |0  |0  |0    |0    |0  |0  |8   |0   |0    |0   |0   |0     
256 |Stool For Cabin             |s9    |3  |1  |0    |0    |0  |0  |1   |18  |0    |0   |0   |0     
257 |Wood For Cabin              |wg    |3  |1  |0    |0    |0  |0  |1   |18  |0    |0   |0   |0     
258 |More Wood For Cabin         |wh    |3  |1  |0    |0    |0  |0  |1   |18  |0    |0   |0   |0     
259 |Skeleton Spawn Hell/nw      |QS    |1  |1  |0    |0    |0  |0  |8   |0   |0    |0   |0   |0     
260 |Holyshrine                  |HL    |1  |1  |0    |0    |0  |0  |1   |3   |77   |0   |0   |310   
261 |Spikes For Tombs Floortrap  |A7    |1  |1  |-15  |5    |0  |0  |2   |0   |0    |0   |0   |0     
262 | Cathedral                  |s0    |3  |3  |0    |0    |0  |0  |1   |3   |77   |0   |0   |310   
263 | Jail                       |jb    |3  |3  |0    |0    |0  |0  |1   |3   |77   |0   |0   |310   
264 | Jail                       |jd    |3  |3  |0    |0    |0  |0  |1   |1   |264  |0   |0   |310   
265 | Jail                       |jf    |3  |3  |0    |0    |0  |0  |1   |2   |264  |0   |0   |310   
266 |Goo Pile                    |GP    |1  |1  |0    |0    |0  |0  |2   |18  |0    |0   |0   |0     
267 |Bank                        |b6    |1  |1  |0    |0    |0  |0  |15  |1   |0    |0   |0   |319   
268 |Wirt's Body                 |BP    |1  |1  |0    |0    |0  |0  |1   |18  |0    |0   |0   |0     
269 |Gold Placeholder            |1g    |0  |0  |0    |0    |0  |0  |15  |0   |0    |0   |0   |0     
270 |Guard Corpse 2              |GF    |3  |3  |0    |0    |0  |0  |2   |0   |0    |0   |0   |0     
271 |Dead Villager 1             |dg    |3  |3  |0    |0    |0  |0  |4   |0   |0    |0   |0   |0     
272 |Dead Villager 2             |df    |3  |3  |0    |0    |0  |0  |4   |0   |0    |0   |0   |0     
273 |Flame / No Damage           |f8    |1  |1  |0    |0    |0  |0  |15  |0   |0    |0   |0   |0     
274 |Tiny Pixel Shaped Thingie   |f9    |0  |0  |0    |0    |0  |0  |15  |0   |0    |0   |0   |0     
275 |Health Shrine               |ce    |3  |3  |0    |0    |0  |0  |1   |1   |275  |0   |0   |310   
276 |Mana Shrine                 |cg    |3  |3  |0    |0    |0  |0  |1   |2   |275  |0   |0   |310   
277 |Magic Shrine                |cg    |3  |3  |0    |0    |0  |0  |1   |3   |275  |0   |0   |310   
278 |Mana Shrine                 |de    |3  |3  |0    |0    |0  |0  |4   |2   |120  |0   |0   |310   
279 |Magic Shrine                |wj    |2  |2  |0    |0    |0  |0  |4   |3   |282  |0   |0   |310   
280 |Healthwell                  |wk    |3  |4  |0    |0    |0  |0  |4   |1   |282  |0   |0   |310   
281 |Manawell                    |wl    |3  |4  |0    |0    |0  |0  |4   |2   |282  |0   |0   |310   
282 |Shrine                      |ws    |3  |3  |0    |0    |0  |0  |4   |3   |282  |0   |0   |310   
283 |Brazier Celler              |bi    |1  |1  |0    |0    |0  |0  |1   |1   |0    |0   |0   |0     
284 |Anubis Coffin               |qc    |3  |5  |0    |0    |5  |5  |2   |0   |0    |0   |0   |0     
285 |Brazier General Sewers      |bm    |1  |1  |0    |0    |0  |0  |1   |1   |0    |0   |0   |0     
286 |Brazier Tall                |bo    |3  |3  |0    |0    |0  |0  |1   |1   |0    |0   |0   |0     
287 |Brazier Small               |bq    |2  |2  |0    |0    |0  |0  |1   |1   |0    |0   |0   |0     
288 |Waypoint Celler             |w7    |1  |1  |0    |0    |0  |0  |8   |0   |0    |0   |0   |0     
289 |Bed                         |ub    |5  |5  |0    |0    |0  |0  |1   |-50 |0    |100 |80  |0     
290 |IronGrateDoor L             |dv    |1  |3  |-5   |-8   |0  |0  |1   |-20 |-80  |40  |40  |0     
291 |IronGrateDoor R             |dn    |3  |1  |0    |8    |0  |0  |1   |-20 |-80  |40  |40  |0     
292 |Wooden Grate Door L         |dp    |1  |3  |-5   |-9   |0  |0  |1   |-20 |-80  |40  |40  |0     
293 |Wooden Grate Door R         |dt    |3  |1  |-3   |8    |0  |0  |1   |-20 |-80  |40  |40  |0     
294 |Wooden Door L               |dk    |1  |3  |-3   |-10  |0  |0  |1   |-20 |-80  |40  |40  |0     
295 |Wooden Door R               |dl    |3  |1  |0    |7    |0  |0  |1   |-20 |-80  |40  |40  |0     
296 |Wall Torch L                |qd    |1  |1  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
297 |Wall Torch R                |qe    |1  |1  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
298 |Arcane Portal               |ay    |5  |2  |0    |0    |0  |0  |2   |-30 |-80  |60  |80  |339   
299 |MagicShrine                 |hb    |3  |3  |0    |0    |0  |0  |4   |3   |301  |0   |0   |310   
300 |MagicShrine                 |hc    |3  |3  |0    |0    |0  |0  |4   |3   |301  |0   |0   |310   
301 |HealthWell                  |qf    |1  |1  |0    |0    |0  |0  |1   |1   |301  |0   |0   |310   
302 |ManaWell                    |qg    |1  |1  |0    |0    |0  |0  |1   |2   |301  |0   |0   |310   
303 |MagicShrine                 |hd    |3  |3  |0    |0    |0  |0  |4   |3   |301  |60  |80  |310   
304 |Telepad                     |7h    |1  |1  |0    |0    |0  |0  |2   |-30 |-80  |60  |80  |0     
305 |Telepad                     |aa    |1  |1  |0    |0    |0  |0  |2   |-30 |-80  |60  |80  |0     
306 |Telepad                     |aa    |1  |1  |0    |0    |0  |0  |2   |-30 |-80  |60  |80  |0     
307 |Arcane Thing                |7a    |1  |1  |0    |0    |0  |0  |2   |0   |0    |0   |0   |0     
308 |Arcane Thing                |7b    |1  |1  |0    |0    |0  |0  |2   |0   |0    |0   |0   |0     
309 |Arcane Thing                |7c    |1  |1  |0    |0    |0  |0  |2   |0   |0    |0   |0   |0     
310 |Arcane Thing                |7d    |1  |1  |0    |0    |0  |0  |2   |0   |0    |0   |0   |0     
311 |Arcane Thing                |7e    |1  |1  |0    |0    |0  |0  |2   |0   |0    |0   |0   |0     
312 |Arcane Thing                |7f    |1  |1  |0    |0    |0  |0  |2   |0   |0    |0   |0   |0     
313 |Arcane Thing                |7g    |1  |1  |0    |0    |0  |0  |2   |0   |0    |0   |0   |0     
314 |Harem Guard 1               |qh    |1  |1  |0    |0    |0  |0  |2   |0   |0    |0   |0   |0     
315 |Harem Guard 2               |qi    |1  |1  |0    |0    |0  |0  |2   |0   |0    |0   |0   |0     
316 |Harem Guard 3               |qj    |1  |1  |0    |0    |0  |0  |2   |0   |0    |0   |0   |0     
317 |Harem Guard 4               |qk    |1  |1  |0    |0    |0  |0  |2   |0   |0    |0   |0   |0     
318 |Harem Blocker               |ss    |1  |7  |0    |0    |0  |0  |2   |0   |0    |0   |0   |0     
319 |HealthWell                  |ax    |2  |2  |0    |0    |0  |0  |2   |1   |282  |0   |0   |310   
320 |HealthWell                  |au    |2  |2  |0    |0    |0  |0  |2   |1   |282  |0   |0   |310   
321 |Test Data                   |pp    |0  |0  |0    |0    |0  |0  |0   |0   |0    |0   |0   |0     
322 |TombWell                    |hu    |3  |3  |0    |0    |0  |0  |2   |750 |128  |1   |3   |309   
323 |SewerWaypoint               |qm    |1  |1  |0    |0    |0  |0  |2   |0   |0    |0   |0   |0     
324 |TravincalWaypoint           |ql    |1  |1  |0    |0    |0  |0  |4   |0   |0    |0   |0   |0     
325 |MagicShrine                 |qn    |3  |3  |0    |0    |0  |0  |4   |3   |301  |0   |0   |310   
326 |DeadBody                    |qo    |3  |1  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
327 |Torch (sewer)               |V1    |1  |1  |0    |0    |0  |0  |4   |0   |0    |0   |0   |0     
328 |Torch (kurast)              |V2    |1  |1  |0    |0    |0  |0  |4   |0   |0    |0   |0   |0     
329 |Maf Chest Large L           |xb    |1  |3  |0    |0    |0  |0  |15  |18  |0    |0   |0   |0     
330 |Maf Chest Large R           |xc    |1  |3  |0    |0    |0  |0  |15  |18  |0    |0   |0   |0     
331 |Maf Chest Mid L             |xd    |1  |1  |0    |0    |0  |0  |15  |18  |0    |0   |0   |0     
332 |Maf Chest Mid R             |xe    |1  |1  |0    |0    |0  |0  |15  |18  |0    |0   |0   |0     
333 |Lair Chest Large L          |xf    |1  |3  |0    |0    |0  |0  |15  |18  |0    |0   |0   |0     
334 |Lair Chestt L               |xg    |1  |1  |0    |0    |0  |0  |15  |18  |0    |0   |0   |0     
335 |Lair Chest Mid R            |xh    |1  |1  |0    |0    |0  |0  |15  |18  |0    |0   |0   |0     
336 |Lair Chest R                |xi    |1  |1  |0    |0    |0  |0  |15  |18  |0    |0   |0   |0     
337 |Steeg Stone                 |y6    |2  |2  |0    |0    |0  |0  |15  |0   |0    |0   |0   |0     
338 |Guild Vault                 |y4    |3  |3  |0    |0    |0  |0  |15  |1   |0    |0   |0   |0     
339 |Trophy Case                 |y2    |2  |3  |0    |0    |0  |0  |15  |0   |0    |0   |0   |0     
340 |Message Board               |y3    |2  |3  |0    |0    |0  |0  |15  |0   |0    |0   |0   |0     
341 |Mephisto Bridge             |xj    |11 |5  |-20  |-45  |0  |0  |4   |18  |0    |0   |0   |0     
342 |Hellgate                    |1y    |1  |1  |0    |0    |0  |0  |12  |-40 |-80  |80  |80  |339   
343 |ManaWell                    |xl    |2  |2  |0    |0    |0  |0  |4   |1   |282  |0   |0   |310   
344 |HealthWell                  |xm    |2  |2  |0    |0    |0  |0  |4   |1   |282  |0   |0   |310   
345 |Hellfire1                   |e3    |0  |0  |0    |0    |0  |0  |8   |0   |0    |0   |0   |0     
346 |Hellfire2                   |e4    |0  |0  |0    |0    |0  |0  |8   |0   |0    |0   |0   |0     
347 |Hellfire3                   |e5    |0  |0  |0    |0    |0  |0  |8   |0   |0    |0   |0   |0     
348 |Helllava1                   |e6    |0  |0  |0    |0    |0  |0  |8   |0   |0    |0   |0   |0     
349 |Helllava2                   |e7    |0  |0  |0    |0    |0  |0  |8   |0   |0    |0   |0   |0     
350 |Helllava3                   |e8    |0  |0  |0    |0    |0  |0  |8   |0   |0    |0   |0   |0     
351 |Lightsource1                |ss    |0  |0  |0    |0    |0  |0  |8   |0   |0    |0   |0   |0     
352 |Lightsource1                |ss    |0  |0  |0    |0    |0  |0  |8   |0   |0    |0   |0   |0     
353 |Lightsource1                |ss    |0  |0  |0    |0    |0  |0  |8   |0   |0    |0   |0   |0     
354 |Horadric Cube Chest         |xk    |1  |1  |0    |0    |0  |0  |15  |18  |0    |0   |0   |318   
355 |Horadric Scroll Chest       |xk    |1  |1  |0    |0    |0  |0  |15  |18  |0    |0   |0   |318   
356 |Staff Of Kings Chest        |xk    |1  |1  |0    |0    |0  |0  |15  |18  |0    |0   |0   |318   
357 |Yet Another Tome            |TT    |1  |1  |0    |0    |0  |0  |1   |0   |0    |0   |0   |427   
358 |Hell Brazier                |E1    |1  |1  |0    |0    |0  |0  |8   |0   |0    |0   |0   |0     
359 |Hell Brazier                |E2    |1  |1  |0    |0    |0  |0  |8   |0   |0    |0   |0   |0     
360 |Rockpile                    |xn    |2  |2  |0    |0    |0  |0  |15  |18  |0    |0   |0   |0     
361 |MagicShrine                 |qo    |3  |3  |0    |0    |0  |0  |4   |3   |301  |0   |0   |310   
362 |Basket                      |xp    |1  |1  |0    |0    |0  |0  |15  |18  |0    |0   |0   |0     
363 |HugeSkeleton                |jw    |4  |4  |0    |0    |0  |0  |4   |18  |0    |0   |0   |0     
364 |Guy For Dungeon             |ea    |2  |1  |0    |0    |0  |0  |14  |18  |0    |0   |0   |0     
365 |Casket                      |vb    |5  |3  |0    |0    |0  |0  |4   |0   |0    |0   |0   |0     
366 |Sewer Quest Stairs          |ve    |5  |5  |0    |0    |0  |0  |4   |0   |0    |0   |0   |223   
367 |Sewer Quest Lever           |vf    |3  |5  |0    |0    |0  |0  |4   |0   |0    |0   |0   |304   
368 |Start Position              |ss    |0  |0  |0    |0    |0  |0  |4   |0   |0    |0   |0   |0     
369 |Trapped Soul                |ss    |0  |0  |0    |0    |0  |0  |8   |0   |0    |0   |0   |0     
370 |Torch                       |VG    |1  |1  |0    |0    |0  |0  |4   |0   |0    |0   |0   |0     
371 |LargeChestR                 |L1    |1  |1  |0    |0    |0  |0  |15  |15  |0    |0   |0   |0     
372 |Bonepile                    |y1    |1  |1  |0    |0    |0  |0  |8   |18  |0    |0   |0   |0     
373 |Skeleton Spawn, Ne          |Qt    |1  |1  |0    |0    |0  |0  |8   |0   |0    |0   |0   |0     
374 |Fog Water Rfga              |ud    |1  |1  |0    |0    |0  |0  |12  |0   |0    |0   |0   |0     
375 |Not Used                    |xx    |1  |3  |0    |0    |0  |0  |15  |18  |0    |0   |0   |0     
376 |Forge Hell                  |ux    |3  |3  |0    |-10  |0  |0  |8   |0   |0    |0   |0   |0     
377 |Portal To Guild             |PP    |1  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
378 |Hratli Start                |ss    |0  |0  |0    |0    |0  |0  |4   |0   |0    |0   |0   |0     
379 |Hratli End                  |ss    |0  |0  |0    |0    |0  |0  |4   |0   |0    |0   |0   |0     
380 |Burning Guy                 |uy    |2  |2  |20   |-3   |0  |0  |8   |0   |0    |0   |0   |0     
381 |Burning Guy                 |15    |2  |2  |20   |-3   |0  |0  |8   |0   |0    |0   |0   |0     
382 |Natalya Start               |ss    |0  |0  |0    |0    |0  |0  |4   |0   |0    |0   |0   |0     
383 |Guy Stuck In Hell           |18    |2  |2  |0    |0    |0  |0  |8   |0   |0    |0   |0   |0     
384 |Guy Stuck In Hell           |19    |2  |2  |0    |0    |0  |0  |8   |0   |0    |0   |0   |0     
385 |Cain Start Position         |ss    |0  |0  |0    |0    |0  |0  |1   |0   |0    |0   |0   |0     
386 |Stairsr                     |sv    |10 |6  |0    |0    |0  |0  |15  |0   |0    |0   |0   |693   
387 |ArcanebigchestL             |y7    |1  |3  |0    |0    |0  |0  |15  |18  |0    |0   |0   |0     
388 |ArcaneCasket                |y8    |1  |3  |0    |0    |0  |0  |15  |18  |0    |0   |0   |0     
389 |ChestBig R                  |y9    |3  |1  |0    |0    |0  |0  |15  |18  |0    |0   |0   |0     
390 |ChestSmall L                |ya    |1  |2  |0    |0    |0  |0  |15  |18  |0    |0   |0   |0     
391 |ChestSmall R                |yc    |2  |1  |0    |0    |0  |0  |15  |18  |0    |0   |0   |0     
392 |Diablo Seal1                |30    |5  |5  |0    |0    |0  |0  |8   |0   |0    |0   |0   |306   
393 |Diablo Seal2                |31    |5  |5  |0    |0    |0  |0  |8   |0   |0    |0   |0   |306   
394 |Diablo Seal3                |32    |5  |5  |0    |0    |0  |0  |8   |0   |0    |0   |0   |306   
395 |Diablo Seal4                |33    |5  |5  |0    |0    |0  |0  |8   |0   |0    |0   |0   |306   
396 |Diablo Seal5                |34    |5  |5  |0    |0    |0  |0  |8   |0   |0    |0   |0   |306   
397 |Sparklychest                |yf    |2  |2  |0    |0    |0  |0  |15  |18  |0    |0   |0   |0     
398 |PandamoniaWaypoint          |yg    |1  |1  |0    |0    |0  |0  |8   |0   |0    |0   |0   |0     
399 |Fissure For Inner Hell      |fh    |0  |0  |0    |0    |0  |0  |8   |0   |0    |0   |0   |0     
400 |Brazier For Hell            |he    |2  |2  |0    |0    |0  |0  |8   |1   |0    |0   |0   |0     
401 |Smoke                       |35    |0  |0  |0    |0    |0  |0  |8   |0   |0    |0   |0   |0     
402 |VallyWaypoint               |yi    |1  |1  |0    |0    |0  |0  |8   |0   |0    |0   |0   |307   
403 |Hell Brazier                |9f    |2  |2  |0    |0    |0  |0  |8   |1   |0    |0   |0   |0     
404 |Compelling Orb              |55    |3  |3  |0    |0    |0  |0  |8   |1   |0    |0   |0   |305   
405 |Khalim Chest                |xk    |1  |1  |0    |0    |0  |0  |15  |18  |0    |0   |0   |318   
406 |Khalim Chest                |xk    |1  |1  |0    |0    |0  |0  |15  |18  |0    |0   |0   |318   
407 |Khalim Chest                |xk    |1  |1  |0    |0    |0  |0  |15  |18  |0    |0   |0   |318   
408 |Fortress Brazier #1         |98    |2  |2  |0    |0    |0  |0  |8   |1   |0    |0   |0   |0     
409 |Fortress Brazier #2         |99    |1  |1  |0    |0    |0  |0  |8   |1   |0    |0   |0   |0     
408 |Siege Control               |zq    |1  |1  |0    |0    |0  |0  |16  |18  |0    |0   |0   |0     
409 |PotOTorch(level 1)          |px    |1  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
410 |FirePit(level 1)            |py    |1  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
413 |Chest R                     |6q    |2  |2  |0    |0    |0  |0  |16  |20  |0    |0   |0   |0     
414 |Shrine                      |6r    |2  |2  |0    |0    |0  |0  |16  |3   |206  |0   |0   |310   
415 |Shrine                      |6s    |2  |2  |0    |0    |0  |0  |16  |3   |206  |0   |0   |310   
416 |HiddenStash                 |3w    |1  |3  |0    |0    |0  |0  |16  |20  |0    |0   |0   |0     
417 |WildernessFlag              |ym    |3  |3  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
418 |Barrel                      |yn    |1  |1  |0    |0    |0  |0  |16  |20  |0    |0   |0   |0     
419 |Barrel2                     |6t    |1  |1  |0    |0    |2  |2  |16  |0   |0    |0   |0   |0     
420 |Wooden Chest L              |yp    |1  |3  |0    |0    |0  |0  |16  |20  |0    |0   |0   |0     
421 |Shrine 3                    |yq    |2  |2  |0    |0    |0  |0  |16  |3   |206  |0   |0   |310   
422 |Mana Shrine                 |yr    |3  |3  |0    |0    |0  |0  |16  |2   |172  |0   |0   |310   
423 |Health Shrine               |ys    |3  |3  |0    |0    |0  |0  |16  |1   |282  |0   |0   |310   
424 |BurialChest L               |yt    |2  |3  |0    |0    |0  |0  |16  |20  |0    |0   |0   |0     
425 |BurialChest R               |ys    |3  |2  |0    |0    |0  |0  |16  |20  |0    |0   |0   |0     
426 |Well                        |yv    |4  |4  |0    |0    |0  |0  |16  |0   |0    |0   |0   |309   
427 |Shrine2                     |yw    |3  |3  |0    |0    |0  |0  |16  |3   |206  |0   |0   |310   
428 |Shrine2                     |yx    |2  |2  |0    |0    |0  |0  |16  |3   |206  |0   |0   |310   
429 |Waypoint                    |yy    |5  |5  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
430 |Chest L                     |yz    |1  |2  |0    |0    |0  |0  |16  |20  |0    |0   |0   |0     
431 |Woodchest R                 |6a    |2  |1  |0    |0    |0  |0  |16  |20  |0    |0   |0   |0     
432 |Chest SL                    |6b    |1  |2  |0    |0    |0  |0  |16  |20  |0    |0   |0   |0     
433 |Chest SR                    |6c    |2  |1  |0    |0    |0  |0  |16  |20  |0    |0   |0   |0     
434 |Torch 1                     |6d    |2  |2  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
435 |Camp Fire                   |2w    |1  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
436 |Town Torch                  |2x    |1  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
437 |Torch 2                     |6e    |1  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
438 |Burning Bodies              |6f    |2  |2  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
439 |Burning Pit                 |6g    |3  |4  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
440 |Tribal Flag                 |6h    |3  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
441 |Town Flag                   |2y    |1  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
442 |Chandeleir                  |2z    |1  |1  |-130 |0    |0  |0  |16  |0   |0    |0   |0   |0     
443 |Jar 1                       |6i    |1  |1  |0    |0    |1  |1  |16  |0   |0    |0   |0   |0     
444 |Jar 2                       |6j    |1  |1  |0    |0    |1  |1  |16  |0   |0    |0   |0   |0     
445 |Jar 3                       |6k    |1  |1  |0    |0    |1  |1  |16  |0   |0    |0   |0   |0     
446 |SwingingHeads               |6L    |5  |2  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
447 |Pole                        |6m    |4  |4  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
448 |Skill W/ Rockpile           |6n    |5  |3  |0    |0    |0  |0  |16  |20  |0    |0   |0   |0     
449 |Town Main Gate              |2v    |1  |7  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
450 |Skull And Rocks             |6o    |5  |5  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
451 |Hellgate                    |6p    |3  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
452 |Banner 1                    |ao    |1  |1  |0    |0    |0  |0  |16  |1   |0    |0   |0   |0     
453 |Banner 2                    |ap    |1  |1  |0    |0    |0  |0  |16  |1   |0    |0   |0   |0     
454 |Exploding Chest             |6t    |1  |3  |0    |0    |2  |2  |16  |0   |0    |0   |0   |0     
455 |Special Chest               |6u    |2  |1  |0    |0    |0  |0  |16  |18  |0    |0   |0   |0     
456 |DeathPole R                 |6v    |3  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
457 |DeathPole L                 |6w    |3  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
458 |Temple Altar                |6x    |2  |3  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
459 |Drehya In Town              |ss    |1  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
460 |Drehya Outside Town         |ss    |1  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
461 |Nihlathak In Town           |ss    |1  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
462 |Nihlathak Outside Town      |ss    |1  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
463 |Hidden Stash                |6y    |1  |1  |0    |0    |0  |0  |15  |18  |0    |0   |0   |0     
464 |Health Shrine               |8a    |2  |2  |0    |0    |0  |0  |16  |1   |282  |0   |0   |310   
465 |Mana Shrine                 |8b    |2  |2  |0    |0    |0  |0  |16  |2   |172  |0   |0   |310   
466 |Evil Urn                    |8c    |1  |1  |0    |0    |0  |0  |16  |18  |0    |0   |0   |0     
467 |IcecaveJar1                 |8d    |1  |1  |0    |0    |1  |1  |16  |0   |0    |0   |0   |0     
468 |IcecaveJar2                 |8e    |1  |1  |0    |0    |1  |1  |16  |0   |0    |0   |0   |0     
469 |IcecaveJar3                 |8f    |1  |1  |0    |0    |1  |1  |16  |0   |0    |0   |0   |0     
470 |IcecaveJar4                 |8g    |1  |1  |0    |0    |1  |1  |16  |0   |0    |0   |0   |0     
471 |IcecaveJar5                 |8h    |1  |1  |0    |0    |1  |1  |16  |0   |0    |0   |0   |0     
472 |IcecaveShrine2              |8i    |2  |2  |0    |0    |0  |0  |16  |3   |206  |0   |0   |310   
473 |Caged Fellow                |60    |3  |3  |0    |0    |0  |0  |16  |0   |0    |0   |0   |310   
474 |Statue 3                    |60    |3  |3  |-5   |-5   |0  |0  |16  |0   |0    |0   |0   |0     
475 |Statue 1                    |61    |3  |3  |-5   |-5   |0  |0  |16  |0   |0    |0   |0   |0     
476 |Statue 2                    |62    |3  |3  |-10  |-8   |0  |0  |16  |0   |0    |0   |0   |0     
477 |Dead Barbarian              |8j    |2  |3  |0    |0    |0  |0  |16  |18  |0    |0   |0   |0     
478 |Client Smoke                |oz    |0  |0  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
479 |IcecaveShrine2              |8k    |2  |2  |0    |0    |0  |0  |16  |3   |206  |0   |0   |310   
480 |IcecaveTorch1               |8L    |1  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
481 |IcecaveTorch2               |8m    |1  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
482 |Expansion Tiki Torch        |2p    |1  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
483 |ManaShrine                  |8n    |2  |2  |0    |0    |0  |0  |16  |2   |172  |0   |0   |310   
484 |BaalHealthShrine            |8o    |2  |2  |0    |0    |0  |0  |16  |2   |172  |0   |0   |310   
485 |Baal's Lair                 |8p    |5  |3  |0    |0    |0  |0  |16  |18  |0    |0   |0   |0     
486 |Baal's Lair                 |8q    |5  |3  |0    |0    |0  |0  |16  |18  |0    |0   |0   |0     
487 |Baal's Lair                 |8r    |5  |3  |0    |0    |0  |0  |16  |18  |0    |0   |0   |0     
488 |BaalMagicShrine             |8s    |2  |2  |0    |0    |0  |0  |16  |3   |206  |0   |0   |310   
489 |Torch1                      |8t    |1  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
490 |Torch2                      |8u    |1  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
491 |ManaShrine                  |8v    |3  |3  |0    |0    |0  |0  |16  |2   |172  |0   |0   |310   
492 |HealthShrine                |8w    |3  |3  |0    |0    |0  |0  |16  |1   |282  |0   |0   |310   
493 |Well                        |8x    |4  |4  |0    |0    |0  |0  |16  |0   |0    |0   |0   |309   
494 |BaalWaypoint                |8y    |5  |5  |0    |0    |0  |0  |16  |0   |0    |0   |0   |307   
495 |Shrine3                     |8z    |2  |2  |0    |0    |0  |0  |16  |3   |206  |0   |0   |310   
496 |WildernessWaypoint          |5a    |5  |5  |0    |0    |0  |0  |16  |0   |0    |0   |0   |307   
497 |Shrine3                     |5b    |3  |3  |0    |0    |0  |0  |16  |3   |206  |0   |0   |310   
498 |BaalWell                    |5c    |3  |3  |0    |0    |0  |0  |16  |0   |0    |0   |0   |309   
499 |BaalMagicShrine2            |5d    |2  |4  |0    |0    |0  |0  |16  |3   |206  |0   |0   |310   
500 |Object1                     |5e    |2  |2  |0    |0    |0  |0  |16  |18  |0    |0   |0   |0     
501 |Woodchest L                 |5f    |1  |3  |0    |0    |0  |0  |16  |20  |0    |0   |0   |0     
502 |Woodchest R                 |5g    |3  |1  |0    |0    |0  |0  |16  |20  |0    |0   |0   |0     
503 |BaalMagicShrine3            |5h    |3  |3  |0    |0    |0  |0  |16  |3   |206  |0   |0   |310   
504 |WoodChest L                 |5f    |2  |3  |0    |0    |0  |0  |16  |20  |0    |0   |0   |0     
505 |WoodChest 2                 |5f    |3  |2  |0    |0    |0  |0  |16  |20  |0    |0   |0   |0     
506 |SwingingHeads               |5k    |5  |2  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
507 |Debris                      |5l    |4  |4  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
508 |Pen Door                    |2q    |1  |7  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
509 |TempleMagicShrine           |5h    |4  |3  |0    |0    |0  |0  |16  |3   |206  |0   |0   |310   
510 |Pole                        |5k    |5  |5  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
511 |IcecaveWaypoint             |5a    |5  |5  |0    |0    |0  |0  |16  |0   |0    |0   |0   |307   
512 |TempleMagicShrine2          |5t    |2  |2  |0    |0    |0  |0  |16  |3   |206  |0   |0   |310   
513 |TempleWell                  |5q    |4  |4  |0    |0    |0  |0  |16  |0   |0    |0   |0   |309   
514 |Torch1                      |5r    |1  |3  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
515 |Torch2                      |5s    |1  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
516 |Object1                     |5u    |1  |1  |0    |0    |0  |0  |16  |18  |0    |0   |0   |0     
517 |Object2                     |5v    |2  |2  |0    |0    |0  |0  |16  |18  |0    |0   |0   |0     
518 |BaalMrBox                   |5w    |3  |1  |0    |0    |1  |1  |16  |0   |0    |0   |0   |0     
519 |IcecaveWell                 |5x    |3  |3  |0    |0    |0  |0  |16  |0   |0    |0   |0   |309   
520 |TempleMagicShrine3          |5y    |2  |2  |0    |0    |0  |0  |16  |3   |206  |0   |0   |310   
521 |TempleHealthShrine          |5z    |3  |3  |0    |0    |0  |0  |16  |1   |282  |0   |0   |310   
522 |TempleManaShrine            |3a    |3  |3  |0    |0    |0  |0  |16  |2   |172  |0   |0   |310   
523 | Blacksmith                 |ss    |0  |0  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
524 |Baal's Lair Tomb1           |3b    |3  |5  |0    |0    |0  |0  |16  |18  |0    |0   |0   |0     
525 |Baal's Lair Tomb2           |3c    |3  |5  |0    |0    |0  |0  |16  |18  |0    |0   |0   |0     
526 |Baal's Lair Tomb3           |3d    |3  |5  |0    |0    |0  |0  |16  |18  |0    |0   |0   |0     
527 |Ice Cave BubblesU 01        |2u    |1  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
528 |Ice Cave BubblesS 01        |2s    |1  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
529 |Redbaal's Lair Tomb1        |3f    |5  |3  |0    |0    |0  |0  |16  |18  |0    |0   |0   |0     
530 |Redbaal's Lair Tomb1L       |3g    |3  |5  |0    |0    |0  |0  |16  |18  |0    |0   |0   |0     
531 |Redbaal's Lair Tomb2        |3h    |5  |3  |0    |0    |0  |0  |16  |18  |0    |0   |0   |0     
532 |Redbaal's Lair Tomb2L       |3i    |3  |5  |0    |0    |0  |0  |16  |18  |0    |0   |0   |0     
533 |Redbaal's Lair Tomb3        |3j    |5  |3  |0    |0    |0  |0  |16  |18  |0    |0   |0   |0     
534 |Redbaal's Lair Tomb3L       |3k    |3  |5  |0    |0    |0  |0  |16  |18  |0    |0   |0   |0     
535 |RedbaalsMrBox               |3L    |3  |1  |0    |0    |1  |1  |16  |0   |0    |0   |0   |0     
536 |Redbaal's Torch1            |3m    |1  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
537 |Redbaal's Torch2            |3n    |1  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
538 |TempleCandles               |3o    |2  |5  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
539 |TempleWaypoint              |3p    |5  |5  |0    |0    |0  |0  |16  |0   |0    |0   |0   |307   
540 |DeadPerson                  |3q    |2  |2  |0    |0    |0  |0  |16  |18  |0    |0   |0   |0     
541 |GroundTomb                  |3s    |5  |3  |0    |0    |0  |0  |16  |18  |0    |0   |0   |0     
542 |Larzuk Greeting             |ss    |0  |0  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
543 |Larzuk Standard             |ss    |0  |0  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
544 |GroundTombL                 |3t    |3  |5  |0    |0    |0  |0  |16  |18  |0    |0   |0   |0     
545 |DeadPerson2                 |3u    |2  |2  |0    |0    |0  |0  |16  |18  |0    |0   |0   |0     
546 |AncientsAltar               |4a    |1  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |1467 
547 |Worldstone Level1           |4b    |5  |8  |-47  |17   |0  |0  |16  |-30 |-100 |70  |100 |0     
548 |WeaponrackR                 |3x    |2  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
549 |WeaponrackL                 |3y    |1  |2  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
550 |ArmourrackR                 |3z    |2  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
551 |ArmourrackL                 |4c    |1  |2  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
552 |SummitTorch2                |9g    |1  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
553 |FuneralPire                 |9h    |3  |4  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
554 |BurningLogs                 |9i    |3  |4  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
555 |Ice Cave Steam              |2o    |1  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
556 |DeadPerson3                 |3v    |2  |2  |0    |0    |0  |0  |16  |18  |0    |0   |0   |0     
557 |Baal's Lair                 |ss    |0  |0  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
558 |Frozen Anya                 |2n    |1  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |1468 
559 |BBQ Bunny                   |29    |3  |3  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
560 |Baal Torch Big              |25    |1  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
561 |Invisible Ancient           |ss    |0  |0  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
562 |Invisible Base              |ss    |5  |5  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
563 |Worldstone Chamber          |4x    |1  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
564 |GlacialCaves Level1         |4u    |0  |0  |0    |-33  |0  |0  |16  |0   |0    |0   |0   |0     
565 |Last Cinematic              |pp    |0  |0  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
566 |Harrogath LastPortal        |pp    |0  |0  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
567 |Zoo                         |ss    |0  |0  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
568 |Keeper                      |7z    |2  |2  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
569 |ThroneOfDest Portal         |4x    |1  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
570 |FireplaceGuy                |7y    |1  |1  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
571 |DoorBlocker                 |ss    |5  |2  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     
572 |DoorBlocker2                |ss    |2  |5  |0    |0    |0  |0  |16  |0   |0    |0   |0   |0     

;)
#4

Ringo, Heres a few more if you want to add them to the
list. They are based on my own findings, and might not
be correct, but hey its a few more bits of info.

S > C[/size]


0x01 MapInit (If Followed By 0x02)
Length = 7 + Header
0x01 - 00 04 00 30 00 01 01  - Normal, Normal
0x01 - 01 04 10 30 00 01 01  - Nightmare, Normal
0x01 - 02 04 20 30 00 01 01  - Hell, Normal
0x01 - 00 04 08 30 00 01 01  - Normal, Hardcore
(BYTE) Difficulty
(BYTE)  Unknown (Always 04)
(BYTE)  Hardcore & Difficulty
(DWORD) Unknown (Always 30, 00, 01, 01)


Difficulty,
            00=Normal
            01=Nightmare
            02=Hell
HardCore & Difficulty
            08=Normal, Hardcore
            10=Normal, Normal
            18=Nightmare, Hardcore  *?
            20=Nightmare, Normal
            28=Hell, Hardcore  *?
            30=Hell, Normal

Notes:

The packet always comes through as the same size, but
these values are only true the first time it is sent, at game start.



0x02 Game Initialized?
Length = Header Only
0x02



0x05 Game Saved On Battle.Net?
Length = Header Only
0x05



0x06 Game End, User Quit.
Length = Header Only
0x06

Notes:

Packet 0x06 will follow Packet 0x05 prior to quitting a game. 
Mysteriously enough these two packets can be seen together at
other times.



0x21 Skill Granted From Item
Length = 11 + Header
0x21 - 00 00 | 61 38 E4 07 | 2F 00 | 00 | 12 | 00
                      ^ PlayerID     ^Skill          ^Level
(WORD)  Unknown
(DWORD) PlayerID
(WORD) Skill
(BYTE)  Unknown
(BYTE)  SkillLevel
(BYTE)  Unknown


Notes:

This displays the Skill Name, and Level of skill you recieve
only from an item.  If you have multiple items (a set for
example) that give you the skill, this seems to trigger once
for each of the items. 



0x41 (Another) PlayerID Recieved
Length = 5 + Header
0x42 - 00 | 37 3E 03 A7
  Type ^     ^  ID
(BYTE) ObjectType
(DWORD) ObjectID


Notes:

This ID is recieved on much rarer occasions than 0x0B



0x65 Kill Counter
Length = 6 + Header
| 06 89 9C 79 | 01 00
| 67 27 CC E3 | 03 00
  ^ Id              ^ Count
(DWORD) Player ID
(WORD) Current Kills


Notes:

This counter keeps track of your total number of
kills since the new game was created.  It should
be noted, that if it is sent with an incorrect Player
ID, its function changes and it does not display
your current kills.



0x67 D2GS_COMMOVE
Length = 16
(DWORD) Computer Player ID
(BYTE) Movment Type (0x01=walk, 0x17=run)
(WORD) Moving to Location X -  Reversed !
(WORD) Moving To Location Y -  Reversed !
(WORD) Unknown - 0x01
(BYTE) Unknown (always 0x01/0x07/0x0D/0x0F)
(WORD) Unknown
(BYTE) Unknown

   
Notes:

This code was already posted here by you, but I found
I had to manually reverse the LocX and LocY, and thought
I should post a note about it in case other users have
the same problem.



0x9E Merc Attribute As Byte
Length = 6 + Header
0x9E - 0C | 85 2F 36 1A | 0F
   Attr ^ Id ^        Value ^
(BYTE) Attribute Type
(DWORD) MercID
(BYTE) Attribute Value


Notes:

This also seems to trigger for other members of your
non player party, and might be used for monsters as
well.  (Didn't seem to though on testing)



0x9F Merc Attribute As Word
Length = 7 + Header
0x9F - 07 | 85 2F 36 1A | 00 D2
    Attr ^ Id ^        Value ^
(BYTE) Attribute Type
(DWORD) MercID
(WORD) Attribute Value


Notes:

This attribute follows the same format as the player
stats packet (0x1E).  If the value is below 255 the
first byte will be null in the Attribute Value and only
the second byte should be used.

Using both bytes when one is null can show incorrect
values for your stats.

This also seems to trigger for other members of your
non player party, and might be used for monsters as
well.  (Didn't seem to though on testing)



0xA0 Merc Attribute As Dword
Length = 9 + Header
0xA0 - 0D | 85 2F 36 1A | 58 B7 06 00
    Attr ^ Id ^         Value ^
(BYTE) Attribute Type
(DWORD) MercID
(DWORD) Attribute Value


Notes:

This also seems to trigger for other members of your
non player party, and might be used for monsters as
well.  (Didn't seem to though on testing)



Also, Here is a list of a few packets that always seem
to contain no data, and are of 0 Length + Header:

0x02 - Game Init?
0x04 - Some Lists Show This As Screen Refresh
0x05 - Blank
0x4F - Blank
0x61 - (BYTE)  [my value was 0F]
0x72 - Blank
0x97 - Blank
0xAF - Blank
0xB3 - Blank, Banned Ip?

I've got about another 10 that I've been trying to decode
today and will post them when progress is made.  I'm also
working on 0x28 (Quest Log) as it seems to not be as
posted for my system.

Keep up the good work!! 

Last Updated July 20th, 2006

- KermEd
#5
Quote from: DueL on July 25, 2005, 10:05 PM
This might sound stupid but how do you know where you stand when you first join the game?

DueL::   Two Ways That I know Of,

---- C++ And Reading Process Memory, Heres The Memory Locations


#define CHAR_X                       0x6FBC5630
#define CHAR_Y                       0x6FBC5634


The X and Y Locations Will Be Off By A Value (-24) (ie: X Would Read 5024, Instead Of 5000).  I Don't Know Why, But Its Not Matching Up With My Recieved Packet (X & Y)

(If Your New To Reading Diablo 2's Memory, Heres A Great Place To Start)

http://r-1.ch/d2viewitemlevel.c


Or If You Want To Do It Using Packets:

---- Packet 0x96
http://forum.valhallalegends.com/index.php?topic=15381.msg155635#msg155635


(BITS[15]) Stamina
(BITS[15]) Location X
(BITS[1]) Unknown
(BITS[15]) Location Y
(BITS[18]) Unknown


Quote from: LivedKrad on July 25, 2005, 09:49 PM
I'm trying to do some pathing, but as some of you know the map type changes between games and so do the specific coordinates for NPC's and stuff. I was wondering if there was an OnJoin packet that specified what map style it was or what the coordinates were so I can set up the pathing according to the current map style. Anyone?

---- Mapping Techniques:

LivedKrad::

Good Question.  I am also stumped on this one.  I have everything up and working on my bot minus a decent mapping technique.  I keep track of all items/players/npcs/etc.  I read the post on offsets for room sizes, but also am unsure how to impliment them.  I am guessing it can be done that way, however.  I mean you can exit one of two ways from rogue encampment, and packet 0x95 will tell you if you can walk there, but thats kind of a harsh way to do it. 

By Standard1 and Standard2 I believe he is referring to the [link=http://forum.valhallalegends.com/index.php?topic=11756.msg155943#msg155943]Unique Object Codes 35/36[/link]

It seems to me the map size and area is mostly predefined in the data files, I'll check into the MPQ and see if there is anything else to be pulled out.

Peace

~ KermEd  [modified July18, 2006]