diff options
author | panikon <panikon@zoho.com> | 2014-04-04 23:44:20 -0300 |
---|---|---|
committer | panikon <panikon@zoho.com> | 2014-04-04 23:44:20 -0300 |
commit | 94ef1ee7bbea5dbdfcc6e96adf87a6262bb3ccdb (patch) | |
tree | 0eb22c142ee1bdec5477d285577e18946594d8b8 /src | |
parent | 694d32a550e8841a6ed6c237880e3d5005e6208d (diff) | |
download | hercules-94ef1ee7bbea5dbdfcc6e96adf87a6262bb3ccdb.tar.gz hercules-94ef1ee7bbea5dbdfcc6e96adf87a6262bb3ccdb.tar.bz2 hercules-94ef1ee7bbea5dbdfcc6e96adf87a6262bb3ccdb.tar.xz hercules-94ef1ee7bbea5dbdfcc6e96adf87a6262bb3ccdb.zip |
Fixed issue: 8131
http://hercules.ws/board/tracker/issue-8131-sc-chat/
-Documented SC_NOCHAT
-Corrected the way that pc_setparam was handling SP_MANNER
-Added documentation on *sc_status regarding SC_NOCHAT, to mute a user via script you should set Manner
Diffstat (limited to 'src')
-rw-r--r-- | src/common/mmo.h | 2 | ||||
-rw-r--r-- | src/map/pc.c | 8 | ||||
-rw-r--r-- | src/map/script.c | 2 | ||||
-rw-r--r-- | src/map/status.c | 5 |
4 files changed, 13 insertions, 4 deletions
diff --git a/src/common/mmo.h b/src/common/mmo.h index cf3933d40..019472acb 100644 --- a/src/common/mmo.h +++ b/src/common/mmo.h @@ -392,7 +392,7 @@ struct mmo_charstatus { unsigned int status_point,skill_point; int hp,max_hp,sp,max_sp; unsigned int option; - short manner; + short manner; // Defines how many minutes a char will be muted, each negative point is equivalent to a minute. unsigned char karma; short hair,hair_color,clothes_color; int party_id,guild_id,pet_id,hom_id,mer_id,ele_id; diff --git a/src/map/pc.c b/src/map/pc.c index b6964fc6e..42b79ed92 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -7466,7 +7466,13 @@ int pc_setparam(struct map_session_data *sd,int type,int val) break; case SP_MANNER: sd->status.manner = val; - break; + if( val < 0 ) + sc_start(NULL, &sd->bl, SC_NOCHAT, 100, 0, 0); + else { + status_change_end(&sd->bl, SC_NOCHAT, INVALID_TIMER); + clif->manner_message(sd, 5); + } + return 1; // status_change_start/status_change_end already sends packets warning the client case SP_FAME: sd->status.fame = val; break; diff --git a/src/map/script.c b/src/map/script.c index 296008536..312e40696 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -8687,7 +8687,7 @@ BUILDIN(savepoint) { sd = script->rid2sd(st); if( sd == NULL ) - return true;// no player attached, report source + return false;// no player attached, report source str = script_getstr(st,2); x = script_getnum(st,3); diff --git a/src/map/status.c b/src/map/status.c index fdbafd6b0..460af3179 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -7755,7 +7755,10 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t unit->stop_attack(bl); break; case SC_NOCHAT: - // [GodLesZ] FIXME: is this correct? a hardcoded interval of 60sec? what about configuration ?_? + // A hardcoded interval of 60 seconds is expected, as the time that SC_NOCHAT uses is defined by + // mmocharstatus.manner, each negative point results in 1 minute with this status activated + // This is done this way because the message that the client displays is hardcoded, and only + // shows how many minutes are remaining. [Panikon] tick = 60000; val1 = battle_config.manner_system; //Mute filters. if (sd) |