Browse Source

*Fix bugreport http://rathena.org/board/tracker/issue-8337-all-hidecloaking-skills-in-pvpduelwoe/

exneval 11 years ago
parent
commit
43c21ad667
4 changed files with 13 additions and 5 deletions
  1. 9 4
      conf/battle/client.conf
  2. 1 0
      src/map/battle.c
  3. 1 0
      src/map/battle.h
  4. 2 1
      src/map/clif.c

+ 9 - 4
conf/battle/client.conf

@@ -139,7 +139,7 @@ motd_type: 0
 display_version: yes
 
 // When affected with the "Hallucination" status effect, send the effect to client? (Note 1)
-// Note: Set to 'no' if the client lags due to the "Wavy" screen effect.
+// NOTE: Set to 'no' if the client lags due to the "Wavy" screen effect.
 display_hallucination: yes
 
 // Set this to 1 if your client supports status change timers and you want to use them
@@ -155,9 +155,14 @@ client_reshuffle_dice: yes
 // NOTE: Enabling this option degrades performance.
 client_sort_storage: no
 
-// Do we allow to change guilde emblem during woe_time ?
+// Do we allow to change guilde emblem during woe_time?
 emblem_woe_change: yes
 
-// How many transparent pixel can be found in emblem before detected as invalid ?
-// Note 2
+// How many transparent pixel can be found in emblem before detected as invalid ? (Note 2)
 emblem_transparency_limit: 80
+
+// Update enemy position while in invisible state? (Note 1)
+// NOTE: Set to 'no' will make client won't update enemy position unless the players have "Intravision" effect.
+//       So that will help client handling WPE - Maya Purple Hack stuff.
+//       But it will screw 'the game animation display' while players in invisible state.
+update_enemy_position: yes

+ 1 - 0
src/map/battle.c

@@ -7262,6 +7262,7 @@ static const struct _battle_data {
 	{ "emblem_woe_change",                  &battle_config.emblem_woe_change,               0,      0,      1,              },
 	{ "emblem_transparency_limit",          &battle_config.emblem_transparency_limit,      80,      0,      100,            },
 	{ "discount_item_point_shop",			&battle_config.discount_item_point_shop,		0,		0,		3,				},
+	{ "update_enemy_position",				&battle_config.update_enemy_position,			0,		0,		1,				},
 };
 #ifndef STATS_OPT_OUT
 /**

+ 1 - 0
src/map/battle.h

@@ -513,6 +513,7 @@ extern struct Battle_Config
 	int emblem_woe_change;
 	int emblem_transparency_limit;
 	int discount_item_point_shop;
+	int update_enemy_position;
 } battle_config;
 
 void do_init_battle(void);

+ 2 - 1
src/map/clif.c

@@ -326,7 +326,8 @@ static int clif_send_sub(struct block_list *bl, va_list ap)
 		return 0;
 
 	/* unless visible, hold it here */
-	if (clif_ally_only && !sd->special_state.intravision && battle_check_target(src_bl,&sd->bl,BCT_ENEMY) > 0)
+	if (!battle_config.update_enemy_position && clif_ally_only && !sd->special_state.intravision &&
+		!sd->sc.data[SC_INTRAVISION] && battle_check_target(src_bl,&sd->bl,BCT_ENEMY) > 0)
 		return 0;
 
 	WFIFOHEAD(fd, len);