Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Античит на оружие/патроны + GTA SA баг.

Статус
В этой теме нельзя размещать новые ответы.

Johurt

Умник
Доброго времени суток. Нужна ваша помощь. Багается мой античит(благодаря гта или самп, не знаю...).

PHP:
stock CheckPlayerWeapons(playerid, mode = false)
{
     if(GetPlayerState(playerid) != PLAYER_STATE_SPECTATING)
     {
          if(pInfo[playerid][KickedForWeapons]) return 0;
          new weapons[26], bool:cSlot[13];
          for(new pw = 0; pw < 13; pw++)
          {
               GetPlayerWeaponData(playerid, pw, weapons[pw], weapons[pw + 13]);
               if(weapons[pw] != 0 && weapons[pw] != pInfo[playerid][wInfo][pw])
               {
                    if(weapons[pw] != 0 && weapons[pw + 13] == 0) continue;
                    if(IsPlayerInAnyVehicle(playerid))
                    {
                         if(pw == 1 && (weapons[pw] != pInfo[playerid][wInfo][pw])) continue;
                         if(pw == 4 && (weapons[pw] == 29 && pInfo[playerid][wInfo][pw] == 32)) continue;
                    }
                    cSlot[pw] = true;
                    printf("gLog2 %s | Slot: %d, Gun: %d, Ammo: %d || Gun: %d, Ammo: %d | OldState: %d", GetPlayerNameEx(playerid), pw, weapons[pw], weapons[pw + 13], pInfo[playerid][wInfo][pw], pInfo[playerid][wInfo][pw + 13], pInfo[playerid][OldState]);
               }
               if(weapons[pw + 13] < 0) cSlot[pw] = true;
               if(weapons[pw + 13] > pInfo[playerid][wInfo][pw + 13])
               {
                    if(pw != 0 && pw != 1 && pw != 10 && pw != 11)
                    {
                         cSlot[pw] = true;
                         printf("gLog2 %s | Slot: %d, Gun: %d, Ammo: %d || Gun: %d, Ammo: %d | OldState: %d", GetPlayerNameEx(playerid), pw, weapons[pw], weapons[pw + 13], pInfo[playerid][wInfo][pw], pInfo[playerid][wInfo][pw + 13], pInfo[playerid][OldState]);
                    }
               }
               if(!cSlot[pw])
               {
                    if(!(pw == 4 && (weapons[pw] == 29 && pInfo[playerid][wInfo][pw] == 32)) || pw == 1 && weapons[pw] == pInfo[playerid][wInfo][pw])
                    {
                         pInfo[playerid][wInfo][pw] = weapons[pw];
                    }
                    pInfo[playerid][wInfo][pw + 13] = weapons[pw + 13];
               }
          }
          for(new pw = 0; pw < 13; pw++)
          {
               if(cSlot[pw])
               {
                    ResetPlayerWeapons(playerid);
                    if(mode)
                    {
                         pInfo[playerid][KickedForWeapons] = true;
                         KickEx(playerid);
                    }
                    return 1;
               }
          }
     }
     return 0;
}
Проблема в том, что иногда античит выкидывает из сервера совсем невинных людей. Каким то образом меняются ид оружия, кол-во патронов. Замучился уже фиксить... Может знаете как можно исправить?

Лог:
PHP:
[13:25:33] gLog2 Name | Slot: 2, Gun: 22, Ammo: 189 || Gun: 0, Ammo: 0 | OldState: 2
[13:27:02] gLog2 Name | Slot: 1, Gun: 3, Ammo: 4 || Gun: 2, Ammo: 4 | OldState: 3
[14:17:32] gLog2 Name | Slot: 1, Gun: 7, Ammo: 4 || Gun: 5, Ammo: 4 | OldState: 3
[14:46:32] gLog2 Name | Slot: 1, Gun: 3, Ammo: 1 || Gun: 2, Ammo: 1 | OldState: 3
[15:33:13] gLog2 Name | Slot: 2, Gun: 24, Ammo: 65 || Gun: 0, Ammo: 0 | OldState: 8
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу