_iLustcheR_

SAMP-IL Spy System v2.0 by LustcheR

Aug 19th, 2014
473
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 10.94 KB | None | 0 0
  1. // ================ [Spy System By LustcheR SAMP-IL v2.0] =================== //
  2. #include <a_samp>
  3. #include <DOF2>
  4. #include "../include/gl_common.inc"
  5.  
  6. #pragma unused DOF2_Exit
  7.  
  8. new String[256];
  9. #define SPrice 5,000,000
  10. #define SpyPrice 5000000
  11. #define Color_Red   0xFF0000AA
  12. #define Color_Green 0x00FF00FF
  13. #define Color_White 0xFFFFFFAA
  14. #define SendFormatMessage(%0,%1,%2,%3) format(String, sizeof(String),%2,%3) && SendClientMessage(%0, %1, String)
  15. #define SendFormatMessageToAll(%0,%1,%2) format(String, sizeof(String),%1,%2) && SendClientMessageToAll(%0, String)
  16.  
  17. enum SpyInfo
  18. {
  19.     SpyOn,
  20.     SpySpec,
  21.     Float:Pos[3]
  22. };
  23. new PSpy[MAX_PLAYERS][SpyInfo];
  24.  
  25. public OnPlayerConnect(playerid)
  26. {
  27.     if(!DOF2_FileExists(SFile(playerid)))
  28.     {
  29.             DOF2_CreateFile(SFile(playerid));
  30.             DOF2_SetInt(SFile(playerid), "HaveSpy" ,0);
  31.     }
  32.     PSpy[playerid][SpyOn] = 0;
  33.     PSpy[playerid][SpySpec] = 0;
  34.     return 1;
  35. }
  36.  
  37. public OnPlayerDisconnect(playerid, reason)
  38. {
  39.     PSpy[playerid][SpyOn] = 0;
  40.     PSpy[playerid][SpySpec] = 0;
  41.     return 1;
  42. }
  43.  
  44. public OnPlayerCommandText(playerid, cmdtext[])
  45. {
  46.     new cmd[5][256], idx;
  47.     cmd[0] = strtok(cmdtext, idx);
  48.     cmd[1] = strtok(cmdtext, idx);
  49.     cmd[2] = strtok(cmdtext, idx);
  50.     cmd[3] = strtok(cmdtext, idx);
  51.     cmd[4] = strtok(cmdtext, idx);
  52.    
  53.     if(strcmp(cmd[0], "/xSpy", true) == 0)
  54.     {
  55.         if(!IsPlayerAdmin(playerid)) return 0;
  56.         if(!strlen(cmd[1])) return SendClientMessage(playerid, Color_White, "Usage: /xSpy [Set | Remove].");
  57.         if(!strcmp(cmd[1], "Set", true))
  58.         {
  59.             if(!strlen(cmd[2])) return SendClientMessage(playerid, Color_White, "Usage: /xSpy Set [PlayerID].");
  60.             if(IsPlayerConnected(strval(cmd[2]))) return SendClientMessage(playerid, Color_Red, ".השחקן לא מחובר");
  61.             if(DOF2_GetInt(SFile(strval(cmd[2])), "HaveSpy") == 1) return SendClientMessage(playerid, Color_Red, "./xSpy Remove - למחיקת המערכת לשחקן Spy לשחקן זה יש כבר מערכת");
  62.             DOF2_SetInt(SFile(strval(cmd[2])), "HaveSpy", 1);
  63.             PSpy[strval(cmd[2])][SpySpec] = 0;
  64.             PSpy[strval(cmd[2])][SpyOn] = 0;
  65.             return 1;
  66.         }
  67.         if(!strcmp(cmd[1], "Remove", true))
  68.         {
  69.             if(!strlen(cmd[2])) return SendClientMessage(playerid, Color_White, "Usage: /xSpy Remove [PlayerID].");
  70.             if(IsPlayerConnected(strval(cmd[2]))) return SendClientMessage(playerid, Color_Red, ".השחקן לא מחובר");
  71.             if(DOF2_GetInt(SFile(strval(cmd[2])), "HaveSpy") == 0) return SendClientMessage(playerid, Color_Red, "./xSpy Set - להוספת המערכת לשחקן Spy לשחקן זה אין מערכת");
  72.             DOF2_SetInt(SFile(strval(cmd[2])), "HaveSpy", 0);
  73.             PSpy[strval(cmd[2])][SpySpec] = 0;
  74.             PSpy[strval(cmd[2])][SpyOn] = 0;
  75.             return 1;
  76.         }
  77.         return 1;
  78.     }
  79.     if(strcmp(cmd[0], "/Spy", true) == 0)
  80.     {
  81.         if(!strlen(cmd[1])) return SendClientMessage(playerid, Color_White, "Usage: /Spy [Buy | Sell | Spec | Spies | On | Off].");
  82.         if(!strcmp(cmd[1], "Buy", true))
  83.         {
  84.             if(DOF2_GetInt(SFile(playerid), "HaveSpy") == 1) return SendClientMessage(playerid, Color_Red, "./Spy Sell - למכירת המערכת הקלד ,Spy כבר קנית מערכת");
  85.             if(GetPlayerMoney(playerid) < SpyPrice) return SendFormatMessage(playerid, Color_Red, ".[%s$] Spy אין לך מספיר כסף לקניית מערכת", SPrice);
  86.             SendFormatMessageToAll(Color_Green, "! Spy רכש את המערכת ''%s'' השחקן", GetName(playerid));
  87.             DOF2_SetInt(SFile(playerid), "HaveSpy", 1);
  88.             GivePlayerMoney(playerid, - SpyPrice);
  89.             PSpy[playerid][SpySpec] = 0;
  90.             PSpy[playerid][SpyOn] = 0;
  91.             return 1;
  92.         }
  93.         if(!strcmp(cmd[1], "Sell", true))
  94.         {
  95.             if(DOF2_GetInt(SFile(playerid), "HaveSpy") == 0) return SendClientMessage(playerid, Color_Red, "./Spy Buy - לקניית המערכת הקלד ,Spy אין לך מערכת");
  96.             SendFormatMessage(playerid, Color_Green, ".[%d$] וקיבלת חצי מסכום הקנייה Spy מכרת את המערכת", SpyPrice / 2);
  97.             DOF2_SetInt(SFile(playerid), "HaveSpy", 0);
  98.             GivePlayerMoney(playerid, - SpyPrice / 2);
  99.             PSpy[playerid][SpySpec] = 0;
  100.             PSpy[playerid][SpyOn] = 0;
  101.             return 1;
  102.             }
  103.             if(!strcmp(cmd[1], "Spec", true))
  104.             {
  105.         if(DOF2_GetInt(SFile(playerid), "HaveSpy") == 0) return SendClientMessage(playerid, Color_Red, "./Spy Buy - לקניית המערכת הקלד ,Spy אין לך מערכת");
  106.         if(!strlen(cmd[1])) return SendClientMessage(playerid, Color_White, "Usage: /Spy Spec [On | Off | Change].");
  107.         if(!strcmp(cmd[2], "On", true))
  108.         {
  109.                     if(DOF2_GetInt(SFile(playerid), "HaveSpy") == 0) return SendClientMessage(playerid, Color_Red, "./Spy Buy - לקניית המערכת הקלד ,Spy אין לך מערכת");
  110.                     if(PSpy[playerid][SpyOn] == 0) return SendClientMessage(playerid, Color_Red, "./Spy On - שלך כבויה, להדלקת המערכת הקלד Spy המערכת");
  111.                     if(PSpy[playerid][SpySpec] == 1) return SendClientMessage(playerid, Color_Red, "./Spy Off - אתה כבר צופה בשחקן, להפסקת הצפייה הקלד");
  112.                     if(!strlen(cmd[3])) return SendClientMessage(playerid, Color_White, "Usage: /Spy Spec On [PlayerID].");
  113.                     if(IsPlayerConnected(strval(cmd[3]))) return SendClientMessage(playerid, Color_Red, ".השחקן לא מחובר");
  114.                     SendFormatMessage(playerid, Color_Green, "./Spy Spec Off - להפסקת הצפייה הקלד את הפקודה ''%s'' כעת אתה צופה בשחקן", GetName(strval(cmd[3])));
  115.                     SendClientMessage(playerid, Color_Green, "/Spy Spec Change - לשינוי צפייה על שחקן אחר הקלד");
  116.                     GetPlayerPos(playerid, PSpy[playerid][Pos][0], PSpy[playerid][Pos][1], PSpy[playerid][Pos][1]);
  117.                     PlayerSpectatePlayer(playerid, strval(cmd[3]));
  118.                     TogglePlayerSpectating(playerid, true);
  119.                     PSpy[playerid][SpySpec] = 1;
  120.                     return 1;
  121.                 }
  122.                 if(!strcmp(cmd[2], "Off", true))
  123.                 {
  124.                     if(DOF2_GetInt(SFile(playerid), "HaveSpy") == 0) return SendClientMessage(playerid, Color_Red, "./Spy Buy - לקניית המערכת הקלד ,Spy אין לך מערכת");
  125.                     if(PSpy[playerid][SpyOn] == 0) return SendClientMessage(playerid, Color_Red, "./Spy On - שלך כבויה, להדלקת המערכת הקלד Spy המערכת");
  126.                     if(PSpy[playerid][SpySpec] == 0) return SendClientMessage(playerid, Color_Red, "./Spy Spec On - אינך צופה באף שחקן, לצפייה בשחקן הקלד");
  127.                     SendFormatMessage(playerid, Color_Green, "./Spy Spec On - לצפייה חוזרת בשחקן הקלד ''%s'' הפסקת את הצפייה על השחקן", GetName(strval(cmd[3])));
  128.                     SetPlayerPos(playerid, PSpy[playerid][Pos][0], PSpy[playerid][Pos][1], PSpy[playerid][Pos][1]);
  129.                     TogglePlayerSpectating(playerid, false);
  130.                     PSpy[playerid][SpySpec] = 0;
  131.                     return 1;
  132.                 }
  133.                 if(!strcmp(cmd[2], "Change", true))
  134.                 {
  135.                     if(DOF2_GetInt(SFile(playerid), "HaveSpy") == 0) return SendClientMessage(playerid, Color_Red, "./Spy Buy - לקניית המערכת הקלד ,Spy אין לך מערכת");
  136.                     if(PSpy[playerid][SpyOn] == 0) return SendClientMessage(playerid, Color_Red, "./Spy On - שלך כבויה, להדלקת המערכת הקלד Spy המערכת");
  137.                     if(PSpy[playerid][SpySpec] == 0) return SendClientMessage(playerid, Color_Red, "./Spy Spec On - אינך צופה באף שחקן, לצפייה בשחקן הקלד");
  138.                     if(!strlen(cmd[4])) return SendClientMessage(playerid, Color_White, "Usage: /Spy Spec Change [PlayerID]");
  139.                     if(IsPlayerConnected(strval(cmd[4]))) return SendClientMessage(playerid, Color_Red, ".השחקן לא מחובר");
  140.                     SendFormatMessage(playerid, Color_Green, "./Spy Spec Off - לביטול הצפייה הקלד ,''%s'' וכעת אתה צופה בשחקן ''%s'' הפסקת את הצפייה על השחקן", GetName(strval(cmd[4])), GetName(strval(cmd[3])));
  141.                     SendClientMessage(playerid, Color_Green, "/Spy Spec Change - לשינוי צפייה על שחקן אחר הקלד");
  142.                     PlayerSpectatePlayer(playerid, strval(cmd[4]));
  143.                     return 1;
  144.                 }
  145.             }
  146.             return 1;
  147.         }
  148.         if(!strcmp(cmd[1], "Spies", true))
  149.         {
  150.             new SpyCount;
  151.             if(DOF2_GetInt(SFile(playerid), "HaveSpy") == 0) return SendClientMessage(playerid, Color_Red, "./Spy Buy - לקניית המערכת הקלד ,Spy אין לך מערכת");
  152.             if(PSpy[playerid][SpyOn] == 0) return SendClientMessage(playerid, Color_Red, "./Spy On - שלך כבר כבויה, להפעלת המערכת הקלד Spy המערכת");
  153.             for(new i = 0; i < MAX_PLAYERS; i++)
  154.             {
  155.                 if(IsPlayerConnected(i) && DOF2_GetInt(SFile(i), "HaveSpy") == 1)
  156.                 {
  157.                     SpyCount ++;
  158.                     SendFormatMessage(playerid, Color_Green, "----- [{FFFFFF}Spies Players (%d){00FF00}] -----", SpyCount);
  159.                     SendFormatMessage(playerid, Color_Green, "%d. {FFFFFF}%s (ID: %d)", SpyCount, GetName(i), i);
  160.                 }
  161.             }
  162.             return 1;
  163.         }
  164.         if(!strcmp(cmd[1], "On", true))
  165.         {
  166.             if(DOF2_GetInt(SFile(playerid), "HaveSpy") == 0) return SendClientMessage(playerid, Color_Red, "./Spy Buy - לקניית המערכת הקלד ,Spy אין לך מערכת");
  167.             if(PSpy[playerid][SpyOn] == 1) return SendClientMessage(playerid, Color_Red, "./Spy Off - שלך כבר פועלת, לכיבוי המערכת הקלד Spy המערכת");
  168.             SendClientMessage(playerid, Color_Green, ".נדלקה Spy מערכת");
  169.             PSpy[playerid][SpyOn] = 1;
  170.             return 1;
  171.         }
  172.         if(!strcmp(cmd[1], "Off", true))
  173.         {
  174.             if(DOF2_GetInt(SFile(playerid), "HaveSpy") == 0) return SendClientMessage(playerid, Color_Red, "./Spy Buy - לקניית המערכת הקלד ,Spy אין לך מערכת");
  175.             if(PSpy[playerid][SpyOn] == 0) return SendClientMessage(playerid, Color_Red, "./Spy On - שלך כבר כבויה, להפעלת המערכת הקלד Spy המערכת");
  176.             SendClientMessage(playerid, Color_Green, ".נכבתה Spy מערכת");
  177.             PSpy[playerid][SpyOn] = 0;
  178.             return 1;
  179.         }
  180.         return 1;
  181.     }
  182.     return 0;
  183. }
  184.  
  185. stock GetName(playerid)
  186. {
  187.     new Name[MAX_PLAYER_NAME];
  188.     GetPlayerName(playerid, Name, sizeof(Name));
  189.     return Name;
  190. }
  191.  
  192. stock SFile(playerid)
  193. {
  194.     new S[64];
  195.     format(S, sizeof(S), "SpySystem/%s.ini", GetName(playerid));
  196.     return S;
  197. }
Advertisement
Add Comment
Please, Sign In to add comment