Correct Implementation of NPC_CHANGEUNDEAD (#6837)
- Fixes #6832 - NPC_CHANGEUNDEAD is now a single target attack skill - 100% physical, undead property damage - When it deals damage, 10%*skill_lv chance to cause SC_CHANGEUNDEAD for 60 seconds - Skill range is 2 - All NPC status skills now have 120% hit rate
This commit is contained in:
parent
4845a128ba
commit
da93c190c5
@ -9389,16 +9389,15 @@ Body:
|
||||
Name: NPC_CHANGEUNDEAD
|
||||
Description: Undead Attribute Change
|
||||
MaxLevel: 5
|
||||
Type: Magic
|
||||
Type: Weapon
|
||||
TargetType: Attack
|
||||
DamageFlags:
|
||||
NoDamage: true
|
||||
Flags:
|
||||
IsNpc: true
|
||||
Range: 9
|
||||
Range: -2
|
||||
Hit: Single
|
||||
HitCount: 1
|
||||
Element: Undead
|
||||
Duration1: 30000
|
||||
Duration2: 60000
|
||||
Status: ChangeUndead
|
||||
- Id: 349
|
||||
Name: NPC_POWERUP
|
||||
|
@ -2972,9 +2972,17 @@ static bool is_attack_hitting(struct Damage* wd, struct block_list *src, struct
|
||||
case NPC_POISONATTACK:
|
||||
case NPC_HOLYATTACK:
|
||||
case NPC_DARKNESSATTACK:
|
||||
case NPC_UNDEADATTACK:
|
||||
case NPC_TELEKINESISATTACK:
|
||||
case NPC_UNDEADATTACK:
|
||||
case NPC_CHANGEUNDEAD:
|
||||
case NPC_EARTHQUAKE:
|
||||
case NPC_POISON:
|
||||
case NPC_BLINDATTACK:
|
||||
case NPC_SILENCEATTACK:
|
||||
case NPC_STUNATTACK:
|
||||
case NPC_PETRIFYATTACK:
|
||||
case NPC_CURSEATTACK:
|
||||
case NPC_SLEEPATTACK:
|
||||
case NPC_BLEEDING:
|
||||
hitrate += hitrate * 20 / 100;
|
||||
break;
|
||||
|
@ -1645,6 +1645,9 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
|
||||
case NPC_BLEEDING:
|
||||
sc_start(src,bl,SC_BLEEDING,(20*skill_lv),skill_lv,skill_get_time2(skill_id,skill_lv));
|
||||
break;
|
||||
case NPC_CHANGEUNDEAD:
|
||||
sc_start(src, bl, SC_CHANGEUNDEAD, (10 * skill_lv), skill_lv, skill_get_time2(skill_id, skill_lv));
|
||||
break;
|
||||
case NPC_ACIDBREATH:
|
||||
sc_start(src,bl,SC_POISON,70,skill_lv,skill_get_time2(skill_id,skill_lv));
|
||||
break;
|
||||
@ -4989,6 +4992,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
|
||||
case NPC_DARKNESSATTACK:
|
||||
case NPC_TELEKINESISATTACK:
|
||||
case NPC_UNDEADATTACK:
|
||||
case NPC_CHANGEUNDEAD:
|
||||
case NPC_ARMORBRAKE:
|
||||
case NPC_WEAPONBRAKER:
|
||||
case NPC_HELMBRAKE:
|
||||
@ -9416,14 +9420,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
|
||||
sc_start2(src,bl, type, 100, skill_lv, skill_get_ele(skill_id,skill_lv),
|
||||
skill_get_time(skill_id, skill_lv)));
|
||||
break;
|
||||
case NPC_CHANGEUNDEAD:
|
||||
//This skill should fail if target is wearing bathory/evil druid card [Brainstorm]
|
||||
//TO-DO This is ugly, fix it
|
||||
if(tstatus->def_ele==ELE_UNDEAD || tstatus->def_ele==ELE_DARK) break;
|
||||
clif_skill_nodamage(src,bl,skill_id,skill_lv,
|
||||
sc_start2(src,bl, type, 100, skill_lv, skill_get_ele(skill_id,skill_lv),
|
||||
skill_get_time(skill_id, skill_lv)));
|
||||
break;
|
||||
|
||||
case NPC_PROVOCATION:
|
||||
clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
|
||||
|
Loading…
x
Reference in New Issue
Block a user