summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorultramage <ultramage@54d463be-8e91-2dee-dedb-b68131a5f0ec>2008-10-10 10:06:05 +0000
committerultramage <ultramage@54d463be-8e91-2dee-dedb-b68131a5f0ec>2008-10-10 10:06:05 +0000
commite551e39b0911880c0f89f1c37666792bde7c49b3 (patch)
treed5fb588d55bb72643c15357366b09f9e270fa65d /src
parentb17ad90eaf719b1165a681a5b4c4760b8d292f42 (diff)
downloadhercules-e551e39b0911880c0f89f1c37666792bde7c49b3.tar.gz
hercules-e551e39b0911880c0f89f1c37666792bde7c49b3.tar.bz2
hercules-e551e39b0911880c0f89f1c37666792bde7c49b3.tar.xz
hercules-e551e39b0911880c0f89f1c37666792bde7c49b3.zip
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
Diffstat (limited to 'src')
-rw-r--r--src/map/mob.c2
-rw-r--r--src/map/skill.c3
-rw-r--r--src/map/status.c6
3 files changed, 5 insertions, 6 deletions
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;
}