From c8c463f6f9c18e3a0bc462714fc063fbdbe1cd6e Mon Sep 17 00:00:00 2001 From: Mircea Kitsune Date: Mon, 24 Oct 2011 17:25:16 +0300 Subject: [PATCH] Add a spawnitem command, which allows players to spawn items on the map. Currently, they can only spawn dropped weapons, due to technical limitations. The command is named spawnitem so support for other items can be made possible later on. --- qcsrc/server/mutators/sandbox.qc | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/qcsrc/server/mutators/sandbox.qc b/qcsrc/server/mutators/sandbox.qc index 7dada9f1c0..fd9f756700 100644 --- a/qcsrc/server/mutators/sandbox.qc +++ b/qcsrc/server/mutators/sandbox.qc @@ -35,6 +35,7 @@ MUTATOR_HOOKFUNCTION(sandbox_PlayerCommand) entity e; e = spawn(); e.classname = "object"; + makevectors(self.v_angle); traceline(self.origin + self.view_ofs, self.origin + self.view_ofs + v_forward * autocvar_g_sandbox_editor_distance, MOVE_NOMONSTERS, self); setorigin(e, trace_endpos); @@ -46,6 +47,37 @@ MUTATOR_HOOKFUNCTION(sandbox_PlayerCommand) return TRUE; } + else if(argv(1) == "spawnitem") + { + // spawn a new item + // weapons are the only items currently supported + + if(cmd_argc < 3) + { + print_to(self, "WARNING: Attempted to spawn an item without specifying its type. Please specify the name of your item after the 'spawnitem' command"); + return TRUE; + } + + entity e; + float i; + makevectors(self.v_angle); + traceline(self.origin + self.view_ofs, self.origin + self.view_ofs + v_forward * autocvar_g_sandbox_editor_distance, MOVE_NOMONSTERS, self); + + for(i = WEP_FIRST; i <= WEP_LAST; ++i) + { + e = get_weaponinfo(i); + if(e.netname == argv(2)) + { + W_ThrowNewWeapon(self, i, FALSE, trace_endpos, '0 0 0'); + if(autocvar_g_sandbox_info) + print(strcat(self.netname, " spawned a ^2", e.netname, "^7 at origin ", vtos(e.origin), "\n")); + return TRUE; + } + } + + print_to(self, "WARNING: Attempted to spawn an invalid or unsupported item. See 'g_sandbox help' for supported items"); + return TRUE; + } } return FALSE; } -- 2.39.2