Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* |AntiCheat Version 1.0|
- Anti Jetpack [X]
- Anti Weaponhack [X]
- Anti Healthhack [X]
- Anti Armourhack [X]
- Anti Moneyhack [X]
- Pingkick [X]
- Anti Badword [X]
- Anti Speedhack [X]
- Anti C-Bug [X]
- Anti Spawnkill [X]
- Anti Fakekill [X]
- Anti Driveby [X]
- Anti Spam [X]
- Anti IP-Spam [X]
- Anti TuningHack [X]
- Anti Flyhack [X]
- ||16 Anti- Funktionen||
- |AntiCheat Version 2.0|
- Anti Airbrake [X]
- Anti Joypad [X]
- Anti Rapid-Fire [X]
- Anti Vehicle Tele [X]
- Anti Telehack [X]
- Anti Carsurf [X]
- ||6 Anti- Funktionen ||
- |AntiCheat Version 3.0|
- +Anti Weaponhack verbessert+
- Anti AFK-Ghost [X]
- Anti Slidebug [X]
- Anti No Reload [X]
- Anti Unlimmited Ammo[X]
- Anti enter locked Cars[X]
- Anti Playerspeedhack[X]
- Anti Skinchanger [X]
- Anti Distancehack [X]
- ||8 Anti- Funktionen ||
- |AntiCheat Version 3.1|
- + Bugfixes +
- + Aimbottest +
- Skinchanger entfernt
- | Gesamt |
- | 29 Anti- Funktionen |
- */
- #include <a_samp>
- //#include <Water>
- #include <ocmd>
- //Farben
- #define Schwarz 0x000000FF
- #define Rot 0xE10000FF
- #define Gelb 0xFFE600FF
- #define HBlau 0x00FFFFFF
- #define DBlau 0x0000FFFF
- #define Blau 0x2E9AFEFF
- #define HGruen 0x00FF00FF
- #define Orange 0xFFAB00FF
- #define Weiss 0xFFFFFFFF
- #define Grau 0xDCDCDCFF
- #define Gold 0xD4A017AA
- #define Lila 0x7800FFFF
- #define Pink 0xFF00CDFF
- #define Gruen 0x009F32FF
- #define MAX_PING 700 // Maximaler Ping
- #define MAX_VEHSPEED 400 // Vehicle-Speed ( am besten so lassen! )
- #define MAX_PLAYERSPEED 155 // Runningspeed ( am besten so lassen! )
- #define SPAMLIMIT 2 // 2 Sekunden ( am besten so lassen! )
- #define MAX_CBUG 1 // Maximale C-Bugs ( am besten so lassen! )
- #define Tuninghack //Wenn definiert, dann wird Spieler wegen Tuning im Interior 0 gekickt!
- new fmex[128];
- #define SCMToAllF(%0,%1,%2) format(fmex,128,%1,%2) && SendClientMessageToAll(%0, fmex)
- #define SCMF(%0,%1,%2) format(fmex,128,%2) && SendClientMessage(%0,%1,fmex)
- #define PRESSED(%0) (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
- forward AntiCheatTimer();
- forward SpamReset(playerid);
- forward pos(playerid);
- forward Desktop_Function(playerid);
- forward Kicke(playerid);
- forward CheckWeapon();
- forward CheckAim(playerid);
- new ACNewMoney[MAX_PLAYERS],
- Float:ACNewArmour[MAX_PLAYERS],
- Float:ACNewHealth[MAX_PLAYERS],
- SpamCount[MAX_PLAYERS],
- CBugCount[MAX_PLAYERS],
- Waffe[MAX_PLAYERS][47],
- nwh[MAX_PLAYERS][47],
- Shot[MAX_PLAYERS],
- ShotTime[MAX_PLAYERS],
- Float:OldPos[MAX_PLAYERS][3],
- Float:NewPos[MAX_PLAYERS][3],
- switched[MAX_PLAYERS],
- posbyserver[MAX_PLAYERS],
- Float:vPos[MAX_VEHICLES][4],
- Desktop_Check[MAX_PLAYERS],
- Desktop_Status[MAX_PLAYERS],
- Desktop_Timer[MAX_PLAYERS],
- Desktop_Timer_Started[MAX_PLAYERS],
- Desk[MAX_PLAYERS],
- EnterLockedV[MAX_PLAYERS],
- freezed[MAX_PLAYERS],
- NoReloading[MAX_PLAYERS],
- CurrentWeapon[MAX_PLAYERS],
- CurrentAmmo[MAX_PLAYERS],
- gmd[MAX_PLAYERS],
- starte[MAX_PLAYERS],
- stopAC[MAX_PLAYERS],
- afk_sicher[MAX_PLAYERS];
- forward AC_OnPlayerConnect(playerid);
- forward AC_OnGameModeInit();
- forward AC_OnPlayerSpawn(playerid);
- forward AC_OnPlayerDeath(playerid,killerid,reason);
- forward AC_OnPlayerText(playerid,text[]);
- forward AC_OnPlayerEnterVehicle(playerid,vehicleid,ispassenger);
- forward AC_OnVehicleMod(playerid,vehicleid,componentid);
- forward AC_OnVehicleRespray(playerid,vehicleid,color1,color2);
- forward AC_OnVehiclePaintjob(playerid,vehicleid,paintjobid);
- forward AC_OnPlayerKeyStateChange(playerid,newkeys,oldkeys);
- forward AC_OnPlayerUpdate(playerid);
- forward AC_OnPlayerDisconnect(playerid,reason);
- forward AC_OnPlayerExitVehicle(playerid,vehicleid);
- forward AC_OnPlayerStateChange(playerid,newstate,oldstate);
- forward GivePlayerMoneyEx(playerid,money);
- forward SetPlayerMoneyEx(playerid,money);
- forward GivePlayerHealthEx(playerid,Float:health);
- forward SetPlayerHealthEx(playerid,Float:health);
- forward GivePlayerArmourEx(playerid,Float:armour);
- forward SetPlayerArmourEx(playerid,Float:armour);
- forward GivePlayerWeaponEx(playerid,Gun,Muni);
- forward SetPlayerPosEx(playerid,Float:x,Float:y,Float:z);
- forward TogglePlayerControllableEx(playerid,toggle);
- new badword[][] = {
- "Opfer",
- "Lauch"
- };
- public OnGameModeInit(){
- CallRemoteFunction("AC_OnGameModeInit","");
- print("\n--------------------------------------");
- print(" AntiCheat by ErikSon");
- print("--------------------------------------\n");
- SetTimer("AntiCheatTimer",100,true);
- SetTimer("CheckWeapon",888*2,true);
- SetTimer("AC_CheckFlyhack",888*2,true);
- return EnableStuntBonusForAll(false);
- }
- public OnPlayerConnect(playerid)
- {
- Desk[playerid] = 0, afk_sicher[playerid] = 0;
- switched[playerid] = 0,EnterLockedV[playerid] = 0;
- Shot[playerid] = 0, ShotTime[playerid] = 0;
- SetPlayerHealthEx(playerid,100);
- Desktop_Check[playerid] = 0,Desktop_Timer_Started[playerid] = 0,Desktop_Status[playerid] = 0,gmd[playerid] = 0,starte[playerid] = 0;
- return CallRemoteFunction("AC_OnPlayerConnect","i",playerid);
- }
- public OnPlayerSpawn(playerid){
- TogglePlayerControllableEx(playerid,1),
- Waffe[playerid][0] = 1, Waffe[playerid][1] = 1;
- if(!starte[playerid])starte[playerid] = 1;
- return CallRemoteFunction("AC_OnPlayerSpawn","i",playerid);
- }
- public OnPlayerDeath(playerid, killerid, reason){
- if(GetPlayerState(killerid) == PLAYER_STATE_DRIVER)
- {
- new vehicleid,vehiclemodel;
- vehicleid = GetPlayerVehicleID(killerid);
- vehiclemodel = GetVehicleModel(vehicleid);
- if(IsPlayerInAnyVehicle(playerid)) { return true; }
- if(vehiclemodel == 425) { return true; } // Hunter
- if(vehiclemodel == 432) { return true; } // Rhino
- if(vehiclemodel == 447) { return true; } // Seasparrow
- if(vehiclemodel == 476) { return true; } // Rustler
- if(vehiclemodel == 520) { return true; } // Hydra
- return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Driveby!",Namee(killerid)),Kicks(killerid);
- }
- return CallRemoteFunction("AC_OnPlayerDeath","iii",playerid,killerid,reason);
- }
- public OnPlayerText(playerid, text[]){
- if(anty(text))SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: IP / Adresse.",Namee(playerid)),Kicks(playerid);
- SpamCount[playerid] ++;
- SetTimerEx("SpamReset",888*SPAMLIMIT,false,"i",playerid);
- if(SpamCount[playerid] > SPAMLIMIT)return SpamCount[playerid] = 0, SCMToAllF(Rot,"Spieler '%s' wurde von Server gekickt. Grund: Spam!",Namee(playerid)),Kicks(playerid);
- new i = 0;
- for(;i<sizeof(badword);i++)if(strfind(text,badword[i],false) != -1)SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Badword!",Namee(playerid)),Kicks(playerid);
- return CallRemoteFunction("AC_OnPlayerText","is",playerid,text);
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger){
- if(IsAPlane(vehicleid) || IsAHelicopter(vehicleid))return GivePlayerWeaponEx(playerid,46,1);
- new Engine, Lights, Alarm,Doors, Bonnet,Boot,Objective;
- GetVehicleParamsEx(vehicleid, Engine, Lights, Alarm, Doors, Bonnet, Boot, Objective);
- if(IsABike(vehicleid))return 1;
- if(Doors == 1)return EnterLockedV[playerid] = vehicleid;
- SetPlayerArmedWeapon(playerid,0);
- return CallRemoteFunction("AC_OnPlayerEnterVehicle","iii",playerid,vehicleid,ispassenger);
- }
- public OnVehicleMod(playerid, vehicleid, componentid){
- #if defined Tuninghack
- if(GetPlayerInterior(playerid) == 0)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Tuning-Hack!",Namee(playerid)),Kicks(playerid);
- #endif
- return CallRemoteFunction("AC_OnVehicleMod","iii",playerid,vehicleid,componentid);
- }
- public OnVehiclePaintjob(playerid, vehicleid, paintjobid){
- #if defined Tuninghack
- if(GetPlayerInterior(playerid) == 0)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Tuning-Hack!",Namee(playerid)),Kicks(playerid);
- #endif
- return CallRemoteFunction("AC_OnVehiclePaintjob","iii",playerid,vehicleid,paintjobid);
- }
- public OnVehicleRespray(playerid, vehicleid, color1, color2){
- #if defined Tuninghack
- if(GetPlayerInterior(playerid) == 0)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Tuning-Hack!",Namee(playerid)),Kicks(playerid);
- #endif
- return CallRemoteFunction("AC_OnVehicleRespray","iiii",playerid,vehicleid,color1,color2);
- }
- public OnPlayerExitVehicle(playerid,vehicleid){
- new Float:x,Float:y,Float:z;
- GetVehiclePos(vehicleid,x,y,z);
- vPos[vehicleid][0] = x,vPos[vehicleid][1] = y,vPos[vehicleid][2] = z;
- return CallRemoteFunction("AC_OnPlayerExitVehicle","ii",playerid,vehicleid);
- }
- public OnPlayerDisconnect(playerid,reason){
- if(!IsPlayerInAnyVehicle(playerid))return 1;
- new Float:x,Float:y,Float:z,vehicleid = GetPlayerVehicleID(playerid);
- GetVehiclePos(vehicleid,x,y,z);
- vPos[vehicleid][0] = x,vPos[vehicleid][1] = y,vPos[vehicleid][2] = z;
- if(Desktop_Timer_Started[playerid] == 1) { KillTimer(Desktop_Timer[playerid]); }
- return CallRemoteFunction("AC_OnPlayerDisconnect","ii",playerid,reason);
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys){
- if(((oldkeys & KEY_FIRE) || (oldkeys==KEY_FIRE)) && ((newkeys & KEY_CROUCH) || (newkeys==KEY_CROUCH)) && (!IsPlayerInAnyVehicle(playerid)))
- {
- CBugCount[playerid] ++;
- if(CBugCount[playerid] >= MAX_CBUG)SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: C-Bug!",Namee(playerid)),Kicks(playerid);
- }
- new tick = GetTickCount(); new FIRE_WEAPON = GetPlayerWeapon(playerid) > 21;
- if(oldkeys & KEY_SPRINT && FIRE_WEAPON)
- {
- new keys, ud, lr; GetPlayerKeys(playerid, keys, ud, lr);
- if(ud != 0 || lr != 0)SetPVarInt(playerid, "SlideTime", tick + 500);
- }
- if( (newkeys & KEY_FIRE || newkeys & 128) && FIRE_WEAPON )if(tick < GetPVarInt(playerid, "SlideTime"))return SetPlayerArmedWeapon(playerid, 0),SetPVarInt(playerid, "SlideTime", -1);
- return CallRemoteFunction("AC_OnPlayerKeyStateChange","iii",playerid,newkeys,oldkeys);
- }
- public OnPlayerStateChange(playerid, newstate, oldstate){
- if(oldstate == PLAYER_STATE_ONFOOT && (newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER))
- {
- if(EnterLockedV[playerid] <= 0)return 1;
- if(EnterLockedV[playerid] == GetPlayerVehicleID(playerid))return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Enter locked Vehicle!",Namee(playerid));
- }
- return CallRemoteFunction("AC_OnPlayerStateChange","iii",playerid,newstate,oldstate);
- }
- stock Float:GetDistanceBetweenPoints(Float:rx1,Float:ry1,Float:rz1,Float:rx2,Float:ry2,Float:rz2){
- return floatadd(floatadd(floatsqroot(floatpower(floatsub(rx1,rx2),2)),floatsqroot(floatpower(floatsub(ry1,ry2),2))),floatsqroot(floatpower(floatsub(rz1,rz2),2)));
- }
- stock Float:Distance(Float:X, Float:Y, Float:Z, Float:PointX, Float:PointY, Float:PointZ) return floatsqroot(floatadd(floatadd(floatpower(floatsub(X, PointX), 2.0), floatpower(floatsub(Y, PointY), 2.0)), floatpower(floatsub(Z, PointZ), 2.0)));
- public OnPlayerUpdate(playerid){
- if(Desk[playerid] >= 1)Desk[playerid] = 0;
- if(Desktop_Timer_Started[playerid] == 0)
- {
- Desktop_Timer[playerid] = SetTimerEx("Desktop_Function",888,1,"d",playerid);
- Desktop_Timer_Started[playerid] = 1;
- }
- Desktop_Check[playerid] += 1;
- new keys, ud, lr;
- GetPlayerKeys(playerid, keys, ud, lr);
- if((ud != 128 && ud != 0 && ud != -128) || (lr != 128 && lr != 0 && lr != -128))return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Joypad!",Namee(playerid)),Kicks(playerid);
- return CallRemoteFunction("AC_OnPlayerUpdate","i",playerid);
- }
- public SpamReset(playerid)return SpamCount[playerid] = 0,CBugCount[playerid] = 0;
- public AntiCheatTimer(){
- new i = 0,Float:health,Float:armour,surf,Float:x,Float:y,Float:z;
- for(; i<MAX_PLAYERS; i++)
- {
- if(!IsPlayerConnected(i))continue;
- if(Desk[i] >= 1)continue;
- if(starte[i] <= 0)continue;
- if(IsPlayerNPC(i))continue;
- if(stopAC[i] > 0)return stopAC[i] --;
- GetPlayerHealth(i,health);
- GetPlayerArmour(i,armour);
- GetPlayerPos(i,x,y,z);
- new SName[MAX_PLAYER_NAME]; GetPlayerName(i,SName,MAX_PLAYER_NAME);
- if(GetPlayerSpecialAction(i) == SPECIAL_ACTION_USEJETPACK)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Jetpack!",SName),Kicks(i);
- else if(GetPlayerPing(i) > MAX_PING)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Zu hoher Ping! ( %i / %i )",SName,GetPlayerPing(i),MAX_PING),Kicks(i);
- else if(GetPlayerMoney(i) > ACNewMoney[i])return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Moneyhack!",SName),Kicks(i);//
- else if(health > ACNewHealth[i])return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Healthhack!",SName),Kicks(i);//
- else if(armour > ACNewArmour[i])return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Armourhack!",SName),Kicks(i);//
- else if(GetPlayerSpeed(i) > MAX_PLAYERSPEED)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Speedhack!",SName),Kicks(i);
- else if(IsPlayerInAnyVehicle(i))if(GetVehicleSpeed(GetPlayerVehicleID(i)) > MAX_VEHSPEED)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Speedhack!",SName),Kicks(i);
- surf = GetPlayerSurfingVehicleID(i);
- if(!(GetPlayerSurfingVehicleID(i) == INVALID_VEHICLE_ID) && (GetVehicleSpeed(surf) > 0))return SetPlayerPos(i,x,y,z+10);
- if(switched[i] == 2)
- {
- GetPlayerPos(i,NewPos[i][0],NewPos[i][1],NewPos[i][2]);
- new Float:d = Distance(OldPos[i][0],OldPos[i][1],OldPos[i][2],NewPos[i][0],NewPos[i][1],NewPos[i][2]);
- if(d >= 15 && posbyserver[i] != 1)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Airbrake / Teleporthack!",SName),Kicks(i);
- switched[i] = 1;
- }
- else if(switched[i] == 1)GetPlayerPos(i,OldPos[i][0],OldPos[i][1],OldPos[i][2]),switched[i] = 2;
- }
- return 1;
- }
- public CheckWeapon(){
- new Weaps[13][2],Nameee[MAX_PLAYER_NAME];
- for(new i = 0; i<MAX_PLAYERS; i++)
- {
- if(IsPlayerNPC(i))continue;
- if(!IsPlayerConnected(i))continue;
- GetPlayerName(i,Nameee,MAX_PLAYER_NAME);
- for(new _w = 0; _w < 13; _w++)
- {
- GetPlayerWeaponData(i, _w, Weaps[_w][0], Weaps[_w][1]);
- if(Weaps[_w][0] <= 0 && Waffe[i][Weaps[_w][0]] != 1)continue;
- else if(Weaps[_w][0] < 1 && Weaps[_w][0] > 47)continue;
- else if(Weaps[_w][0] <= 0 || Weaps[_w][1] <= 0)continue;
- else if(nwh[i][Weaps[_w][0]] == 1 && FireWeapon(Weaps[_w][0])){nwh[i][Weaps[_w][0]] = 0; SetPlayerAmmo(i,_w,0); continue;}
- else if(Waffe[i][Weaps[_w][0]] <= 0 && nwh[i][Weaps[_w][0]] == 0 && Weaps[_w][0] != 46)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Waffenhack!",Nameee),Kicks(i);
- }
- }
- return 1;
- }
- stock FireWeapon(weaponid){
- switch(weaponid){
- case 16..18:return 1;
- case 22..39:return 1;
- default:return 0;
- }
- return 1;
- }
- public GivePlayerWeaponEx(playerid,Gun,Muni){
- Waffe[playerid][Gun] = 1;
- stopAC[playerid] = 15;
- return GivePlayerWeapon(playerid, Gun, Muni);
- }
- public GivePlayerMoneyEx(playerid,money){
- ACNewMoney[playerid] = GetPlayerMoney(playerid) + money;
- stopAC[playerid] = 15;
- return GivePlayerMoney(playerid,money);
- }
- public SetPlayerMoneyEx(playerid,money){
- ACNewMoney[playerid] = money;
- stopAC[playerid] = 15;
- return GivePlayerMoney(playerid,money);
- }
- public SetPlayerArmourEx(playerid,Float:armour){
- ACNewArmour[playerid] = armour;
- stopAC[playerid] = 15;
- return SetPlayerArmour(playerid,armour);
- }
- public GivePlayerArmourEx(playerid,Float:armour){
- ACNewArmour[playerid] += armour;
- stopAC[playerid] = 15;
- return SetPlayerArmour(playerid,ACNewArmour[playerid]);
- }
- public SetPlayerHealthEx(playerid,Float:health){
- ACNewHealth[playerid] = health;
- stopAC[playerid] = 15;
- return SetPlayerHealth(playerid,health);
- }
- public GivePlayerHealthEx(playerid,Float:health){
- ACNewHealth[playerid] = health;
- stopAC[playerid] = 15;
- return SetPlayerHealth(playerid,ACNewHealth[playerid]);
- }
- public SetPlayerPosEx(playerid,Float:x,Float:y,Float:z){
- posbyserver[playerid] = 1;
- SetTimerEx("pos",888*2,false,"i",playerid);
- stopAC[playerid] = 15;
- return SetPlayerPos(playerid,x,y,z);
- }
- public TogglePlayerControllableEx(playerid,toggle){
- switch(toggle)
- {
- case false:freezed[playerid] = 1;
- case true:freezed[playerid] = 0;
- }
- stopAC[playerid] = 15;
- return TogglePlayerControllable(playerid,toggle);
- }
- stock IsAPlane(vehicleid){
- switch(GetVehicleModel(vehicleid)){
- case 460,464,476,511,512,513,519,520,553,577,592,593: return 1;
- }
- return 0;
- }
- stock IsAHelicopter(vehicleid){
- switch(GetVehicleModel(vehicleid)){
- case 417,425,447,465,469,487,488,497,501,548,563: return 1;
- }
- return 0;
- }
- stock anty(string[]){
- if(strfind(string,"www.",true)!=-1 || strfind(string,"http://",true)!=-1 || strfind(string,".com",true)!=-1 || strfind(string,".de",true)!=-1 || strfind(string,".net",true)!=-1 || strfind(string,".tk",true)!=-1 || strfind(string,"91.",true)!=-1 || strfind(string,"195.",true)!=-1 ||strfind(string,".pl",true)!=-1|| strfind(string,".org",true)!=-1||
- strfind(string,"89.",true)!=-1 || strfind(string,"176.",true)!=-1 || strfind(string,":7777",true)!=-1 || strfind(string,"8.",true)!=-1 || strfind(string,"68.",true)!=-1 || strfind(string,"195.",true)!=-1 || strfind(string,"216.",true)!=-1|| strfind(string,"109.",true)!=-1||
- strfind(string,"37.",true)!=-1 || strfind(string,"95.",true)!=-1 || strfind(string,"77.",true)!=-1 || strfind(string,"174.",true)!=-1 || strfind(string,"202.",true)!=-1 || strfind(string,"212.",true)!=-1 || strfind(string,"188.",true)!=-1|| strfind(string,"31.",true)!=-1||
- strfind(string,"46.",true)!=-1 || strfind(string,"178.",true)!=-1 || strfind(string,"70.",true)!=-1 || strfind(string,"168.",true)!=-1 || strfind(string,"99.",true)!=-1 || strfind(string,"120.",true)!=-1 || strfind(string,"47.",true)!=-1|| strfind(string,"253.",true)!=-1||
- strfind(string,"85.",true)!=-1 || strfind(string,"86.",true)!=-1 || strfind(string,"9.",true)!=-1 || strfind(string,"208.",true)!=-1 || strfind(string,"64.",true)!=-1 || strfind(string,"34.",true)!=-1 || strfind(string,"78.",true)!=-1|| strfind(string,"100.",true)!=-1||
- strfind(string,"182.",true)!=-1 || strfind(string,"82.",true)!=-1 || strfind(string,"164.",true)!=-1 || strfind(string,"23.",true)!=-1 || strfind(string,"101.",true)!=-1 || strfind(string,"0.",true)!=-1 || strfind(string,"79.",true)!=-1)
- return true;
- return false;
- }
- stock GetVehicleSpeed(vehicleid){
- new Float:xPos[3];
- GetVehicleVelocity(vehicleid, xPos[0], xPos[1], xPos[2]);
- return floatround(floatsqroot(xPos[0] * xPos[0] + xPos[1] * xPos[1] + xPos[2] * xPos[2]) * 170.00);
- }
- stock Namee(playerid){
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid,name,sizeof(name));
- return name;
- }
- public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
- {
- if(Desk[playerid] >= 2 && afk_sicher[playerid] > 3)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: AFK-Ghost!",Namee(playerid)),Kicks(playerid);
- else if(Desk[playerid] >= 2 && afk_sicher[playerid] < 3)afk_sicher[playerid] ++;
- else if(!Desk[playerid])afk_sicher[playerid] = 0;
- if(GetPlayerAmmo(playerid) <= 1 && (weaponid >= 1 && weaponid <= 47))Waffe[playerid][weaponid] = 0,nwh[playerid][weaponid] = 1;
- if(weaponid != 38)
- {
- if((gettime() - ShotTime[playerid]) < 1)Shot[playerid]+=1;
- else Shot[playerid]=0;
- if(Shot[playerid] > 15)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Rapid-Fire!",Namee(playerid)),Kicks(playerid);
- ShotTime[playerid] = gettime();
- }
- if(IsWeaponWithAmmo(weaponid))
- {
- new count = 0;
- if(weaponid != CurrentWeapon[playerid]) CurrentWeapon[playerid] = weaponid, CurrentAmmo[playerid] = GetPlayerWeaponAmmo(playerid,weaponid), count++;
- if(GetPlayerWeaponAmmo(playerid,weaponid) > CurrentAmmo[playerid] || GetPlayerWeaponAmmo(playerid,weaponid) < CurrentAmmo[playerid]) CurrentAmmo[playerid] = GetPlayerWeaponAmmo(playerid,weaponid),NoReloading[playerid] = 0,count++;
- if(GetPlayerWeaponAmmo(playerid,weaponid) != 0 && GetPlayerWeaponAmmo(playerid,weaponid) == CurrentAmmo[playerid] && count == 0)
- {
- NoReloading[playerid]++;
- if(NoReloading[playerid] >= 5)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Unlimmited Ammo / No Reloading!",Namee(playerid));
- }
- }
- return 1;
- }
- stock GetPlayerSpeed(playerid) {
- if(playerid != INVALID_PLAYER_ID)
- {
- new Float:Pos[3],Float:PS;
- GetPlayerVelocity(playerid, Pos[0], Pos[1], Pos[2]);
- PS = floatsqroot(Pos[0]*Pos[0] + Pos[1]*Pos[1] + Pos[2]*Pos[2])*200;
- return floatround(PS,floatround_round);
- }
- return INVALID_PLAYER_ID;
- }
- public pos(playerid)return posbyserver[playerid] = 0;
- stock CheckFireArm(weaponid) {
- switch(weaponid)
- {
- case 16..39, 41..43: return 1;
- default: return 0;
- }
- return 0;
- }
- stock SetVehiclePosEx(vehicleid,Float:x,Float:y,Float:z){
- vPos[vehicleid][0] = x,vPos[vehicleid][1] = y,vPos[vehicleid][2] = z;
- return SetVehiclePos(vehicleid,x,y,z);
- }
- public OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat){
- new Float:x,Float:y,Float:z; GetVehiclePos(vehicleid, x, y, z);
- if(vPos[vehicleid][0] == 0.0 && vPos[vehicleid][1] == 0.0 && vPos[vehicleid][2] == 0.0)vPos[vehicleid][0] = x,vPos[vehicleid][1] = y,vPos[vehicleid][2] = z;
- new Float:dis = Distance(vPos[vehicleid][0],vPos[vehicleid][1],vPos[vehicleid][2], x,y,z);
- if(dis > 5)return SetVehiclePosEx(vehicleid,vPos[vehicleid][0],vPos[vehicleid][1],vPos[vehicleid][2]);
- else vPos[vehicleid][0] = x,vPos[vehicleid][1] = y,vPos[vehicleid][2] = z;
- return 1;
- }
- stock IsPlayerMoving(playerid){
- new Float:Velocity[3];
- GetPlayerVelocity(playerid, Velocity[0], Velocity[1], Velocity[2]);
- if(Velocity[0] == 0 && Velocity[1] == 0 && Velocity[2] == 0) return false;
- return true;
- }
- stock IsABike(vid){
- new modelid = GetVehicleModel(vid);
- if(modelid == 509||modelid ==510||modelid ==581||modelid ==522||modelid ==521||modelid ==523||modelid ==586||modelid ==481||modelid ==462||modelid ==448||modelid ==461||modelid ==463||modelid ==468||modelid ==471) return 1;
- else return 0;
- }
- stock IsWeaponWithAmmo(weaponid)
- {
- switch(weaponid)
- {
- case 16..18, 22..39, 41..42: return 1;
- default: return 0;
- }
- return 0;
- }
- stock GetPlayerWeaponAmmo(playerid,weaponid)
- {
- new wd[2][13];
- for(new i; i<13; i++)GetPlayerWeaponData(playerid,i,wd[0][i],wd[1][i]);
- for(new i; i<13; i++)if(weaponid == wd[0][i]) return wd[1][i];
- return 0;
- }
- stock Kicks(playerid)return SetTimerEx("Kicke",50,false,"i",playerid);
- public Kicke(playerid)return Kick(playerid);
- #if defined _ALS_OnPlayerConnect
- #undef OnPlayerConnect
- #else
- #define _ALS_OnPlayerConnect
- #endif
- #define OnPlayerConnect AC_OnPlayerConnect
- #if defined _ALS_OnGameModeInit
- #undef OnGameModeInit
- #else
- #define _ALS_OnGameModeInit
- #endif
- #define OnGameModeInit AC_OnGameModeInit
- #if defined _ALS_OnPlayerSpawn
- #undef OnPlayerSpawn
- #else
- #define _ALS_OnPlayerSpawn
- #endif
- #define OnPlayerSpawn AC_OnPlayerSpawn
- #if defined _ALS_OnPlayerDeath
- #undef OnPlayerDeath
- #else
- #define _ALS_OnPlayerDeath
- #endif
- #define OnPlayerDeath AC_OnPlayerDeath
- #if defined _ALS_OnPlayerText
- #undef OnPlayerText
- #else
- #define _ALS_OnPlayerText
- #endif
- #define OnPlayerText AC_OnPlayerText
- #if defined _ALS_OnPlayerEnterVehicle
- #undef OnPlayerEnterVehicle
- #else
- #define _ALS_OnPlayerEnterVehicle
- #endif
- #define OnPlayerEnterVehicle AC_OnPlayerEnterVehicle
- #if defined _ALS_OnVehicleMod
- #undef OnVehicleMod
- #else
- #define _ALS_OnVehicleMod
- #endif
- #define OnVehicleMod AC_OnVehicleMod
- #if defined _ALS_OnVehicleRespray
- #undef OnVehicleRespray
- #else
- #define _ALS_OnVehicleRespray
- #endif
- #define OnVehicleRespray AC_OnVehicleRespray
- #if defined _ALS_OnVehiclePaintjob
- #undef OnVehiclePaintjob
- #else
- #define _ALS_OnVehiclePaintjob
- #endif
- #define OnVehiclePaintjob AC_OnVehiclePaintjob
- #if defined _ALS_OnPlayerKeyStateChange
- #undef OnPlayerKeyStateChange
- #else
- #define _ALS_OnPlayerKeyStateChange
- #endif
- #define OnPlayerKeyStateChange AC_OnPlayerKeyStateChange
- #if defined _ALS_OnPlayerUpdate
- #undef OnPlayerUpdate
- #else
- #define _ALS_OnPlayerUpdate
- #endif
- #define OnPlayerUpdate AC_OnPlayerUpdate
- #if defined _ALS_OnPlayerDisconnect
- #undef OnPlayerDisconnect
- #else
- #define _ALS_OnPlayerDisconnect
- #endif
- #define OnPlayerDisconnect AC_OnPlayerDisconnect
- #if defined _ALS_OnPlayerExitVehicle
- #undef OnPlayerExitVehicle
- #else
- #define _ALS_OnPlayerExitVehicle
- #endif
- #define OnPlayerExitVehicle AC_OnPlayerExitVehicle
- #if defined _ALS_OnPlayerStateChange
- #undef OnPlayerStateChange
- #else
- #define _ALS_OnPlayerStateChange
- #endif
- #define OnPlayerStateChange AC_OnPlayerStateChange
- #define GivePlayerMoney GivePlayerWeaponEx
- #define SetPlayerMoney SetPlayerMoneyEx
- #define GivePlayerHealth GivePlayerHealthEx
- #define SetPlayerHealth SetPlayerHealthEx
- #define GivePlayerArmour GivePlayerArmourEx
- #define SetPlayerArmour SetPlayerArmourEx
- #define GivePlayerWeapon GivePlayerWeaponEx
- #define SetPlayerPos SetPlayerPosEx
- #define TogglePlayerControllable TogglePlayerControllableEx
- ocmd:aimbottest(playerid,p[])
- {
- if(!IsPlayerAdmin(playerid))return 1;
- new pID,Float:_pos[3];
- if(sscanf(p,"u",pID))return SCMF(playerid,Rot,"Benutzung: /aimbottest [SPIELER/ID]");
- if(!IsPlayerConnected(pID))return SCMF(playerid,Rot,"Dieser Spieler ist nicht Online!");
- GetPlayerPos(pID,_pos[0],_pos[1],_pos[2]);
- new tick = GetTickCount(), tickmax = tick + 300;
- SetPlayerPosEx(playerid,_pos[0]+0.5,_pos[1]+0.5,_pos[2]);
- if(GetPlayerTargetPlayer(pID) == playerid && tick <= tickmax)return SCMF(playerid,Rot,"Spieler hat Aimbot! ( Weiterer Test empfohlen! )");
- return SCMF(playerid,Rot,"Spieler hat kein Aimbot! ( Weiterer Test empfohlen! )");
- }
- stock IsPlayerSwimming(playerid)
- {
- if(!IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
- {
- new animlib[32], animname[32];
- GetAnimationName(GetPlayerAnimationIndex(playerid),animlib,32,animname,32);
- if(!strcmp(animlib, "SWIM", true) && !strcmp(animname, "SWIM_GLIDE", true)) return 1;
- else if(!strcmp(animlib, "SWIM", true) && !strcmp(animname, "SWIM_BREAST", true)) return 1;
- else if(!strcmp(animlib, "SWIM", true) && !strcmp(animname, "SWIM_CRAWL", true)) return 1;
- else if(!strcmp(animlib, "SWIM", true) && !strcmp(animname, "SWIM_DIVE_UNDER", true)) return 1;
- else if(!strcmp(animlib, "SWIM", true) && !strcmp(animname, "SWIM_DIVE_GLIDE", true)) return 1;
- else if(!strcmp(animlib, "SWIM", true) && !strcmp(animname, "SWIM_UNDER", true)) return 1;
- else if(!strcmp(animlib, "SWIM", true) && !strcmp(animname, "SWIM_TREAD", true)) return 1;
- }
- return 0;
- }
- stock InPlayerInWater(playerid)
- {
- new Float:x,Float:y,Float:z;
- GetPlayerPos(playerid, x, y, z);
- if((x >= -1408.0629 && y >= 2021.0587 && x <= -460.9319 && y <= 2861.4893) ||//Represa do deserto de Las Venturas
- (x >= 1269.5886 && y >= -810.4507 && x <= 1288.8916 && y <= -800.5959) ||//Piscina de uma casa em VineWood (Mad Dog's Mansion)
- (x >= 1086.6010 && y >= -683.6998 && x <= 1103.0225 && y <= -662.1832) ||//Piscina de uma casa em VineWood (Perto Mad Dog's Mansion)
- (x >= 169.6879 && y >= -1392.6630 && x <= 281.5444 && y <= -1168.9749) ||// 2 Piscinas em VineWood
- (x >= -828.3018 && y >= -2107.1487 && x <= -443.5032 && y <= -1855.6273) ||//Lago da Ă¡rvore caĂda, ou Lago Morto
- (x >= 1198.9982 && y >= -2407.0581 && x <= 1275.7397 && y <= -2341.6262) ||//Lago perto do aeroporto Los Santos
- (x >= 2293.1467 && y >= -1432.5869 && x <= 2331.7388 && y <= -1397.6476) ||//Lago perto da Igreja Los Santos
- (x >= 1915.3196 && y >= -1236.2382 && x <= 2016.6565 && y <= -1167.9290) ||//Park Glen Los Santos
- (x >= -2747.1692 && y >= -510.1152 && x <= -2663.2468 && y <= -411.4905) ||//Lago em San Fierro
- (x >= 1838.8041 && y >= 1463.2024 && x <= 2035.4167 && y <= 1703.0480) ||//Cascata do Login em Las Venturas
- (x >= 2049.6646 && y >= 1843.3029 && x <= 2119.9021 && y <= 1983.5464) ||//Navio Pirata em Las Venturas
- (x >= 2094.9255 && y >= 1085.2852 && x <= 2179.1790 && y <= 1183.0610) ||//Frente de um Cascino em Las Venturas
- (x >= 2545.3718 && y >= 2347.7112 && x <= 2593.6794 && y <= 2403.8040))//Piscina de um prédio em Las Venturas
- {
- return 1;
- }
- return 0;
- }
- forward AC_CheckFlyhack();
- public AC_CheckFlyhack()
- {
- for(new i; i < MAX_PLAYERS; i++)
- {
- if(!IsPlayerConnected(i))continue;
- if(!IsPlayerSwimming(i))continue;
- new Float:XPos,Float:YPos,Float:ZPos;
- GetPlayerPos(i,XPos,YPos,ZPos);
- if(ZPos > 1.0)
- {
- if(!InPlayerInWater(i))return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Flyhack!",Namee(i)),Kicks(i);
- }
- }
- return 1;
- }
- stock sscanf(string[], format[], {Float,_}:...)
- {
- #if defined isnull
- if (isnull(string))
- #else
- if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
- #endif
- {
- return format[0];
- }
- #pragma tabsize 4
- new
- formatPos = 0,
- stringPos = 0,
- paramPos = 2,
- paramCount = numargs(),
- delim = ' ';
- while (string[stringPos] && string[stringPos] <= ' ')
- {
- stringPos++;
- }
- while (paramPos < paramCount && string[stringPos])
- {
- switch (format[formatPos++])
- {
- case '\0':
- {
- return 0;
- }
- case 'i', 'd':
- {
- new
- neg = 1,
- num = 0,
- ch = string[stringPos];
- if (ch == '-')
- {
- neg = -1;
- ch = string[++stringPos];
- }
- do
- {
- stringPos++;
- if ('0' <= ch <= '9')
- {
- num = (num * 10) + (ch - '0');
- }
- else
- {
- return -1;
- }
- }
- while ((ch = string[stringPos]) > ' ' && ch != delim);
- setarg(paramPos, 0, num * neg);
- }
- case 'h', 'x':
- {
- new
- num = 0,
- ch = string[stringPos];
- do
- {
- stringPos++;
- switch (ch)
- {
- case 'x', 'X':
- {
- num = 0;
- continue;
- }
- case '0' .. '9':
- {
- num = (num << 4) | (ch - '0');
- }
- case 'a' .. 'f':
- {
- num = (num << 4) | (ch - ('a' - 10));
- }
- case 'A' .. 'F':
- {
- num = (num << 4) | (ch - ('A' - 10));
- }
- default:
- {
- return -1;
- }
- }
- }
- while ((ch = string[stringPos]) > ' ' && ch != delim);
- setarg(paramPos, 0, num);
- }
- case 'c':
- {
- setarg(paramPos, 0, string[stringPos++]);
- }
- case 'f':
- {
- new changestr[16], changepos = 0, strpos = stringPos;
- while(changepos < 16 && string[strpos] && string[strpos] != delim)
- {
- changestr[changepos++] = string[strpos++];
- }
- changestr[changepos] = '\0';
- setarg(paramPos,0,_:floatstr(changestr));
- }
- case 'p':
- {
- delim = format[formatPos++];
- continue;
- }
- case '\'':
- {
- new
- end = formatPos - 1,
- ch;
- while ((ch = format[++end]) && ch != '\'') {}
- if (!ch)
- {
- return -1;
- }
- format[end] = '\0';
- if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
- {
- if (format[end + 1])
- {
- return -1;
- }
- return 0;
- }
- format[end] = '\'';
- stringPos = ch + (end - formatPos);
- formatPos = end + 1;
- }
- case 'u':
- {
- new
- end = stringPos - 1,
- id = 0,
- bool:num = true,
- ch;
- while ((ch = string[++end]) && ch != delim)
- {
- if (num)
- {
- if ('0' <= ch <= '9')
- {
- id = (id * 10) + (ch - '0');
- }
- else
- {
- num = false;
- }
- }
- }
- if (num && IsPlayerConnected(id))
- {
- setarg(paramPos, 0, id);
- }
- else
- {
- #if !defined foreach
- #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
- #define __SSCANF_FOREACH__
- #endif
- string[end] = '\0';
- num = false;
- new
- name[MAX_PLAYER_NAME];
- id = end - stringPos;
- foreach (Player, playerid)
- {
- GetPlayerName(playerid, name, sizeof (name));
- if (!strcmp(name, string[stringPos], true, id))
- {
- setarg(paramPos, 0, playerid);
- num = true;
- break;
- }
- }
- if (!num)
- {
- setarg(paramPos, 0, INVALID_PLAYER_ID);
- }
- string[end] = ch;
- #if defined __SSCANF_FOREACH__
- #undef foreach
- #undef __SSCANF_FOREACH__
- #endif
- }
- stringPos = end;
- }
- case 's', 'z':
- {
- new
- i = 0,
- ch;
- if (format[formatPos])
- {
- while ((ch = string[stringPos++]) && ch != delim)
- {
- setarg(paramPos, i++, ch);
- }
- if (!i)
- {
- return -1;
- }
- }
- else
- {
- while ((ch = string[stringPos++]))
- {
- setarg(paramPos, i++, ch);
- }
- }
- stringPos--;
- setarg(paramPos, i, '\0');
- }
- default:
- {
- continue;
- }
- }
- while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
- {
- stringPos++;
- }
- while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
- {
- stringPos++;
- }
- paramPos++;
- }
- do
- {
- if ((delim = format[formatPos++]) > ' ')
- {
- if (delim == '\'')
- {
- while ((delim = format[formatPos++]) && delim != '\'') {}
- }
- else if (delim != 'z')
- {
- return delim;
- }
- }
- }
- while (delim > ' ');
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement