From dd2cd7c0f1c1f675ece09e95d0e5f910e494f092 Mon Sep 17 00:00:00 2001 From: shennetsind Date: Mon, 18 Nov 2013 23:24:17 -0200 Subject: 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 --- src/map/clif.c | 17 +++++++++++++++++ src/map/clif.h | 1 + src/map/packets.h | 2 +- 3 files changed, 19 insertions(+), 1 deletion(-) 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 -- cgit v1.2.3-60-g2f50