mirror of
https://github.com/UberGames/rpgxEF.git
synced 2024-11-10 07:11:34 +00:00
More work on torpedo relaod command
should be finished now Signed-off-by: Harry Young <hendrik.gerritzen@googlemail.com>
This commit is contained in:
parent
c2e135da16
commit
76c0d8fea6
2 changed files with 65 additions and 37 deletions
|
@ -921,6 +921,7 @@ void CG_InitConsoleCommands( void ) {
|
||||||
trap_AddCommand("shipdamage");
|
trap_AddCommand("shipdamage");
|
||||||
trap_AddCommand("shiphealth");
|
trap_AddCommand("shiphealth");
|
||||||
trap_AddCommand("reloadtorpedos");
|
trap_AddCommand("reloadtorpedos");
|
||||||
|
trap_AddCommand("torpedolist");
|
||||||
|
|
||||||
/* precacheFile */
|
/* precacheFile */
|
||||||
trap_AddCommand("generatePrecacheFile");
|
trap_AddCommand("generatePrecacheFile");
|
||||||
|
|
|
@ -6004,7 +6004,7 @@ Harry Young | 12/01/2013
|
||||||
=================
|
=================
|
||||||
*/
|
*/
|
||||||
static void Cmd_reloadtorpedos_f(gentity_t *ent) {
|
static void Cmd_reloadtorpedos_f(gentity_t *ent) {
|
||||||
gentity_t *torpedo=NULL, *single;
|
gentity_t *torpedo=NULL;
|
||||||
char arg[16];
|
char arg[16];
|
||||||
char target[512];
|
char target[512];
|
||||||
|
|
||||||
|
@ -6020,11 +6020,20 @@ static void Cmd_reloadtorpedos_f(gentity_t *ent) {
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(trap_Argc() == 0){
|
trap_Argv(1, arg, sizeof(arg));
|
||||||
G_PrintfClient(ent, "Usage: reloadtorpedos [amount] [target] where amount is the number of torpedos the launcher will have after the command executed.\n");
|
trap_Argv(2, target, sizeof(target));
|
||||||
G_PrintfClient(ent, "Set 0 to depleet, set -1 to max out. You can not load more torpedos than the entity was designed for. If you do it will just Max out.\n");
|
|
||||||
G_PrintfClient(ent, "target is the specific targetname of the fx_torpedo that shall be reloaded and needs to be entered if there is a map with multiple fx_torpedo's with limited stock.\n");
|
if(atoi(arg) == 0 || !Q_stricmp(target, "")){
|
||||||
G_PrintfClient(ent, "If set to all every limited launcher on the map will be set to amount or maxed out accordingly.\n");
|
G_PrintfClient(ent, "Usage: reloadtorpedos [amount] [target] where amount is the number of torpedos the launcher will have after the command executed.");
|
||||||
|
G_PrintfClient(ent, "Set -2 to depleet, set -1 to max out. You can not load more torpedos than the entity was designed for. If you do it will just Max out.");
|
||||||
|
G_PrintfClient(ent, "target is the specific targetname of the fx_torpedo that shall be reloaded.");
|
||||||
|
G_PrintfClient(ent, "If set to all every limited launcher on the map will be set to amount or maxed out accordingly.");
|
||||||
|
G_PrintfClient(ent, "The targetnames can be extracted trough the command torpedolist.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(atoi(arg) < -2){
|
||||||
|
G_PrintfClient(ent, "^1ERROR: amount must not be less than -2, aborting call.\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6033,41 +6042,57 @@ static void Cmd_reloadtorpedos_f(gentity_t *ent) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
trap_Argv(1, arg, sizeof(arg));
|
|
||||||
|
|
||||||
if(trap_Argc() > 1){ //we have a specific targets or all entities shall be restocked, so let's go with that
|
|
||||||
Q_strncpyz( target, ConcatArgs( 2 ), sizeof( target ) );
|
|
||||||
while((torpedo = G_Find(torpedo, FOFS(classname), "fx_torpedo")) != NULL){
|
while((torpedo = G_Find(torpedo, FOFS(classname), "fx_torpedo")) != NULL){
|
||||||
if(!Q_stricmp(torpedo->targetname, target) || !Q_stricmp(target, "all")){ //this entity is generally affectable
|
if(!Q_stricmp(torpedo->targetname, target) || !Q_stricmp(target, "all")){ //this entity is generally affectable
|
||||||
if(torpedo->damage > 0){ //we only need to consider this for restock if it is restockable
|
if(torpedo->damage > 0){ //we only need to consider this for restock if it is restockable
|
||||||
if(atoi(arg) < 0 || atoi(arg) > torpedo->damage)
|
if(atoi(arg) == -1 || atoi(arg) > torpedo->damage)
|
||||||
torpedo->count = torpedo->damage;
|
torpedo->count = torpedo->damage;
|
||||||
|
else if(atoi(arg) == -2)
|
||||||
|
torpedo->count = 0;
|
||||||
else
|
else
|
||||||
torpedo->count = atoi(arg);
|
torpedo->count = atoi(arg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return;
|
|
||||||
} else {
|
|
||||||
while((torpedo = G_Find(torpedo, FOFS(classname), "fx_torpedo")) != NULL){
|
|
||||||
if(torpedo->damage < 0)//we can ignore unlimited supplies, we're just concerned with limits, which need to be specific
|
|
||||||
continue;
|
|
||||||
else { //something with stock
|
|
||||||
single = torpedo; //if this is the only one we finish it right away
|
|
||||||
while((torpedo = G_Find(torpedo, FOFS(classname), "fx_torpedo")) != NULL){
|
|
||||||
if(torpedo->damage > 0){// we have 2 with stock so we can be wrong. Inform admin and abort
|
|
||||||
trap_SendServerCommand( ent-g_entities, va("print \"^1 ERROR: This map has more than one fx_torpedo with limited supply, therefore a target or all needs to be specified. Aborting call.\n\"" ) );
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}//if we got here we only have one entity to restock, so let's do that
|
}
|
||||||
if(atoi(arg) < 0 || atoi(arg) > single->damage)
|
|
||||||
single->count = single->damage;
|
/*
|
||||||
|
=================
|
||||||
|
Cmd_torpedolist_f
|
||||||
|
Harry Young | 02/11/2012
|
||||||
|
=================
|
||||||
|
*/
|
||||||
|
static void Cmd_torpedolist_f(gentity_t *ent) {
|
||||||
|
gentity_t *torpedo=NULL;
|
||||||
|
|
||||||
|
#ifndef SQL
|
||||||
|
if ( !IsAdmin( ent ) ) {
|
||||||
|
trap_SendServerCommand( ent-g_entities, va("print \"ERROR: You are not logged in as an admin.\n\" ") );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
if ( !IsAdmin( ent ) || !G_Sql_UserDB_CheckRight(ent->client->uid, SQLF_SMS ) ) {
|
||||||
|
trap_SendServerCommand( ent-g_entities, va("print \"ERROR: You are not logged in as a user with the appropiate rights.\n\" ") );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
trap_SendServerCommand( ent-g_entities, va("print \"\nList of fx_torpedo-entities on this map: \n\n\""));
|
||||||
|
while((torpedo = G_Find(torpedo, FOFS(classname), "fx_torpedo")) != NULL){
|
||||||
|
trap_SendServerCommand( ent-g_entities, va("print \"Name of fx_torpedo: %s \n\"", torpedo->targetname ));
|
||||||
|
if(torpedo->spawnflags & 1)
|
||||||
|
trap_SendServerCommand( ent-g_entities, va("print \"Type: Quantum \n\""));
|
||||||
else
|
else
|
||||||
single->count = atoi(arg);
|
trap_SendServerCommand( ent-g_entities, va("print \"Type: Photon \n\""));
|
||||||
return;
|
if(torpedo->count == -1)
|
||||||
}
|
trap_SendServerCommand( ent-g_entities, va("print \"Amount: Unlimited\n\n\""));
|
||||||
|
else{
|
||||||
|
trap_SendServerCommand( ent-g_entities, va("print \"Current Amount: %i \n\"", torpedo->count));
|
||||||
|
trap_SendServerCommand( ent-g_entities, va("print \"Maximum Amount: %i \n\n\"", torpedo->damage));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
trap_SendServerCommand( ent-g_entities, va("print \"End of list \n\n\""));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -7702,8 +7727,10 @@ void G_Client_Command( int clientNum )
|
||||||
Cmd_shipdamage_f(ent);
|
Cmd_shipdamage_f(ent);
|
||||||
else if (Q_stricmp(cmd, "shiphealth") == 0)
|
else if (Q_stricmp(cmd, "shiphealth") == 0)
|
||||||
Cmd_shiphealth_f(ent);
|
Cmd_shiphealth_f(ent);
|
||||||
else if (Q_stricmp(cmd, "Cmd_reloadtorpedos_f") == 0)
|
else if (Q_stricmp(cmd, "reloadtorpedos") == 0)
|
||||||
Cmd_reloadtorpedos_f(ent);
|
Cmd_reloadtorpedos_f(ent);
|
||||||
|
else if (Q_stricmp(cmd, "torpedolist") == 0)
|
||||||
|
Cmd_torpedolist_f(ent);
|
||||||
else if (Q_stricmp(cmd, "msg2") == 0)
|
else if (Q_stricmp(cmd, "msg2") == 0)
|
||||||
Cmd_admin_centerprint_f(ent);
|
Cmd_admin_centerprint_f(ent);
|
||||||
else if (Q_stricmp(cmd, "forcevote") == 0)
|
else if (Q_stricmp(cmd, "forcevote") == 0)
|
||||||
|
|
Loading…
Reference in a new issue