PM ADV BAN [HELP]
#1

Hello guys so i'm trying to Add Anti-ADV to my PM Command, i tried a lot of ways but it isn't working and getting errors.

PM System:
PHP код:

COMMAND
:pm(playerid, params[])
{
 if(
playerData[playerid][playerLoggedIn])
 {
  new 
input[120], message[250], message2[250], otherPlayer;
  if(
sscanf(params, "us[100]", otherPlayer, input))
  {
   
SendClientMessage(playerid, COLOR_WHITE, "{B7B7B7}[SERVER] {FFFF00}Usage: \"pm <player> <message>\"");
  }
  else
  {
   if (
playerid == otherPlayer)
   {
    
// Cannot send yourself a PM
    
SendClientMessage(playerid, COLOR_WHITE, "{FF0404}[ERROR] {FFFF00}You cannot send yourself a PM.");
   }
   else
   {
    
// Check if player is connected
    
if(IsPlayerConnected(otherPlayer))
    {
     if(
playerData[otherPlayer][playerLoggedIn])
     {
      if(!
playerData[otherPlayer][playerBlockPMs] || playerData[otherPlayer][playerBlockPMs] && playerData[playerid][playerLevel] >= 1)
      {
       new 
from[24], otherName[24];
       
GetPlayerName(otherPlayer, otherName, sizeof(otherName));
       
format(message, sizeof(message), "{FFBF00}[PM] {FFFFFF}To %s(%i): %s", otherName, otherPlayer, input);
       
SendClientMessage(playerid, COLOR_WHITE, message);
       
GetPlayerName(playerid, from, sizeof(from));
       
format(message2, sizeof(message2), "{FFBF00}[PM] {FFFFFF}From %s(%i): %s", from, playerid, input);
       
SendClientMessage(otherPlayer, COLOR_WHITE, message2);
             
PlayerPlaySound(otherPlayer, 1139,0.0,0.0,0.0);
       
playerData[playerid][lastRecipient] = otherPlayer;
       for(new 
i = 0; i <= MAX_PLAYERS; i++)
       {
        if(
IsPlayerConnected(i))
        {
         if(
playerData[i][playerLoggedIn])
         {
          if (
playerData[i][playerLevel] >= 4)
          {
           if (
playerData[i][pmSpy])
           {
            new 
spyText[200];
            
format(spyText, sizeof(spyText), "{FFBF00}[PM SPY] {FFFFFF}From %s(%i) to %s(%i): %s", playerData[playerid][playerNamee], playerid, playerData[otherPlayer][playerNamee], otherPlayer, input);
            
SendClientMessage(i, COLOR_WHITE, spyText);
           }
          }
         }
        }
       }
       new 
loggingString[256];
       
format(loggingString, sizeof(loggingString), "%s PM'd %s: %s", playerData[playerid][playerNamee], playerData[otherPlayer][playerNamee], input);
       
writeInLog("privateMessages.html", loggingString);
      }
      else
      {
       
SendClientMessage(playerid, COLOR_WHITE, "{FF0404}[ERROR] {FFFF00}The player your trying to PM has disabled private messages.");
      }
     }
     else
     {
      
SendClientMessage(playerid, COLOR_WHITE, "{FF0404}[ERROR] {FFFF00}The player your trying to PM is not logged in.");
     }
    }
    else
    {
     
SendClientMessage(playerid, COLOR_WHITE, "{FF0404}[ERROR] {FFFF00}The player your trying to PM isn't connected.");
    }
   }
  }
 }
 return 
1;
} 
Thanks Very much in Advance!
Reply
#2

PHP код:

