mirror of
https://github.com/UberGames/RPG-X2-rpgxEF.git
synced 2024-11-15 00:51:42 +00:00
101 lines
2.6 KiB
C
101 lines
2.6 KiB
C
/**
|
|
* Get a random player that becomes action hero
|
|
*/
|
|
void G_RandomActionHero( int ignoreClientNum )
|
|
{
|
|
//int /*i,*/ numConnectedClients = 0;
|
|
//int ahCandidates[MAX_CLIENTS];
|
|
|
|
if ( g_doWarmup.integer )
|
|
{
|
|
if ( level.warmupTime != 0 )
|
|
{
|
|
if ( level.warmupTime < 0 || level.time - level.startTime <= level.warmupTime )
|
|
{//don't choose one until warmup is done
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else if ( level.time - level.startTime <= 3000 )
|
|
{//don't choose one until 3 seconds into the game
|
|
return;
|
|
}
|
|
|
|
//if ( g_pModActionHero.integer != 0 )
|
|
//{
|
|
// for ( i = 0; i < level.maxclients; i++ )
|
|
// {
|
|
// if ( i == ignoreClientNum )
|
|
// {
|
|
// continue;
|
|
// }
|
|
|
|
// if ( level.clients[i].pers.connected != CON_DISCONNECTED )
|
|
// {
|
|
// //note: these next few checks will mean that the first player to join (usually server client if a listen server) when a new map starts is *always* the AH
|
|
// if ( &g_entities[i] != NULL && g_entities[i].client != NULL )
|
|
// {
|
|
// if ( level.clients[i].sess.sessionClass != PC_ACTIONHERO )
|
|
// {
|
|
// if ( level.clients[i].sess.sessionTeam != TEAM_SPECTATOR )
|
|
// {
|
|
// ahCandidates[numConnectedClients++] = i;
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// if ( !numConnectedClients )
|
|
// {//WTF?!
|
|
// return;
|
|
// }
|
|
// else
|
|
// {
|
|
// actionHeroClientNum = ahCandidates[ irandom( 0, (numConnectedClients-1) ) ];
|
|
// }
|
|
//}
|
|
}
|
|
|
|
void INeedAHero( void )
|
|
{
|
|
//G_RandomActionHero( actionHeroClientNum );
|
|
if ( actionHeroClientNum >= 0 && actionHeroClientNum < level.maxclients )
|
|
{// get and distribute relevent paramters
|
|
ClientUserinfoChanged( actionHeroClientNum );
|
|
ClientSpawn( &g_entities[actionHeroClientNum], 0, qfalse );//RPG-X: RedTechie - Modifyed
|
|
}//else ERROR!!!
|
|
}
|
|
|
|
/**
|
|
* Check wheter to replace the current action hero
|
|
*/
|
|
void G_CheckReplaceActionHero( int clientNum )
|
|
{
|
|
if ( clientNum == actionHeroClientNum )
|
|
{
|
|
//G_RandomActionHero( clientNum );
|
|
if ( actionHeroClientNum >= 0 && actionHeroClientNum < level.maxclients )
|
|
{
|
|
// get and distribute relevent paramters
|
|
ClientUserinfoChanged( actionHeroClientNum );
|
|
ClientSpawn( &g_entities[actionHeroClientNum], 0, qfalse );//RPG-X: RedTechie - Modifyed
|
|
}//else ERROR!!!
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Check whether borgqueen should be replaced
|
|
*/
|
|
void G_CheckReplaceQueen( int clientNum )
|
|
{
|
|
if ( clientNum == borgQueenClientNum )
|
|
{
|
|
G_RandomBorgQueen( clientNum );
|
|
if ( borgQueenClientNum >= 0 && borgQueenClientNum < level.maxclients )
|
|
{
|
|
// get and distribute relevent paramters
|
|
ClientUserinfoChanged( borgQueenClientNum );
|
|
ClientSpawn( &g_entities[borgQueenClientNum], 0, qfalse );//RPG-X: RedTechie - Modifyed
|
|
}//else ERROR!!!
|
|
}
|
|
}
|