Blizzhackers

Return of the Jedi

* Login   * Register    * FAQ    * Search

Join us on IRC: #bh@irc.synirc.net (or Mibbit Web IRC)


MuleFactory


It is currently Sat May 25, 2013 7:33 pm


All times are UTC [ DST ]





Post new topic Reply to topic  [ 17 posts ]  Go to page 1, 2  Next
Author Message
 Post subject: [S->C 0x5a] Event Messages
PostPosted: Sat Apr 05, 2008 7:14 pm 
 
Section Leader Gold
Section Leader Gold
User avatar

Joined: Fri Sep 20, 2002 2:38 am
Location: ٩(͡๏̯͡๏)۶0x3CC4E7C0 CHATSUBO
This is for the packet list sticky. I didn't want to clutter it too much.

General Structure:
5A [BYTE Message Type] [BYTE Color] [DWORD Param1] [BYTE Param2] [Name1[16]] [Name2[16]]
Length is always 40 bytes.

BYTE Message Type:

0x00 - "%Name1(%Name2) dropped due to time out."
0x01 - "%Name1(%Name2) dropped due to errors."
0x02 - "%Name1(%Name2) joined our world. Diablo's minions grow stronger."
0x03 - "%Name1(%Name2) left our world. Diablo's minions weaken."
0x04 - "%Name1 is not in the game."
0x05 - "%Name1 is not logged in."

0x06 - "%Name1 was Slain by %Name2"
   BYTE Param2 = Unit Type of Slayer (0x00 = Player, 0x01 = NPC)
       if Type = Player, %Name2 = Slayer Character Name & DWORD Param1 = Slayer Character Type
       if Type = NPC, DWORD Param1 = Monster Id Code from MPQ (points to string for %Name2)
       if Type = NPC & Monster is Unique, %Name2 = Unique Monster Id

0x07 - Player Relations (Bottom Left Text)
   DWORD Param1 = Player Id
   Player Id = Pointer to Character Name
   BYTE Param2 = Action Taken
      Actions:
      0x01 - "%Player permits you to loot his corpse."
      0x02 - "%Player permits you to loot her corpse."
      0x03 - "%Player has declared hostility towards you."
      0x04 - "%Player is no longer hostile towards you."
      0x05 - "%Player invites you to ally against the forces of evil."
      0x06 - "%Player has canceled party invite."
      0x07 - "%Player has joined your party to fight the forces of evil."
      0x08 - "You are now allied with %Player."
      0x09 - "%Player has left your party."
      0x0a - "%Player no longer allows you to access his corpse."
      0x0b - "%Player no longer allows you to access her corpse."

0x08 - "%Name1 is busy."
0x09 - "You must wait a short time to trade with that player."

0x0a - "%Name1 has items in his box."
   if %Name1 = 0x00, "You have items in your box."

0x0b - <Unknown>
0x0c - <Unknown>
0x0d - "%Name1 is not listening to you."
0x0e - Received on 'Not enough mana' speech.
0x0f - "Realm going down in %Param1 minutes."
0x10 - "You must wait a short time to declare hostility with that player."
0x11 - "%Param1 Stones of Jordan Sold to Merchants"
0x12 - "Diablo Walks the Earth"


BYTE Color:

There are a lot more than this, but I'm not taking a screenshot for all of them.
Image

_________________
[23:04] <~Cthanukah> DM is my khaleesi. || [01:28:49] <~Cthanukah> They put their dicks in butts
DM, the DECEPTION - Lies within a lie within a lie. “Just a second-rate Snarg living in a third-rate Blizzhackers.”
Image Image
Image Image Image Image

Image


Last edited by Dark_Mage- on Mon Apr 07, 2008 7:46 pm, edited 4 times in total.
Top
 Profile  
 Post subject:
PostPosted: Sat Apr 05, 2008 7:55 pm 
 
BHDev
BHDev

