Advertisement
Sasuke_Uchiha

MuteSystem

Mar 2nd, 2015
789
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 6.51 KB | None | 0 0
  1. #include <a_samp>
  2. #include <sscanf2>
  3. #include <zcmd>
  4.  
  5. new PlayerText:MUTED[MAX_PLAYERS][4];
  6. new MutedTimer[MAX_PLAYERS];
  7. new MuteTimeSec[MAX_PLAYERS];
  8. new MuteTimeMin[MAX_PLAYERS];
  9. new UserName[MAX_PLAYERS][MAX_PLAYER_NAME];
  10.  
  11. public OnFilterScriptInit()
  12. {
  13.     SSCANF_Option(MATCH_NAME_PARTIAL, 1);
  14.     return 1;
  15. }
  16.  
  17. public OnPlayerConnect(playerid)
  18. {
  19.     MuteTimeSec[playerid]=0;
  20.     MuteTimeMin[playerid]=0;
  21.    
  22.     strdel(UserName[playerid],0,MAX_PLAYER_NAME);
  23.     GetPlayerName(playerid,UserName[playerid],MAX_PLAYER_NAME);
  24.    
  25.     MUTED[playerid][0] = CreatePlayerTextDraw(playerid,560.000000, 179.666671, "LD_CHAT:thumbdn");
  26.     PlayerTextDrawLetterSize(playerid,MUTED[playerid][0], 0.000000, 0.000000);
  27.     PlayerTextDrawTextSize(playerid,MUTED[playerid][0], 12.500000, 11.666658);
  28.     PlayerTextDrawAlignment(playerid,MUTED[playerid][0], 1);
  29.     PlayerTextDrawColor(playerid,MUTED[playerid][0], -1);
  30.     PlayerTextDrawSetShadow(playerid,MUTED[playerid][0], 0);
  31.     PlayerTextDrawSetOutline(playerid,MUTED[playerid][0], 0);
  32.     PlayerTextDrawFont(playerid,MUTED[playerid][0], 4);
  33.  
  34.     MUTED[playerid][1] = CreatePlayerTextDraw(playerid,572.500000, 144.083312, "CHAT");
  35.     PlayerTextDrawLetterSize(playerid,MUTED[playerid][1], 0.449999, 1.600000);
  36.     PlayerTextDrawAlignment(playerid,MUTED[playerid][1], 2);
  37.     PlayerTextDrawColor(playerid,MUTED[playerid][1], -1459683073);
  38.     PlayerTextDrawSetShadow(playerid,MUTED[playerid][1], 0);
  39.     PlayerTextDrawSetOutline(playerid,MUTED[playerid][1], 1);
  40.     PlayerTextDrawBackgroundColor(playerid,MUTED[playerid][1], 51);
  41.     PlayerTextDrawFont(playerid,MUTED[playerid][1], 3);
  42.     PlayerTextDrawSetProportional(playerid,MUTED[playerid][1], 1);
  43.  
  44.     MUTED[playerid][2] = CreatePlayerTextDraw(playerid,578.000000, 165.666687, "You Are Muted, ~N~ You Are         Allowed To Chat.");
  45.     PlayerTextDrawLetterSize(playerid,MUTED[playerid][2], 0.177999, 1.284999);
  46.     PlayerTextDrawAlignment(playerid,MUTED[playerid][2], 2);
  47.     PlayerTextDrawColor(playerid,MUTED[playerid][2], -1);
  48.     PlayerTextDrawSetShadow(playerid,MUTED[playerid][2], 0);
  49.     PlayerTextDrawSetOutline(playerid,MUTED[playerid][2], 1);
  50.     PlayerTextDrawBackgroundColor(playerid,MUTED[playerid][2], 51);
  51.     PlayerTextDrawFont(playerid,MUTED[playerid][2], 1);
  52.     PlayerTextDrawSetProportional(playerid,MUTED[playerid][2], 1);
  53.  
  54.     MUTED[playerid][3] = CreatePlayerTextDraw(playerid,578.500000, 191.916656, "Un-Mute in : time");
  55.     PlayerTextDrawLetterSize(playerid,MUTED[playerid][3], 0.220000, 1.016666);
  56.     PlayerTextDrawAlignment(playerid,MUTED[playerid][3], 2);
  57.     PlayerTextDrawColor(playerid,MUTED[playerid][3], -1);
  58.     PlayerTextDrawSetShadow(playerid,MUTED[playerid][3], 0);
  59.     PlayerTextDrawSetOutline(playerid,MUTED[playerid][3], 1);
  60.     PlayerTextDrawBackgroundColor(playerid,MUTED[playerid][3], 51);
  61.     PlayerTextDrawFont(playerid,MUTED[playerid][3], 2);
  62.     PlayerTextDrawSetProportional(playerid,MUTED[playerid][3], 1);
  63.    
  64.     return 1;
  65. }
  66.  
  67. public OnPlayerDisconnect(playerid,reason)
  68. {
  69.     for(new i=0; i < 4;i++) PlayerTextDrawDestroy(playerid,MUTED[playerid][i]);
  70.     KillTimer(MutedTimer[playerid]);   
  71.     return 1;
  72. }  
  73. public OnPlayerText(playerid,text[])
  74. {
  75.     if(MuteTimeMin[playerid] != 0 || MuteTimeSec[playerid] != 0) { SendClientMessage(playerid,0xE60000FF,"You are not allowed to talk, Please wait for your mute to be over."); return 0; }
  76.     return 1;
  77. }
  78.  
  79. CMD:mute(playerid,params[])
  80. {
  81.     new TargetID,TimeInSec,TimeInMin,string[73];
  82.     //if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xE60000FF,"This command can only be used by an admin.");
  83.     sscanf(params,"?<CELLMIN_ON_MATCHES=1>U(-1)I(1)I(0)",TargetID,TimeInMin,TimeInSec);
  84.     if(TargetID == -1) return SendClientMessage(playerid,0xE60000FF,"USAGE : /mute (Name/ID) (Min) (Sec)");
  85.     else if(!IsPlayerConnected(TargetID)) return SendClientMessage(playerid,0xE60000FF,"Sorry that player is not connected.");
  86.     else if(TargetID == cellmin) return SendClientMessage(playerid,0xE60000FF,"Please be more specific, multiple players found.");
  87.     else if(TimeInMin > 10 || TimeInMin < 0) return SendClientMessage(playerid,0xE60000FF,"You can not mute anyone longer than 10 min.");
  88.     else if(TimeInSec > 60 || TimeInSec  < 0) return SendClientMessage(playerid,0xE60000FF,"Seconds should be between 60 - 0");
  89.     else if(MuteTimeMin[playerid] != 0 || MuteTimeSec[playerid] != 0)  return SendClientMessage(playerid,0xE60000FF,"That Player is muted already.");
  90.     MutedTimer[playerid] = SetTimerEx("MuteTimerPerSecond", 1000, true, "i", TargetID);
  91.     MuteTimeMin[playerid] = TimeInMin;
  92.     MuteTimeSec[playerid] = TimeInSec;
  93.     format(string,sizeof(string),"Un-Mute in %d:%d",MuteTimeMin[playerid],MuteTimeSec[playerid]);
  94.     PlayerTextDrawSetString(playerid,MUTED[playerid][3],string);
  95.     for(new i=0; i < 4;i++) PlayerTextDrawShow(playerid,MUTED[playerid][i]);
  96.     format(string,sizeof(string),"%s (%d) is muted for %d : %d sec.",UserName[TargetID],TargetID,TimeInMin,TimeInSec);
  97.     SendClientMessageToAll(0xE60000FF,string);
  98.     return 1;
  99. }
  100. CMD:unmute(playerid,params[])
  101. {
  102.     new TargetID,string[60];
  103.     //if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xE60000FF,"This command can only be used by an admin.");
  104.     sscanf(params,"?<CELLMIN_ON_MATCHES=1>U(-1)",TargetID);
  105.     if(TargetID == -1) return SendClientMessage(playerid,0xE60000FF,"USAGE : /unmute (Name/ID)");
  106.     else if(!IsPlayerConnected(TargetID)) return SendClientMessage(playerid,0xE60000FF,"Sorry that player is not connected.");
  107.     else if(TargetID == cellmin) return SendClientMessage(playerid,0xE60000FF,"Please be more specific, multiple players found.");
  108.     else if(MuteTimeMin[playerid] == 0 && MuteTimeSec[playerid] == 0)  return SendClientMessage(playerid,0xE60000FF,"That Player is not muted.");
  109.     for(new i=0; i < 4;i++) PlayerTextDrawHide(playerid,MUTED[playerid][i]);
  110.     KillTimer(MutedTimer[playerid]);
  111.     format(string,sizeof(string),"%s (%d) is un-muted.",UserName[TargetID],TargetID);
  112.     SendClientMessageToAll(0xE60000FF,string);
  113.     return 1;
  114. }
  115.  
  116. forward MuteTimerPerSecond(playerid);
  117. public MuteTimerPerSecond(playerid)
  118. {
  119.     new string[25];
  120.     if(MuteTimeSec[playerid] >= 0)
  121.     {
  122.         if(MuteTimeMin[playerid] >= 0)
  123.         {
  124.             if(MuteTimeSec[playerid] == 0)
  125.             {
  126.                 MuteTimeMin[playerid]--;
  127.                 MuteTimeSec[playerid]=60;
  128.             }
  129.             else MuteTimeSec[playerid]--;
  130.             format(string,sizeof(string),"Un-Mute in %d:%d",MuteTimeMin[playerid],MuteTimeSec[playerid]);
  131.             PlayerTextDrawSetString(playerid,MUTED[playerid][3],string);                       
  132.         }
  133.         else if(MuteTimeMin[playerid] == 0 && MuteTimeSec[playerid] == 0)
  134.         {
  135.             for(new i=0; i < 4;i++) PlayerTextDrawHide(playerid,MUTED[playerid][i]);
  136.             KillTimer(MutedTimer[playerid]);   
  137.         }
  138.     }
  139.     return 1;
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement