Ok sir, I will try this
How to implement this code sir?
Index: conf/battle/client.conf
===================================================================
--- conf/battle/client.conf (revision 14729)
+++ conf/battle/client.conf (working copy)
@@ -120,6 +120,12 @@
// Clients from 2009 onward support this
display_status_timers: yes
+// Duration of client's self mute in minutes.
+// Note: Do not enable this, if you enabled commands for players,
+// because the client sees multiple commands in succession as spam.
+// Default: 0 (means disabled)
+client_accept_chatdori: 0
+
// Randomizes the dice emoticon server-side, to prevent clients from forging
// packets for the desired number. (Note 1)
client_reshuffle_dice: no
Index: src/map/battle.c
===================================================================
--- src/map/battle.c (revision 14729)
+++ src/map/battle.c (working copy)
@@ -4003,6 +4003,7 @@
{ "eq_single_target_reflectable", &battle_config.eq_single_target_reflectable, 1, 0, 1, },
{ "invincible.nodamage", &battle_config.invincible_nodamage, 0, 0, 1, },
{ "mob_slave_keep_target", &battle_config.mob_slave_keep_target, 0, 0, 1, },
+ { "client_accept_chatdori", &battle_config.client_accept_chatdori, 0, 0, INT_MAX },
{ "autospell_check_range", &battle_config.autospell_check_range, 0, 0, 1, },
{ "client_reshuffle_dice", &battle_config.client_reshuffle_dice, 0, 0, 1, },
{ "client_sort_storage", &battle_config.client_sort_storage, 0, 0, 1, },
Index: src/map/battle.h
===================================================================
--- src/map/battle.h (revision 14729)
+++ src/map/battle.h (working copy)
@@ -477,6 +477,7 @@
int eq_single_target_reflectable;
int invincible_nodamage;
int mob_slave_keep_target;
+ int client_accept_chatdori;
int autospell_check_range; //Enable range check for autospell bonus. [L0ne_W0lf]
int client_reshuffle_dice; // Reshuffle /dice
int client_sort_storage;
Index: src/map/clif.c
===================================================================
--- src/map/clif.c (revision 14729)
+++ src/map/clif.c (working copy)
@@ -11545,16 +11545,27 @@
if( type == 0 )
value = 0 - value;
- //If type is 2 and the ids don't match, this is a crafted hacked packet!
- //Disabled because clients keep self-muting when you give players public @ commands... [Skotlex]
- if (type == 2 /* && (pc_isGM(sd) > 0 || sd->bl.id != id)*/)
- return;
+ if( type == 2 )
+ {
+ if( !battle_config.client_accept_chatdori )
+ {
+ return;
+ }
+ if( pc_isGM(sd) > 0 || sd->bl.id != id )
+ {//If type is 2 and the ids don't match, this is a crafted hacked packet!
+ return;
+ }
+ value = battle_config.client_accept_chatdori;
+ dstsd = sd;
+ }
+ else
+ {
+ dstsd = map_id2sd(id);
+ if( dstsd == NULL )
+ return;
+ }
- dstsd = map_id2sd(id);
- if( dstsd == NULL )
- return;
-
- if( (level = pc_isGM(sd)) > pc_isGM(dstsd) && level >= get_atcommand_level(atcommand_mute) )
+ if( type == 2 || ( (level = pc_isGM(sd)) > pc_isGM(dstsd) && level >= get_atcommand_level(atcommand_mute) ) )
{
clif_manner_message(sd, 0);
clif_manner_message(dstsd, 5);