[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Античит AirBreak, Fly
iThomasДата: Пятница, 12.10.2012, 18:16 | Сообщение # 1
Нет аватара
Пользователь

Сообщений: 65
Награды: 2


« 55 »

Оффлайн
Добавляем к форвардам. (Начало мода)

Code
forward AntiAirBreak();


В public OnGameModeInit()

Code
SetTimer("AntiAirBreak",250,true);


В конец мода вставляем паблик:

Code
public AntiAirBreak()
{
     new Float:x,Float:y,Float:z;
     new pstate;
     for(new i=0;i<MAX_PLAYERS;i++)
  {
      if(!IsPlayerNPC(i) && FullyConnected[i] && GetPlayerPos(i,x,y,z))
      {
          pstate=GetPlayerState(i);
    if(pstate==PLAYER_STATE_ONFOOT || (pstate==PLAYER_STATE_DRIVER && GetPlayerSpeed(i,true)<10))
    {
        new var=(floatround(floatsqroot(GetSquareDistance(x,y,z,CurrentPos[i][0],CurrentPos[i][1],CurrentPos[i][2]))*3600)/(GetTickCount()-LastCheck[i]));
     if(var>=500 && var<=1500)
      {
        if(anticheat666[i] == 0)
        {
           IsPlayerAirBreaking[i] = 1;
           new string[255];
                 new name[250];
                 new STRname[255];
                          GetPlayerName(i,STRname,255);
                 GetPlayerName(i, name, sizeof(name));//узнаем имя игрока
                 format(string,sizeof(string),"[ADM WARNING] %s[%d] возможно AirBreak.",name, i);//имя мы бьем через format
                 SendAdminMessage(COLOR_REDD, string);//показываем всем игрокам
                    }
     }
    }
   }
   CurrentPos[i][0]=x;
   CurrentPos[i][1]=y;
   CurrentPos[i][2]=z;
   LastCheck[i]=GetTickCount();
  }
  return 1;
}
//------------------------------------------------------------------------------
stock GetPlayerSpeed(playerid,getsd)
{
  new Float:x,Float:y,Float:z;
  if(IsPlayerInAnyVehicle(playerid))
      GetVehicleVelocity(GetPlayerVehicleID(playerid),x,y,z);
  else
      GetPlayerVelocity(playerid,x,y,z);

  return Speed(x,y,z,100.0,getsd);
}
stock GetSquareDistance(Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2)
{
  x1-=x2;
  y1-=y2;
  z1-=z2;
  x1*=x1;
  y1*=y1;
  z1*=z1;
  return floatround(x1+y1+z1);
}


Хочу предупредить, работает на RLS, для него я и настроил.

Автора не помню, половина моя.

Делаем на Fly:

Добавляем в public OnPlayerUpdate(playerid)

Code
if(!IsPlayerInAnyVehicle(playerid))
  {
   new Float:posx, Float:posy, Float:posz;//переменные
   GetPlayerPos(playerid, posx, posy, posz);//проверка на координаты
   if(posz >= 2)//Если posz равен либо больше 2 метров, то....
   {
    if(!PlayerToPoint(10.0,playerid,1280.3201,-774.7350,1082.1799) && !PlayerToPoint(15.0,playerid,194.7876,-1232.0527,76.5034) && !PlayerToPoint(40.0,playerid,1245.0590,-2374.2068,8.3145))
    {
     if(anticheat666[playerid] == 0)
     {
     if(strcmp(animlib, "SWIM", true) == 0 && strcmp(animname, "SWIM_crawl", true) == 0)//проверяем на анимацию, если все верно то....
     {
                     new STRname[255];
                     GetPlayerName(playerid,STRname,255);
      GetPlayerName(playerid, plname, sizeof(plname));//узнаем имя игрока
      format(string,sizeof(string),"[ADM WARNING] %s[%d] возможно летает.",plname, playerid);//имя мы бьем через format
      SendAdminMessage(COLOR_REDD, string);//показываем всем игрокам
     }
     }
    }
   }
  }



Бесплатно подставить человека на Samp-Rp
Обучаю ремеслу вирусов, взломов. Писать в скайп: tidniwe.
  • Страница 1 из 1
  • 1
Поиск: