summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/script/lua_api/l_object.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/script/lua_api/l_object.cpp b/src/script/lua_api/l_object.cpp
index b7924ddb8..7ff1f58bc 100644
--- a/src/script/lua_api/l_object.cpp
+++ b/src/script/lua_api/l_object.cpp
@@ -759,16 +759,17 @@ int ObjectRef::l_set_properties(lua_State *L)
read_object_properties(L, 2, prop, getServer(L)->idef());
+ PlayerSAO *player = getplayersao(ref);
+
if (prop->hp_max < co->getHP()) {
PlayerHPChangeReason reason(PlayerHPChangeReason::SET_HP);
co->setHP(prop->hp_max, reason);
- if (co->getType() == ACTIVEOBJECT_TYPE_PLAYER)
- getServer(L)->SendPlayerHPOrDie((PlayerSAO *)co, reason);
+ if (player)
+ getServer(L)->SendPlayerHPOrDie(player, reason);
}
- if (co->getType() == ACTIVEOBJECT_TYPE_PLAYER &&
- prop->breath_max < co->getBreath())
- co->setBreath(prop->breath_max);
+ if (player && prop->breath_max < player->getBreath())
+ player->setBreath(prop->breath_max);
co->notifyObjectPropertiesModified();
return 0;