Всем привет,я вёл разработку - Freedom Project | Protection ,но теперь у меня нет желания довести её до ума,вот и решил поделиться античитом на Air транспорт/пешка,телепорт транспорт/пешка,тп по метке транспорт/пешка.
Ну а теперь переходим к вшивке:
К #define
PHP код:
#define SetPlayerPos FP_SetPlayerPos
#define SetVehiclePos FP_SetVehiclePos
#define PutPlayerInVehicle FP_PutPlayerInVehicle
#define SetPlayerPosFindZ FP_SetPlayerPosFindZ
#define Kick.(%0) SetTimerEx("OnPlayerKick",100,false,"i",%0)
К new
PHP код:
new FP_I_SVP;
new FP_MAX_SVP;
new Float:FP_Air_Player[MAX_PLAYERS][3];
new FP_Air_Time[MAX_PLAYERS];
new Float:FP_Air_Car[MAX_PLAYERS][3];
new Float:FP_Velocity_Air_Car[MAX_PLAYERS][3];
new FP_Air_Time_Car[MAX_PLAYERS];
К forward
PHP код:
forward OnPlayerKick(playerid);
В OnPlayerConnect
PHP код:
FP_Air_Time[playerid]=0;
FP_Air_Time_Car[playerid]=0;
В OnPlayerSpawn
PHP код:
SetPVarInt(playerid,"FP_Protection",1);
Air_Gettime(playerid,4);
В OnPlayerDeath
PHP код:
Air_Gettime(playerid,4);
В OnPlayerStateChange
PHP код:
Air_Gettime(playerid,4);
В Update или секундный таймер
PHP код:
if(!IsPlayerNPC(playerid)&&GetPVarInt(playerid,"FP_Protection")==1){
if(!IsPlayerInAnyVehicle(playerid)){
if(gettime()>FP_Air_Time[playerid]){
if(GetPlayerDistanceFromPoint(playerid,FP_Air_Player[playerid][0],FP_Air_Player[playerid][1],FP_Air_Player[playerid][2])>70){
if(!TunningGarages(playerid)&&GetPlayerState(playerid)!=PLAYER_STATE_SPECTATING){
SendClientMessage(playerid,0xFFFFFFff,"Тебя спалили на Air|Тп|Тп по метке [Пешком] и ты был кикнут");
Kick.(playerid);
}
}
}
Air_Get_Pos(playerid);
}
}
В Update или секундный таймер
PHP код:
if(!IsPlayerNPC(playerid)&&GetPVarInt(playerid,"FP_Protection")==1){
if(IsPlayerInAnyVehicle(playerid)){
if(gettime()>FP_Air_Time_Car[playerid]){
GetVehicleVelocity(GetPlayerVehicleID(playerid),FP_Velocity_Air_Car[playerid][0],FP_Velocity_Air_Car[playerid][1],FP_Velocity_Air_Car[playerid][2]);
if(GetVehicleDistanceFromPoint(GetPlayerVehicleID(playerid),FP_Air_Car[playerid][0],FP_Air_Car[playerid][1],FP_Air_Car[playerid][2])>100&&floatround(floatsqroot(FP_Velocity_Air_Car[playerid][0]*FP_Velocity_Air_Car[playerid][0]+FP_Velocity_Air_Car[playerid][1]*FP_Velocity_Air_Car[playerid][1]+FP_Velocity_Air_Car[playerid][2]*FP_Velocity_Air_Car[playerid][2])*200.0)==0.0){
if(!TunningGarages(playerid)&&GetPlayerState(playerid)!=PLAYER_STATE_SPECTATING){
SendClientMessage(playerid,0xFFFFFFff,"Тебя спалили на Air|Тп|Тп по метке [В транспорте] и ты был кикнут");
Kick.(playerid);
}
}
}
Air_Get_Pos(playerid);
}
}
В конец мода
PHP код:
public OnPlayerKick(playerid)
{
Kick(playerid);
}
stock Air_Get_Pos(playerid)
{
if(!IsPlayerInAnyVehicle(playerid))GetPlayerPos(playerid,FP_Air_Player[playerid][0],FP_Air_Player[playerid][1],FP_Air_Player[playerid][2]);
else GetVehiclePos(GetPlayerVehicleID(playerid),FP_Air_Car[playerid][0],FP_Air_Car[playerid][1],FP_Air_Car[playerid][2]);
}
stock Air_Gettime(playerid,extra)
{
if(!IsPlayerInAnyVehicle(playerid))FP_Air_Time[playerid]=gettime()+extra;
else FP_Air_Time_Car[playerid]=gettime()+extra;
}
stock FP_SetPlayerPos(playerid,Float:x,Float:y,Float:z)
{
SetPlayerPos(playerid,x,y,z);
Air_Get_Pos(playerid);
Air_Gettime(playerid,4);
return 1;
}
stock FP_SetVehiclePos(vehicleid,Float:x,Float:y,Float:z)
{
SetVehiclePos(vehicleid,x,y,z);
for(FP_I_SVP=0,FP_MAX_SVP=GetMaxPlayers();FP_I_SVP!=FP_MAX_SVP;FP_I_SVP++){
if(GetPlayerVehicleID(FP_I_SVP)==vehicleid){
Air_Get_Pos(FP_I_SVP);
Air_Gettime(FP_I_SVP,4);
}
}
return 1;
}
stock FP_PutPlayerInVehicle(playerid,vehicleid,seatid)
{
PutPlayerInVehicle(playerid,vehicleid,seatid);
Air_Get_Pos(playerid);
Air_Gettime(playerid,4);
return 1;
}
stock FP_SetPlayerPosFindZ(playerid,Float:x,Float:y,Float:z)
{
SetPlayerPosFindZ(playerid,x,y,z);
Air_Get_Pos(playerid);
Air_Gettime(playerid,4);
return 1;
}
stock TunningGarages(playerid)
{
if(IsPlayerInRangeOfPoint(playerid,20.0,2065.3801,-1832.5280,13.68)||IsPlayerInRangeOfPoint(playerid,20.0,-99.7154,1117.5011,19.88)||IsPlayerInRangeOfPoint(playerid,20.0,719.8336,-456.7990,16.47)||IsPlayerInRangeOfPoint(playerid,20.0,-1420.4562,2583.2180,55.98)||IsPlayerInRangeOfPoint(playerid,20.0,-2424.8093,1021.1127,50.53)||IsPlayerInRangeOfPoint(playerid,20.0,1975.0587,2161.9456,11.21)||
IsPlayerInRangeOfPoint(playerid,20.0,487.9699,-1741.5265,11.28)||IsPlayerInRangeOfPoint(playerid,20.0,1025.7683,-1023.8249,32.24)||IsPlayerInRangeOfPoint(playerid,20.0,-1904.9709,285.8506,41.18)||IsPlayerInRangeOfPoint(playerid,20.0,615.2845,-124.2390,997.7112)||IsPlayerInRangeOfPoint(playerid,20.0,616.7787,-74.8150,997.6274)||IsPlayerInRangeOfPoint(playerid,20.0,617.5302,-1.9900,1001.06))return true;
return false;
}
Разработчик:
- Tracer (Freedom Project)
При копировании материала в другие источники указывайте настоящего разработчика!