Call of Duty 4: Useful Functions: Difference between revisions
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() | ||
{ | { | ||
return self.sessionstate == "playing"; | |||
} | } | ||
isPlaying() | isPlaying() | ||
Line 75: | Line 69: | ||
thirdPerson() | thirdPerson() | ||
{ | { | ||
if( | if( isDefined( self.tp ) ) | ||
{ | { | ||
self.tp = | self.tp = undefined; | ||
self setClientDvar( "cg_thirdPerson", | self setClientDvar( "cg_thirdPerson", 0 ); | ||
} | } | ||
else | else | ||
{ | { | ||
self.tp = | self.tp = true; | ||
self setClientDvar( "cg_thirdPerson", | self setClientDvar( "cg_thirdPerson", 1 ); | ||
} | } | ||
} | } | ||
Line 94: | Line 88: | ||
waitForPlayers( requiredPlayersCount ) | waitForPlayers( requiredPlayersCount ) | ||
{ | { | ||
for(;;) | |||
{ | { | ||
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 ) | ||
{ | { | ||
return !bulletTracePassed( attacker getEye(), victim getEye(), false, attacker ); | |||
} | } | ||
</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)