[QUOTE=NovaPrime;409156]On second thought. I think adding a delay to the revive action would solve all my problems. How can I add a 10 second delay to the revive in C?
code below…
qboolean ReviveEntity(gentity_t *ent, gentity_t *traceEnt, qboolean resuscitation);
qboolean G_shrubbot_revive(gentity_t *ent, int skiparg)
{
int pids[MAX_CLIENTS];
char name[MAX_NAME_LENGTH], err[MAX_STRING_CHARS];
char *reason;
gentity_t *vic;
if(Q_SayArgc() < 2+skiparg)
{
SP("^drevive usage: ^2!revive ^9[name|slot#] [reason]^7
");
return qfalse;
}
Q_SayArgv(1+skiparg, name, sizeof(name));
reason = Q_SayConcatArgs(2+skiparg);
if(ClientNumbersFromString(name, pids) != 1)
{
G_MatchOnePlayer(pids, err, sizeof(err));
SP(va("revive: %s
", err));
return qfalse;
}
vic = &g_entities[pids[0]];
if(!(vic->client->sess.sessionTeam == TEAM_AXIS || vic->client->sess.sessionTeam == TEAM_ALLIES))
{
SP("^drevive: ^9player must be on a team^7
");
return qfalse;
}
if(vic->health > 0 || vic->client->ps.pm_flags & PMF_LIMBO) {
SP(va("^drevive: ^7%s ^9is not dead!^7
", vic->client->pers.netname));
return qfalse;
}
ReviveEntity(ent? ent : NULL, vic, qfalse);
AP(va("chat \"^drevive: ^*%s ^9was revived^7\"", vic->client->pers.netname));
CPx(pids[0], va("cp \"%s ^9revived you^7%s%s\"",
(ent?ent->client->pers.netname:"^3SERVER CONSOLE"),
(*reason) ? "^9 because:
" : "",
(*reason) ? reason : ""));
return qtrue;
}
void Weapon_Medic_Ext(gentity_t *ent, vec3_t viewpos, vec3_t tosspos, vec3_t velocity);
qboolean G_shrubbot_medpack(gentity_t *ent, int skiparg)
{
vec3_t launchspot;
vec3_t launchvel;
int pids[MAX_CLIENTS];
char name[MAX_NAME_LENGTH], err[MAX_STRING_CHARS];
char *reason;
gentity_t *vic;
if(Q_SayArgc() < 2+skiparg)
{
SP("^dmedpack usage: ^2!medpack ^9[name|slot#] [reason]^7
");
return qfalse;
}
Q_SayArgv(1+skiparg, name, sizeof(name));
reason = Q_SayConcatArgs(2+skiparg);
if(ClientNumbersFromString(name, pids) != 1)
{
G_MatchOnePlayer(pids, err, sizeof(err));
SP(va("medpack: %s
", err));
return qfalse;
}
vic = &g_entities[pids[0]];
if(!(vic->client->sess.sessionTeam == TEAM_AXIS || vic->client->sess.sessionTeam == TEAM_ALLIES))
{
SP("^dmedpack: ^9player must be on a team^7
");
return qfalse;
}
if(vic->health < 0 && !(vic->client->ps.pm_flags & PMF_LIMBO)) {
SP(va("^dmedpack: ^7%s ^9need to be alive!^7
", vic->client->pers.netname));
return qfalse;
}
if ( !ent )
return qfalse;
launchvel[0] = crandom();
launchvel[1] = crandom();
launchvel[2] = 0;
VectorScale(launchvel, 100, launchvel);
launchvel[2] = g_packDistance.integer;
// VectorCopy(ent->r.currentOrigin, launchspot);
// Weapon_Medic_Ext(ent, launchspot, launchspot, launchvel);
VectorCopy(vic->r.currentOrigin, launchspot);
Weapon_Medic_Ext(vic, launchspot, launchspot, launchvel);
AP(va("chat \"", vic->client->pers.netname));
CPx(pids[0], va("cp \"%s ^9has give you a medpack^7%s%s\"",
(ent?ent->client->pers.netname:"^3SERVER CONSOLE"),
(*reason) ? "^9 because:
" : "",
(*reason) ? reason : ""));
return qtrue;
}
[/QUOTE]
Already posted code in C to do that.