PDA

View Full Version : MySEQ Developer seeks help from SEQ developer



Seaxouri
12-10-2006, 09:28 PM
I have tried taking another shot at resuming Ground Spawn lookup in the MySEQ tool. For anyone who knows, this knowledge was lost long ago and left abandoned.

The subject was touched on a few times over the last year, and I spent two days on it and gave up. Too much other stuff to do.

I have spent a good bit more time on it once again, but still am at a loss.

The problem stems from the fact that ground spawns do not contain information... from what I can tell, about the item that is created once you pick it up. So I cannot search for "Misty Acorn", because until you find and click it, that text does not exist. Sort of a catch-22.

So I need to understand what I can look for. In a prior post, I was told info on the packet that is passed on the network, however I was not told any actual data values.

I have tried using X,Y,Z coordinates to locate ground spawns, and I have found many hits. However, I cannot make any discernable logic from the data detected. I am not sure if the data I am viewing is from the network part of the code, or some temporary copy place. If logic follows, there should be a linked list somewhere listing these items. I have found several linked lists in memory, but none of them seem to lead me to ground spawns.

Without something unique to key off of, it is very difficult for me. What I was hoping was for someone to visit, say North Kaladim mushroom field, or Misty Thicket Druid rings and tell me the values sent in the packets for the ground items.

I am hoping there is something in the packet, either a string or magic number that I can use to help me lock onto where these things live in memory, and more importantly, if they are a linked list or just an array somewhere... or some combination.

BlueAdept
12-10-2006, 11:56 PM
I belive there is an item number assocated with it. SEQ used to be able to tell what the item was in the early days.

Maybe this will help, with SEQ, The brew barrel, forge, kiln, loom, oven, etc are all considered drops. If you can figure out those packets, the real drops are probably pretty similar.

The problem is you would need an item database since they wouldn't show the name until you pick it up. SEQ used to have an item database in it (it still might, but I havent used the database in a long time) that would store what the item was. When the identifier was seen again, it would label it with the correct name.

If you did it for drops and only drops, it should be fairly small and shouldn't impact performance much.

I have never really delved into the packets so I could be way off base, but at least I'm trying to throw something out there for you.

purple
12-11-2006, 04:27 PM
The item id of the dropped item isn't in the drop struct. It only comes across when you pick it up. There is an actor ID for the icon though. But I don't know if that is visible in memory. These look like IT#####_ACTORDEF I think for drops, where ##### is a base 10 number. There are also IDs for the drops, which is what is passed between client and server when you pick something up.

The ##### corresponds to the graphic used for the item. These are the numbers uRit maps in seq and can be found in the weapon*.h files. For example, I think 0x2a34 is the forge in the guild hall (i.e. IT10803_ACTORDEF is the actor id).

The packet for the server telling your client to spawn the forge in the guild hall:


Dec 05 2006 18:07:32:053 [Decoded] [Server->Client] [Size: 104]
[OPCode: 0x76f0]
[Name: OP_GroundSpawn][Updated: 06/13/06][Type: makeDropStruct (104) ==]
000 | 08 2a 63 07 b8 27 63 07 50 29 63 07 04 00 00 00 | .*c..'c.P)c.....
016 | 59 01 XX XX 00 00 00 00 9a fe ff 7f 00 00 00 00 | Y...............
032 | 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 | ...........?....
048 | 00 00 ac 42 00 00 84 c2 49 54 31 30 38 30 33 5f | ...B....IT10803_
064 | 41 43 54 4f 52 44 45 46 00 00 00 00 00 00 00 00 | ACTORDEF........
080 | 00 00 00 00 00 00 00 00 f0 24 00 00 ff 00 00 00 | .........$......
096 | ff ff ff ff 00 00 00 00 | ........


The wire struct (could be very wrong, seq just actively uses x/y/z and idFile):


struct makeDropStruct
{
/*0000*/ uint32_t prevObject; // Previous object in the linked list
/*0004*/ uint32_t nextObject; // Next object in the linked list
/*0008*/ uint32_t unknown0008; // ***Placeholder
/*0012*/ uint32_t dropId; // DropID
/*0016*/ uint16_t zoneId; // ZoneID
/*0018*/ uint16_t zoneInstance; // Zone instance id
/*0020*/ uint8_t unknown0020[8]; // ***Placeholder
/*0028*/ uint8_t unknown0028[12]; // ***Placeholder (9/23/2006)
/*0040*/ float heading; // Heading
/*0044*/ float z; // Z Position
/*0048*/ float x; // X Position
/*0052*/ float y; // Y Position
/*0056*/ char idFile[16]; // ACTOR ID
/*0072*/ uint32_t unknown0072[5]; // ***Placeholder
/*0092*/ uint32_t dropType; // drop type
/*0096*/ uint32_t unknown0096; // ***Placeholder
/*0100*/ uint32_t userSpawnID; // spawn id of the person using
/*0104*/
};

kunark
12-12-2006, 07:57 AM
i dont know if it helps but this is the grounditems.ini file for the other people

[GroundItem]
IT1_ACTORDEF=Long Sword
IT5_ACTORDEF=Throwing knife
IT8_ACTORDEF=Basic Staff
IT10_ACTORDEF=Arrow
IT14_ACTORDEF=Basic Hammer
IT16_ACTORDEF=Basic Spear
IT27_ACTORDEF=Book
IT35_ACTORDEF=Mod Rod
IT62_ACTORDEF=Flaming Sword
IT63_ACTORDEF=Small Bag
IT64_ACTORDEF=Large Bag
IT65_ACTORDEF=Scroll
IT66_ACTORDEF=Forge
IT67_ACTORDEF=Voodoo Doll
IT68_ACTORDEF=Glowing Black Stone
IT69_ACTORDEF=Oven
IT70_ACTORDEF=Brew Barrel
IT73_ACTORDEF=Kiln
IT74_ACTORDEF=Pottery Wheel
IT78_ACTORDEF=Campfire (Oven)
IT128_ACTORDEF=Loom
IT177_ACTORDEF=Shattering Hammer
IT203_ACTORDEF=Round Shield
IT210_ACTORDEF=Shimmering Orb
IT400_ACTORDEF=Globe of Slush Water
IT401_ACTORDEF=Red Mushroom
IT402_ACTORDEF=Blue Mushroom
IT403_ACTORDEF=Yew Leaf
IT10511_ACTORDEF=A Soulstone Shard
IT10512_ACTORDEF=Orb of Exploration
IT10630_ACTORDEF=Fish Sword
IT10661_ACTORDEF=Blade of Walnan
IT10695_ACTORDEF=Club
IT10714_ACTORDEF=Augmentation Sealer
IT10725_ACTORDEF=Shuriken

maybe it will help you now where to find the info at.

Seaxouri
12-12-2006, 10:25 AM
Thanks guys. I think that may help a lot. I have backburnered this for now (again) so I can finish the client overhaul, but I will return to it. Your info should help a lot.