[Ajuda] Cуdigo nгo funciona
#1

PHP код:
new ArmasProibidas[26][3] =
{
    
1,2,3,8,9,10,11,12,13,16,17,18,26,27,28,30,31,32,33,34,35,36,37,38,39,42
};
new 
ArmasPermitidas[17][3] =
{
    
0,4,5,6,7,14,15,19,20,21,22,23,24,25,29,40,41
}; 
PHP код:
public WeaponAntiCheat()
{
    new 
string[128];
    
    for(new 
i=0i<MAX_PLAYERSi++)
    {
        if(
IsPlayerConnected(i))
        {
            if(
PlayerInfo[i][pAdmin] >= || PlayerInfo[i][pGM] >= 1) { continue; }
              new 
weap GetPlayerWeapon(i);
              
              for(new 
0sizeof(ArmasProibidas); w++)
              {
                  if(
weap == ArmasProibidas[w][2])
                  {
                      
format(stringsizeof(string), "Weapon Cheat (ID da arma: %d)"weap);
                      
KickAutomatico(i"Servidor"string);
                  }
              }
              for(new 
0sizeof(ArmasPermitidas); w++)
              {
                  if(
GetPlayerScore(i) >= 3) continue;
                  
                  if(
weap == ArmasPermitidas[w][2])
                  {
                      
format(stringsizeof(string), "[ANTI-CHEAT] {FFFFFF}O jogador %s (ID:%d) pode estar a utilizar Weapon Cheat (ID da arma: %d)"GetPlayerNameEx(i), iweap);
                      
                      for(new 
p=0p<MAX_PLAYERSp++)
                      {
                          if(!
IsPlayerConnected(p)) continue;
                          if(
PlayerInfo[p][pAdmin] != || PlayerInfo[p][pGM] != 0)
                          {
                              
SendClientMessage(pCOLOR_EFEITOstring);
                          }
                      }
                  }
              }
        }
    }
    
    return 
1;

Eu levo sempre kick mesmo que nгo tenha arma nenhuma na mгo. O cуdigo era para kickar quem tivesse na mгo uma arma proibida e para mandar uma mensagem aos admins a alertar se um jogador com menos de 3 de score tem uma arma qualquer na mгo. O que estб errado?
Reply
#2

Use GetPlayerWeapon

Espero ter ajudado
Reply
#3

PHP код:
new ArmasProibidas[] =
{
    
1,2,3,8,9,10,11,12,13,16,17,18,26,27,28,30,31,32,33,34,35,36,37,38,39,42
};
new 
ArmasPermitidas[] =
{
    
0,4,5,6,7,14,15,19,20,21,22,23,24,25,29,40,41
};
//================================
if(weap == ArmasProibidas[w][2])
//para
if(weap == ArmasProibidas[w])
//================================
if(weap == ArmasPermitidas[w][2])
//para
if(weap == ArmasPermitidas[w]) 
Reply
#4

Era mesmo isso! Obrigado.
Reply
#5

Mudei para um cуdigo mais curto e retirei pequenos erros na public.

PHP код:
public WeaponAntiCheat(){
    new 
string[128];
    for (new 
0MAX_PLAYERSi++) {
        if (
IsPlayerConnected(i)) {
            if (
PlayerInfo[i][pAdmin] >= || PlayerInfo[i][pGM] >= 1) continue;
            for (new 
0sizeof(ArmasProibidas); w++) {
                if (
GetPlayerWeapon(i) == ArmasProibidas[w][2]) format(stringsizeof(string), "Weapon Cheat (ID da arma: %d)"GetPlayerWeapon(i)), KickAutomatico(i"Servidor"string);
            }
            for (new 
0sizeof(ArmasPermitidas); w++) {
                if (
GetPlayerScore(i) >= 3) continue;
                if (
GetPlayerWeapon(i) == ArmasPermitidas[w][2]) {
                    
format(stringsizeof(string), "[ANTI-CHEAT] {FFFFFF}O jogador %s (ID:%d) pode estar a utilizar Weapon Cheat (ID da arma: %d)"GetPlayerNameEx(i), iGetPlayerWeapon(i));
                    if (!
IsPlayerConnected(p)) continue;
                    if (
PlayerInfo[i][pAdmin] != || PlayerInfo[i][pGM] != 0SendClientMessage(iCOLOR_EFEITOstring);
                }
            }
        }
    }
    return 
1;

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)