diff options
-rw-r--r-- | Changelog-Trunk.txt | 2 | ||||
-rw-r--r-- | db/packet_db.txt | 2 | ||||
-rw-r--r-- | src/map/clif.c | 21 | ||||
-rw-r--r-- | src/map/pc.h | 1 |
4 files changed, 25 insertions, 1 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 6be9bb996..8f115218d 100644 --- a/Changelog-Trunk.txt +++ b/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 diff --git a/db/packet_db.txt b/db/packet_db.txt index 8481e23cc..f1f1af53c 100644 --- a/db/packet_db.txt +++ b/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 diff --git a/src/map/clif.c b/src/map/clif.c index eed800534..1233c41af 100644 --- a/src/map/clif.c +++ b/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"}, diff --git a/src/map/pc.h b/src/map/pc.h index b9ccf3e88..4b9765d7f 100644 --- a/src/map/pc.h +++ b/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] |