aboutsummaryrefslogtreecommitdiff
path: root/Northstar.Custom/scripts/vscripts/_northstar_devcommands.gnut
diff options
context:
space:
mode:
authorBobTheBob <32057864+BobTheBob9@users.noreply.github.com>2021-06-22 14:30:49 +0100
committerBobTheBob <32057864+BobTheBob9@users.noreply.github.com>2021-06-22 14:30:49 +0100
commit207facbc402f5639cbcd31f079214351ef605cf2 (patch)
tree4710b2a88dd64f3dfea1609d31a5de9141640951 /Northstar.Custom/scripts/vscripts/_northstar_devcommands.gnut
parentc2d438568df6d98cf731807e30eaa7da31e5ea52 (diff)
downloadNorthstarMods-207facbc402f5639cbcd31f079214351ef605cf2.tar.gz
NorthstarMods-207facbc402f5639cbcd31f079214351ef605cf2.zip
initial commit after moving to new repo
Diffstat (limited to 'Northstar.Custom/scripts/vscripts/_northstar_devcommands.gnut')
-rw-r--r--Northstar.Custom/scripts/vscripts/_northstar_devcommands.gnut60
1 files changed, 60 insertions, 0 deletions
diff --git a/Northstar.Custom/scripts/vscripts/_northstar_devcommands.gnut b/Northstar.Custom/scripts/vscripts/_northstar_devcommands.gnut
new file mode 100644
index 000000000..ebac1e3c0
--- /dev/null
+++ b/Northstar.Custom/scripts/vscripts/_northstar_devcommands.gnut
@@ -0,0 +1,60 @@
+untyped
+global function NorthstarDevCommands_Init
+
+void function NorthstarDevCommands_Init()
+{
+ AddClientCommandCallback( "noclip", ClientCommandCallbackToggleNoclip )
+ AddClientCommandCallback( "script", ClientCommandCallbackEvalScript )
+ AddClientCommandCallback( "kill", ClientCommandCallbackKill )
+}
+
+bool function ClientCommandCallbackToggleNoclip( entity player, array<string> args )
+{
+ if ( GetConVarInt( "sv_cheats" ) != 1 )
+ return true
+
+ //if ( player.IsNoclipping() )
+ // DisableNoclipForEntityIndex( player.GetIndexForEntity() )
+ //else
+ // EnableNoclipForEntityIndex( player.GetIndexForEntity() )
+
+ // new way that doesn't require native stuff yay
+ if ( player.IsNoclipping() )
+ player.SetPhysics( MOVETYPE_WALK ) // just hoping this is the right movetype, not much of a way to check
+ else
+ player.SetPhysics( MOVETYPE_NOCLIP )
+
+ return true
+}
+
+bool function ClientCommandCallbackEvalScript( entity player, array<string> args )
+{
+ if ( args.len() < 1 || GetConVarInt( "sv_cheats" ) != 1 )
+ return true
+
+ // todo: rewrite this at some point to use a concommand because clientcommands can't just take in a single string with spaces, quotes etc
+ // should just have the concommand call a clientcommand manually with properly formatted args
+ string joinedArgs = args[0]
+ for ( int i = 1; i < args.len(); i++ )
+ joinedArgs += " " + args[i]
+
+ try
+ {
+ compilestring( joinedArgs )()
+ }
+ catch (exception)
+ {
+ // should probably send this to the client at some point
+ // no need to log here because compilestring errors already do that
+ }
+
+ return true
+}
+
+bool function ClientCommandCallbackKill( entity player, array<string> args )
+{
+ if ( IsAlive( player ) && GetConVarInt( "sv_cheats" ) == 1 )
+ player.Die()
+
+ return true
+} \ No newline at end of file