Ver código fonte

- Some minor code cleanups.
- Cleaned up skill code for NJ_BAKUENRYU
- Unified splash-damage packet display for NJ_HUUMA and other splash skills (like Brandish spear)


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

skotlex 19 anos atrás
pai
commit
c79270a22f
2 arquivos alterados com 8 adições e 30 exclusões
  1. 6 6
      src/map/battle.c
  2. 2 24
      src/map/skill.c

+ 6 - 6
src/map/battle.c

@@ -2117,7 +2117,7 @@ struct Damage battle_calc_magic_attack(
 
 	struct map_session_data *sd, *tsd;
 	struct Damage ad;
-	struct status_change *sc;
+	struct status_change *tsc;
 	struct status_data *sstatus = status_get_status_data(src);
 	struct status_data *tstatus = status_get_status_data(target);
 	struct {
@@ -2234,7 +2234,7 @@ struct Damage battle_calc_magic_attack(
 //Adds an absolute value to damage. 100 = +100 damage
 #define MATK_ADD( a ) { ad.damage+= a; }
 
-		sc= status_get_sc(target); // used for NJ_SUITON increasing NJ_HYOUSENSOU damages
+		tsc= status_get_sc(target); // used for NJ_SUITON increasing NJ_HYOUSENSOU damages
 
 		switch (skill_num)
 		{	//Calc base damage according to skill
@@ -2358,8 +2358,8 @@ struct Damage battle_calc_magic_attack(
 						break;
 					case NJ_HYOUSENSOU:
 						skillratio -= 30;
-						if (sc && sc->data[SC_SUITON].timer != -1)
-						  	skillratio += sc->data[SC_SUITON].val4;
+						if (tsc && tsc->data[SC_SUITON].timer != -1)
+						  	skillratio += tsc->data[SC_SUITON].val4;
 						break;
 					case NJ_HYOUSYOURAKU:
 						skillratio += 50*skill_lv; // recorrected after calculation from vids
@@ -3856,8 +3856,8 @@ void battle_set_defaults() {
 	battle_config.left_cardfix_to_right=0;
 	battle_config.skill_add_range=0;
 	battle_config.skill_out_range_consume=1;
-	battle_config.skillrange_by_distance=BL_MOB|BL_PET|BL_HOM;
-	battle_config.use_weapon_skill_range=BL_MOB|BL_PET|BL_HOM;
+	battle_config.skillrange_by_distance=~BL_PC;
+	battle_config.use_weapon_skill_range=~BL_PC;
 	battle_config.pc_damage_delay_rate=100;
 	battle_config.defnotenemy=0;
 	battle_config.vs_traps_bctall=BL_PC;

+ 2 - 24
src/map/skill.c

@@ -2004,21 +2004,13 @@ int skill_attack (int attack_type, struct block_list* src, struct block_list *ds
 		break;
 	case KN_BRANDISHSPEAR:
 	case NJ_KAMAITACHI:
-		{	//Only display skill animation for skill's target.
-			struct unit_data *ud = unit_bl2ud(src);
-			if (ud && ud->skilltarget == bl->id)
-				dmg.dmotion = clif_skill_damage(dsrc,bl,tick,dmg.amotion,dmg.dmotion, damage, dmg.div_, skillid, (lv!=0)?lv:skilllv, type);
-			else
-				dmg.dmotion = clif_skill_damage(dsrc,bl,tick,dmg.amotion,dmg.dmotion, damage, dmg.div_, skillid, -1, 5);
-			break;
-		}
 	case NJ_HUUMA:
 		{	//Only display skill animation for skill's target.
 			struct unit_data *ud = unit_bl2ud(src);
 			if (ud && ud->skilltarget == bl->id)
 				dmg.dmotion = clif_skill_damage(dsrc,bl,tick,dmg.amotion,dmg.dmotion, damage, dmg.div_, skillid, (lv!=0)?lv:skilllv, type);
 			else
-				dmg.dmotion = clif_skill_damage(dsrc,bl,tick,dmg.amotion,dmg.dmotion, damage, dmg.div_, 0, -1, type); // Skill_id = 0 => no effect on other targets
+				dmg.dmotion = clif_skill_damage(dsrc,bl,tick,dmg.amotion,dmg.dmotion, damage, dmg.div_, skillid, -1, 5); //TODO: Check whether it's better to send -1 in skilllv or also send 0 as skillid, maybe even change this to a clif_damage packet?
 			break;
 		}
 	case PA_GOSPEL: //Should look like Holy Cross [Skotlex]
@@ -2836,6 +2828,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int
 	case MC_CARTREVOLUTION:	
 	case NPC_SPLASHATTACK:
 	case AC_SHOWER:	//Targetted skill implementation.
+	case NJ_BAKUENRYU:
 		if(flag&1){
 			if(bl->id!=skill_area_temp[1]){
 				skill_attack(skill_get_type(skillid),src,src,bl,skillid,skilllv,tick,
@@ -3184,21 +3177,6 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int
 				skill_castend_damage_id);
 		}
 		break;
-	case NJ_BAKUENRYU:
-		if (flag & 1) {
-				skill_attack(BF_MAGIC, src, src, bl, skillid, skilllv, tick, skill_area_temp[0]);
-		} else {
-			clif_skill_nodamage(src,bl,skillid,skilllv,1);
-			skill_area_temp[0] = 0;
-			map_foreachinrange(skill_area_sub, bl, 
-				skill_get_splash(skillid, skilllv), BL_CHAR,
-				src, skillid, skilllv, tick, BCT_ENEMY, skill_area_sub_count);
-			map_foreachinrange(skill_area_sub, bl,
-				skill_get_splash(skillid, skilllv), BL_CHAR,
-				src, skillid, skilllv, tick, BCT_ENEMY|1,
-				skill_castend_damage_id);
-		}
-		break;
 	case NJ_KASUMIKIRI:
 		skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag);
 		sc_start(src,SC_HIDING,100,skilllv,skill_get_time(skillid,skilllv));