/*
Une forme de foreach (players) crée par les developeurs de Street-Kings (Minimicro et Coboll)
Foreach de Y_Less fonctionne exactement sur le même principe !
*/
new gMaxPlayers = 0;
public OnPlayerConnect(playerid)
{
if(gMaxPlayers < playerid) { gMaxPlayers = playerid;}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
if(playerid == gMaxPlayers)
{
for(new i = gMaxPlayers-1; i >= 0; i--)
{
if(IsPlayerConnected(i))
{gMaxPlayers = i; break;}
}
}
return 1;
}
/*
Basé sur l'exemple de Ruto envoyé sur le sujet "Pawn Essentials".
Un simple ProxDetectot et une fonction de ma conception.
*/
stock ProxDetector(playerid, targetid,Float:range)
{
if(!(IsPlayerConnected(playerid) || IsPlayerConnected(targetid)) || playerid == targetid)
return 0;
if(GetPlayerVirtualWorld(playerid) != GetPlayerVirtualWorld(targetid))
return 0;
new Float:posX, Float:posY, Float:posZ;
GetPlayerPos(playerid, posX, posY, posZ);
return IsPlayerInRangeOfPoint(targetid, range, posX, posY, posZ);
}
/*
Nécessite le premier code partagé dans ce message
*/
stock ProxDetectorEx(playerid, range)
{
new nearPlayers[MAX_PLAYERS+1];
for(new i = 0; i <= gMaxPlayers; i++)
{
if(ProxDetector(playerid, i, range))
format(nearPlayers, sizeof(nearPlayers), "%s%i", nearPlayers, i);
}
return nearPlayers;
}
/*
Chaque cellule de nearPlayers[] vaux l'ID d'un joueur proche.
La cellule qui vaux "\0" (caractère spéciale de fin de chaîne de caractère) est celle qui suis la dernière cellule contenant un ID de joueur.
*/
Comments
0 B
|👍
/👎