Heya,
These are ground unit skills. You'll want to skip the BL_PC check and then adjust the skill ratios to battle.cpp:
diff --git a/src/map/battle.cpp b/src/map/battle.cpp
index de8167f4a..904a672d8 100644
--- a/src/map/battle.cpp
+++ b/src/map/battle.cpp
@@ -4354,6 +4354,13 @@ static int battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list *
if (sd && pc_checkskill(sd, SU_SPIRITOFLIFE))
skillratio += skillratio * status_get_hp(src) / status_get_max_hp(src);
break;
+ case SG_SUN_WARM:
+ case SG_MOON_WARM:
+ case SG_STAR_WARM:
+ if (tsd) {
+ skillratio += -50;
+ }
+ break;
}
return skillratio;
}
diff --git a/src/map/skill.cpp b/src/map/skill.cpp
index 3b7b4ba86..7656a247f 100755
--- a/src/map/skill.cpp
+++ b/src/map/skill.cpp
@@ -13795,7 +13795,7 @@ int skill_unit_onplace_timer(struct skill_unit *unit, struct block_list *bl, t_t
do {
if( bl->type == BL_PC )
status_zap(bl, 0, 15); // sp damage to players
- else // mobs
+
if( status_charge(ss, 0, 2) ) { // costs 2 SP per hit
if( !skill_attack(BF_WEAPON,ss,&unit->bl,bl,sg->skill_id,sg->skill_lv,tick+(t_tick)count*sg->interval,0) )
status_charge(ss, 0, 8); //costs additional 8 SP if miss