Explorar o código

Follow up r16669 updated the new monster hp to its official behavior.
Follow up r16661 added missing configuration for variable cast time reduction through stats.

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

rud0lp20 %!s(int64=12) %!d(string=hai) anos
pai
achega
5896647207
Modificáronse 4 ficheiros con 20 adicións e 3 borrados
  1. 1 1
      conf/battle/items.conf
  2. 3 0
      conf/battle/skill.conf
  3. 8 0
      src/map/clif.c
  4. 8 2
      src/map/mob.c

+ 1 - 1
conf/battle/items.conf

@@ -34,7 +34,7 @@ potion_produce_rate: 100
 // 0x01: Produced Weapons
 // 0x02: Produced Potions
 // 0x04: Produced Arrows
-// 0x08: Produced Holy Water
+// 0x08: Produced Holy Water/Ancilla
 // 0x10: Produced Deadly Potions
 // 0x80: Other produced items.
 produce_item_name_input: 0x03

+ 3 - 0
conf/battle/skill.conf

@@ -40,6 +40,9 @@ no_skill_delay: 2
 // At what dex does the cast time become zero (instacast)?
 castrate_dex_scale: 150
 
+// How much (dex*2+int) does variable cast turns zero?
+vcast_stat_scale: 530
+
 // What level of leniency should the skill system give for skills when
 // accounting attack motion (ASPD) for casting skills (Note 2, between 0 and 100)
 //

+ 8 - 0
src/map/clif.c

@@ -4139,6 +4139,14 @@ void clif_getareachar_unit(struct map_session_data* sd,struct block_list *bl)
 				clif_specialeffect_single(bl,423,sd->fd);
 			else if(md->special_state.size==SZ_MEDIUM)
 				clif_specialeffect_single(bl,421,sd->fd);
+#if PACKETVER >= 20120404
+			if( !(md->status.mode&MD_BOSS) ){
+				int i;
+				for(i = 0; i < DAMAGELOG_SIZE; i++)// must show hp bar to all char who already hit the mob.
+					if( md->dmglog[i].id == sd->status.char_id )
+						clif_monster_hp_bar(md, sd->fd);
+			}
+#endif
 		}
 		break;
 	case BL_PET:

+ 8 - 2
src/map/mob.c

@@ -2083,8 +2083,14 @@ void mob_damage(struct mob_data *md, struct block_list *src, int damage)
 		return;
 	
 #if PACKETVER >= 20120404
-	if( src->type == BL_PC && !(md->status.mode&MD_BOSS) )
-		clif_monster_hp_bar(md, ((TBL_PC*)src)->fd);
+	if( !(md->status.mode&MD_BOSS) ){
+		int i;
+		for(i = 0; i < DAMAGELOG_SIZE; i++){ // must show hp bar to all char who already hit the mob.
+			struct map_session_data *sd = map_charid2sd(md->dmglog[i].id);
+			if( sd && check_distance_bl(&md->bl, &sd->bl, AREA_SIZE) ) // check if in range
+				clif_monster_hp_bar(md, sd->fd);
+		}
+	}
 #endif
 	
 	if( md->special_state.ai == 2 ) {//LOne WOlf explained that ANYONE can trigger the marine countdown skill. [Skotlex]