Fixed bugreport:5843 WL_HELLINFERNO should now deal 2 elemental(fire ad shadow) hits and updated its damage formula.
Fixed bugreport:6068 Cloaking/Hiding skills is now working to hide it self to non boss/detector monster. Fixed bugreport:6105 Stone Curse should now stop target to attack once activated. git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16346 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
2316ba38c2
commit
fb56e5bc13
@ -3513,11 +3513,12 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case WL_HELLINFERNO:
|
||||
if( status_get_element(target) == ELE_FIRE )
|
||||
skillratio = 60 * skill_lv;
|
||||
else
|
||||
skillratio = 240 * skill_lv;
|
||||
RE_LVL_DMOD(100);
|
||||
skillratio = 300 * skill_lv;
|
||||
RE_LVL_DMOD(100);
|
||||
// Shadow: MATK [{( Skill Level x 300 ) x ( Caster’s Base Level / 100 ) x 4/5 }] %
|
||||
// Fire : MATK [{( Skill Level x 300 ) x ( Caster’s Base Level / 100 ) /5 }] %
|
||||
if( mflag&ELE_DARK ){ skillratio *= 4; s_ele = ELE_DARK; }
|
||||
skillratio /= 5;
|
||||
break;
|
||||
case WL_COMET: {
|
||||
struct status_change * sc = status_get_sc(src);
|
||||
@ -3560,10 +3561,10 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case LG_SHIELDSPELL:// [(Caster’s Base Level x 4) + (Shield MDEF x 100) + (Caster’s INT x 2)] %
|
||||
if( sd ) {
|
||||
skillratio = status_get_lv(src) * 4 + sd->bonus.shieldmdef * 100 + status_get_int(src) * 2;
|
||||
} else
|
||||
skillratio += 1900; //2000%
|
||||
if( sd ) {
|
||||
skillratio = status_get_lv(src) * 4 + sd->bonus.shieldmdef * 100 + status_get_int(src) * 2;
|
||||
} else
|
||||
skillratio += 1900; //2000%
|
||||
break;
|
||||
case WM_METALICSOUND:
|
||||
skillratio += 120 * skill_lv + 60 * ( sd? pc_checkskill(sd, WM_LESSON) : 10 ) - 100;
|
||||
|
@ -3803,7 +3803,6 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int
|
||||
case AB_RENOVATIO:
|
||||
case AB_HIGHNESSHEAL:
|
||||
case AB_DUPLELIGHT_MAGIC:
|
||||
case WL_HELLINFERNO:
|
||||
case WM_METALICSOUND:
|
||||
skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag);
|
||||
break;
|
||||
@ -4212,6 +4211,10 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int
|
||||
skill_attack(skill_get_type(skillid), src, src, bl, skillid, skilllv, tick, flag);
|
||||
}
|
||||
break;
|
||||
case WL_HELLINFERNO:
|
||||
skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag);
|
||||
skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag|ELE_DARK);
|
||||
break;
|
||||
case RA_WUGSTRIKE:
|
||||
case RA_WUGBITE:
|
||||
if( path_search(NULL,src->m,src->x,src->y,bl->x,bl->y,1,CELL_CHKNOREACH) ) {
|
||||
|
@ -1727,6 +1727,7 @@ int status_check_visibility(struct block_list *src, struct block_list *target)
|
||||
{ //Check for chase-walk/hiding/cloaking opponents.
|
||||
case BL_PC:
|
||||
if ( tsc->data[SC_CLOAKINGEXCEED] && !(status->mode&MD_BOSS) )
|
||||
return 0;
|
||||
if( (tsc->option&(OPTION_HIDE|OPTION_CLOAK|OPTION_CHASEWALK) || tsc->data[SC__INVISIBILITY] || tsc->data[SC_CAMOUFLAGE]) && !(status->mode&MD_BOSS) &&
|
||||
( ((TBL_PC*)target)->special_state.perfect_hiding || !(status->mode&MD_DETECTOR) ) )
|
||||
return 0;
|
||||
@ -9224,6 +9225,7 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data)
|
||||
if(sc->opt1 == OPT1_STONEWAIT && sce->val3) {
|
||||
sce->val4 = 0;
|
||||
unit_stop_walking(bl,1);
|
||||
unit_stop_attack(bl);
|
||||
sc->opt1 = OPT1_STONE;
|
||||
clif_changeoption(bl);
|
||||
sc_timer_next(1000+tick,status_change_timer, bl->id, data );
|
||||
|
Loading…
x
Reference in New Issue
Block a user