SA-MP Forums Archive
Players Vivos - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: Players Vivos (/showthread.php?tid=409470)



Players Vivos - CeKiT - 21.01.2013

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.


Respuesta: Players Vivos - PHudson - 21.01.2013

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.


Re: Players Vivos - CeKiT - 21.01.2013

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?


Respuesta: Players Vivos - [J]ulian - 21.01.2013

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;
}



Re: Players Vivos - CeKiT - 21.01.2013

mmm.. Voy a probar ojala funcione.


Respuesta: Players Vivos - NeuZz - 22.01.2013

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


Respuesta: Players Vivos - [J]ulian - 22.01.2013

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б?


Respuesta: Players Vivos - NeuZz - 22.01.2013

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.


Re: Players Vivos - CeKiT - 22.01.2013

Gracias a todos.

PD: Neuz yo dije avanzado por que sabia mucho


Respuesta: Players Vivos - [J]ulian - 22.01.2013

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.