Files
baseia.qvm/code/game/g_cmds_cs.c
2025-07-24 16:23:48 -03:00

60 lines
1.8 KiB
C

/*
* This file is part of Illusion Arena
* Contents of this file were adapted from CorkScrew
* Copyright (C) Arjen '[F]irestarter' van der Veen
*/
#include "g_local.h"
void Cmd_AddItem_f( gentity_t *ent ) {
char buffer[1024];
char buffer2[48];
int len;
fileHandle_t f;
char filename[MAX_QPATH] = "powerups/";
char map[MAX_QPATH];
char serverinfo[MAX_INFO_STRING];
if ( g_cheats.integer == 0 ) {
return;
}
if ( trap_Argc() != 2 ) {
trap_SendServerCommand( ent-g_entities, va("print \"usage: additem item\nexample: additem item_haste\n\""));
return;
}
trap_GetServerinfo( serverinfo, sizeof(serverinfo) );
Q_strncpyz( map, Info_ValueForKey( serverinfo, "mapname" ), sizeof(map) );
strcat(filename, map);
strcat(filename, ".txt");
trap_FS_FOpenFile( filename, &f, FS_APPEND );
trap_Argv( 1, buffer2, sizeof( buffer2 ) );
if ( ent->s.groundEntityNum ) { // we're on the ground, so spawnflags = 0;
Com_sprintf( buffer, sizeof(buffer),
"\n\n{\nclassname \"%s\"\norigin \"%i %i %i\"\n}\n",
buffer2,
(int)ent->s.pos.trBase[0],
(int)ent->s.pos.trBase[1],
(int)ent->s.pos.trBase[2] );
trap_SendServerCommand( ent-g_entities, va("print \"%s added at %s\n\"", buffer2, vtos( ent->s.pos.trBase ) ) );
} else {
Com_sprintf( buffer, sizeof(buffer),
"\n\n{\nclassname \"%s\"\norigin \"%i %i %i\"\nspawnflags \"1\"\n}\n",
buffer2,
(int)ent->s.pos.trBase[0],
(int)ent->s.pos.trBase[1],
(int)ent->s.pos.trBase[2] );
trap_SendServerCommand( ent-g_entities, va("print \"suspended %s added at %s\n\"", buffer2, vtos( ent->s.pos.trBase ) ) );
}
trap_FS_Write( buffer, strlen( buffer ), f );
trap_FS_FCloseFile( f );
}