"/getall" problem!
#1

Hi!

I've scripted the following command:

pawn Код:
CMD:getall(playerid,params[])
{
    if(PlayerInfo[playerid][pAdmin] >= 7)
    {
        new Float:x,Float:y,Float:z, interior = GetPlayerInterior(playerid);
        GetPlayerPos(playerid,x,y,z);
        for(new i = 0; i < MAX_PLAYERS; i++)
            {
                if(IsPlayerConnected(i) && (i != playerid))
                {
                    if(i == 0) return SendClientMessage(playerid, COLOR_RED, "No players online!");
                    PlayerPlaySound(i,1057,0.0,0.0,0.0);
                    SetPlayerPos(i,x+(playerid/4)+1,y+(playerid/4),z);
                    SetPlayerInterior(i,interior);
                }
            }
        new string[128];
        format(string,sizeof(string),"|| Administrator %s has teleported all players! ||", Name(playerid));
        SendClientMessageToAll(COLOR_LIGHTBLUE, string);
    }
    else return SendClientMessage(playerid,COLOR_RED,"You need to be level 7 to use that command!");
    return 1;
}
When no players except me are online, it should return a message with "No players online!". But it doesn't, instead of it, it shows the message that I've teleported all players!
Reply
#2

You should create a var,
Код:
new pCount;
and in the loop
Код:
if(IsPlayerConnected(i))
   pCount++;
and after the loop
Код:
if(pCount == 0) SendClientMessage(playerid,color,"No players online!");
Reply
#3

What's the difference if I'm creating the variable "i" and count it with '++' or if I'm creating the variable "pCount" and count it with '++'? I just did the same in my first post, just with another name!
Reply
#4

Код:
CMD:getall(playerid,params[])
{
    if(PlayerInfo[playerid][pAdmin] >= 7)
    {
        new Float:x,Float:y,Float:z, interior = GetPlayerInterior(playerid);
        GetPlayerPos(playerid,x,y,z);
        new pCount;
        for(new i = 0; i < MAX_PLAYERS; i++)
            {
                    if(!IsPlayerConnected(i) || i == playerid) continue;
                    pCount++;
                    PlayerPlaySound(i,1057,0.0,0.0,0.0);
                    SetPlayerPos(i,x+(playerid/4)+1,y+(playerid/4),z);
                    SetPlayerInterior(i,interior);
            }
		if(pCount == 0) return SendClientMessage(playerid,COLOR_RED,"No players online!");
        new string[128];
        format(string,sizeof(string),"|| Administrator %s has teleported all players! ||", Name(playerid));
        SendClientMessageToAll(COLOR_LIGHTBLUE, string);
    }
    else return SendClientMessage(playerid,COLOR_RED,"You need to be level 7 to use that command!");
    return 1;
}
there, thats your code.
Reply
#5

What the hell is this line?

pawn Код:
if(!IsPlayerConnected(i) || i == playerid) continue;
If the player isn't connected and 'i' is myself it should continue?
Reply
#6

Yeah, if the player isn't connected, or is you, then it skips to the next player and doesn't add to pCount.
Reply
#7

Thanks, it worked!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)