їDetectar quien tiene mas en x cosa?
#1

Hola a todos, la duda que tengo es cual seria la forma o la funciуn que me ayude a determinar quien tiene mas en algo, como por ejemplo, detectar quien tiene mas dinero en el servidor (en mi servidor Info[playerid][pMoney], la cosa es que mi servidor tiene paintball, pero necesito que al final diga quien fue el ganador, y para eso obviamente el servidor tendrб que determinar quien fue el jugador con mas puntos, y eso es lo que no se hacer, muchнsimas gracias!
Reply
#2

Para chequear quien tiene mas puntos debes de tener un nъmero especifico que cuando llegue a X puntos gane.

algo asн:

pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
    // demas funciones..
    if(var_esta_en_paintball[playerid] == 1)
    {
        new conteo, ganador;
        for(new i = 0; i < MAX_PLAYERS; i++)
        {
            if(var_esta_en_paintball[i] == 1) // SI el jugador esta en el paintball
            {
                if(el_jugador_tiene_puntos[i] >= 30) // SI el jugador tiene 30 puntos o mбs
                {
                    conteo++; // conteo que se suma cada vez que el loop pasa por el nъmero establecido (MAX_PLAYERS = 500 por defecto)
                    ganador = i;
                }
            }
            if(conteo > 1) break; // SI El conteo es de mas de un jugador, se corta la funciуn y sigue
        }
        if(conteo == 1) // si el conteo es 1, declara al ganador.
        {
            SendClientMessage(ganador, -1, "Eres el ganador del paintball...");
            // demas funciones...
        }
    }
    // demas funciones
    return 1;
}
Y si no, haces un Timer segun el tiempo que quieras que esten en el paintball, chequeas con un loop a los que estan dentro del paintball y si alguien tiene mas puntos. Das al ganador, yo sуlo te dн una base mas optimizada en cuanto a usar un Timer...
Reply
#3

Muchas gracias bro, ese cуdigo me resolviу unas cuantas dudas que tenia, aunque quisiera que me dijeras como podrнa hacer para que el sv detecte quien tiene mas puntos, eso es la ъnica cosa que me tiene loco ahora porque quiero hacer lo que dices de hacer un timer para que la partida del paintball finalice en x tiempo, pero para eso necesito saber como detectar quien tiene mas puntaje muchas gracias!
Reply
#4

pawn Код:
#define NOEXISTE (-1)

forward DetectarGanador();
public DetectarGanador()
{
    new puntos, ganador;
    ganador = NOEXISTE;
    for(new i=0; i<MAX_PLAYERS; i++)
    {
        if(PuntosPaintball[i] > puntos)
        {
            puntos = PuntosPaintball[i];
            ganador = i;
        }
    }
   
    if(ganador == NOEXISTE) SetTimer("DetectarGanador", 60000, false); //Si no hay ganador vuelve a activar el timer de la funciуn
}
Cuando salga del paintball tendrбs que setear sus puntos a 0 para que no hayan errores.

Decir tambiйn que en caso de que hayan 2 o mбs jugadores con los mismos puntos, el ganador serнa el que tuviese la ID mбs baja, asн que eso tendrбs que arreglarlo tъ.
Reply
#5

Amigo, es simple nesesitas esta funcion, aquui esta el tutorial de como usarlo tambien

https://sampforum.blast.hk/showthread.php?pid=1792412#pid1792412

Saludos (Y)
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)