stock SearchPlayerWhitHighPoints()
{
new Value = -1;
new player = -1;
new Float:Var;
foreach(new i: Player)
{
Var = PlayerInfo[i][RadarSpeed]; // Los puntos serнa 'PlayerInfo[i][RadarSpeed]'.
if(Var > Value)
{
player = i;
}
}
return player;
}
explicate un poco mas, como con mas puntos?, explica un poco para que quieres la funcion.
|
static PuntosPlayers[MAX_PLAYERS],
SumandoPuntosPlayers[MAX_PLAYERS];
SumandoPuntosPlayers[playerid]++;
PuntosPlayers[playerid] = VELOCIDAD * SumandoPuntosPlayers[playerid];
stock SearchPlayerWhitHighPoints(puntosMAX){
new puntos=0;
foreach(new user: Player){
if(PuntosPlayers[user] > puntosMAX){
puntos = user;
}
} return puntos;
}
stock SearchPlayerWhitHighPoints(puntosMAX){
new puntos=0, contar=0;
foreach(new user: Player){
if(PuntosPlayers[user] > puntosMAX){
puntos = user;
contar++;
}
}
if(contar == 1) return puntos;
else if(contar > 1) return -1;
}
stock SearchPlayerWhitHighPoints()
{
new Value = -1;
new player = -1;
new Float:Var;
foreach(new i: Player)
{
Var = PlayerInfo[i][RadarSpeed]; // Los puntos serнa 'PlayerInfo[i][RadarSpeed]'.
if(Var > Value)
{
Value = floatround(Var); // esto, ademбs se convierte el float con floatround para evitar "tag mismatch"
player = i;
}
}
return player;
}
stock SearchPlayerWhitHighPoints()
{
new
tmp,
Float:val;
foreach(new i : Player)
{
if(PlayerInfo[i][RadarSpeed] > val)
{
tmp = i;
val = PlayerInfo[i][RadarSpeed];
}
}
return tmp;
}
Esta forma es un poco mas rбpida ya que evitas asignaciones extra. (Si quieres una versiуn aun mas optimizada, te sugiero utilizar el algoritmo bubblesort, u otros algoritmos de bъsqueda)
pawn Код:
|
stock SearchPlayerWhitHighPoints()
{
new
tmp,
Float:val; //xa se xrea cuando utiliza SearchPlayerWhitHighPoints
foreach(new i : Player)
{
if(PlayerInfo[i][RadarSpeed] > val) //aca estaria en 0.0 la variable val
{
tmp = i;
val = PlayerInfo[i][RadarSpeed]; //aca le establetemos el valor de la variable RadarSpeed a la variable val, pero despues no se usa o_O.
}
}
return tmp;
}
stock SearchPlayerWhitHighPoints(){
new puntos=0;
foreach(new user: Player){
if(PlayerInfo[user][RadarSpeed] > puntosMAX){
puntos = user;
}
} return puntos;
}
stock SearchPlayerWhitHighPoints(){
new puntos=0, contar=0;
foreach(new user: Player){
if(PlayerInfo[user][RadarSpeed] > puntosMAX){
contar++;
puntos = user;
}
}
if(contar == 1) return puntos;
else if(contar > 1) return INVALID_PLAYER_ID;
}