summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJedzkie <jedzkie13@rocketmail.com>2017-04-18 17:54:38 +0800
committerHaru <haru@dotalux.com>2017-04-20 21:15:21 +0200
commit60f9a68f90d495323e9e4533c7a1573ca5d86e71 (patch)
tree02380dd2b933ffaa9ccb142ff723aaccc1a45053
parentbf21ba7f5924ba0e4a8cba2d21220ef481c90419 (diff)
downloadhercules-60f9a68f90d495323e9e4533c7a1573ca5d86e71.tar.gz
hercules-60f9a68f90d495323e9e4533c7a1573ca5d86e71.tar.bz2
hercules-60f9a68f90d495323e9e4533c7a1573ca5d86e71.tar.xz
hercules-60f9a68f90d495323e9e4533c7a1573ca5d86e71.zip
Fix showing NO_MSG messages when using below 20101123 clients
-rw-r--r--conf/messages.conf3
-rw-r--r--src/map/clif.h1
-rw-r--r--src/map/pc.c25
3 files changed, 19 insertions, 10 deletions
diff --git a/conf/messages.conf b/conf/messages.conf
index efc8d8a36..3cebc4173 100644
--- a/conf/messages.conf
+++ b/conf/messages.conf
@@ -51,7 +51,8 @@
23: Job level can't go any higher.
24: Job level raised.
25: Job level lowered.
-//26-27 FREE
+26: [%d] seconds left until you can use
+//27 FREE
28: No player found.
29: 1 player found.
30: %d players found.
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)