From: Mircea Kitsune Date: Mon, 24 Oct 2011 14:25:16 +0000 (+0300) Subject: Add a spawnitem command, which allows players to spawn items on the map. Currently... X-Git-Tag: xonotic-v0.6.0~35^2~18^2~211 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=c8c463f6f9c18e3a0bc462714fc063fbdbe1cd6e;p=xonotic%2Fxonotic-data.pk3dir.git 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. --- diff --git a/qcsrc/server/mutators/sandbox.qc b/qcsrc/server/mutators/sandbox.qc index 7dada9f1c..fd9f75670 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; }