Joined: Wed Jun 20, 2007 12:58 pm
Location: Europe
http://forum.valhallalegends.com/index. ... #msg176421

Top
 Profile  
 Post subject:
PostPosted: Sat Apr 05, 2008 11:59 pm 
 
Banned
Banned
User avatar

Joined: Mon May 07, 2007 11:42 am
The top list of that text looks fucking awesome!

Top
 Profile  
 Post subject: Re: [S->C 0x5a] Event Messages
PostPosted: Sun Apr 06, 2008 10:43 am 
 
User
User

Joined: Thu Oct 11, 2007 6:41 pm
Location: Moscow
Dark_Mage- wrote:
0x0e - Blank?

I received this message with param1=param2=0, empty name1,name2, when casting something without enough mana to cast. Not all skills (casting b hammer ot tele generates this message, but holy shield not, for example)

Top
 Profile  
 Post subject: Re: [S->C 0x5a] Event Messages
PostPosted: Sun Apr 06, 2008 10:55 am 
 
BHDev
BHDev

Joined: Wed Jun 20, 2007 12:58 pm
Location: Europe
firk wrote:
I received this message with param1=param2=0, empty name1,name2, when casting something without enough mana to cast. Not all skills (casting b hammer ot tele generates this message, but holy shield not, for example)


Yeah, it does/still means "not enough mana", thats why i linked a post i made long time ago.

Dunno why he edited his post from "0x0e - blank?" to "0x0e - Defunct Beta Message?" tho.
Also, 0x0b/0x0c are still used messages, however I forget what they mean exacly and couldnt find referance to them in some of my old notes -- how ever, I have seen them used.


Ultratech wrote:
The top list of that text looks fucking awesome!

IIRC, its bold white text, with normal black text over it :p

Top
 Profile  
 Post subject:
PostPosted: Sun Apr 06, 2008 11:41 am 
 
Section Leader Gold
Section Leader Gold
User avatar

Joined: Fri Sep 20, 2002 2:38 am
Location: ٩(͡๏̯͡๏)۶0x3CC4E7C0 CHATSUBO
Thanks for 0x0e.

_________________
[23:04] <~Cthanukah> DM is my khaleesi. || [01:28:49] <~Cthanukah> They put their dicks in butts
DM, the DECEPTION - Lies within a lie within a lie. “Just a second-rate Snarg living in a third-rate Blizzhackers.”
Image Image
Image Image Image Image

Image

Top
 Profile  
 Post subject:
PostPosted: Sun Apr 06, 2008 12:52 pm 
 
User
User
User avatar

Joined: Sun Mar 23, 2008 2:51 pm
Location: Finland , Helsinki
Dark_Mage- wrote:
Thanks for 0x0e.


So if I want to show that I joined to the game many times, how do I do it ?

.send add 0?

Top
 Profile  
 Post subject: Re: [S->C 0x5a] Event Messages
PostPosted: Mon Jan 18, 2010 8:52 am 
 
Section Leader
Section Leader

Joined: Fri Jul 05, 2002 8:51 pm
Location: /sbin/
Dark_Mage- wrote:
0x06 - "%Name1 was Slain by %Name2"
   BYTE Param2 = Unit Type of Slayer (0x00 = Player, 0x01 = NPC)
       if Type = Player, %Name2 = Slayer Character Name & DWORD Param1 = Slayer Character Type
       if Type = NPC, DWORD Param1 = Monster Id Code from MPQ (points to string for %Name2)
       if Type = NPC & Monster is Unique, %Name2 = Unique Monster Id


Has anyone been able to pin down the Type = NPC, monster is not unique case? I can't seem to figure out what the Monster Id Code is. I tried looking it up in monstats2.txt, but it didn't match any of the rows, and I tried looking it up using D2LANG_GetLocaleText but that returned " ", and on a whim I tried looking it up as if it were a unit gid, but that failed as well. I've been unable to get a foothold on what this param is.

