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 = 0, Float:Vida;
for(new i=0; i < MAX_PLAYERS; i++)
{
GetPlayerHealth(i, Vida);
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 = 0, Float:Vida;
for(new i=0; i < MAX_PLAYERS; i++)
{
GetPlayerHealth(i, Vida);
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.