Dosnt show online family
#1

Hello people

my server has this cmd, which should only show the online members of the family. But instead it shows everybody who is online. Can you guys please help me fix it? Thanks.

Код:
CMD:families(playerid, params[])
{
 new string[128], familyid;

 if(sscanf(params, "d", familyid))
 {
  new number = 0;
  for(new i = 0; i < sizeof(FamilyInfo); i++)
  {
   number ++;
      if(FamilyInfo[i][FamilyTurfTokens] < 12)
   {
    format(string, sizeof(string), "Family %d | Name: %s | Leader: %s | Members: %d | Claim Tokens: 0.",number,FamilyInfo[i][FamilyName],FamilyInfo[i][FamilyLeader],FamilyInfo[i][FamilyMembers]);
   }
   else
   {
    format(string, sizeof(string), "Family %d | Name: %s | Leader: %s | Members: %d | Claim Tokens: %d.",number,FamilyInfo[i][FamilyName],FamilyInfo[i][FamilyLeader],FamilyInfo[i][FamilyMembers],FamilyInfo[i][FamilyTurfTokens]/12);
   }
   SendClientMessageEx(playerid, COLOR_WHITE, string);
  }
  return 1;
 }

 if(familyid < 1 || familyid > MAX_FAMILY) { SendClientMessageEx(playerid, COLOR_GREY, "Family slot must be between 1 and 14."); return 1; }
 familyid -= 1;
 if(FamilyInfo[familyid][FamilyTaken] != 1)
 {
  SendClientMessageEx(playerid, COLOR_GREY, "That family slot is empty.");
  return 1;
 }
 foreach(Player, i)
 {

   if(PlayerInfo[i][pRank] == 1)
   {
    format(string, sizeof(string), "* %s: %s | Rank: %s (1).",FamilyInfo[familyid][FamilyName],GetPlayerNameEx(i),FamilyInfo[familyid][FamilyRank1]);
   }
   else if(PlayerInfo[i][pRank] == 2)
   {
    format(string, sizeof(string), "* %s: %s | Rank: %s (2).",FamilyInfo[familyid][FamilyName],GetPlayerNameEx(i),FamilyInfo[familyid][FamilyRank2]);
   }
   else if(PlayerInfo[i][pRank] == 3)
   {
    format(string, sizeof(string), "* %s: %s | Rank: %s (3).",FamilyInfo[familyid][FamilyName],GetPlayerNameEx(i),FamilyInfo[familyid][FamilyRank3]);
   }
   else if(PlayerInfo[i][pRank] == 4)
   {
    format(string, sizeof(string), "* %s: %s | Rank: %s (4).",FamilyInfo[familyid][FamilyName],GetPlayerNameEx(i),FamilyInfo[familyid][FamilyRank4]);
   }
   else if(PlayerInfo[i][pRank] == 5)
   {
    format(string, sizeof(string), "* %s: %s | Rank: %s (5).",FamilyInfo[familyid][FamilyName],GetPlayerNameEx(i),FamilyInfo[familyid][FamilyRank5]);
   }
   else if(PlayerInfo[i][pRank] == 6)
   {
    format(string, sizeof(string), "* %s: %s | Rank: %s (6).",FamilyInfo[familyid][FamilyName],GetPlayerNameEx(i),FamilyInfo[familyid][FamilyRank6]);
   }
   else
   {
    format(string, sizeof(string), "* %s: %s | Rank: %s.",FamilyInfo[familyid][FamilyName],GetPlayerNameEx(i),FamilyInfo[familyid][FamilyRank1]);
   }
   SendClientMessageEx(playerid, COLOR_GREY, string);

 }
 return 1;
}
Reply
#2

pawn Код:
CMD:families(playerid, params[])
{
    new familyid;
    if(sscanf(params, "d", familyid))
    {
        new string[128];
        for(new i = 0; i < sizeof(FamilyInfo); i++)
        {
            format(string, sizeof(string), "Family %d | Name: %s | Leader: %s | Members: %d | Claim Tokens: 0.", i, FamilyInfo[i][FamilyName], FamilyInfo[i][FamilyLeader], FamilyInfo[i][FamilyMembers], (FamilyInfo[i][FamilyTurfTokens] < 12) ? (0) : (FamilyInfo[i][FamilyTurfTokens] / 12));
            SendClientMessageEx(playerid, COLOR_WHITE, string);
        }
        return 1;
    }
    if(!(0 < familyid < MAX_FAMILY)) return SendClientMessageEx(playerid, COLOR_GREY, "Family slot must be between 1 and 14.");
    familyid -= 1;
    if(!FamilyInfo[familyid][FamilyTaken]) return SendClientMessageEx(playerid, COLOR_GREY, "That family slot is empty.");
    new string[100], fstr[25];
    foreach(Player, i)
    {
        //Check if player is actually in the family here?
        format(string, sizeof(string), "* %s: %s | Rank: ", FamilyInfo[familyid][FamilyName], GetPlayerNameEx(i));
        switch(PlayerInfo[i][pRank])
        {
            case 1: format(fstr, sizeof(fstr), "%s (1).", FamilyInfo[familyid][FamilyRank1]);
            case 2: format(fstr, sizeof(fstr), "%s (2).", FamilyInfo[familyid][FamilyRank2]);
            case 3: format(fstr, sizeof(fstr), "%s (3).", FamilyInfo[familyid][FamilyRank3]);
            case 4: format(fstr, sizeof(fstr), "%s (4).", FamilyInfo[familyid][FamilyRank4]);
            case 5: format(fstr, sizeof(fstr), "%s (5).", FamilyInfo[familyid][FamilyRank5]);
            case 6: format(fstr, sizeof(fstr), "%s (6).", FamilyInfo[familyid][FamilyRank6]);
            default: continue;
        }          
        strcat(string, fstr);
        SendClientMessageEx(playerid, COLOR_GREY, string);
    }
    return 1;
}
You need to add checks to see whether the player is actually in the 'familyid' family... otherwise it's just going to go through all players regardless.
Reply
#3

How to do this, i'm new to scripting and im trying to learn. So it should be something like "IsPlayerfam"?

I really appetiate all help.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)