[Duda] Ordenar coordenadas de menor a mayor. -
Swedky - 11.08.2014
Bueno, estaba creando un GM de carreras, en lo que se me ocurriу hacer que detecte cuбl es la posiciуn del jugador en la carrera
(si va primero, segundo, tercero o cuarto
), e hice esto:
pawn Код:
/*
position[...] almacenarнa la ID del jugador (por нndice, o sea, нndice 0 la ID del jugador que va primero, y asн...)
fX, fY, fZ harнan referencia a la posiciуn de la meta de la carrera.
*/
GetPlayersPositionInRace(Race:raceid, position[4], const Float:fX, const Float:fY, const Float:fZ)
{
new Float:player_dist[4];
new idx = -1;
foreach(new i: Race[_:raceid])
{
idx ++;
player_dist[idx] = GetPlayerDistanceFromPoint(i, fX, fY, fZ);
}
return 1;
}
De ahн ya no sй cуmo seguir para ordenar
player_dist de menor a mayor para asн, encontrar quiйn estб mбs cerca de la meta.
Saludos

.
Re: [Duda] Ordenar coordenadas de menor a mayor. -
Unrea1 - 11.08.2014
No se, pensй en algo como crear un rango en la meta, y el que estй mбs cerca del rango de la meta se enumeran por allн del 1 al 5 o como quieras.
Respuesta: [Duda] Ordenar coordenadas de menor a mayor. -
Adoniiz - 11.08.2014
Con tres variables y esta funciуn, lo puedes hacer:
https://sampwiki.blast.hk/wiki/Floatround
pawn Код:
// OnPlayerEnterRaceCheckPoint ...
new var_1, Float:var_2[numero_de_checkpoints], posicion;
var_1++;
var[var_1]++;
posicion = floatround(var_2[var_1], floatround_floor);
No es necesario explicar ya que deberнas saber cуmo funciona tal cуdigo
es sуlo un ejemplo, tu haces lo demas
Respuesta: [Duda] Ordenar coordenadas de menor a mayor. -
Tirael - 11.08.2014
Algo bбsico:
pawn Код:
new Posiciones[3][MAX_PLAYERS];
forward DetectarPosiciones();
public DetectarPosiciones()
{
new string[128], n[MAX_PLAYER_NAME];
for(new i=0; i < MAX_PLAYERS; i++)
{
if(Posiciones[i][0] == 1)
{
format(string, sizeof(string), "Primero %s .", GetPlayerName(i, n, MAX_PLAYER_NAME));
SendClientMessageToAll(-1, string);
}
if(Posiciones[i][1] == 1)
{
format(string, sizeof(string), "Segundo %s .", GetPlayerName(i, n, MAX_PLAYER_NAME));
SendClientMessageToAll(-1, string);
}
if(Posiciones[i][2] == 1)
{
format(string, sizeof(string), "Tercero %s .", GetPlayerName(i, n, MAX_PLAYER_NAME));
SendClientMessageToAll(-1, string);
}
}
return 1;
}
Tendrнas que desarrollarlo.
Respuesta: [Duda] Ordenar coordenadas de menor a mayor. -
Swedky - 11.08.2014
No creo que me entendieron. Pasa que yo obtengo la distancia de los jugadores hasta la meta, de ahн ordeno esos valores de menor a mayor y extraigo la ID
(almacenбndolo en
position ). Asн como en el NFS.
Respuesta: [Duda] Ordenar coordenadas de menor a mayor. -
DesingMyCry - 11.08.2014
Revisa esto: https://sampforum.blast.hk/showthread.php?tid=458132
Respuesta: [Duda] Ordenar coordenadas de menor a mayor. -
Swedky - 11.08.2014
Quote:
Originally Posted by DesingMyCry
|
No habнa pensado en eso, pero, no funciona con flotantes
Respuesta: [Duda] Ordenar coordenadas de menor a mayor. -
Parka - 11.08.2014
Quote:
Originally Posted by EnzoMetlc
No habнa pensado en eso, pero, no funciona con flotantes 
|
usa
floatround, si son enteros a flotante usas
float.
Respuesta: [Duda] Ordenar coordenadas de menor a mayor. -
DesingMyCry - 12.08.2014
Tienes razуn, no me habia percatado de ese detalle cuando lo creй. Haber si actualizo.
Respuesta: [Duda] Ordenar coordenadas de menor a mayor. -
Nicolas_Castillo - 12.08.2014
La burbuja sera tu nuevo dios!!!
http://es.wikipedia.org/wiki/Ordenamiento_de_burbuja
Espero te sirva.