summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
authormekolat <mekolat@gmail.com>2015-04-06 23:08:13 -0400
committermekolat <mekolat@gmail.com>2015-04-07 11:24:27 -0400
commit6a22fe4dc257228b28dd67cb35301d44ed6f6060 (patch)
treec7fd871fdff118e6bde3624a6c120f931184768d /src/map
parentda8a9751c6277e6f936bf57b367ea9c78ce0ba4f (diff)
downloadtmwa-6a22fe4dc257228b28dd67cb35301d44ed6f6060.tar.gz
tmwa-6a22fe4dc257228b28dd67cb35301d44ed6f6060.tar.bz2
tmwa-6a22fe4dc257228b28dd67cb35301d44ed6f6060.tar.xz
tmwa-6a22fe4dc257228b28dd67cb35301d44ed6f6060.zip
emulate @alive
Diffstat (limited to 'src/map')
-rw-r--r--src/map/script-fun.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/map/script-fun.cpp b/src/map/script-fun.cpp
index 3d699e2..919bf90 100644
--- a/src/map/script-fun.cpp
+++ b/src/map/script-fun.cpp
@@ -401,16 +401,23 @@ void builtin_areawarp(ScriptState *st)
static
void builtin_heal(ScriptState *st)
{
- int hp, sp, item;
+ int hp, sp;
+ dumb_ptr<map_session_data> sd = script_rid2sd(st);
hp = conv_num(st, &AARG(0));
sp = conv_num(st, &AARG(1));
- item = conv_num(st, &AARG(2));
- if(item)
- pc_itemheal(script_rid2sd(st), hp, sp);
+ if(sd != nullptr && (sd->status.hp < 1 && hp > 0)){
+ pc_setstand(sd);
+ if (battle_config.player_invincible_time > interval_t::zero())
+ pc_setinvincibletimer(sd, battle_config.player_invincible_time);
+ clif_resurrection(sd, 1);
+ }
+
+ if(HARG(2) && bool(conv_num(st, &AARG(2))) && hp > 0)
+ pc_itemheal(sd, hp, sp);
else
- pc_heal(script_rid2sd(st), hp, sp);
+ pc_heal(sd, hp, sp);
}
/*==========================================