Call of Duty 4: Useful Functions: Difference between revisions

From COD Modding & Mapping Wiki
Jump to navigation Jump to search
(Created page with "<br> Image:Warning.png <font color="red">NOTE: These scripts are only adding functionality into game. They do not add things such as mines, artillery, kaboom etc...</font col...")
 
(Small optimizations)
 
(One intermediate revision by one other user not shown)
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>


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


By Brax - [http://modsonline.com/Forums-top-140965-0.html#737400 Sources]
By Brax - [http://modsonline.com/Forums-top-140965-0.html#737400 Sources]

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)