Explorar o código

- Added a new setting 'guild_skill_relog_delay' to activate the guild skills delay on Guild Master relog.
- The official setting is 'No', but this is an option for game masters.

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

zephyrus %!s(int64=17) %!d(string=hai) anos
pai
achega
bec0f75b57
Modificáronse 6 ficheiros con 12 adicións e 6 borrados
  1. 2 0
      Changelog-Trunk.txt
  2. 4 0
      conf/battle/guild.conf
  3. 1 0
      src/map/battle.c
  4. 1 0
      src/map/battle.h
  5. 2 4
      src/map/guild.c
  6. 2 2
      src/map/pc.c

+ 2 - 0
Changelog-Trunk.txt

@@ -22,6 +22,8 @@ IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 	- small correction to the help text of --with-mysql and --with-pcre
 	- added the -Wno-switch compiler option to suppress the 
 	  "enumeration value '%s' not handled in switch" warnings
+	* Added a new setting 'guild_skill_relog_delay' to activate the guild skills delay
+	  on Guild Master relog. [Zephyrus]
 2007/11/07
 	* Some updates on the mail system packets [Zephyrus]
 	- Corrected the mail database structure on main.sql

+ 4 - 0
conf/battle/guild.conf

@@ -28,6 +28,10 @@ guild_exp_limit: 50
 // Maximum castles one guild can own (0 = unlimited)
 guild_max_castles: 0
 
+// Activate guild skills delay by relog? (Note 1)
+// Oficial setting is "no" but this prevent the abuse of skiping the 5 minutes delay on guild master relog.
+guild_skill_relog_delay: no
+
 // Damage adjustments for WOE battles against defending Guild monsters (Note 2)
 castle_defense_rate: 100
 

+ 1 - 0
src/map/battle.c

@@ -3370,6 +3370,7 @@ static const struct _battle_data {
 	{ "chase_range_rate",                   &battle_config.chase_range_rate,                100,    0,      INT_MAX,        },
 	{ "gtb_sc_immunity",                    &battle_config.gtb_sc_immunity,                 50,     0,      INT_MAX,        },
 	{ "guild_max_castles",                  &battle_config.guild_max_castles,               0,      0,      INT_MAX,        },
+	{ "guild_skill_relog_delay",            &battle_config.guild_skill_relog_delay          0,      0,      1,              },
 	{ "emergency_call",                     &battle_config.emergency_call,                  11,     0,      31,             },
 	{ "atcommand_gm_only",                  &battle_config.atc_gmonly,                      0,      0,      1,              },
 	{ "atcommand_spawn_quantity_limit",     &battle_config.atc_spawn_quantity_limit,        100,    0,      INT_MAX,        },

+ 1 - 0
src/map/battle.h

@@ -173,6 +173,7 @@ extern struct Battle_Config
 	int guild_emperium_check;
 	int guild_exp_limit;
 	int guild_max_castles;
+	int guild_skill_relog_delay;
 	int emergency_call;
 	int guild_aura;
 	int pc_invincible_time;

+ 2 - 4
src/map/guild.c

@@ -553,10 +553,8 @@ int guild_recv_info(struct guild *sg)
 		guild_check_member(sg);
 		if ((sd = map_nick2sd(sg->master)) != NULL)
 		{
-			//If the guild master is online the first time the guild_info is received, that means he was the first to join,
-			//and as such, his guild skills should be blocked to avoid login/logout abuse [Skotlex]
-			//(optionally)
-			//guild_block_skill(sd, 300000);
+			if( battle_config.guild_skill_relog_delay )
+				guild_block_skill(sd, 300000);
 
 			//Also set the guild master flag.
 			sd->state.gmaster_flag = g;

+ 2 - 2
src/map/pc.c

@@ -885,8 +885,8 @@ int pc_reg_received(struct map_session_data *sd)
 	{
 		// set the Guild Master flag
 		sd->state.gmaster_flag = g;
-		// (optionally) block Guild Skills to prevent logout/login reuse
-		//guild_block_skill(sd, 300000);
+		if( battle_config.guild_skill_relog_delay )
+			guild_block_skill(sd, 300000);
 	}
 
 	status_calc_pc(sd,1);