PooweeR_

pWeapons

Nov 26th, 2011
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 3.08 KB | None | 0 0
  1. /*
  2.     Este FilterScript é simples. A função dele é detectar se o jogador está utilizando uma arma restrita, caso sim ele tomará a ação definida por você.
  3.    
  4.     Você pode configurar a ação a ser tomada com o jogador que utilizar alguma arma proibida,
  5.     as opções são 'Kickar', 'Banir' e 'Retirar arma' (Irá retirar apenas a arma detectada).
  6.     Basta ir até '#define  ACTION  (2)' e alterar o valor para 0, 1 ou 2. (0 = BANIR | 1 = KICKAR | 2 = RETIRAR ARMA).
  7.    
  8.     # Você pode pegar os ids das armas em: http://wiki.sa-mp.com/wiki/Weapons
  9.    
  10.     Criado por: Felipe ( [NWD]PooweeR_ )
  11. */
  12.  
  13. #include < a_samp >
  14.  
  15. #define ACTION  (2)     /*  0 = BANIR | 1 = KICKAR | 2 = RETIRAR ARMA   */
  16.    
  17. forward CheckWM();
  18.  
  19. new
  20.     pStr[128],
  21.     wName[32];
  22.  
  23. new
  24.     ArmasProibidas[] =
  25. {
  26.     35, // Rocket Launcher
  27.     36, // HS Rocket Launcher
  28.     37, // Flamethrower
  29.     38 // Minigun
  30. };
  31.  
  32. public
  33.     OnFilterScriptInit()
  34. {
  35.     return SetTimer( "CheckWM", 1000, true );
  36. }
  37.  
  38. public
  39.     CheckWM()
  40. {
  41.     for( new i, j = GetMaxPlayers(); i < j; ++i )
  42.     {
  43.         for( new w; w < sizeof(ArmasProibidas); ++w )
  44.         {
  45.             if( GetPlayerWeapon( i ) == ArmasProibidas[ w ] )
  46.             {
  47.                 GetWeaponName( ArmasProibidas[ w ], wName, sizeof(wName) );
  48.                 #if ACTION == 0
  49.                     format(pStr, sizeof(pStr), "[ ANTI WH ] O Jogador %s [ID: %d] foi banido por usar uma arma proibida. (%s)", PlayerName( i ), i, wName );
  50.                     SendClientMessageToAll( -1, pStr );
  51.                     BanEx( i, "Weapon Cheat" );
  52.                 #elseif ACTION == 1
  53.                     format(pStr, sizeof(pStr), "[ ANTI WH ] O Jogador %s [ID: %d] foi kickado por usar uma arma proibida. (%s)", PlayerName( i ), i, wName );
  54.                     SendClientMessageToAll( -1, pStr );
  55.                     Kick( i );
  56.                 #elseif ACTION == 2
  57.                     format(pStr, sizeof(pStr), "[ ANTI WH ] O Jogador %s [ID: %d] tentou usar uma arma proibida e não obteve sucesso. (%s)", PlayerName( i ), i, wName );
  58.                     SendClientMessageToAll( -1, pStr );
  59.                     RemoveWeaponSlot( i, GetWeaponSlot( ArmasProibidas[ w ] ) );
  60.                 #endif
  61.             }
  62.         }
  63.     }
  64.     return 1;
  65. }
  66.  
  67. stock PlayerName(playerid)
  68. {
  69.     new pName[ MAX_PLAYER_NAME + 1 ];
  70.     GetPlayerName( playerid, pName, sizeof(pName) );
  71.     return pName;
  72. }
  73.  
  74. stock RemoveWeaponSlot(playerid, iWeaponSlot) // POSTADO POR Calg00ne EM 'http://forum.sa-mp.com/showpost.php?p=1325995&postcount=3'
  75. {
  76.     new weapons[13][2];
  77.     for(new i = 0; i < 13; i++)
  78.         GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]);
  79.  
  80.     weapons[iWeaponSlot][0] = 0;
  81.  
  82.     ResetPlayerWeapons(playerid);
  83.  
  84.     for(new i = 0; i < 13; i++)
  85.         GivePlayerWeapon(playerid, weapons[i][0], weapons[i][1]);
  86.  
  87.     return 1;
  88. }
  89.  
  90. stock GetWeaponSlot(weaponid) // POSTADO POR Hiddos EM  'http://forum.sa-mp.com/showpost.php?p=782197&postcount=4'
  91. {
  92.     new slot;
  93.     switch(weaponid)
  94.     {
  95.         case 0,1: slot = 0;
  96.         case 2 .. 9: slot = 1;
  97.         case 10 .. 15: slot = 10;
  98.         case 16 .. 18, 39: slot = 8;
  99.         case 22 .. 24: slot =2;
  100.         case 25 .. 27: slot = 3;
  101.         case 28, 29, 32: slot = 4;
  102.         case 30, 31: slot = 5;
  103.         case 33, 34: slot = 6;
  104.         case 35 .. 38: slot = 7;
  105.         case 40: slot = 12;
  106.         case 41 .. 43: slot = 9;
  107.         case 44 .. 46: slot = 11;
  108.     }
  109.     return slot;
  110. }
  111.  
Advertisement
Add Comment
Please, Sign In to add comment