_________________
D2BS
Programming motherfuckers... DO YOU SPEAK IT?!
I, for one, welcome our new black overlo... I mean, president!
  1. Create signature generator.
  2. ???
  3. Profit!

Top
 Profile  
 Post subject: Re: [S->C 0x5a] Event Messages
PostPosted: Mon Jan 18, 2010 10:31 am 
 
User
User

Joined: Sun Feb 18, 2007 6:31 pm
lord2800 wrote:
Dark_Mage- wrote:
0x06 - "%Name1 was Slain by %Name2"
   BYTE Param2 = Unit Type of Slayer (0x00 = Player, 0x01 = NPC)
       if Type = Player, %Name2 = Slayer Character Name & DWORD Param1 = Slayer Character Type
       if Type = NPC, DWORD Param1 = Monster Id Code from MPQ (points to string for %Name2)
       if Type = NPC & Monster is Unique, %Name2 = Unique Monster Id


Has anyone been able to pin down the Type = NPC, monster is not unique case? I can't seem to figure out what the Monster Id Code is. I tried looking it up in monstats2.txt, but it didn't match any of the rows, and I tried looking it up using D2LANG_GetLocaleText but that returned " ", and on a whim I tried looking it up as if it were a unit gid, but that failed as well. I've been unable to get a foothold on what this param is.


This, I am also looking for.

Top
 Profile  
 Post subject: Re: [S->C 0x5a] Event Messages
PostPosted: Mon Jan 18, 2010 1:23 pm 
 
Moderator
Moderator
User avatar

Joined: Thu Apr 30, 2009 12:31 pm
Location: %scrdir%
LOL, thought that this was common knowledge, else I would have posted all this stuff like a year ago...

Regicide wrote:
lord2800 wrote:
Dark_Mage- wrote:
0x06 - "%Name1 was Slain by %Name2"
   BYTE Param2 = Unit Type of Slayer (0x00 = Player, 0x01 = NPC)
       if Type = Player, %Name2 = Slayer Character Name & DWORD Param1 = Slayer Character Type
       if Type = NPC, DWORD Param1 = Monster Id Code from MPQ (points to string for %Name2)
       if Type = NPC & Monster is Unique, %Name2 = Unique Monster Id


Has anyone been able to pin down the Type = NPC, monster is not unique case? I can't seem to figure out what the Monster Id Code is. I tried looking it up in monstats2.txt, but it didn't match any of the rows, and I tried looking it up using D2LANG_GetLocaleText but that returned " ", and on a whim I tried looking it up as if it were a unit gid, but that failed as well. I've been unable to get a foothold on what this param is.


This, I am also looking for.
but its so simple!(also, monstats2.txt is for gfx info & other misc settings, it would never be used for something like this). if the second name(+0x18) isn't blank it'll use that(for custom/random names) else it uses dwArg(+0x03) as the monsters index(aka pUnit +0x04) and gets the monstats(not monstats2!) record from which it gets the name index, from there, it uses the name index to lookup the string in the tbl files

there is also a third case, for objects, this does a direct objects record lookup using dwArg and gets the name index from the record etc.

_________________
Learn C++, not Crap++ http://tinyurl.com/so-cxxbooks
Hackito Ergo Sum
Cthulhon: No, I am a dancer. I am in charge of popping and locking.

Top
 Profile  
 Post subject: Re: [S->C 0x5a] Event Messages
PostPosted: Mon Jan 18, 2010 2:00 pm 
 
Section Leader
Section Leader

Joined: Fri Jul 05, 2002 8:51 pm
Location: /sbin/
TheUnknownSoldier wrote:
(also, monstats2.txt is for gfx info & other misc settings, it would never be used for something like this).


Bah. monstats.txt is what I meant.

TheUnknownSoldier wrote:
if the second name(+0x18) isn't blank it'll use that(for custom/random names) else it uses dwArg(+0x03) as the monsters index(aka pUnit +0x04) and gets the monstats(not monstats2!) record from which it gets the name index, from there, it uses the name index to lookup the string in the tbl files


