diff options
author | shennetsind <ind@henn.et> | 2013-11-18 23:24:17 -0200 |
---|---|---|
committer | shennetsind <ind@henn.et> | 2013-11-18 23:24:17 -0200 |
commit | dd2cd7c0f1c1f675ece09e95d0e5f910e494f092 (patch) | |
tree | f6ca796903bfaade23b75057f27d36749bb95639 | |
parent | e4badec47d849fb597f2dcec05f50862a78105d6 (diff) | |
download | hercules-dd2cd7c0f1c1f675ece09e95d0e5f910e494f092.tar.gz hercules-dd2cd7c0f1c1f675ece09e95d0e5f910e494f092.tar.bz2 hercules-dd2cd7c0f1c1f675ece09e95d0e5f910e494f092.tar.xz hercules-dd2cd7c0f1c1f675ece09e95d0e5f910e494f092.zip |
Fixed the erroneously redirected GM Full Strip Packet
Implemented in 2009-10-27, the packet was being redirected to a account name req packet, while it was a entirely different feature. this fixes the (GM-Suit) 'right click' option 'remove all equipment'.
Special Thanks to Yommy.
Signed-off-by: shennetsind <ind@henn.et>
-rw-r--r-- | src/map/clif.c | 17 | ||||
-rw-r--r-- | src/map/clif.h | 1 | ||||
-rw-r--r-- | src/map/packets.h | 2 |
3 files changed, 19 insertions, 1 deletions
diff --git a/src/map/clif.c b/src/map/clif.c index c509da7dd..32f29b73c 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -17966,6 +17966,22 @@ void clif_notify_bounditem(struct map_session_data *sd, unsigned short index) { clif->send(&p,sizeof(p), &sd->bl, SELF); } + +/* (GM) right click -> 'remove all equipment' */ +void clif_parse_GMFullStrip(int fd, struct map_session_data *sd) { + struct map_session_data *tsd = map->id2sd(RFIFOL(fd,2)); + int i; + + /* TODO maybe this could be a new permission? using gm level in the meantime */ + if( !tsd || pc->get_group_level(tsd) >= pc->get_group_level(sd) ) + return; + + for( i = 0; i < EQI_MAX; i++ ) { + if( tsd->equip_index[ i ] >= 0 ) + pc->unequipitem( tsd , tsd->equip_index[ i ] , 2 ); + } +} + /* */ unsigned short clif_decrypt_cmd( int cmd, struct map_session_data *sd ) { if( sd ) { @@ -18914,6 +18930,7 @@ void clif_defaults(void) { clif->pGMRc = clif_parse_GMRc; clif->pGMReqAccountName = clif_parse_GMReqAccountName; clif->pGMChangeMapType = clif_parse_GMChangeMapType; + clif->pGMFullStrip = clif_parse_GMFullStrip; clif->pPMIgnore = clif_parse_PMIgnore; clif->pPMIgnoreAll = clif_parse_PMIgnoreAll; clif->pPMIgnoreList = clif_parse_PMIgnoreList; diff --git a/src/map/clif.h b/src/map/clif.h index 043f7dd3a..88f3383d1 100644 --- a/src/map/clif.h +++ b/src/map/clif.h @@ -1162,6 +1162,7 @@ struct clif_interface { void (*pGMRc) (int fd, struct map_session_data* sd); void (*pGMReqAccountName) (int fd, struct map_session_data *sd); void (*pGMChangeMapType) (int fd, struct map_session_data *sd); + void (*pGMFullStrip) (int fd, struct map_session_data *sd); void (*pPMIgnore) (int fd, struct map_session_data* sd); void (*pPMIgnoreAll) (int fd, struct map_session_data *sd); void (*pPMIgnoreList) (int fd,struct map_session_data *sd); diff --git a/src/map/packets.h b/src/map/packets.h index 55a85e182..08c73fdb0 100644 --- a/src/map/packets.h +++ b/src/map/packets.h @@ -1613,7 +1613,7 @@ packet(0x020d,-1); //2009-10-27aRagexeRE #if PACKETVER >= 20091027 - packet(0x07f5,6,clif->pGMReqAccountName,2); + packet(0x07f5,6,clif->pGMFullStrip,2); packet(0x07f6,14); #endif |