فهرست منبع

* Added allow_atcommand_when_mute
* Temporarily leaving the changing guild emblems requiring Glory of Guild feature only for TXT until the SQL char-server supports guild skills fully
* Modified battle_range again to check if src's type is a player first
* Modified skill_nocast_db

git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@459 54d463be-8e91-2dee-dedb-b68131a5f0ec

celest 20 سال پیش
والد
کامیت
682f1fb98e
8فایلهای تغییر یافته به همراه42 افزوده شده و 17 حذف شده
  1. 5 0
      Changelog.txt
  2. 3 0
      conf-tmpl/battle_athena.conf
  3. 3 0
      db/Changelog.txt
  4. 8 8
      db/skill_nocast_db.txt
  5. 5 0
      src/map/atcommand.c
  6. 5 3
      src/map/battle.c
  7. 2 1
      src/map/battle.h
  8. 11 5
      src/map/guild.c

+ 5 - 0
Changelog.txt

@@ -1,5 +1,10 @@
 Date	Added
 12/5
+        * Added allow_atcommand_when_mute - Change this to set whether muted players
+          can use gm commands [celest]
+        * Temporarily leaving the changing guild emblems requiring Glory of Guild 
+          feature only for TXT until the SQL char-server supports guild skills fully[celest]
+        * Modified battle_range again to check if src's type is a player first [celest]
         * Corrected typo in battle_range [celest]
 	* Fixed a crash where party chats can be sent to a 
 	  partially disconnected player [MouseJstr]

+ 3 - 0
conf-tmpl/battle_athena.conf

@@ -723,6 +723,9 @@ packet_ver_flag: 511
 // Allow GMs to mute players or not?
 muting_players: no
 
+// Allow GM commands to be used when muted?
+allow_atcommand_when_mute: yes
+
 // Mail system - Only function in sql version
 mail_system: no
 

+ 3 - 0
db/Changelog.txt

@@ -5,6 +5,9 @@
 	Ayathoya items == Added but no effect ( all are "ect" itens)
 	Skill databases == celest working on them i believe.
 
+12/5    * Edited skill_nocast_db - the skills should be useable outside GvG maps even
+          if woe is on [celest]
+
 12/3    * corrected Spider Web's maximum level [celest]
         * Removed Soul Drain from Professor's skill tree [celest]
         * Updated Stunner's job - Acolytes and monks should be able to use it too! [celest]

+ 8 - 8
db/skill_nocast_db.txt

@@ -7,11 +7,11 @@
 // 8 - Cannot be used when WoE is on
 // 16 - Cannot be used in PK Mode maps
 // Example: 8,6 = Endure cannot be used in PvP and GvG maps (2+4)
-8,12
-26,12
-27,12
-87,12
-150,12
-214,12
-361,12
-362,12
+8,4	//SM_ENDURE
+26,4	//AL_TELEPORT
+27,4	//AL_WARP
+87,4	//WZ_ICEWALL
+150,4	//TF_BACKSLIDING
+214,4	//RG_RAID
+361,4	//HP_ASSUMPTIO
+362,4	//HP_BASILICA

+ 5 - 0
src/map/atcommand.c

@@ -670,6 +670,11 @@ is_atcommand(const int fd, struct map_session_data* sd, const char* message, int
 
 	nullpo_retr(AtCommand_None, sd);
 
+	if (!battle_config.allow_atcommand_when_mute &&
+		sd->sc_count && sd->sc_data[SC_NOCHAT].timer != -1) {
+		return AtCommand_Unknown;
+	}
+
 	if (!message || !*message)
 		return AtCommand_None;
 

+ 5 - 3
src/map/battle.c

@@ -4962,14 +4962,13 @@ int battle_check_range(struct block_list *src,struct block_list *bl,int range)
 
 	if( range>0 && range < arange )	{// 遠すぎる
 // be lenient if the skill was cast before we have moved to the correct position [Celest]
-		if (src->type != BL_PC)
-			return 0;
-		else if (src->type == BL_PC) {
+		if (src->type == BL_PC) {
 			struct map_session_data *sd;
 			nullpo_retr(0, (sd=(struct map_session_data *)bl));
 			if (sd->walktimer != -1 && !((arange-=battle_config.skill_range_leniency)<=range))
 				return 0;
 		}
+		else return 0;
 	}
 
 	if( arange<2 )	// 同じマスか隣接
@@ -5224,6 +5223,7 @@ static const struct {
 	{ "night_darkness_level",   &battle_config.night_darkness_level}, // [celest]
 	{ "skill_range_leniency",   &battle_config.skill_range_leniency}, // [celest]
 	{ "motd_type",              &battle_config.motd_type}, // [celest]
+	{ "allow_atcommand_when_mute",			&battle_config.allow_atcommand_when_mute}, // [celest]
 
 //SQL-only options start
 #ifndef TXT_ONLY 
@@ -5455,6 +5455,8 @@ void battle_set_defaults() {
 	battle_config.night_darkness_level = 9;
 	battle_config.skill_range_leniency = 1;
 	battle_config.motd_type = 0;
+	battle_config.allow_atcommand_when_mute = 0;
+
 
 	battle_config.castrate_dex_scale = 150;
 

+ 2 - 1
src/map/battle.h

@@ -323,7 +323,7 @@ extern struct Battle_Config {
 	int any_warp_GM_min_level; // added by [Yor]
 	int packet_ver_flag; // added by [Yor]
 	int muting_players; // added by [Apple]
-
+	
 	int min_hair_style; // added by [MouseJstr]
 	int max_hair_style; // added by [MouseJstr]
 	int min_hair_color; // added by [MouseJstr]
@@ -342,6 +342,7 @@ extern struct Battle_Config {
 	int night_darkness_level; // [celest]
 	int skill_range_leniency; // [celest]
 	int motd_type; // [celest]
+	int allow_atcommand_when_mute; // [celest]
 
 #ifndef TXT_ONLY /* SQL-only options */
 	int mail_system; // [Valaris]

+ 11 - 5
src/map/guild.c

@@ -874,11 +874,17 @@ int guild_change_emblem(struct map_session_data *sd,int len,const char *data)
 
 	nullpo_retr(0, sd);
 
-	if ((g = guild_search(sd->status.guild_id)) && guild_checkskill(g, GD_GLORYGUILD)>0)
-		return intif_guild_emblem(sd->status.guild_id,len,data);
-
-	clif_skill_fail(sd,GD_GLORYGUILD,0,0);
-	return 0;	
+	/* Temporarily only for TXT until there's proper char server support [Celest] */
+	#ifdef TXT_ONLY
+		if ((g = guild_search(sd->status.guild_id)) && guild_checkskill(g, GD_GLORYGUILD)>0)
+			return intif_guild_emblem(sd->status.guild_id,len,data);
+
+		clif_skill_fail(sd,GD_GLORYGUILD,0,0);
+	#else
+		if ((g = guild_search(sd->status.guild_id)))
+			return intif_guild_emblem(sd->status.guild_id,len,data);
+	#endif		
+	return 0;
 }
 // ギルドエンブレム変更通知
 int guild_emblem_changed(int len,int guild_id,int emblem_id,const char *data)