From e551e39b0911880c0f89f1c37666792bde7c49b3 Mon Sep 17 00:00:00 2001 From: ultramage Date: Fri, 10 Oct 2008 10:06:05 +0000 Subject: Slightly corrected the NPC_REBIRTH code from r13272. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13274 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/mob.c | 2 +- src/map/skill.c | 3 +-- src/map/status.c | 6 +++--- 3 files changed, 5 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/map/mob.c b/src/map/mob.c index 0c6ada573..22777a70a 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -2313,7 +2313,7 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) //Emperium destroyed by script. Discard mvp character. [Skotlex] mvp_sd = NULL; - if( !md->sc.data[SC_REBIRTH] ) + if( !md->sc.data[SC_KAIZEL] && !md->sc.data[SC_REBIRTH] ) { // Only trigger event on final kill md->status.hp = 0; //So that npc_event invoked functions KNOW that mob is dead if( src ) diff --git a/src/map/skill.c b/src/map/skill.c index 9dcdae732..25988faee 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -4610,8 +4610,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in break; case NPC_REBIRTH: - //Rebirth system now uses SC_REBIRTH instead of SC_KAIZEL. [L0ne_W0lf] - sc_start(bl,type,100,skilllv,skill_get_time(NPC_REBIRTH,skilllv)); + sc_start(bl,type,100,skilllv,-1); break; case NPC_DARKBLESSING: diff --git a/src/map/status.c b/src/map/status.c index 1134c83da..9cdd35ac7 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -793,12 +793,12 @@ int status_damage(struct block_list *src,struct block_list *target,int hp, int s return hp+sp; } - if( !((TBL_MOB*)target)->state.rebirth && sc && sc->data[SC_REBIRTH] && target->type == BL_MOB ) - { // Ensure the monster has not already rebirthed before doing so. - int time = skill_get_time2(NPC_REBIRTH,sc->data[SC_REBIRTH]->val1); + if( target->type == BL_MOB && sc && sc->data[SC_REBIRTH] && !((TBL_MOB*)target)->state.rebirth ) + {// Ensure the monster has not already rebirthed before doing so. status_revive(target, sc->data[SC_REBIRTH]->val2, 0); status_change_clear(target,0); ((TBL_MOB*)target)->state.rebirth = 1; + return hp+sp; } -- cgit v1.2.3-70-g09d2