From 11fd0085151a7aa30cb3090331c8872f68c521f4 Mon Sep 17 00:00:00 2001 From: Sir-Skurpsalot <87043120+Sir-Skurpsalot@users.noreply.github.com> Date: Tue, 12 May 2026 23:20:43 -0600 Subject: [PATCH 1/3] Update DamageModel.tscript --- Templates/BaseGame/game/data/DamageModel/DamageModel.tscript | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Templates/BaseGame/game/data/DamageModel/DamageModel.tscript b/Templates/BaseGame/game/data/DamageModel/DamageModel.tscript index f3932781d..9df4c3805 100644 --- a/Templates/BaseGame/game/data/DamageModel/DamageModel.tscript +++ b/Templates/BaseGame/game/data/DamageModel/DamageModel.tscript @@ -9,6 +9,7 @@ function DamageModel::onDestroy(%this) //This is called when the server is initially set up by the game application function DamageModel::initServer(%this) { + %this.queueExec("./scripts/server/player"); } //This is called when the server is created for an actual game/map to be played @@ -22,7 +23,6 @@ function DamageModel::onCreateGameServer(%this) %this.queueExec("./scripts/server/weapon"); %this.queueExec("./scripts/server/shapeBase"); %this.queueExec("./scripts/server/vehicle"); - %this.queueExec("./scripts/server/player"); %this.queueExec("./scripts/server/commands"); } From dd438557d57a64c610107b9e116319fa2efeea03 Mon Sep 17 00:00:00 2001 From: Sir-Skurpsalot <87043120+Sir-Skurpsalot@users.noreply.github.com> Date: Tue, 12 May 2026 23:22:30 -0600 Subject: [PATCH 2/3] Update player.tscript --- .../DamageModel/scripts/server/player.tscript | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/Templates/BaseGame/game/data/DamageModel/scripts/server/player.tscript b/Templates/BaseGame/game/data/DamageModel/scripts/server/player.tscript index b874c9f5c..0d53904fd 100644 --- a/Templates/BaseGame/game/data/DamageModel/scripts/server/player.tscript +++ b/Templates/BaseGame/game/data/DamageModel/scripts/server/player.tscript @@ -2,27 +2,31 @@ function PlayerData::damage(%this, %obj, %sourceObject, %position, %damage, %dam { if (!isObject(%obj) || %obj.getDamageState() !$= "Enabled" || !%damage) return; - + %rootObj = %obj; if (%obj.healthFromMount) %rootObj = findRootObject(%obj); - + + %this.setDamageDirection(%rootObj, %sourceObject, %position); + + if (%damageType !$= "Suicide") { + %getDamageLoc = %rootObj.getDamageLocation(%position); + %damageLoc = firstWord(%getDamageLoc); + } + %rootObj.applyDamage(%damage); %this.onDamage(%rootObj, %damage); - - %this.setDamageDirection(%rootObj, %sourceObject, %position); - + // Deal with client callbacks here because we don't have this // information in the onDamage or onDisable methods %client = %rootObj.client; %sourceClient = %sourceObject ? %sourceObject.client : 0; - %location = "Body"; if (isObject(%client)) { if (%rootObj.getDamageState() !$= "Enabled") { - callGamemodeFunction("onDeath", %client, %sourceObject, %sourceClient, %damageType, %location); + callGamemodeFunction("onDeath", %client, %sourceObject, %sourceClient, %damageType, %damageLoc); } } } @@ -30,7 +34,7 @@ function PlayerData::damage(%this, %obj, %sourceObject, %position, %damage, %dam function PlayerData::onDamage(%this, %obj, %delta) { Parent::onDamage(%this, %obj, %delta); - + // This method is invoked by the ShapeBase code whenever the // object's damage level changes. if (%delta > 0 && %obj.getDamageState() !$= "Destroyed") @@ -39,4 +43,4 @@ function PlayerData::onDamage(%this, %obj, %delta) if (%delta > 10) %obj.playPain(); } -} \ No newline at end of file +} From a54695cfccaad581423b368b700b1a982ca44281 Mon Sep 17 00:00:00 2001 From: AzaezelX Date: Wed, 13 May 2026 11:48:36 -0500 Subject: [PATCH 3/3] filter directional damage display by %obj.healthFromMount also shift other contents from DamageModel::onCreateGameServer to DamageModel::initServer for consistency --- .../game/data/DamageModel/DamageModel.tscript | 14 +++++++------- .../data/DamageModel/scripts/server/player.tscript | 14 ++++++++++---- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/Templates/BaseGame/game/data/DamageModel/DamageModel.tscript b/Templates/BaseGame/game/data/DamageModel/DamageModel.tscript index 9df4c3805..76517799e 100644 --- a/Templates/BaseGame/game/data/DamageModel/DamageModel.tscript +++ b/Templates/BaseGame/game/data/DamageModel/DamageModel.tscript @@ -10,13 +10,6 @@ function DamageModel::onDestroy(%this) function DamageModel::initServer(%this) { %this.queueExec("./scripts/server/player"); -} - -//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.queueExec("./scripts/server/utility"); %this.queueExec("./scripts/server/radiusDamage"); %this.queueExec("./scripts/server/projectile"); @@ -26,6 +19,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..bbd354230 100644 --- a/Templates/BaseGame/game/data/DamageModel/scripts/server/player.tscript +++ b/Templates/BaseGame/game/data/DamageModel/scripts/server/player.tscript @@ -5,12 +5,18 @@ function PlayerData::damage(%this, %obj, %sourceObject, %position, %damage, %dam %rootObj = %obj; if (%obj.healthFromMount) + { %rootObj = findRootObject(%obj); - - %this.setDamageDirection(%rootObj, %sourceObject, %position); - + %this.setDamageDirection(%rootObj, %sourceObject, %position); + } + else + { + %this.setDamageDirection(%obj, %sourceObject, %position); + } + + %damageLoc = "body"; if (%damageType !$= "Suicide") { - %getDamageLoc = %rootObj.getDamageLocation(%position); + %getDamageLoc = %obj.getDamageLocation(%position); %damageLoc = firstWord(%getDamageLoc); }