aboutsummaryrefslogtreecommitdiff
path: root/Northstar.Custom/mod/scripts/vscripts/gamemodes
diff options
context:
space:
mode:
authorBobTheBob <32057864+BobTheBob9@users.noreply.github.com>2021-10-20 20:11:43 +0100
committerBobTheBob <32057864+BobTheBob9@users.noreply.github.com>2021-10-20 20:11:43 +0100
commite79a58640e1ef1ea1c3c954aefccd36c3cb55286 (patch)
tree8c7b822f8777ccdf6b0d86587da853b8451953c1 /Northstar.Custom/mod/scripts/vscripts/gamemodes
parentd37c5ae333b4e622ebd0d18cf02a87d66aac62f9 (diff)
downloadNorthstarMods-e79a58640e1ef1ea1c3c954aefccd36c3cb55286.tar.gz
NorthstarMods-e79a58640e1ef1ea1c3c954aefccd36c3cb55286.zip
automatic mod enable/disable, refactors and item registration callbacks
Diffstat (limited to 'Northstar.Custom/mod/scripts/vscripts/gamemodes')
-rw-r--r--Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_gg.gnut4
-rw-r--r--Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_sbox.gnut49
-rw-r--r--Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_sbox.gnut20
-rw-r--r--Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_riff_instagib.gnut (renamed from Northstar.Custom/mod/scripts/vscripts/gamemodes/_riff_instagib.gnut)10
4 files changed, 13 insertions, 70 deletions
diff --git a/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_gg.gnut b/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_gg.gnut
index e0178034..8c68f554 100644
--- a/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_gg.gnut
+++ b/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_gg.gnut
@@ -15,6 +15,10 @@ void function GamemodeGG_Init()
AddCallback_OnPlayerKilled( OnPlayerKilled )
AddCallback_GameStateEnter( eGameState.WinnerDetermined, OnWinnerDetermined )
+
+ // set scorelimit if it's wrongm sort of a jank way to do it but best i've got rn
+ if ( GetCurrentPlaylistVarInt( "scorelimit", GetGunGameWeapons().len() ) != GetGunGameWeapons().len() )
+ SetPlaylistVarOverride( "scorelimit", GetGunGameWeapons().len().tostring() )
}
void function OnPlayerRespawned( entity player )
diff --git a/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_sbox.gnut b/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_sbox.gnut
deleted file mode 100644
index 27581aea..00000000
--- a/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_sbox.gnut
+++ /dev/null
@@ -1,49 +0,0 @@
-untyped
-global function GamemodeSbox_Init
-
-struct {
- array<entity> spawnpoints
-} file
-
-void function GamemodeSbox_Init()
-{
- SetConVarInt( "sv_cheats", 1 ) // cheats on by default
-
- // cache spawnpoints
- //file.spawnpoints = GetEntArrayByClass_Expensive( "info_spawnpoint_human" )
- // todo just use a spawn callback for this rather than weird late cache in spawn
-
- AddCallback_OnClientConnected( SboxSpawnPlayer )
- AddDeathCallback( "player", SboxRespawnPlayer )
-}
-
-void function SboxSpawnPlayer( entity player )
-{
- if ( player.GetPlayerSettings() == "spectator" ) // if they haven't spawned yet
- player.SetPlayerSettings( "pilot_grapple_male" )
-
- if ( file.spawnpoints.len() == 0 ) // have to cache late rather than on init due to spawnpoints not existing in init
- file.spawnpoints = GetEntArrayByClass_Expensive( "info_spawnpoint_human" )
-
- if ( GetGameState() != eGameState.Playing ) // hacky but can't set this in init either
- SetGameState( eGameState.Playing )
-
- entity spawnpoint = file.spawnpoints[ RandomInt( file.spawnpoints.len() ) ]
-
- ScreenFadeFromBlack( player, 0.0, 0.0 ) // HACK before non-classicmp intros are ready, remove the blackscreen we get from waitingforplayers
- player.RespawnPlayer( spawnpoint )
- player.GiveWeapon( "mp_weapon_toolgun" )
-}
-
-void function SboxRespawnPlayer( entity player, var damageInfo )
-{
- thread SboxRespawnPlayerThreaded( player )
-}
-
-void function SboxRespawnPlayerThreaded( entity player )
-{
- // todo: replace this with real respawn logic when that's ready
-
- wait 2.5
- SboxSpawnPlayer( player )
-} \ No newline at end of file
diff --git a/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_sbox.gnut b/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_sbox.gnut
deleted file mode 100644
index 893d9410..00000000
--- a/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_sbox.gnut
+++ /dev/null
@@ -1,20 +0,0 @@
-global function Sh_GamemodeSbox_Init
-
-global const string GAMEMODE_SBOX = "sbox"
-
-void function Sh_GamemodeSbox_Init()
-{
- // create custom gametype
- AddCallback_OnCustomGamemodesInit( CreateGamemodeSbox )
-}
-
-void function CreateGamemodeSbox()
-{
- GameMode_Create( GAMEMODE_SBOX )
- GameMode_SetName( GAMEMODE_SBOX, "#PL_sbox" )
- GameMode_SetDesc( GAMEMODE_SBOX, "#PL_sbox_desc" )
-
- #if SERVER
- GameMode_AddServerInit( GAMEMODE_SBOX, GamemodeSbox_Init )
- #endif
-} \ No newline at end of file
diff --git a/Northstar.Custom/mod/scripts/vscripts/gamemodes/_riff_instagib.gnut b/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_riff_instagib.gnut
index b3868359..316893bb 100644
--- a/Northstar.Custom/mod/scripts/vscripts/gamemodes/_riff_instagib.gnut
+++ b/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_riff_instagib.gnut
@@ -1,12 +1,17 @@
global function RiffInstagib_Init
+#if SERVER
struct {
table<entity, int> playerWeapons
array<string> instagibWeapons
} file
+#endif
void function RiffInstagib_Init()
{
+ AddPrivateMatchModeSettingEnum( "#MODE_SETTING_CATEGORY_RIFF", "riff_instagib", [ "Disabled", "Enabled" ], "0" )
+
+ #if SERVER
if ( GetCurrentPlaylistVarInt( "riff_instagib", 0 ) == 0 )
return
@@ -26,8 +31,10 @@ void function RiffInstagib_Init()
AddCallback_OnPlayerRespawned( InstagibSetWeapons )
AddCallback_OnPlayerKilled( InstagibCycleWeaponsForKill )
AddCallback_OnClientDisconnected( InstagibCleanupClient )
+ #endif
}
+#if SERVER
void function InstagibSetWeapons( entity player )
{
if ( !( player in file.playerWeapons ) )
@@ -62,4 +69,5 @@ void function InstagibCleanupClient( entity player )
{
if ( player in file.playerWeapons )
delete file.playerWeapons[ player ]
-} \ No newline at end of file
+}
+#endif \ No newline at end of file