Advertisement
RiseAboveHate

TagSys By G r e a T For FxP.co.il

Oct 14th, 2013
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 4.22 KB | None | 0 0
  1. #include <a_samp>
  2. #include <DOF2>
  3. #define TagFile(%0) File[%0]
  4. #define GetName(%0) pName[%0]
  5. #define Red 0xFF0000AA
  6. #define Yellow 0xFFFF00AA
  7. new File[MAX_PLAYERS][64];
  8. new pName[MAX_PLAYERS][MAX_PLAYER_NAME + 2];
  9. new g_Str_g[256];
  10. #define FILTERSCRIPT
  11. public OnFilterScriptInit()
  12. {
  13.     for(new i, j = GetMaxPlayers(); i < j; i++) if(IsPlayerConnected(i)) OnPlayerConnect(i);
  14.     return 1;
  15. }
  16. public OnFilterScriptExit()
  17. {
  18.     for(new i, j = GetMaxPlayers(); i < j; i++) if(IsPlayerConnected(i)) OnPlayerDisconnect(i, 200);
  19.     DOF2_Exit();
  20.     return DOF2_SaveFile();
  21. }
  22. public OnPlayerConnect(playerid)
  23. {
  24.     return GetPlayerName(playerid, pName[playerid], sizeof pName), format(File[playerid], sizeof File, "Users/Tags/%s.ini", GetName(playerid));
  25. }
  26. public OnPlayerDisconnect(playerid, reason)
  27. {
  28.     File[playerid][0] = EOS;
  29.     pName[playerid][0] = EOS;
  30.     return 1;
  31. }
  32. public OnPlayerText(playerid, text[])
  33. {
  34.     if(DOF2_FileExists(TagFile(playerid)))
  35.     {
  36.         format(g_Str_g, sizeof g_Str_g, "%s: {FFFFFF}%s [ID: %d | {%s}%s]", GetName(playerid), text, playerid, DOF2_GetString(TagFile(playerid), "Color"), DOF2_GetString(TagFile(playerid), "Tag"));
  37.         SendClientMessageToAll(GetPlayerColor(playerid), g_Str_g);
  38.         return 0;
  39.     }
  40.     return 0;
  41. }
  42.  
  43. public OnPlayerCommandText(playerid, cmdtext[])
  44. {
  45.     new cmd[4][128], idx;
  46.     cmd[0] = strtok(cmdtext, idx);
  47.     if(strcmp(cmd[0], "/SetTag", true) == 0)
  48.     {
  49.         if(!IsPlayerAdmin(playerid)) return 0;
  50.         new id = strval(strtok(cmdtext, idx));
  51.         cmd[2] = strtok(cmdtext, idx);
  52.         cmd[3] = strrest(cmdtext, idx);
  53.         if(id < 0 || id > MAX_PLAYERS || !strlen(cmd[2]) || !strlen(cmd[3])) return SendClientMessage(playerid, Red, "Syntax Error: \"/SetTag [ID] [COLOR: 1 = Red | 2 = Green | 3 = Blue | 4 = Yellow | 5 = Orange | 6 = Purple | 7 = Black | 8 = White] [Text]\".");
  54.         if(!IsPlayerConnected(id)) return SendClientMessage(playerid, Red, "Syntax Error: \"Inavlid ID\".");
  55.         if(strlen(cmd[3]) > 20) return SendClientMessage(playerid, Red, "Syntax Error: \"Tag Text Cannot Be Over 20 Characters\".");
  56.         new TagColor[8];
  57.         if(!DOF2_FileExists(TagFile(id))) return DOF2_CreateFile(TagFile(id));
  58.         switch(strval(cmd[2]))
  59.         {
  60.             case 1: TagColor = "FF0000";
  61.             case 2: TagColor = "33FF00";
  62.             case 3: TagColor = "0088FF";
  63.             case 4: TagColor = "FFFF00";
  64.             case 5: TagColor = "FF7700";
  65.             case 6: TagColor = "CC00FF";
  66.             case 7: TagColor = "000000";
  67.             case 8: TagColor = "FFFFFF";
  68.         }
  69.         DOF2_SetString(TagFile(id), "Color", TagColor);
  70.         DOF2_SetString(TagFile(id), "Tag", cmd[3]);
  71.         format(g_Str_g, 256, "You Have Set Player \"%s\" Tag To {%s}\"%s\"{FFFF00}.", GetName(id), TagColor, cmd[3]);
  72.         SendClientMessage(playerid, Yellow, g_Str_g);
  73.         format(g_Str_g, 256, "Admin {FF0000}\"%s\" {FFFF00}Has Set Your Tag To {%s}\"%s\"{FFFF00}.", GetName(playerid), TagColor, cmd[3]);
  74.         SendClientMessage(id, Yellow, g_Str_g);
  75.         return 1;
  76.     }
  77.     if(strcmp(cmd[0], "/RemoveTag", true) == 0)
  78.     {
  79.         if(!IsPlayerAdmin(playerid)) return 0;
  80.         cmd[1] = strtok(cmdtext, idx);
  81.         new id = strval(cmd[1]);
  82.         if(!strlen(cmd[1])) return SendClientMessage(playerid, Red, "Syntax Error: \"/RemoveTag [ID]\".");
  83.         if(!IsPlayerConnected(id)) return SendClientMessage(playerid, Red, "Syntax Error: \"Inavlid ID\".");
  84.         if(!DOF2_FileExists(TagFile(id))) return SendClientMessage(playerid, Red, "Syntax Error: \"This Player Dosent Have A Tag\".");
  85.         DOF2_RemoveFile(TagFile(id));
  86.         format(g_Str_g, 256, "You Have Removed Player \"%s\" Tag.", GetName(id));
  87.         SendClientMessage(playerid, Yellow, g_Str_g);
  88.         format(g_Str_g, 256, "Admin {FF0000}\"%s\" {FFFF00}Has Removed Your Tag.", GetName(playerid));
  89.         SendClientMessage(id, Yellow, g_Str_g);
  90.         return 1;
  91.     }
  92.     return 0;
  93. }
  94.  
  95. stock strtok(const source[], &index)
  96. {
  97.     new
  98.         variableStart;
  99.  
  100.     while (source[index] && source[index] <= 0x20)
  101.         index ++;
  102.  
  103.  
  104.     variableStart = index;
  105.     while (source[index] && source[index] > 0x20)
  106.         index ++;
  107.  
  108.     new
  109.         szResult[20];
  110.     memcpy(szResult, source[variableStart], 0, 4 * (index - variableStart), 20);
  111.     return szResult;
  112. }
  113.  
  114. stock strrest(str[], &index) {
  115.     new result[128];
  116.     strmid(result, str, index, strlen(str));
  117.     return result;
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement