Browse Source

* Added support for tracking state of client command /effect through packet 0x21d (CZ_LESSEFFECT).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14761 54d463be-8e91-2dee-dedb-b68131a5f0ec
ai4rei 14 years ago
parent
commit
2971fb3e9a
4 changed files with 25 additions and 1 deletions
  1. 2 0
      Changelog-Trunk.txt
  2. 1 1
      db/packet_db.txt
  3. 21 0
      src/map/clif.c
  4. 1 0
      src/map/pc.h

+ 2 - 0
Changelog-Trunk.txt

@@ -1,5 +1,7 @@
 Date	Added
 
+2011/03/27
+	* Added support for tracking state of client command /effect through packet 0x21d (CZ_LESSEFFECT). [Ai4rei]
 2011/03/25
 	* Fixed battlegrounds chat packet 0x2dc (ZC_BATTLEFIELD_CHAT) being sent with the battleground id rather than the account id of the talking player (since r13593). [Ai4rei]
 2011/03/22

+ 1 - 1
db/packet_db.txt

@@ -596,7 +596,7 @@ packet_ver: 13
 0x021c,10
 
 //2004-11-15aSakexe
-0x021d,6
+0x021d,6,lesseffect,2
 
 //2004-11-29aSakexe
 packet_ver: 14

+ 21 - 0
src/map/clif.c

@@ -14046,6 +14046,26 @@ void clif_showdigit(struct map_session_data* sd, unsigned char type, int value)
 }
 
 
+/// Notification of the state of client command /effect (CZ_LESSEFFECT)
+/// 021d <state>.L
+/// state:
+///     0 = Full effects
+///     1 = Reduced effects
+///
+/// @note   The state is used on Aegis for sending skill unit packet
+///         0x11f (ZC_SKILL_ENTRY) instead of 0x1c9 (ZC_SKILL_ENTRY2)
+///         whenever possible. Due to the way the decision check is
+///         constructed, this state tracking was rendered useless,
+///         as the only skill unit, that is sent with 0x1c9 is
+///         Graffiti.
+void clif_parse_LessEffect(int fd, struct map_session_data* sd)
+{
+	int isLess = RFIFOL(fd,packet_db[sd->packet_ver][RFIFOW(fd,0)].pos[0]);
+
+	sd->state.lesseffect = ( isLess != 0 );
+}
+
+
 /// Buying Store System
 ///
 
@@ -15142,6 +15162,7 @@ static int packetdb_readdb(void)
 		{clif_parse_PartyBookingDeleteReq,"bookingdelreq"},
 #endif
 		{clif_parse_PVPInfo,"pvpinfo"},
+		{clif_parse_LessEffect,"lesseffect"},
 		// Buying Store
 		{clif_parse_ReqOpenBuyingStore,"reqopenbuyingstore"},
 		{clif_parse_ReqCloseBuyingStore,"reqclosebuyingstore"},

+ 1 - 0
src/map/pc.h

@@ -130,6 +130,7 @@ struct map_session_data {
 		unsigned ignoreAll : 1;
 		unsigned debug_remove_map : 1; // temporary state to track double remove_map's [FlavioJS]
 		unsigned buyingstore : 1;
+		unsigned lesseffect : 1;
 		unsigned short autoloot;
 		unsigned short autolootid; // [Zephyrus]
 		unsigned noks : 3; // [Zeph Kill Steal Protection]