Wait. I thought I tried that. I suppose I'll try it again, now that I have the table lookup code refactored so it can be used internally.

[EDIT] Which field will I be looking in? Because for whatever reason I'm just not seeing it. :\

[EDIT 2] Found it. Wow, that was a dumb moment for me.

TheUnknownSoldier wrote:
there is also a third case, for objects, this does a direct objects record lookup using dwArg and gets the name index from the record etc.


How do I tell this case apart from the monster + not unique case?

_________________
D2BS
Programming motherfuckers... DO YOU SPEAK IT?!
I, for one, welcome our new black overlo... I mean, president!
  1. Create signature generator.
  2. ???
  3. Profit!

Top
 Profile  
 Post subject:
PostPosted: Mon Jan 18, 2010 2:56 pm 
 
Moderator
Moderator
User avatar

Joined: Thu Apr 30, 2009 12:31 pm
Location: %scrdir%
nArg(+0x07) is the unit type for packet subtype 6(its the same as pUnit + 0x00)

EDIT: wow I hate how you people define packets....
lets gets some order in :P:
struct D2SysMessagePacket   //sizeof 0x28
{
   BYTE nType;            // +00
   BYTE nSubType;         // +01
   BYTE nColor;         // +02
   DWORD dwArg;         // +03
   BYTE nArgTypes;         // +07 - used as another sub type
   char szText[2][16];      // +08
};

_________________
Learn C++, not Crap++ http://tinyurl.com/so-cxxbooks
Hackito Ergo Sum
Cthulhon: No, I am a dancer. I am in charge of popping and locking.

Top
 Profile  
 Post subject:
PostPosted: Mon Jan 18, 2010 3:07 pm 
 
Section Leader
Section Leader

Joined: Fri Jul 05, 2002 8:51 pm
Location: /sbin/
TheUnknownSoldier wrote:
nArg(+0x07) is the unit type for packet subtype 6(its the same as pUnit + 0x00)


Ah. Makes sense.

Also, I ran into a problem: dwArg is a DWORD, but when I get killed by a Fallen, I don't get 0x13 in dwArg, I get a bunch of other stuff with the high BYTE being 0x13. Looking up dwArg or HIWORD(dwArg) fails, but looking up dwArg >> 24 succeeds. What am I doing wrong?

[EDIT] Converted to your terms. ;)

_________________
D2BS
Programming motherfuckers... DO YOU SPEAK IT?!
I, for one, welcome our new black overlo... I mean, president!
  1. Create signature generator.
  2. ???
  3. Profit!

Top
 Profile  
 Post subject:
PostPosted: Mon Jan 18, 2010 5:45 pm 
 
User
User

Joined: Thu Oct 11, 2007 6:41 pm
Location: Moscow
slain by fallen:

5a 06 04 13 00 00 00 01 [... etc ...]

so: 5A / 06 / 04 / 00000013 / 01

(from my sniffer)

you using wrong sniffer i think or forget about reverse byte order

_________________
----

Top
 Profile  
 Post subject:
PostPosted: Mon Jan 18, 2010 8:43 pm 
 
Section Leader
Section Leader

Joined: Fri Jul 05, 2002 8:51 pm
Location: /sbin/
firk wrote:
you using wrong sniffer i think or forget about reverse byte order


Neither. I'll edit with the garbage my code is getting.

[EDIT] Never mind. It is my code. I needed more parenthesis.

_________________
D2BS
Programming motherfuckers... DO YOU SPEAK IT?!
I, for one, welcome our new black overlo... I mean, president!
  1. Create signature generator.
  2. ???
  3. Profit!

Top
 Profile  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 17 posts ]  Go to page 1, 2  Next

All times are UTC [ DST ]


Who is online

Users browsing this forum: No registered users and 5 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  
cron