Advertisement
Guest User

8D's Friendslist.inc

a guest
Jun 14th, 2010
597
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.06 KB | None | 0 0
  1. /*
  2.  
  3.         FriendSystem by 8D.
  4.  
  5. */
  6.  
  7. #include <a_samp>
  8.  
  9. #define MAX_PLAYER_FRIENDS 25 // Diese Zahl bestimmt, wieviele Freunde ein Spieler haben darf.
  10.  
  11. #define COLOR_RED 0xCC0000AA
  12. #define COLOR_GREEN 0x33AA33AA
  13. #define COLOR_LIGHTGREEN 0x9ACD32AA
  14.  
  15.  
  16.  
  17.    
  18.  
  19. new Freunde[MAX_PLAYERS][MAX_PLAYER_FRIENDS][MAX_PLAYER_NAME];
  20. new PlayerName[MAX_PLAYERS][MAX_PLAYER_NAME];
  21. new string[256];
  22.  
  23. stock Freund_Connect(playerid)
  24. {
  25.     GetPlayerName(playerid,PlayerName[playerid],MAX_PLAYER_NAME);
  26.     for(new f = 0; f < MAX_PLAYER_FRIENDS; f++)
  27.     {
  28.         strmid(Freunde[playerid][f],"0",0,1);
  29.     }
  30. }
  31.  
  32. stock Freund_Login(playerid)
  33. {
  34.     for(new f = 0; f < MAX_PLAYER_FRIENDS; f++)
  35.     {
  36.         if(strcmp(Freunde[playerid][f],"0",true) != 0)
  37.         {
  38.             if(GetIdByName(Freunde[playerid][f]) != -1)
  39.             {
  40.                 format(string,128,"Dein Freund %s hat den Server betreten.",PlayerName[playerid]);
  41.                 SendClientMessage(GetIdByName(Freunde[playerid][f]),COLOR_LIGHTGREEN,string);
  42.             }
  43.         }
  44.     }
  45. }
  46.  
  47. stock Freund_Logout(playerid)
  48. {
  49.     for(new f = 0; f < MAX_PLAYER_FRIENDS; f++)
  50.     {
  51.         if(strcmp(Freunde[playerid][f],"0",true) != 0)
  52.         {
  53.             if(GetIdByName(Freunde[playerid][f]) != -1)
  54.             {
  55.                 format(string,128,"Dein Freund %s hat den Server verlassen.",PlayerName[playerid]);
  56.                 SendClientMessage(GetIdByName(Freunde[playerid][f]),COLOR_LIGHTGREEN,string);
  57.             }
  58.         }
  59.     }
  60. }
  61.  
  62. stock AddFriend(playerid,name[])
  63. {
  64.     if(!IsPlayerAlreadyAFriend(playerid,name))
  65.     {
  66.         if(GetIdByName(name) != -1)
  67.         {
  68.             if(playerid != GetIdByName(name))
  69.             {
  70.                 if(CheckFirstFreeSlot(playerid) != -1)
  71.                 {
  72.                     strmid(Freunde[playerid][CheckFirstFreeSlot(playerid)],name,0,strlen(name));
  73.                     format(string,128,"Du hast %s zu deiner Freundesliste hinzugefügt!",name);
  74.                     SendClientMessage(playerid,COLOR_GREEN,string);
  75.                 }
  76.                 else SendClientMessage(playerid,COLOR_RED,"Du hast keinen Platz mehr für weitere Freunde!");
  77.             }
  78.         }
  79.         else SendClientMessage(playerid,COLOR_RED,"Dieser Spieler ist nicht auf dem Server!");
  80.     }
  81.     else SendClientMessage(playerid,COLOR_RED,"Dieser Spieler ist schon in deiner Freundesliste!");
  82. }
  83.  
  84. stock DeleteFriend(playerid,name[])
  85. {
  86.     if(IsPlayerAlreadyAFriend(playerid,name))
  87.     {
  88.         if(CheckSlotByName(playerid,name) != -1)
  89.         {
  90.             strmid(Freunde[playerid][CheckSlotByName(playerid,name)],"0",0,1);
  91.             format(string,128,"Du hast %s von deiner Freundesliste gelöscht!",name);
  92.             SendClientMessage(playerid,COLOR_GREEN,string);
  93.         }
  94.     }
  95.     else
  96.     {
  97.         SendClientMessage(playerid,COLOR_RED,"Dieser Spieler ist nicht in deiner Freundesliste!");
  98.     }
  99. }
  100.  
  101. stock DeleteAllFriends(playerid)
  102. {
  103.     for(new f = 0; f < MAX_PLAYER_FRIENDS; f++)
  104.     {
  105.         strmid(Freunde[playerid][f],"0",0,1);
  106.     }
  107.     SendClientMessage(playerid,COLOR_GREEN,"Freundesliste komplett gelöscht!");
  108. }
  109.  
  110. stock ShowFriendListForPlayer(playerid)
  111. {
  112.     for(new f = 0; f < MAX_PLAYER_FRIENDS; f++)
  113.     {
  114.         if(strcmp(Freunde[playerid][f],"0",true) != 0)
  115.         {
  116.             if(GetIdByName(Freunde[playerid][f]) != -1)
  117.             {
  118.                 format(string,128,"%s ist Online!",Freunde[playerid][f]);
  119.                 SendClientMessage(playerid,COLOR_GREEN,string);
  120.             }
  121.             else
  122.             {
  123.                 format(string,128,"%s ist Offline!",Freunde[playerid][f]);
  124.                 SendClientMessage(playerid,COLOR_RED,string);
  125.             }
  126.         }
  127.     }
  128. }
  129.  
  130. stock SendFriendMessage(playerid,message[])
  131. {
  132.     for(new f = 0; f < MAX_PLAYER_FRIENDS; f++)
  133.     {
  134.         if(strcmp(Freunde[playerid][f],"0",true) != 0)
  135.         {
  136.             if(GetIdByName(Freunde[playerid][f]) != -1)
  137.             {
  138.                 format(string,256,"(Freund: %s sagt): %s",PlayerName[playerid],message);
  139.                 SendClientMessage(GetIdByName(Freunde[playerid][f]),COLOR_LIGHTGREEN,string);
  140.             }
  141.         }
  142.     }
  143.     format(string,256,"(Freund: %s sagt): %s",PlayerName[playerid],message);
  144.     SendClientMessage(playerid,COLOR_LIGHTGREEN,string);
  145. }
  146.    
  147.  
  148. stock CheckFirstFreeSlot(playerid)
  149. {
  150.     for(new f = 0; f < MAX_PLAYER_FRIENDS; f++)
  151.     {
  152.         if(strcmp(Freunde[playerid][f],"0",true) == 0) return f;
  153.     }
  154.     return -1;
  155. }
  156.  
  157.  
  158. stock IsPlayerAlreadyAFriend(playerid,name[])
  159. {
  160.     for(new f = 0; f < MAX_PLAYER_FRIENDS; f++)
  161.     {
  162.         if(strcmp(name,Freunde[playerid][f],true) == 0 && strcmp(Freunde[playerid][f],"0",true) != 0)
  163.         {
  164.             return 1;
  165.         }
  166.     }
  167.     return 0;
  168. }
  169.  
  170. stock GetIdByName(name[])
  171. {
  172.     for(new i = 0; i < MAX_PLAYERS; i++)
  173.     {
  174.         if(IsPlayerConnected(i))
  175.         {
  176.             if(strcmp(name,PlayerName[i],true) == 0)
  177.             {
  178.                 return i;
  179.             }
  180.         }
  181.     }
  182.     return -1;
  183. }
  184.  
  185. stock CheckSlotByName(playerid,name[])
  186. {
  187.     if(IsPlayerAlreadyAFriend(playerid,name))
  188.     {
  189.         for(new f = 0; f < MAX_PLAYER_FRIENDS; f++)
  190.         {
  191.             if(strcmp(name,Freunde[playerid][f],true) == 0 && strcmp(Freunde[playerid][f],"0",true) != 0)
  192.             {
  193.                 return f;
  194.             }
  195.         }
  196.     }
  197.     return -1;
  198. }
  199.  
  200. stock GetFriendBySlot(playerid,slot)
  201. {
  202.     new name[MAX_PLAYER_NAME];
  203.     if(strcmp(Freunde[playerid][slot],"0",true) != 0)
  204.     {
  205.         return Freunde[playerid][slot];
  206.     }
  207.     else
  208.     {
  209.         format(name,MAX_PLAYER_NAME,"-1");
  210.         return name;
  211.     }
  212. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement