diff options
author | mekolat <mekolat@gmail.com> | 2015-04-06 23:08:13 -0400 |
---|---|---|
committer | mekolat <mekolat@gmail.com> | 2015-04-07 11:24:27 -0400 |
commit | 6a22fe4dc257228b28dd67cb35301d44ed6f6060 (patch) | |
tree | c7fd871fdff118e6bde3624a6c120f931184768d /src/map | |
parent | da8a9751c6277e6f936bf57b367ea9c78ce0ba4f (diff) | |
download | tmwa-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.cpp | 17 |
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); } /*========================================== |