Limitar un comando?
#1

Tengo este comando, pero estoy queriendo hacer que solo 10 usuarios puedan utilizarlo.
Osea, que vayan al puesto para comprar la inscripcion y que solo los 10 primeros puedan inscribirse

pawn Код:
COMMAND:test(playerid, params[]) {
if(IsPlayerInRangeOfPoint(playerid, 7.0, X,Y,Z))
{
inscripto[playerid] = 1;
SendClientMessage(playerid,COLOR_GRAD1,"Te has inscripto a la carrera.");
    }
return 1;
}


Saludos, gracias
Reply
#2

Код:
new usuarios;
COMMAND:test(playerid, params[]) {
if(IsPlayerInRangeOfPoint(playerid, 7.0, X,Y,Z))
{
   if(usuarios <= 10)
   {

      inscripto[playerid] = 1;
      usuarios++;
      SendClientMessage(playerid,COLOR_GRAD1,"Te has inscripto a la carrera.");
   }
}
return 1;
}
Reply
#3

Ahora probare el codigo, pero tengo otro problema tambien

pawn Код:
CALLBACK: UpdateCountdown() {
    new data[50];
        if(!ActiveCountdown)
        {
                for(new index=0; index<MAX_COUNTDOWN; index++) TextDrawHideForAll(CountdownTD[index]);
                for(new index=0; index<4; index++) DataCountdown[index]=0;
                KillTimer(KillCountdown);
        }
        else
        {
                static CountdownTemp[2];
                DataCountdown[3]--;
                if(DataCountdown[3]>=60) DataCountdown[3]=0, DataCountdown[2]--, CountdownTemp[0]++;
        if(CountdownTemp[0]>=60) CountdownTemp[0]=0, DataCountdown[1]--, CountdownTemp[1]++;
        if(CountdownTemp[1]>=24) CountdownTemp[1]=0, DataCountdown[0]--;
        if(DataCountdown[3]<=0 && DataCountdown[2] >= 1) DataCountdown[2]--, DataCountdown[3]=59; //Faltaba esto, pequeсo error de Otacon.
        if(DataCountdown[2]<=0) DataCountdown[2]=0;
        if(DataCountdown[1]<=0) DataCountdown[1]=0;
        if(DataCountdown[0]<=0) DataCountdown[0]=0;
        format(data,sizeof(data),"%02d:%02d:%02d:%02d",DataCountdown[0],DataCountdown[1],DataCountdown[2],DataCountdown[3]);
        TextDrawSetString(CountdownTD[1],data);
            for(new index=0; index<MAX_COUNTDOWN; index++) \
                TextDrawHideForAll(CountdownTD[index]),\
                TextDrawShowForAll(CountdownTD[index]);
            if(DataCountdown[0]<=0 && DataCountdown[1]<=0 && DataCountdown[2]<=0 && DataCountdown[3]<=0)
                {
                ActiveCountdown=false;
                //CountdownFunction();
if(inscripto[playerid] == 0){

        SendClientMessage( playerid, -1, "No estas inscripto en la carrera, asi que no participaras.");

    }else       {
                ApagarMotor(playerid);
                inscripto[playerid] = 0;
                ResetPlayerWeapons(playerid);
                SendClientMessageToAll(-1, "En segundos comenzara la carrera.");
                SendClientMessage(playerid,COLOR_GRAD1,"[ ! ] Conteo en inicio");
                PlayerPlaySound(playerid,1056,0.0,0.0,0.0);
                TextDrawShowForAll(C3);
                SetTimer("conteo2",1000,0);
                }
               
                    for(new index=0; index<2; index++) \
                        CountdownTemp[index]=0;
                            }
    }
}
Al utilizar ese codigo, no le apaga los autos a los inscriptos si yo no me inscribi.

Osea, si yo me inscribo y el otro tambien, si le apaga el motor
Pero si yo no me inscribi, a el no le apaga ni le muestra el "SendClientMessageToAll(-1, "En segundos comenzara la carrera.");"
Reply
#4

La cosa seria mejor dicho, como hago para que les envie un texto o una funcion SOLO a los inscriptos?
Reply
#5

pawn Код:
new inscriptos[1 char];

public OnPlayerConnect(playerid) {
    inscripto[playerid]  = 0;
}
COMMAND:test(playerid, params[]) {

    if(inscripto[playerid]) return SendClientMessage(playerid,COLOR_GRAD1,"No te has inscripto a la carrera");

    if(inscriptos{0} > 10) return SendClientMessage(playerid,COLOR_GRAD1,"No te has inscripto a la carrera,  muchos incriptos.");

    if(IsPlayerInRangeOfPoint(playerid, 7.0, X,Y,Z))
    {
        inscripto[playerid] = 1;
        inscriptos{0} ++;


        SendClientMessage(playerid,COLOR_GRAD1,"Te has inscripto a la carrera.");
    }
    return 1;
}


Quote:
Originally Posted by benjas09
Посмотреть сообщение
La cosa seria mejor dicho, como hago para que les envie un texto o una funcion SOLO a los inscriptos?
pawn Код:
for(new i; i != MAX_PLAYERS; i++)
    if(inscripto[i])
        SendClientMessage(i, -1, "HAHA INSCRIPTO");
Reply
#6

Gracias bruno, ahora otra cosa їcomo hago para crear una X cantidad de autos segun los inscriptos?
Osea, se inscribieron 6 personas entonces se crearan 6 autos, si se inscriben 4 se crean 4 autos y asi...
Reply
#7

Con un for
Reply
#8

Quote:
Originally Posted by Josstaa
Посмотреть сообщение
Con un for
їcomo seria? un ejemplo, no entiendo como funciona el for
Reply
#9

Quote:
Originally Posted by benjas09
Посмотреть сообщение
їcomo seria? un ejemplo, no entiendo como funciona el for
Para mayor informaciуn puedes consultar la wikipedia https://sampwiki.blast.hk/wiki/Keywords
Reply
#10

Bruno, al crear una variable de 1 char estas creando una variable de 4 bytes igual.

pawn Код:
new var[1 char];
new var;
Es lo mismo.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)