27.07.2011, 13:39
This is Example Anti-Teleport Vehicle. (Anti-Cheat system).
Only SAMP 0.3c R3
pastebin.com: http://pastebin.com/Xh3ZeNEw
Only SAMP 0.3c R3
Code:
/* Example Anti-Teleport Vehicle by AirKite Not finished!!! */ new Float:OldVehiclePos[2000][4]; new LastCar[500]; #include <a_samp> stock Float:GetDistanceBetweenPoints(Float:x,Float:y,Float:z,Float:x2,Float:y2,Float:z2) { return floatsqroot(floatpower(floatabs(floatsub(x2,x)),2)+floatpower(floatabs(floatsub(y2,y)),2)+floatpower(floatabs(floatsub(z2,z)),2)); } public OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat) { new string[128], Float:vpos_x, Float:vpos_y, Float:vpos_z, Float:vpos_a; GetVehiclePos(vehicleid, vpos_x, vpos_y, vpos_z); GetVehicleZAngle(vehicleid,vpos_a); if(OldVehiclePos[vehicleid][0] != 0.0 && OldVehiclePos[vehicleid][1] != 0.0 && OldVehiclePos[vehicleid][2] != 0.0 && OldVehiclePos[vehicleid][3] != 0.0) { new Float:vehicledistance = GetDistanceBetweenPoints(vpos_x, vpos_y, vpos_z, OldVehiclePos[vehicleid][0], OldVehiclePos[vehicleid][1], OldVehiclePos[vehicleid][2]); //format(string, sizeof(string), "Update Distance: %f", vehicledistance); //SendClientMessage(playerid, 0xFFFFFFFF, string); if(vehicledistance > 15.0) { SetVehiclePos(vehicleid, OldVehiclePos[vehicleid][0], OldVehiclePos[vehicleid][1], OldVehiclePos[vehicleid][2]); SetVehicleZAngle(vehicleid,OldVehiclePos[vehicleid][3]); return; } } OldVehiclePos[vehicleid][0]=vpos_x; OldVehiclePos[vehicleid][1]=vpos_y; OldVehiclePos[vehicleid][2]=vpos_z; OldVehiclePos[vehicleid][3]=vpos_a; } public OnPlayerStateChange(playerid,newstate,oldstate) { if(newstate == PLAYER_STATE_DRIVER) { LastCar[playerid]=GetPlayerVehicleID(playerid); } else if(oldstate == PLAYER_STATE_DRIVER) { new lastveh = LastCar[playerid]; GetVehiclePos(lastveh,OldVehiclePos[lastveh][0],OldVehiclePos[lastveh][1],OldVehiclePos[lastveh][2]); GetVehicleZAngle(lastveh,OldVehiclePos[lastveh][3]); } return 1; }