diff options
author | Jedzkie <jedzkie13@rocketmail.com> | 2017-04-18 17:54:38 +0800 |
---|---|---|
committer | Haru <haru@dotalux.com> | 2017-04-20 21:15:21 +0200 |
commit | 60f9a68f90d495323e9e4533c7a1573ca5d86e71 (patch) | |
tree | 02380dd2b933ffaa9ccb142ff723aaccc1a45053 /src | |
parent | bf21ba7f5924ba0e4a8cba2d21220ef481c90419 (diff) | |
download | hercules-60f9a68f90d495323e9e4533c7a1573ca5d86e71.tar.gz hercules-60f9a68f90d495323e9e4533c7a1573ca5d86e71.tar.bz2 hercules-60f9a68f90d495323e9e4533c7a1573ca5d86e71.tar.xz hercules-60f9a68f90d495323e9e4533c7a1573ca5d86e71.zip |
Fix showing NO_MSG messages when using below 20101123 clients
Diffstat (limited to 'src')
-rw-r--r-- | src/map/clif.h | 1 | ||||
-rw-r--r-- | src/map/pc.c | 25 |
2 files changed, 17 insertions, 9 deletions
diff --git a/src/map/clif.h b/src/map/clif.h index e16655c1a..6b5fb8dca 100644 --- a/src/map/clif.h +++ b/src/map/clif.h @@ -69,6 +69,7 @@ struct view_data; #define COLOR_RED 0xff0000U #define COLOR_GREEN 0x00ff00U #define COLOR_WHITE 0xffffffU +#define COLOR_YELLOW 0xffff00U #define COLOR_DEFAULT COLOR_GREEN /** diff --git a/src/map/pc.c b/src/map/pc.c index 991018012..b4985dd5f 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -5063,15 +5063,22 @@ int pc_useitem(struct map_session_data *sd,int n) { if( sd->inventory_data[n]->flag.delay_consume && ( sd->ud.skilltimer != INVALID_TIMER /*|| !status->check_skilluse(&sd->bl, &sd->bl, ALL_RESURRECTION, 0)*/ ) ) return 0; - if( sd->inventory_data[n]->delay > 0 ) { - ARR_FIND(0, MAX_ITEMDELAYS, i, sd->item_delay[i].nameid == nameid ); - if( i == MAX_ITEMDELAYS ) /* item not found. try first empty now */ - ARR_FIND(0, MAX_ITEMDELAYS, i, !sd->item_delay[i].nameid ); - if( i < MAX_ITEMDELAYS ) { - if( sd->item_delay[i].nameid ) {// found - if( DIFF_TICK(sd->item_delay[i].tick, tick) > 0 ) { - int e_tick = (int)(DIFF_TICK(sd->item_delay[i].tick, tick)/1000); - clif->msgtable_num(sd, MSG_SECONDS_UNTIL_USE, e_tick + 1); // [%d] seconds left until you can use + if (sd->inventory_data[n]->delay > 0) { + ARR_FIND(0, MAX_ITEMDELAYS, i, sd->item_delay[i].nameid == nameid); + if (i == MAX_ITEMDELAYS) /* item not found. try first empty now */ + ARR_FIND(0, MAX_ITEMDELAYS, i, sd->item_delay[i].nameid == 0); + if (i < MAX_ITEMDELAYS) { + if (sd->item_delay[i].nameid != 0) {// found + if (DIFF_TICK(sd->item_delay[i].tick, tick) > 0) { + int delay_tick = (int)(DIFF_TICK(sd->item_delay[i].tick, tick) / 1000); +#if PACKETVER >= 20101123 + clif->msgtable_num(sd, MSG_SECONDS_UNTIL_USE, delay_tick + 1); // [%d] seconds left until you can use +#else + char delay_msg[100]; + clif->msgtable_num(sd, MSG_SECONDS_UNTIL_USE, delay_tick + 1); // [%d] seconds left until you can use + sprintf(delay_msg, msg_sd(sd, 26), delay_tick + 1); + clif->messagecolor_self(sd->fd, COLOR_YELLOW, delay_msg); +#endif return 0; // Delay has not expired yet } } else {// not yet used item (all slots are initially empty) |