Call of Duty 4: Useful Functions

From COD Modding & Mapping Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.


NOTE: These scripts are only adding functionality into game. They do not add things such as mines, artillery, kaboom etc...

Returns array of all players on the server.

getAllPlayers()
{
	return getEntArray( "player", "classname" );
}

Play local sound on all players.

playSoundOnAllPlayers( soundAlias )
{
	players = getAllPlayers();
	for( i = 0; i < players.size; i++ )
		players[i] playLocalSound( soundAlias );
}

Removes all text messages from screen.

cleanScreen()
{
	for( i = 0; i < 6; i++ )
	{
		iPrintlnBold( " " );
		iPrintln( " " );
	}
}

Delete object after time.

deleteAfterTime( time )
{
	wait time;
	if( isDefined( self ) )
		self delete();
}

Return BOOL (true of false) when player is really alive and playing.

Note: CoD's isAlive() function seems to be bugged.

isReallyAlive()
{
	return self.sessionstate == "playing";
}

isPlaying()
{
	return isReallyAlive();
}

Toggle third person camera.

thirdPerson()
{
	if( isDefined( self.tp ) )
	{
		self.tp = undefined;
		self setClientDvar( "cg_thirdPerson", 0 );
	}
	else
	{
		self.tp = true;
		self setClientDvar( "cg_thirdPerson", 1 );
	}
}

Waits for enough players to start game.

// Use: waitForPlayers( 3 ); Code after this function call will be executed when there is required number of alive players.
waitForPlayers( requiredPlayersCount )
{
	for(;;)
	{
		wait 0.5;
		count = 0;
		players = getAllPlayers();
		for( i = 0; i < players.size; i++ )
			if( players[i] isPlaying() )
				count++;

		if( count >= requiredPlayersCount )
			break;
	}
}

Return player with that nick name or its part.

getPlayerByName( nickname ) 
{
	players = getAllPlayers();
	for ( i = 0; i < players.size; i++ )
		if ( isSubStr( toLower(players[i].name), toLower(nickname) ) ) 
			return players[i];
}

Return player with that slot number.

getPlayerByNum( pNum ) 
{
	players = getAllPlayers();
	for ( i = 0; i < players.size; i++ )
		if ( players[i] getEntityNumber() == pNum ) 
			return players[i];
}

Return true when victim was killed through world geometry.

isWallBang( attacker, victim )
{
	return !bulletTracePassed( attacker getEye(), victim getEye(), false, attacker );
}

Feel free to use these functions in your own mod. Just remember to put "Brax" in credits.

By Brax - Sources

--Zeroy 12:36, 13 May 2011 (IST)