aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBobTheBob <32057864+BobTheBob9@users.noreply.github.com>2022-01-25 18:44:08 +0000
committerBobTheBob <32057864+BobTheBob9@users.noreply.github.com>2022-01-25 18:44:08 +0000
commit050e707f4762b976791c0934b88779e038f70ade (patch)
treec5220d127ebce60b13782bef9b9730334e6c49dc
parente3021b7339c9632777f1be1dbc045d18327085f2 (diff)
downloadNorthstarMods-050e707f4762b976791c0934b88779e038f70ade.tar.gz
NorthstarMods-050e707f4762b976791c0934b88779e038f70ade.zip
improve fastball respawn logic
-rw-r--r--Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_fastball.gnut14
1 files changed, 7 insertions, 7 deletions
diff --git a/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_fastball.gnut b/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_fastball.gnut
index f6c0968c..628bb4b5 100644
--- a/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_fastball.gnut
+++ b/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_fastball.gnut
@@ -238,7 +238,8 @@ entity function CreatePanel( vector origin, vector angles )
DispatchSpawn( panel )
panel.SetModel( $"models/communication/terminal_usable_imc_01.mdl" )
- panel.s.onPlayerFinishesUsing_func = FastballOnPanelHacked
+ panel.s.scriptedPanel <- true
+ SetControlPanelUseFunc( panel, FastballOnPanelHacked )
Highlight_SetNeutralHighlight( panel, "sp_enemy_pilot" )
@@ -246,14 +247,10 @@ entity function CreatePanel( vector origin, vector angles )
}
// control panel code isn't very statically typed, pain
-function FastballOnPanelHacked( panel, player, success )
+function FastballOnPanelHacked( panel, player )
{
expect entity( panel )
expect entity( player )
- expect bool( success )
-
- if ( !success )
- return
print( panel + " was hacked by " + player )
PanelFlipsToPlayerTeamAndUsableByEnemies( panel, player )
@@ -262,12 +259,15 @@ function FastballOnPanelHacked( panel, player, success )
foreach ( entity otherPlayer in GetPlayerArray() )
Remote_CallFunction_NonReplay( otherPlayer, "ServerCallback_FastballPanelHacked", panel.GetEncodedEHandle(), panel.s.panelId, player.GetEncodedEHandle() )
+ // calculate respawn pos rather than using respawning player's position
+ vector respawnPos = panel.GetOrigin() + panel.GetForwardVector() * 50.0
+
// respawn dead players
foreach ( entity deadPlayer in GetPlayerArrayOfTeam( player.GetTeam() ) )
{
if ( !IsAlive( deadPlayer ) )
{
- deadPlayer.SetOrigin( player.GetOrigin() )
+ deadPlayer.SetOrigin( respawnPos )
deadPlayer.RespawnPlayer( null )
Remote_CallFunction_NonReplay( deadPlayer, "ServerCallback_FastballRespawnPlayer" )
}