new InvalidWords[][100] =
{
     
"0.",
     
"1.",
     
"2.",
     
"3.",
     
"4.",
     
"5.",
     
"6.",
     
"7.",
     
"8.",
     
"9."
};
COMMAND:pm(playerid, params[])
{
 if(
playerData[playerid][playerLoggedIn])
 {
  new 
input[120], message[250], message2[250], otherPlayer;
  if(
sscanf(params, "us[100]", otherPlayer, input))
  {
   
SendClientMessage(playerid, COLOR_WHITE, "{B7B7B7}[SERVER] {FFFF00}Usage: \"pm <player> <message>\"");
  }
  else
  {
   if(
strfind(input, InvalidWords[playerid], true) != -1) return SendClientMessage(playerid, COLOR_RED, " Sharing Ip's is Adv and this isn't allowed !");
   if (
playerid == otherPlayer)
   {
    
// Cannot send yourself a PM
    
SendClientMessage(playerid, COLOR_WHITE, "{FF0404}[ERROR] {FFFF00}You cannot send yourself a PM.");
   }
   else
   {
    
// Check if player is connected
    
if(IsPlayerConnected(otherPlayer))
    {
     if(
playerData[otherPlayer][playerLoggedIn])
     {
      if(!
playerData[otherPlayer][playerBlockPMs] || playerData[otherPlayer][playerBlockPMs] && playerData[playerid][playerLevel] >= 1)
      {
       new 
from[24], otherName[24];
       
GetPlayerName(otherPlayer, otherName, sizeof(otherName));
       
format(message, sizeof(message), "{FFBF00}[PM] {FFFFFF}To %s(%i): %s", otherName, otherPlayer, input);
       
SendClientMessage(playerid, COLOR_WHITE, message);
       
GetPlayerName(playerid, from, sizeof(from));
       
format(message2, sizeof(message2), "{FFBF00}[PM] {FFFFFF}From %s(%i): %s", from, playerid, input);
       
SendClientMessage(otherPlayer, COLOR_WHITE, message2);
             
PlayerPlaySound(otherPlayer, 1139,0.0,0.0,0.0);
       
playerData[playerid][lastRecipient] = otherPlayer;
       for(new 
i = 0; i <= MAX_PLAYERS; i++)
       {
        if(
IsPlayerConnected(i))
        {
         if(
playerData[i][playerLoggedIn])
         {
          if (
playerData[i][playerLevel] >= 4)
          {
           if (
playerData[i][pmSpy])
           {
            new 
spyText[200];
            
format(spyText, sizeof(spyText), "{FFBF00}[PM SPY] {FFFFFF}From %s(%i) to %s(%i): %s", playerData[playerid][playerNamee], playerid, playerData[otherPlayer][playerNamee], otherPlayer, input);
            
SendClientMessage(i, COLOR_WHITE, spyText);
           }
          }
         }
        }
       }
       new 
loggingString[256];
       
format(loggingString, sizeof(loggingString), "%s PM'd %s: %s", playerData[playerid][playerNamee], playerData[otherPlayer][playerNamee], input);
       
writeInLog("privateMessages.html", loggingString);
      }
      else
      {
       
SendClientMessage(playerid, COLOR_WHITE, "{FF0404}[ERROR] {FFFF00}The player your trying to PM has disabled private messages.");
      }
     }
     else
     {
      
SendClientMessage(playerid, COLOR_WHITE, "{FF0404}[ERROR] {FFFF00}The player your trying to PM is not logged in.");
     }
    }
    else
    {
     
SendClientMessage(playerid, COLOR_WHITE, "{FF0404}[ERROR] {FFFF00}The player your trying to PM isn't connected.");
    }
   }
  }
 }
 return 
1;
} 
Reply
#3

Care to fix the indentation and re-writing it from scratch?

Use this: https://sampforum.blast.hk/showthread.php?tid=568668 (use any other function)
and look at my code as a example of a good code.

EXAMPLE
PHP код:
CMD:pm(playerid, params[])
{
    new 
targetid, msg[75]; // 75 is enough
    
if(sscanf(params, "us[75]", targetid, msg)) return SendClientMessage(playerid, -1, "ERROR");
    if(
targetid == INVALID_PLAYER_ID) return SendClientMessage(playerid, -1, "ERORR"); // faster than IsPlayerConnected
    
if(targetid == /* Blocking PM */) return SendClientMessage(playerid, -1, "ERROR");
    if(
IsAdv(msg)) return SendClientMessage(playerid, -1, "ERROR"); // use Anti Adv function here
    
new string[75 + MAX_PLAYER_NAME + 1]; // 75 + 24 + 1 = 100 (75 for the msg, 24 for the name, 1 for the null)
    
format(string, sizeof string, "%s", your function);
    
SendClientMessage(playerid, -1, string);
    
format(string, sizeof string, "%s", your function);
    
SendClientMessage(targetid, -1, string);
    return 
1;
} 
Reply
#4

