iThomas | Дата: Пятница, 12.10.2012, 18:16 | Сообщение # 1 |
 Пользователь
| Добавляем к форвардам. (Начало мода)
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.
|
|
| |