diff --git a/Templates/BaseGame/game/data/DamageModel/DamageModel.tscript b/Templates/BaseGame/game/data/DamageModel/DamageModel.tscript index 9df4c3805..adbda2e33 100644 --- a/Templates/BaseGame/game/data/DamageModel/DamageModel.tscript +++ b/Templates/BaseGame/game/data/DamageModel/DamageModel.tscript @@ -26,6 +26,13 @@ function DamageModel::onCreateGameServer(%this) %this.queueExec("./scripts/server/commands"); } +//This is called when the server is created for an actual game/map to be played +function DamageModel::onCreateGameServer(%this) +{ + %this.registerDatablock("./scripts/managedData/managedParticleData"); + %this.registerDatablock("./scripts/managedData/managedParticleEmitterData"); +} + //This is called when the server is shut down due to the game/map being exited function DamageModel::onDestroyGameServer(%this) { diff --git a/Templates/BaseGame/game/data/DamageModel/scripts/server/player.tscript b/Templates/BaseGame/game/data/DamageModel/scripts/server/player.tscript index 0d53904fd..9b4802423 100644 --- a/Templates/BaseGame/game/data/DamageModel/scripts/server/player.tscript +++ b/Templates/BaseGame/game/data/DamageModel/scripts/server/player.tscript @@ -5,7 +5,18 @@ function PlayerData::damage(%this, %obj, %sourceObject, %position, %damage, %dam %rootObj = %obj; if (%obj.healthFromMount) + { %rootObj = findRootObject(%obj); + %this.setDamageDirection(%rootObj, %sourceObject, %position); + } + else + { + %this.setDamageDirection(%obj, %sourceObject, %position); + } + + %damageLoc = "body"; + if (%damageType !$= "Suicide") { + %getDamageLoc = %obj.getDamageLocation(%position); %this.setDamageDirection(%rootObj, %sourceObject, %position);