Players Vivos
#1

Hola a todos.

Estaba haciendo un mini-juego y me falta una cosita.
Necesito comprobar los usuarios que escribieron un comando por ejemplo /minijuego. Yo hice un script que te deja ingresar el comando /minijuegos solo por un tiempo. Y quiero contar los usuarios que ingresaron el comando y cada vez que muera un usuario que ingreso ese comando descuente un jugador del total. Y cuando solo quede 1 jugador de los cuales ingresaron el comando diga un mnensaje que diga.

Pepito gano el mini_juego


Gracias.
Reply
#2

Al principio del GM junto a los demбs new:

pawn Код:
new JugadorEnElMinijuego[MAX_PLAYERS];
Junto con las demбs funciones que se activan al poner el comando:

pawn Код:
JugadorEnElMinijuego[playerid] = 1;
Dentro de "OnPlayerDeath":

pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
    if(JugadorEnElMinijuego[playerid])
    {
        JugadorEnElMinijuego[playerid] = 0;
    }
    return 1;
}
Dentro de "OnPlayerConnect":

pawn Код:
public OnPlayerConnect(playerid)
{
    JugadorEnElMinijuego[playerid] = 0;
    return 1;
}
Ahora te voy a preparar un comando para saber cuбntos jugadores hay en el minijuego:

pawn Код:
if (strcmp("/contarjugminijuego", cmdtext, true) == 0)
    {
        new jugadoresmini = 0;
        for(new i = 0; i < MAX_PLAYERS; i++)
        {
            if(IsPlayerConnected(i) && JugadorEnElMinijuego[i])
            {
                jugadoresmini++;
            }
        }
        new string[200];
        format(string,sizeof(string),"Se han contado %i jugadores dentro del minijuego",jugadoresmini);
        SendClientMessage(playerid,-1,string);
        return 1;
    }
Si no te funciona algo o quieres saber por quй uso alguna cosita, por favor dнmelo. Yo creo que es bastante simple.

Saludos.
Reply
#3

Gracias por los scripts. Hasta hay se me hace facil. Lo que no sabia hacer era el de ver los jugadores en el minijuego. Ah vace de ese comando. Como deberia hacer yo para que cuando aya 1 solo jugador en JugadorEnElMiniJuego[layerid]=1; ejecute una acion. Por ejemplo diga un mensaje. Pepito gano el mini-juego y GivePlayerMoney(playerid, 100);

Como lo deberia hacer?
Reply
#4

Podrнas hacer asн:

pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
    if(JugadorEnElMinijuego[playerid])
    {
        JugadorEnElMinijuego[playerid] = 0;
        new count, ganador;
        for(new i = 0; i < MAX_PLAYERS; i++)
        {
            if(JugadorEnElMinijuego[i])
            {
                count++;   
                ganador = i;
            }
            if(count > 1) break;
        }
        if(count == 1)
        {
            SendClientMessage(ganador, -1, "Has ganado.");
            // tus otras acciones.
        }
    }
    return 1;
}
Reply
#5

mmm.. Voy a probar ojala funcione.
Reply
#6

todo ese desastre de variables se puede evitar con un simple for, y un if comprobando la vida los jugadores xd
Reply
#7

Quote:
Originally Posted by NeuZz
Посмотреть сообщение
todo ese desastre de variables se puede evitar con un simple for, y un if comprobando la vida los jugadores xd
Con eso sуlo no haces nada, їcуmo compruebas con la vida en donde estб?
Reply
#8

que tal asi:

PHP код:
stock ReturnJugadoresVivosenMinijuego()
{
    new 
count 0Float:Vida;
    for(new 
i=0MAX_PLAYERSi++)
    {
            
GetPlayerHealth(iVida);
            if(
Vida 0.0)
            {
                if(
EnMinijuego[i] == true)
                {
                    
count++;
                }
            }
    }
    return 
count;

y retornara en un numero entero con el resultado de todos los jugadores vivos que estan en el minijuego.


PD: cekit no seas creido, no por saber mysql y php te comes al mundo.
Reply
#9

Gracias a todos.

PD: Neuz yo dije avanzado por que sabia mucho
Reply
#10

Quote:
Originally Posted by NeuZz
Посмотреть сообщение
que tal asi:

PHP код:
stock ReturnJugadoresVivosenMinijuego()
{
    new 
count 0Float:Vida;
    for(new 
i=0MAX_PLAYERSi++)
    {
            
GetPlayerHealth(iVida);
            if(
Vida 0.0)
            {
                if(
EnMinijuego[i] == true)
                {
                    
count++;
                }
            }
    }
    return 
count;

y retornara en un numero entero con el resultado de todos los jugadores vivos que estan en el minijuego.
Al morir los saca del minijuego, no es necesario lo de la vida.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)