diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/map/pc.c | 2 | ||||
-rw-r--r-- | src/map/skill.c | 9 | ||||
-rw-r--r-- | src/map/status.c | 4 |
3 files changed, 6 insertions, 9 deletions
diff --git a/src/map/pc.c b/src/map/pc.c index 620038d00..643863ea6 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -6558,7 +6558,7 @@ int pc_unequipitem(struct map_session_data *sd,int n,int flag) status_calc_pc(sd,0); } - if(sd->sc.data[SC_SIGNUMCRUCIS] && (sd->battle_status.race != RC_UNDEAD)) + if(sd->sc.data[SC_SIGNUMCRUCIS] && !battle_check_undead(sd->battle_status.race,sd->battle_status.def_ele)) status_change_end(&sd->bl,SC_SIGNUMCRUCIS,-1); //OnUnEquip script [Skotlex] diff --git a/src/map/skill.c b/src/map/skill.c index b2da0e8b5..e7052103e 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -602,7 +602,7 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int case CR_GRANDCROSS: case NPC_GRANDDARKNESS: - if(battle_check_undead(tstatus->race,tstatus->def_ele) || tstatus->race == RC_DEMON) + if(tstatus->race == RC_UNDEAD || tstatus->race == RC_DEMON) sc_start(bl,SC_BLIND,100,skilllv,skill_get_time2(skillid,skilllv)); break; @@ -713,7 +713,7 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int status_change_start(bl,SC_BLIND,10000,skilllv,0,0,0,skill_get_time2(skillid,skilllv),8); break; - case LK_HEADCRUSH: /* ヘッドクラッシュ */ + case LK_HEADCRUSH: //Headcrush has chance of causing Bleeding status, except on demon and undead element if (!(battle_check_undead(tstatus->race, tstatus->def_ele) || tstatus->race == RC_DEMON)) sc_start(bl, SC_BLEEDING,50, skilllv, skill_get_time2(skillid,skilllv)); break; @@ -3903,9 +3903,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in status_change_end(bl, SC_SILENCE , -1 ); status_change_end(bl, SC_BLIND , -1 ); status_change_end(bl, SC_CONFUSION, -1 ); - //Confusion status will trigger against undead race. - if(tstatus->race==RC_UNDEAD) - sc_start(bl, SC_CONFUSION,100,1,skill_get_time2(skillid, skilllv)); clif_skill_nodamage(src,bl,skillid,skilllv,1); break; @@ -3927,7 +3924,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in status_change_end(bl, SC_STUN, -1 ); } //Is this equation really right? It looks so... special. - if(battle_check_undead(tstatus->race,tstatus->def_ele) ) + if(battle_check_undead(tstatus->race,tstatus->def_ele)) { status_change_start(bl, SC_BLIND, 100*(100-(tstatus->int_/2+tstatus->vit/3+tstatus->luk/10)), diff --git a/src/map/status.c b/src/map/status.c index b92373a95..0eee43ed7 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -4672,8 +4672,8 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val return 0; //Cannot override other opt1 status changes. [Skotlex] break; case SC_SIGNUMCRUCIS: - //Only affects demons and undead races - if(status->race!=RC_UNDEAD && status->race!=RC_DEMON) + //Only affects demons and undead element (but not players) + if((!undead_flag && status->race!=RC_DEMON) || bl->type == BL_PC) return 0; break; case SC_AETERNA: |