Quote:
Originally Posted by Yaa
Посмотреть сообщение
PHP код:

new InvalidWords[][100] =
{
     
"0.",
     
"1.",
     
"2.",
     
"3.",
     
"4.",
     
"5.",
     
"6.",
     
"7.",
     
"8.",
     
"9."
};
COMMAND:pm(playerid, params[])
{
 if(
playerData[playerid][playerLoggedIn])
 {
  new 
input[120], message[250], message2[250], otherPlayer;
  if(
sscanf(params, "us[100]", otherPlayer, input))
  {
   
SendClientMessage(playerid, COLOR_WHITE, "{B7B7B7}[SERVER] {FFFF00}Usage: \"pm <player> <message>\"");
  }
  else
  {
   if(
strfind(input, InvalidWords[playerid], true) != -1) return SendClientMessage(playerid, COLOR_RED, " Sharing Ip's is Adv and this isn't allowed !");
   if (
playerid == otherPlayer)
   {
    
// Cannot send yourself a PM
    
SendClientMessage(playerid, COLOR_WHITE, "{FF0404}[ERROR] {FFFF00}You cannot send yourself a PM.");
   }
   else
   {
    
// Check if player is connected
    
if(IsPlayerConnected(otherPlayer))
    {
     if(
playerData[otherPlayer][playerLoggedIn])
     {
      if(!
playerData[otherPlayer][playerBlockPMs] || playerData[otherPlayer][playerBlockPMs] && playerData[playerid][playerLevel] >= 1)
      {
       new 
from[24], otherName[24];
       
GetPlayerName(otherPlayer, otherName, sizeof(otherName));
       
format(message, sizeof(message), "{FFBF00}[PM] {FFFFFF}To %s(%i): %s", otherName, otherPlayer, input);
       
SendClientMessage(playerid, COLOR_WHITE, message);
       
GetPlayerName(playerid, from, sizeof(from));
       
format(message2, sizeof(message2), "{FFBF00}[PM] {FFFFFF}From %s(%i): %s", from, playerid, input);
       
SendClientMessage(otherPlayer, COLOR_WHITE, message2);
             
PlayerPlaySound(otherPlayer, 1139,0.0,0.0,0.0);
       
playerData[playerid][lastRecipient] = otherPlayer;
       for(new 
i = 0; i <= MAX_PLAYERS; i++)
       {
        if(
IsPlayerConnected(i))
        {
         if(
playerData[i][playerLoggedIn])
         {
          if (
playerData[i][playerLevel] >= 4)
          {
           if (
playerData[i][pmSpy])
           {
            new 
spyText[200];
            
format(spyText, sizeof(spyText), "{FFBF00}[PM SPY] {FFFFFF}From %s(%i) to %s(%i): %s", playerData[playerid][playerNamee], playerid, playerData[otherPlayer][playerNamee], otherPlayer, input);
            
SendClientMessage(i, COLOR_WHITE, spyText);
           }
          }
         }
        }
       }
       new 
loggingString[256];
       
format(loggingString, sizeof(loggingString), "%s PM'd %s: %s", playerData[playerid][playerNamee], playerData[otherPlayer][playerNamee], input);
       
writeInLog("privateMessages.html", loggingString);
      }
      else
      {
       
SendClientMessage(playerid, COLOR_WHITE, "{FF0404}[ERROR] {FFFF00}The player your trying to PM has disabled private messages.");
      }
     }
     else
     {
      
SendClientMessage(playerid, COLOR_WHITE, "{FF0404}[ERROR] {FFFF00}The player your trying to PM is not logged in.");
     }
    }
    else
    {
     
SendClientMessage(playerid, COLOR_WHITE, "{FF0404}[ERROR] {FFFF00}The player your trying to PM isn't connected.");
    }
   }
  }
 }
 return 
1;
} 
And you're sure that's it, and that it will work ?
Reply
#5

