SA-MP Forums Archive
Dosnt show online family - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Dosnt show online family (/showthread.php?tid=522907)



Dosnt show online family - burgermike - 29.06.2014

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



Re: Dosnt show online family - Threshold - 30.06.2014

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.


Re: Dosnt show online family - burgermike - 30.06.2014

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.