Call of Duty 4: Useful Functions: Difference between revisions

From COD Modding & Mapping Wiki
Jump to navigation Jump to search
mNo edit summary
(Small optimizations)
 
Line 20: Line 20:
players = getAllPlayers();
players = getAllPlayers();
for( i = 0; i < players.size; i++ )
for( i = 0; i < players.size; i++ )
{
players[i] playLocalSound( soundAlias );
players[i] playLocalSound( soundAlias );
}
}
}
</syntaxhighlight>
</syntaxhighlight>
Line 57: Line 55:
isReallyAlive()
isReallyAlive()
{
{
if( self.sessionstate == "playing" )
return self.sessionstate == "playing";
return true;
else
return false;
}
}
</syntaxhighlight>


isPlaying()
isPlaying()
Line 75: Line 69:
thirdPerson()
thirdPerson()
{
{
if( !isDefined( self.tp ) )
if( isDefined( self.tp ) )
{
{
self.tp = true;
self.tp = undefined;
self setClientDvar( "cg_thirdPerson", 1 );
self setClientDvar( "cg_thirdPerson", 0 );
}
}
else
else
{
{
self.tp = undefined;
self.tp = true;
self setClientDvar( "cg_thirdPerson", 0 );
self setClientDvar( "cg_thirdPerson", 1 );
}
}
}
}
Line 94: Line 88:
waitForPlayers( requiredPlayersCount )
waitForPlayers( requiredPlayersCount )
{
{
quit = false;
for(;;)
while( !quit )
{
{
wait 0.5;
wait 0.5;
Line 101: Line 94:
players = getAllPlayers();
players = getAllPlayers();
for( i = 0; i < players.size; i++ )
for( i = 0; i < players.size; i++ )
{
if( players[i] isPlaying() )
if( players[i] isPlaying() )
count++;
count++;
}


if( count >= requiredPlayersCount )
if( count >= requiredPlayersCount )
Line 119: Line 110:
players = getAllPlayers();
players = getAllPlayers();
for ( i = 0; i < players.size; i++ )
for ( i = 0; i < players.size; i++ )
{
if ( isSubStr( toLower(players[i].name), toLower(nickname) ) )  
if ( isSubStr( toLower(players[i].name), toLower(nickname) ) )  
{
return players[i];
return players[i];
}
}
}
}
</syntaxhighlight>
</syntaxhighlight>
Line 135: Line 122:
players = getAllPlayers();
players = getAllPlayers();
for ( i = 0; i < players.size; i++ )
for ( i = 0; i < players.size; i++ )
{
if ( players[i] getEntityNumber() == pNum )  
if ( players[i] getEntityNumber() == pNum )  
return players[i];
return players[i];
}
}
}
</syntaxhighlight>
</syntaxhighlight>
Line 147: Line 132:
isWallBang( attacker, victim )
isWallBang( attacker, victim )
{
{
start = attacker getEye();
return !bulletTracePassed( attacker getEye(), victim getEye(), false, attacker );
end = victim getEye();
if( bulletTracePassed( start, end, false, attacker ) )
return false;
return true;
}
}
</syntaxhighlight>
</syntaxhighlight>

Latest revision as of 15:53, 23 February 2012


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)