Quote:
Originally Posted by Scripter18
Посмотреть сообщение
And you're sure that's it, and that it will work ?
not tested but i think it's will work :P
Reply
#6

There was a shit function for checking advertisements, just use it to check params.
Reply
#7

Quote:
Originally Posted by Yaa
Посмотреть сообщение
PHP код:

new InvalidWords[][100] =
{
     
"0.",
     
"1.",
     
"2.",
     
"3.",
     
"4.",
     
"5.",
     
"6.",
     
"7.",
     
"8.",
     
"9."
};
COMMAND:pm(playerid, params[])
{
 if(
playerData[playerid][playerLoggedIn])
 {
  new 
input[120], message[250], message2[250], otherPlayer;
  if(
sscanf(params, "us[100]", otherPlayer, input))
  {
   
SendClientMessage(playerid, COLOR_WHITE, "{B7B7B7}[SERVER] {FFFF00}Usage: \"pm <player> <message>\"");
  }
  else
  {
   if(
strfind(input, InvalidWords[playerid], true) != -1) return SendClientMessage(playerid, COLOR_RED, " Sharing Ip's is Adv and this isn't allowed !");
   if (
playerid == otherPlayer)
   {
    
// Cannot send yourself a PM
    
SendClientMessage(playerid, COLOR_WHITE, "{FF0404}[ERROR] {FFFF00}You cannot send yourself a PM.");
   }
   else
   {
    
// Check if player is connected
    
if(IsPlayerConnected(otherPlayer))
    {
     if(
playerData[otherPlayer][playerLoggedIn])
     {
      if(!
playerData[otherPlayer][playerBlockPMs] || playerData[otherPlayer][playerBlockPMs] && playerData[playerid][playerLevel] >= 1)
      {
       new 
from[24], otherName[24];
       
GetPlayerName(otherPlayer, otherName, sizeof(otherName));
       
format(message, sizeof(message), "{FFBF00}[PM] {FFFFFF}To %s(%i): %s", otherName, otherPlayer, input);
       
SendClientMessage(playerid, COLOR_WHITE, message);
       
GetPlayerName(playerid, from, sizeof(from));
       
format(message2, sizeof(message2), "{FFBF00}[PM] {FFFFFF}From %s(%i): %s", from, playerid, input);
       
SendClientMessage(otherPlayer, COLOR_WHITE, message2);
             
PlayerPlaySound(otherPlayer, 1139,0.0,0.0,0.0);
       
playerData[playerid][lastRecipient] = otherPlayer;
       for(new 
i = 0; i <= MAX_PLAYERS; i++)
       {
        if(
IsPlayerConnected(i))
        {
         if(
playerData[i][playerLoggedIn])
         {
          if (
playerData[i][playerLevel] >= 4)
          {
           if (
playerData[i][pmSpy])
           {
            new 
spyText[200];
            
format(spyText, sizeof(spyText), "{FFBF00}[PM SPY] {FFFFFF}From %s(%i) to %s(%i): %s", playerData[playerid][playerNamee], playerid, playerData[otherPlayer][playerNamee], otherPlayer, input);
            
SendClientMessage(i, COLOR_WHITE, spyText);
           }
          }
         }
        }
       }
       new 
loggingString[256];
       
format(loggingString, sizeof(loggingString), "%s PM'd %s: %s", playerData[playerid][playerNamee], playerData[otherPlayer][playerNamee], input);
       
writeInLog("privateMessages.html", loggingString);
      }
      else
      {
       
SendClientMessage(playerid, COLOR_WHITE, "{FF0404}[ERROR] {FFFF00}The player your trying to PM has disabled private messages.");
      }
     }
     else
     {
      
SendClientMessage(playerid, COLOR_WHITE, "{FF0404}[ERROR] {FFFF00}The player your trying to PM is not logged in.");
     }
    }
    else
    {
     
SendClientMessage(playerid, COLOR_WHITE, "{FF0404}[ERROR] {FFFF00}The player your trying to PM isn't connected.");
    }
   }
  }
 }
 return 
1;
} 
Thank you it works 100/100 .
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)