diff options
-rw-r--r-- | Changelog.txt | 3 | ||||
-rw-r--r-- | src/map/atcommand.c | 25 | ||||
-rw-r--r-- | src/map/clif.c | 2 |
3 files changed, 22 insertions, 8 deletions
diff --git a/Changelog.txt b/Changelog.txt index a299675fd..fb7eb0905 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,9 +1,10 @@ Date Added 11/20 + * Prevent use of emotion packet to display red mute emote. [Valaris] * Initialized "day" variable in npc.c. [Valaris] * Added @whozeny. Shows list of top 50 online players and their zeny sorted from highest to lowest. [Valaris] * Added @happyhappyjoyjoy. Makes all players on server do a random emote. [Valaris] - * Removed -funroll-loops from compile. (Do not re-add!) [Valaris] + * Removed -funroll-loops from compile, thanks to kashy for pointing out the problems caused by this. (Do not re-add!) [Valaris] * Skill updates [celest] * Added check for max vending_max_value when reading config [kobra_k88] * Skill updates [celest] diff --git a/src/map/atcommand.c b/src/map/atcommand.c index b93fc3c34..2739a5cf8 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -565,6 +565,18 @@ char * job_name(int class) { return "Unknown Job"; } +// compare function for sorting high to lowest +int hightolow_compare (const void * a, const void * b) +{ + return ( *(int*)b - *(int*)a ); +} + +// compare function for sorting lowest to highest +int lowtohigh_compare (const void * a, const void * b) +{ + return ( *(int*)a - *(int*)b ); +} + //----------------------------------------------------------- // Return the message string of the specified number by [Yor] //----------------------------------------------------------- @@ -1600,11 +1612,6 @@ int atcommand_whogm( return 0; } -int compare (const void * a, const void * b) -{ - return ( *(int*)b - *(int*)a ); -} - int atcommand_whozeny( const int fd, struct map_session_data* sd, const char* command, const char* message) @@ -1639,7 +1646,7 @@ int atcommand_whozeny( } } - qsort(zeny, count, sizeof(int), compare); + qsort(zeny, count, sizeof(int), hightolow_compare); for (c = 0; c < count && c < 50; c++) { if(!zeny[c]) continue; @@ -1667,6 +1674,8 @@ int atcommand_whozeny( return 0; } + +// cause random emote on all online players [Valaris] int atcommand_happyhappyjoyjoy( const int fd, struct map_session_data* sd, const char* command, const char* message) @@ -1677,7 +1686,9 @@ int atcommand_happyhappyjoyjoy( for (i = 0; i < fd_max; i++) { if (session[i] && (pl_sd = session[i]->session_data) && pl_sd->state.auth) { - e=rand()%40; + e=rand()%40; + if(e==34) + e = 0; clif_emotion(&pl_sd->bl,e); } } diff --git a/src/map/clif.c b/src/map/clif.c index aa74f4e87..b0b0546aa 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -7774,6 +7774,8 @@ void clif_parse_Emotion(int fd, struct map_session_data *sd) { if (battle_config.basic_skill_check == 0 || pc_checkskill(sd, NV_BASIC) >= 2) { WBUFW(buf,0) = 0xc0; WBUFL(buf,2) = sd->bl.id; + if(RFIFOB(fd,2)==34) // prevent use of the mute emote [Valaris] + return; WBUFB(buf,6) = RFIFOB(fd,2); clif_send(buf, packet_len_table[0xc0], &sd->bl, AREA); } else |