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 AC_Distancehack [X]
- ||8 Anti- Funktionen ||
- |AntiCheat Version 3.1|
- + Bugfix +
- + /Aimbottest +
- - Skinchanger entfernt-
- |AntiCheat Version 3.2|
- + /Godtest +
- + Airbrake gefixxt +
- Anti Carspawn [X]
- Anti Spec-/Camhack [X]
- Anti Mapstealer [X] // Bei Objekten mit "CreateObject" bzw "CreatePlayerObject"
- Anti Carjackhack [X]
- Anti Fast-Carexit [X]
- ||5 Anti- Funktionen ||
- |AntiCheat Version 3.3|
- + Ingame einstellbar +
- + Anti Badword fixed +
- ||0 Anti- Funktionen ||
- | Gesamt |
- | 33 Anti- Funktionen |
- */
- //Einstellen!
- new badword[][] = {
- "Opfer",
- "Lauch"
- };
- //////////////
- #include <a_samp>
- #include <ocmd>
- #include <dini>
- //Farben
- #define AC_Rot 0xE10000FF
- #define dIntSet dini_IntSet
- #define dInt dini_Int
- #define AC_ANTI_FUNCS 29
- #define AC_FILE "/AntiCheatSettings.ini"
- #define MAX_PING 700 // Maximaler Ping
- #define MAX_VEHSPEED 290 // Vehicle-Speed ( am besten so lassen! )
- #define MAX_PLAYERSPEED 90 // 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! )
- enum{
- AC_AntiMenu = 8000,
- AC_Config,
- AC_Config2,
- AC_Config3,
- };
- //[0] = 1 = on / 2 = off
- //[1] = 1 = kick / 2 = ban
- new AC_Anti[AC_ANTI_FUNCS][3];
- new AC_AntiNames[AC_ANTI_FUNCS][32] = {
- "Jetpackhack", // 0
- "Waffenhack", // 1
- "Healthhack", // 2
- "Armourhack", // 3
- "Moneyhack", // 4
- "Ping", // 5
- "Speedhack (Vehicle)",// 6
- "C-Bug", // 7
- "Spawnkill", // 8
- "Drive-By", // 9
- "Tuninghack", // 10
- "Flyhack", // 11
- "Airbrake", // 12
- "Joypad", // 13
- "Rapidfire", // 14
- "Vehicle-Teleport",//15
- "Teleporthack", // 16
- "Carsurf", // 17
- "AFK-Ghost", // 18
- "Slidebug", // 19
- "No Reload / Unlimited Ammo",// 20
- "Player-Speedhack",//21
- "Carspawn", // 22
- "Spec-/Camhack",//23
- "Carjackhack", // 24
- "Fast-Carexit", // 25
- "IP/URL", // 26
- "Spam", // 27
- "Badword" // 28
- };
- new fmex[128];
- #define AC_SCMToAllF(%0,%1,%2) format(fmex,128,%1,%2) && SendClientMessageToAll(%0, fmex)
- #define AC_SCMF(%0,%1,%2) format(fmex,128,%2) && SendClientMessage(%0,%1,fmex)
- #define AC_PRESSED(%0) (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
- forward AntiCheatTimer();
- forward SpamReset(playerid);
- forward AC_pos(playerid);
- forward Desktop_Function(playerid);
- forward Kicke(playerid);
- forward AC_checkWeapon();
- forward AC_checkAim(playerid);
- new ACNewMoney[MAX_PLAYERS],
- Float:ACNewArmour[MAX_PLAYERS],
- Float:ACNewHealth[MAX_PLAYERS],
- SpamCount[MAX_PLAYERS],
- CBugCount[MAX_PLAYERS],
- AC_Waffe[MAX_PLAYERS][47],
- nwh[MAX_PLAYERS][47],
- Shot[MAX_PLAYERS],
- ShotTime[MAX_PLAYERS],
- Float:OldAC_pos[MAX_PLAYERS][3],
- Float:NewAC_pos[MAX_PLAYERS][3],
- switched[MAX_PLAYERS],
- posbyserver[MAX_PLAYERS],
- Float:vAC_pos[MAX_VEHICLES][4],
- Desktop_AC_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],
- Float:LastX[MAX_PLAYERS],
- Float:LastY[MAX_PLAYERS],
- Float:LastZ[MAX_PLAYERS],
- AC_Fall[MAX_PLAYERS],
- AC_vspawn[MAX_VEHICLES],
- AC_Spectating[MAX_PLAYERS],
- AC_PlayerVeh[MAX_PLAYERS],
- AC_PutedVehicle[MAX_PLAYERS],
- AC_Timer[3],
- AC_PEdit[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 AC_GivePlayerMoneyEx(playerid,money);
- forward AC_SetPlayerMoneyEx(playerid,money);
- forward AC_GivePlayerHealthEx(playerid,Float:health);
- forward AC_SetPlayerHealthEx(playerid,Float:health);
- forward AC_GivePlayerArmourEx(playerid,Float:armour);
- forward AC_SetPlayerArmourEx(playerid,Float:armour);
- forward AC_GivePlayerWeaponEx(playerid,Gun,Muni);
- forward AC_SetPlayerPosEx(playerid,Float:x,Float:y,Float:z);
- forward AC_TogglePlayerControllableEx(playerid,toggle);
- forward AC_TogglePlayerSpectatingEx(playerid,toggle);
- forward AC_Fallingchecker();
- forward AC_OnVehicleStreamIn(vehicleid,forplayerid);
- forward AC_CreateVehicle_Ex(modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay);
- forward AC_AddStaticVehicle_Ex(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:angle, color1, color2);
- forward AC_AddStaticVehicleEx_Ex(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:angle, color1, color2,respawn_delay);
- forward AC_CreateObjectEx(modelid,Float:x,Float:y,Float:z,Float:rX,Float:rY,Float:rZ,Float:draw);
- forward AC_CreatePlayerObjectEx(playerid,modelid,Float:x,Float:y,Float:z,Float:rX,Float:rY,Float:rZ,Float:draw);
- forward AC_SetVehicleZAngleEx(vehicleid,Float:zangle);
- forward AC_PutPlayerInVehicleEx(playerid,vehicleid,seatid);
- forward AC_OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]);
- forward AC_OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ);
- forward AC_SetVehiclePosEx(vehicleid,Float:AC_vx,Float:AC_vy,Float:AC_vz);
- forward AC_OnUnoccupiedVehicleUpdate(vehicleid,playerid,passenger_seat);
- public OnGameModeInit(){
- CallLocalFunction("AC_OnGameModeInit","");
- print("\n--------------------------------------");
- print(" AntiCheat by ErikSon");
- print("--------------------------------------\n");
- AC_LoadSettings();
- SetTimer("AntiCheatTimer",100,true);
- if(AC_Anti[1][0] == 1)AC_Timer[0] = SetTimer("AC_checkWeapon",888*2,true);
- if(AC_Anti[11][0] == 1)AC_Timer[1] = SetTimer("AC_checkFlyhack",888*2,true);
- if(AC_Anti[21][0] == 1)AC_Timer[2] = SetTimer("AC_Fallingchecker",500,true);
- return EnableStuntBonusForAll(false);
- }
- public AC_Fallingchecker(){
- new Float:x,Float:y,Float:z,Float:d;
- for(new i =0; i<MAX_PLAYERS; i++){
- if(IsPlayerConnected(i)){
- GetPlayerPos(i,x,y,z);
- d = floatsqroot((x-LastX[i] * x-LastX[i]) + (y-LastY[i] * y-LastY[i]));
- if(d < 10 && (LastZ[i] - z) > 5)AC_Fall[i] = 1;
- else AC_Fall[i] = 0;
- LastX[i] = x,LastY[i] = y,LastZ[i] = z;
- }
- }
- return 1;
- }
- public OnVehicleStreamIn(vehicleid,forplayerid){
- return CallLocalFunction("AC_OnVehicleStreamIn","ii",vehicleid,forplayerid);
- }
- public OnPlayerConnect(playerid)
- {
- Desk[playerid] = 0, afk_sicher[playerid] = 0;
- switched[playerid] = 0,EnterLockedV[playerid] = 0;
- Shot[playerid] = 0, ShotTime[playerid] = 0;
- AC_SetPlayerHealthEx(playerid,100);
- Desktop_AC_check[playerid] = 0,Desktop_Timer_Started[playerid] = 0,Desktop_Status[playerid] = 0,gmd[playerid] = 0,starte[playerid] = 0,
- AC_PlayerVeh[playerid] = -1;
- return CallLocalFunction("AC_OnPlayerConnect","i",playerid);
- }
- public OnPlayerSpawn(playerid){
- AC_TogglePlayerControllableEx(playerid,1),
- AC_Waffe[playerid][0] = 1, AC_Waffe[playerid][1] = 1;
- if(!starte[playerid])starte[playerid] = 1;
- return CallLocalFunction("AC_OnPlayerSpawn","i",playerid);
- }
- public OnPlayerDeath(playerid, killerid, reason){
- if(AC_Anti[9][0] == 1){
- if(GetPlayerState(killerid) == PLAYER_STATE_DRIVER)
- {
- new vehicleid,vehiclemodel;
- vehicleid = GetPlayerVehicleID(killerid);
- vehiclemodel = GetVehicleModel(vehicleid);
- if(IsPlayerInAnyVehicle(playerid))return 1;
- else if(vehiclemodel == 425)return 1; // Hunter
- else if(vehiclemodel == 432)return 1; // Rhino
- else if(vehiclemodel == 447)return 1; // Seasparrow
- else if(vehiclemodel == 476)return 1; // Rustler
- else if(vehiclemodel == 520)return 1; // Hydra
- switch(AC_Anti[9][1]){
- case 1:return Kicks(killerid),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Driveby!",AC_Namee(killerid));
- case 2:return Bans(killerid),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Driveby!",AC_Namee(killerid));
- }
- return 1;
- }
- }
- return CallLocalFunction("AC_OnPlayerDeath","iii",playerid,killerid,reason);
- }
- public OnPlayerText(playerid, text[]){
- if(AC_Anti[26][0] == 1){
- if(anty(text)){
- switch(AC_Anti[26][1]){
- case 1:return Kicks(playerid),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gekickt. Grund: IP / Adresse.",AC_Namee(playerid));
- case 2:return Bans(playerid),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gebannt. Grund: IP / Adresse.",AC_Namee(playerid));
- }
- }
- }
- if(AC_Anti[27][0] == 1){
- SpamCount[playerid] ++;
- SetTimerEx("SpamReset",888*SPAMLIMIT,false,"i",playerid);
- if(SpamCount[playerid] > SPAMLIMIT){
- SpamCount[playerid] = 0;
- switch(AC_Anti[27][1]){
- case 1:return Kicks(playerid),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde von Server gekickt. Grund: Spam!",AC_Namee(playerid));
- case 2:return Bans(playerid),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde von Server gebannt. Grund: Spam!",AC_Namee(playerid));
- }
- }
- }
- if(AC_Anti[28][0] == 1){
- new i = 0;
- for(;i<sizeof(badword);i++){
- if(strfind(text,badword[i],true) != -1){
- switch(AC_Anti[28][1]){
- case 1:return Kicks(playerid),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Badword!",AC_Namee(playerid));
- case 2:return Bans(playerid),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Badword!",AC_Namee(playerid));
- }
- }
- }
- }
- return CallLocalFunction("AC_OnPlayerText","is",playerid,text);
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger){
- if(AC_IsAPlane(vehicleid) || AC_IsAHelicopter(vehicleid))AC_GivePlayerWeaponEx(playerid,46,1);
- if(AC_Anti[24][0] == 1 || AC_Anti[25][0] == 1)AC_PlayerVeh[playerid] = vehicleid; stopAC[playerid] = 30;
- if(AC_Anti[24][0] == 1){
- new Engine, Lights, Alarm,Doors, Bonnet,Boot,Objective;
- GetVehicleParamsEx(vehicleid, Engine, Lights, Alarm, Doors, Bonnet, Boot, Objective);
- if(!AC_IsABike(vehicleid) && Doors == 1)return EnterLockedV[playerid] = vehicleid;
- }
- if(AC_Anti[1][0] == 1)SetPlayerArmedWeapon(playerid,0);
- if(AC_Anti[22][0] == 1)if(AC_vspawn[vehicleid] != 1)DestroyVehicle(vehicleid),AC_vspawn[vehicleid] = 0;
- return CallLocalFunction("AC_OnPlayerEnterVehicle","iii",playerid,vehicleid,ispassenger);
- }
- public OnVehicleMod(playerid, vehicleid, componentid){
- if(AC_Anti[10][0] == 1){
- if(GetPlayerInterior(playerid) == 0){
- switch(AC_Anti[10][1]){
- case 1:return Kicks(playerid),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Tuning-Hack!",AC_Namee(playerid));
- case 2:return Bans(playerid),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Tuning-Hack!",AC_Namee(playerid));
- }
- }
- }
- return CallLocalFunction("AC_OnVehicleMod","iii",playerid,vehicleid,componentid);
- }
- public OnVehiclePaintjob(playerid, vehicleid, paintjobid){
- if(AC_Anti[10][0] == 1){
- if(GetPlayerInterior(playerid) == 0){
- switch(AC_Anti[10][1]){
- case 1:return Kicks(playerid),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Tuning-Hack!",AC_Namee(playerid));
- case 2:return Bans(playerid),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Tuning-Hack!",AC_Namee(playerid));
- }
- }
- }
- return CallLocalFunction("AC_OnVehiclePaintjob","iii",playerid,vehicleid,paintjobid);
- }
- public OnVehicleRespray(playerid, vehicleid, color1, color2){
- if(AC_Anti[10][0] == 1){
- if(GetPlayerInterior(playerid) == 0){
- switch(AC_Anti[10][1]){
- case 1:return Kicks(playerid),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Tuning-Hack!",AC_Namee(playerid));
- case 2:return Bans(playerid),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Tuning-Hack!",AC_Namee(playerid));
- }
- }
- }
- return CallLocalFunction("AC_OnVehicleRespray","iiii",playerid,vehicleid,color1,color2);
- }
- public OnPlayerExitVehicle(playerid,vehicleid){
- if(AC_Anti[24][0] == 1 || AC_Anti[25][0] == 1)AC_PlayerVeh[playerid] = -1,AC_PutedVehicle[playerid] = 0;
- if(AC_Anti[15][0] == 1){
- new Float:x,Float:y,Float:z; GetVehiclePos(vehicleid,x,y,z);
- vAC_pos[vehicleid][0] = x,vAC_pos[vehicleid][1] = y,vAC_pos[vehicleid][2] = z;
- }
- return CallLocalFunction("AC_OnPlayerExitVehicle","ii",playerid,vehicleid);
- }
- public OnPlayerDisconnect(playerid,reason){
- if(IsPlayerInAnyVehicle(playerid) && AC_Anti[15][0] == 1){
- new Float:x,Float:y,Float:z,vehicleid = GetPlayerVehicleID(playerid);
- GetVehiclePos(vehicleid,x,y,z);
- vAC_pos[vehicleid][0] = x,vAC_pos[vehicleid][1] = y,vAC_pos[vehicleid][2] = z;
- }
- if(Desktop_Timer_Started[playerid] == 1) { KillTimer(Desktop_Timer[playerid]); }
- return CallLocalFunction("AC_OnPlayerDisconnect","ii",playerid,reason);
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys){
- if(AC_Anti[7][0] == 1){
- if(((oldkeys & KEY_FIRE) || (oldkeys==KEY_FIRE)) && ((newkeys & KEY_CROUCH) || (newkeys==KEY_CROUCH)) && (!IsPlayerInAnyVehicle(playerid)))
- {
- CBugCount[playerid] ++;
- if(CBugCount[playerid] >= MAX_CBUG){
- switch(AC_Anti[7][1]){
- case 1:return Kicks(playerid),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gekickt. Grund: C-Bug!",AC_Namee(playerid));
- case 2:return Bans(playerid),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gebannt. Grund: C-Bug!",AC_Namee(playerid));
- }
- }
- }
- }
- if(AC_Anti[19][0] == 1){
- 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 CallLocalFunction("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(AC_Anti[24][0] == 1 || AC_Anti[25][0] == 1){
- if(AC_PlayerVeh[playerid] != GetPlayerVehicleID(playerid) && !AC_PutedVehicle[playerid]){
- switch(AC_Anti[24][1]){
- case 1:Kicks(playerid),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Carjackhack!",AC_Namee(playerid));
- case 2:Bans(playerid),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Carjackhack!",AC_Namee(playerid));
- }
- }
- return AC_PutedVehicle[playerid] = 0;
- }
- if(AC_Anti[9][0] == 1)SetPlayerArmedWeapon(playerid,0);
- if(AC_Anti[24][0] == 1){
- if(EnterLockedV[playerid] == GetPlayerVehicleID(playerid)){
- switch(AC_Anti[24][1]){
- case 1:return Kicks(playerid),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Enter locked Vehicle!",AC_Namee(playerid));
- case 2:return Bans(playerid),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Enter locked Vehicle!",AC_Namee(playerid));
- }
- }
- }
- }
- return CallLocalFunction("AC_OnPlayerStateChange","iii",playerid,newstate,oldstate);
- }
- stock Float:AC_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:AC_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_AC_check[playerid] += 1;
- new keys, ud, lr;
- GetPlayerKeys(playerid, keys, ud, lr);
- if(AC_Anti[13][0] == 1){
- if((ud != 128 && ud != 0 && ud != -128) || (lr != 128 && lr != 0 && lr != -128)){
- switch(AC_Anti[13][1]){
- case 1:Kicks(playerid),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Joypad!",AC_Namee(playerid));
- case 2:Bans(playerid),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Joypad!",AC_Namee(playerid));
- }
- }
- }
- return CallLocalFunction("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(AC_Anti[0][0] == 1 && GetPlayerSpecialAction(i) == SPECIAL_ACTION_USEJETPACK){
- switch(AC_Anti[0][1]){
- case 1:return Kicks(i),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Jetpack!",SName);
- case 2:return Bans(i),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Jetpack!",SName);
- }
- }
- else if(AC_Anti[5][0] == 1 && GetPlayerPing(i) > AC_Anti[5][2]){
- switch(AC_Anti[5][1]){
- case 1:return Kicks(i),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Zu hoher Ping! ( %i / %i )",SName,GetPlayerPing(i),AC_Anti[5][2]);
- case 2:return Bans(i),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Zu hoher Ping! ( %i / %i )",SName,GetPlayerPing(i),AC_Anti[5][2]);
- }
- }
- else if(AC_Anti[4][0] == 1 && GetPlayerMoney(i) > ACNewMoney[i]){
- switch(AC_Anti[4][1]){
- case 1:return Kicks(i),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Moneyhack!",SName);
- case 2:return Bans(i),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Moneyhack!",SName);
- }
- }
- else if(AC_Anti[2][0] == 1 && health > ACNewHealth[i]){
- switch(AC_Anti[2][1]){
- case 1:return Kicks(i),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Healthhack!",SName);
- case 2:return Bans(i),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Healthhack!",SName);
- }
- }
- else if(AC_Anti[3][0] == 1 && armour > ACNewArmour[i]){
- switch(AC_Anti[3][1]){
- case 1:return Kicks(i),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Armourhack!",SName);
- case 2:return Bans(i),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Armourhack!",SName);
- }
- }
- else if(AC_Anti[21][0] == 1 && !AC_Fall[i] && AC_GetPlayerSpeed(i) > MAX_PLAYERSPEED){
- switch(AC_Anti[21][1]){
- case 1:return Kicks(i),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Speedhack!",SName);
- case 2:return Bans(i),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Speedhack!",SName);
- }
- }
- else if(AC_Anti[6][0] == 1 && IsPlayerInAnyVehicle(i))if(AC_GetVehicleSpeed(GetPlayerVehicleID(i)) > MAX_VEHSPEED){
- switch(AC_Anti[6][1]){
- case 1:return Kicks(i),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Speedhack!",SName);
- case 2:return Bans(i),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Speedhack!",SName);
- }
- }
- else if(AC_Anti[23][0] == 1 && !IsPlayerInAnyVehicle(i) && AC_Spectating[i] <= 0 && AC_DistancePlayerAndCamera(i) > 40){
- switch(AC_Anti[23][1]){
- case 1:return Kicks(i),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Camhack!",SName);
- case 2:return Bans(i),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Camhack!",SName);
- }
- }
- surf = GetPlayerSurfingVehicleID(i);
- if(AC_Anti[17][0] == 1 && !(GetPlayerSurfingVehicleID(i) == INVALID_VEHICLE_ID) && (AC_GetVehicleSpeed(surf) > 0))return SetPlayerPos(i,x,y,z+10);
- if(AC_Anti[12][0] == 1){
- if(switched[i])
- {
- GetPlayerPos(i,NewAC_pos[i][0],NewAC_pos[i][1],NewAC_pos[i][2]);
- new Float:d = AC_Distance(OldAC_pos[i][0],OldAC_pos[i][1],OldAC_pos[i][2],NewAC_pos[i][0],NewAC_pos[i][1],NewAC_pos[i][2]);
- if(d >= 15 && posbyserver[i] != 1){
- switch(AC_Anti[12][1]){
- case 1:return Kicks(i),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Airbrake / Teleporthack!",SName);
- case 2:return Bans(i),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Airbrake / Teleporthack!",SName);
- }
- }
- switched[i] = 0;
- }
- else if(!switched[i])GetPlayerPos(i,OldAC_pos[i][0],OldAC_pos[i][1],OldAC_pos[i][2]),switched[i] = 1;
- }
- if(AC_Anti[25][0] == 1 && !IsPlayerInAnyVehicle(i) && AC_PlayerVeh[i] >0){
- switch(AC_Anti[25][1]){
- case 1:return Kicks(i),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Fast-Carexit!",AC_Namee(i));
- case 2:return Bans(i),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Fast-Carexit!",AC_Namee(i));
- }
- }
- }
- return 1;
- }
- public AC_checkWeapon(){
- new Weaps[13][2],AC_Nameee[MAX_PLAYER_NAME];
- for(new i = 0; i<MAX_PLAYERS; i++)
- {
- if(IsPlayerNPC(i))continue;
- if(!IsPlayerConnected(i))continue;
- GetPlayerName(i,AC_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 && AC_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 && AC_FireWeapon(Weaps[_w][0])){nwh[i][Weaps[_w][0]] = 0; SetPlayerAmmo(i,_w,0); continue;}
- else if(AC_Waffe[i][Weaps[_w][0]] <= 0 && nwh[i][Weaps[_w][0]] == 0 && Weaps[_w][0] != 46){
- switch(AC_Anti[1][1]){
- case 1:return Kicks(i),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Waffenhack!",AC_Nameee);
- case 2:return Bans(i),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Waffenhack!",AC_Nameee);
- }
- }
- }
- }
- return 1;
- }
- stock AC_FireWeapon(weaponid){
- switch(weaponid){
- case 16..18:return 1;
- case 22..39:return 1;
- default:return 0;
- }
- return 1;
- }
- public AC_GivePlayerWeaponEx(playerid,Gun,Muni){
- AC_Waffe[playerid][Gun] = 1;
- stopAC[playerid] = 15;
- return GivePlayerWeapon(playerid, Gun, Muni);
- }
- public AC_GivePlayerMoneyEx(playerid,money){
- ACNewMoney[playerid] = GetPlayerMoney(playerid) + money;
- stopAC[playerid] = 15;
- return GivePlayerMoney(playerid,money);
- }
- public AC_SetPlayerMoneyEx(playerid,money){
- ACNewMoney[playerid] = money;
- stopAC[playerid] = 15;
- return GivePlayerMoney(playerid,money);
- }
- public AC_SetPlayerArmourEx(playerid,Float:armour){
- ACNewArmour[playerid] = armour;
- stopAC[playerid] = 15;
- return SetPlayerArmour(playerid,armour);
- }
- public AC_GivePlayerArmourEx(playerid,Float:armour){
- ACNewArmour[playerid] += armour;
- stopAC[playerid] = 15;
- return SetPlayerArmour(playerid,ACNewArmour[playerid]);
- }
- public AC_SetPlayerHealthEx(playerid,Float:health){
- ACNewHealth[playerid] = health;
- stopAC[playerid] = 15;
- return SetPlayerHealth(playerid,health);
- }
- public AC_GivePlayerHealthEx(playerid,Float:health){
- ACNewHealth[playerid] = health;
- stopAC[playerid] = 15;
- return SetPlayerHealth(playerid,ACNewHealth[playerid]);
- }
- public AC_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 AC_TogglePlayerControllableEx(playerid,toggle){
- switch(toggle)
- {
- case false:freezed[playerid] = 1;
- case true:freezed[playerid] = 0;
- }
- stopAC[playerid] = 15;
- return TogglePlayerControllable(playerid,toggle);
- }
- public AC_TogglePlayerSpectatingEx(playerid,toggle){
- AC_Spectating[playerid] = toggle;
- return TogglePlayerSpectating(playerid,1);
- }
- public AC_CreateVehicle_Ex(modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay){
- new vehicleid = CreateVehicle(modelid,Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay);
- return AC_vspawn[vehicleid] = 1;
- }
- public AC_AddStaticVehicle_Ex(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:angle, color1, color2){
- new vehicleid = AddStaticVehicle(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:angle, color1, color2);
- return AC_vspawn[vehicleid] = 1;
- }
- public AC_AddStaticVehicleEx_Ex(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:angle, color1, color2,respawn_delay){
- new vehicleid = AddStaticVehicleEx(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:angle, color1, color2,respawn_delay);
- return AC_vspawn[vehicleid] = 1;
- }
- public AC_PutPlayerInVehicleEx(playerid,vehicleid,seatid){
- AC_PutedVehicle[playerid] = 1;
- return PutPlayerInVehicle(playerid,vehicleid,seatid);
- }
- stock AC_IsAPlane(vehicleid){
- switch(GetVehicleModel(vehicleid)){
- case 460,464,476,511,512,513,519,520,553,577,592,593: return 1;
- }
- return 0;
- }
- stock AC_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 AC_GetVehicleSpeed(vehicleid){
- new Float:xAC_pos[3];
- GetVehicleVelocity(vehicleid, xAC_pos[0], xAC_pos[1], xAC_pos[2]);
- return floatround(floatsqroot(xAC_pos[0] * xAC_pos[0] + xAC_pos[1] * xAC_pos[1] + xAC_pos[2] * xAC_pos[2]) * 170.00);
- }
- stock AC_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(AC_Anti[18][0] == 1 && Desk[playerid] >= 2 && afk_sicher[playerid] > 3){
- switch(AC_Anti[18][1]){
- case 1:return Kicks(playerid),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gekickt. Grund: AFK-Ghost!",AC_Namee(playerid));
- case 2:return Bans(playerid),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gebannt. Grund: AFK-Ghost!",AC_Namee(playerid));
- }
- }
- if(Desk[playerid] >= 2 && afk_sicher[playerid] < 3)afk_sicher[playerid] ++;
- else if(!Desk[playerid])afk_sicher[playerid] = 0;
- if(AC_Anti[1][0] == 1 && GetPlayerAmmo(playerid) <= 1 && (weaponid >= 1 && weaponid <= 47))AC_Waffe[playerid][weaponid] = 0,nwh[playerid][weaponid] = 1;
- if(AC_Anti[14][0] == 1 && weaponid != 38)
- {
- if((gettime() - ShotTime[playerid]) < 1)Shot[playerid]+=1;
- else Shot[playerid]=0;
- if(Shot[playerid] > 15){
- switch(AC_Anti[14][1]){
- case 1:return Kicks(playerid),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Rapid-Fire!",AC_Namee(playerid));
- case 2:return Bans(playerid),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Rapid-Fire!",AC_Namee(playerid));
- }
- }
- ShotTime[playerid] = gettime();
- }
- if(AC_Anti[20][0] == 1 && AC_IsWeaponWithAmmo(weaponid))
- {
- new count = 0;
- if(weaponid != CurrentWeapon[playerid]) CurrentWeapon[playerid] = weaponid, CurrentAmmo[playerid] = AC_GetPlayerWeaponAmmo(playerid,weaponid), count++;
- if(AC_GetPlayerWeaponAmmo(playerid,weaponid) > CurrentAmmo[playerid] || AC_GetPlayerWeaponAmmo(playerid,weaponid) < CurrentAmmo[playerid]) CurrentAmmo[playerid] = AC_GetPlayerWeaponAmmo(playerid,weaponid),NoReloading[playerid] = 0,count++;
- if(AC_GetPlayerWeaponAmmo(playerid,weaponid) != 0 && AC_GetPlayerWeaponAmmo(playerid,weaponid) == CurrentAmmo[playerid] && count == 0)
- {
- NoReloading[playerid]++;
- if(NoReloading[playerid] >= 5){
- switch(AC_Anti[20][1]){
- case 1:return Kicks(playerid),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Unlimmited Ammo / No Reloading!",AC_Namee(playerid));
- case 2:return Bans(playerid),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Unlimmited Ammo / No Reloading!",AC_Namee(playerid));
- }
- }
- }
- }
- return CallLocalFunction("AC_OnPlayerWeaponShot","iiiifff",playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ);
- }
- stock AC_GetPlayerSpeed(playerid) {
- if(playerid != INVALID_PLAYER_ID)
- {
- new Float:AC_ppos[3],Float:PS;
- GetPlayerVelocity(playerid, AC_ppos[0], AC_ppos[1], AC_ppos[2]);
- PS = floatsqroot(AC_ppos[0]*AC_ppos[0] + AC_ppos[1]*AC_ppos[1] + AC_ppos[2]*AC_ppos[2])*200;
- return floatround(PS,floatround_round);
- }
- return INVALID_PLAYER_ID;
- }
- public AC_pos(playerid)return posbyserver[playerid] = 0;
- stock AC_checkFireArm(weaponid) {
- switch(weaponid)
- {
- case 16..39, 41..43: return 1;
- default: return 0;
- }
- return 0;
- }
- public AC_SetVehiclePosEx(vehicleid,Float:AC_vx,Float:AC_vy,Float:AC_vz){
- vAC_pos[vehicleid][0] = AC_vx,vAC_pos[vehicleid][1] = AC_vy,vAC_pos[vehicleid][2] = AC_vz;
- return SetVehiclePos(vehicleid,AC_vx,AC_vy,AC_vz);
- }
- public AC_CreateObjectEx(modelid,Float:x,Float:y,Float:z,Float:rX,Float:rY,Float:rZ,Float:draw){
- new object = CreateObject(modelid,0,0,0,0,0,0,draw);
- return SetObjectPos(object,x,y,z), SetObjectRot(object,rX,rY,rZ);
- }
- public AC_CreatePlayerObjectEx(playerid,modelid,Float:x,Float:y,Float:z,Float:rX,Float:rY,Float:rZ,Float:draw){
- new object = CreatePlayerObject(playerid,modelid,0,0,0,0,0,0,draw);
- return SetPlayerObjectPos(playerid,object,x,y,z), SetPlayerObjectRot(playerid,object,rX,rY,rZ);
- }
- public OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat){
- new Float:x,Float:y,Float:z; GetVehiclePos(vehicleid, x, y, z);
- if(vAC_pos[vehicleid][0] == 0.0 && vAC_pos[vehicleid][1] == 0.0 && vAC_pos[vehicleid][2] == 0.0)vAC_pos[vehicleid][0] = x,vAC_pos[vehicleid][1] = y,vAC_pos[vehicleid][2] = z;
- new Float:dis = AC_Distance(vAC_pos[vehicleid][0],vAC_pos[vehicleid][1],vAC_pos[vehicleid][2], x,y,z);
- if(dis > 5)return AC_SetVehiclePosEx(vehicleid,vAC_pos[vehicleid][0],vAC_pos[vehicleid][1],vAC_pos[vehicleid][2]);
- else vAC_pos[vehicleid][0] = x,vAC_pos[vehicleid][1] = y,vAC_pos[vehicleid][2] = z;
- return CallLocalFunction("AC_OnUnoccupiedVehicleUpdate","iii",vehicleid,playerid,passenger_seat);
- }
- stock AC_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 AC_IsWeaponWithAmmo(weaponid)
- {
- switch(weaponid)
- {
- case 16..18, 22..39, 41..42: return 1;
- default: return 0;
- }
- return 0;
- }
- stock AC_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",100,false,"i",playerid);
- public Kicke(playerid)return Kick(playerid);
- forward Banne(playerid);
- stock Bans(playerid)return SetTimerEx("Banne",100,false,"i",playerid);
- public Banne(playerid)return Ban(playerid);
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){
- CallLocalFunction("AC_OnDialogResponse","iiiis",playerid, dialogid, response, listitem, inputtext);
- new ac_str[128];
- switch(dialogid){
- case AC_AntiMenu:{
- if(!response)return 1;
- new x = listitem,onoff[16];
- AC_PEdit[playerid] = x;
- switch(AC_Anti[x][0]){
- case 1:(onoff = "ausschalten");
- case 2:(onoff = "einschalten");
- }
- if(x == 5)format(ac_str,128,"Cheat / Hack '%s'\nStrafe ändern\nPing ändern",onoff);
- else format(ac_str,128,"Cheat / Hack '%s'\nStrafe ändern",onoff);
- return ShowPlayerDialog(playerid,AC_Config,DIALOG_STYLE_LIST,"Anti - Cheat | Bearbeiten",ac_str,"Auswählen / Bearbeiten","Abbrechen");
- }
- case AC_Config:{
- if(!response)return ocmd_accfg(playerid);
- new x = AC_PEdit[playerid];
- switch(listitem){
- case 0:{
- switch(AC_Anti[x][0]){
- case 1:AC_Anti[x][0] = 2;
- case 2:AC_Anti[x][0] = 1;
- }
- switch(x){
- case 1:{
- if(AC_Anti[x][0] == 1)AC_Timer[0] = SetTimer("AC_checkWeapon",888*2,true);
- else KillTimer(AC_Timer[0]);
- }
- case 11:{
- if(AC_Anti[x][0] == 1)AC_Timer[1] = SetTimer("AC_checkFlyhack",888*2,true);
- else KillTimer(AC_Timer[1]);
- }
- case 21:{
- if(AC_Anti[21][0] == 1)AC_Timer[2] = SetTimer("AC_Fallingchecker",500,true);
- else KillTimer(AC_Timer[2]);
- }
- }
- AC_SaveSettings();
- return ocmd_accfg(playerid);
- }
- case 1:return ShowPlayerDialog(playerid,AC_Config2,DIALOG_STYLE_LIST,"Anti - Cheat | Bearbeiten","Bestrafen mit 'Kick'\nBestrafen mit 'Ban'","Auswählen / Bearbeiten","Abbrechen");
- case 2:{
- if(AC_PEdit[playerid] != 5)return ocmd_accfg(playerid);
- return ShowPlayerDialog(playerid,AC_Config3,DIALOG_STYLE_INPUT,"Anti - Cheat | Bearbeiten","Gebe den maximalen Ping ein,\nden ein Spieler auf dem Server haben darf:","Bearbeiten / Speichern","Abbrechen");
- }
- }
- }
- case AC_Config2:{
- if(!response)return ocmd_accfg(playerid);
- AC_Anti[AC_PEdit[playerid]][1] = listitem +1;
- AC_SaveSettings();
- return ocmd_accfg(playerid);
- }
- case AC_Config3:{
- if(!response)return ocmd_accfg(playerid);
- if(!strval(inputtext))AC_SCMF(playerid,AC_Rot,"Du musst eine Zahl eingeben!");
- else AC_Anti[5][2] = strval(inputtext);
- AC_SaveSettings();
- return ocmd_accfg(playerid);
- }
- }
- return 1;
- }
- ocmd:aimbottest(playerid,p[])
- {
- if(!IsPlayerAdmin(playerid))return 1;
- new pID,Float:_AC_pos[3];
- if(AC_sscanf(p,"u",pID))return AC_SCMF(playerid,AC_Rot,"Benutzung: /aimbottest [SPIELER/ID]");
- if(!IsPlayerConnected(pID))return AC_SCMF(playerid,AC_Rot,"Dieser Spieler ist nicht Online!");
- GetPlayerPos(pID,_AC_pos[0],_AC_pos[1],_AC_pos[2]);
- new tick = GetTickCount(), tickmax = tick + 300;
- AC_SetPlayerPosEx(playerid,_AC_pos[0]+0.5,_AC_pos[1]+0.5,_AC_pos[2]);
- if(GetPlayerTargetPlayer(pID) == playerid && tick <= tickmax)return AC_SCMF(playerid,AC_Rot,"Spieler hat Aimbot! ( Weiterer Test empfohlen! )");
- return AC_SCMF(playerid,AC_Rot,"Spieler hat kein Aimbot! ( Weiterer Test empfohlen! )");
- }
- ocmd:godtest(playerid,params[])
- {
- if(!IsPlayerAdmin(playerid))return 1;
- new targetid;
- if(AC_sscanf(params,"u",targetid))return SendClientMessage(playerid,0xFF5B00FF,"** Benutzung: /godtest <Spieler-Name / - ID>");
- if(!IsPlayerConnected(targetid))return SendClientMessage(playerid,0xFF0000FF,"** Der Spieler ist nicht verbunden");
- new Float:px,Float:py,Float:pz,player[MAX_PLAYER_NAME],string[144];
- GetPlayerName(playerid,player,sizeof(player));
- GetPlayerPos(targetid,px,py,pz);
- format(string,sizeof(string),"[Godtest] Du wirst nun vom Teammitglied '%s' (ID: %i) auf Godmode überprüft.",player,playerid);
- SendClientMessage(targetid,0x6FABFFFF,string);
- SendClientMessage(targetid,0x6FABFFFF,"[Godtest] Solltest du versuchen, den AC_check zu umgehen, wirst du permanent vom Server gesperrt!");
- SendClientMessage(targetid,0x6FABFFFF,"[Godtest] Du wirst nun überprüft, bitte habe einen Moment Geduld...");
- SetPlayerHealth(targetid,100), SetPlayerArmour(targetid,0);
- SetTimerEx("AC_check",2000,false,"dd",playerid,targetid);
- return CreateExplosion(px, py, pz, 0, 10.0);
- }
- forward AC_check(playerid,targetid);
- public AC_check(playerid,targetid)
- {
- if(!IsPlayerConnected(targetid))return SendClientMessage(playerid,0xFF0000FF,"** Der Spieler ist nicht verbunden");
- new target[MAX_PLAYER_NAME],Float:nh,string[144];
- GetPlayerName(targetid,target,sizeof(target));
- GetPlayerHealth(targetid,nh);
- SendClientMessage(targetid,0x6FABFFFF,"[Godtest] Der AC_check wurde erfolgreich beendet!");
- SendClientMessage(targetid,0x6FABFFFF,"[Godtest] Das Ergebnis wurde dem Teammitglied übermittelt.");
- format(string,sizeof(string),"[Godtest] Du hast den Spieler '%s' (ID: %i) auf Godmode überprüft.",target,targetid);
- SendClientMessage(playerid,0x6FABFFFF,string);
- SendClientMessage(playerid,0x6FABFFFF,"[Godtest] Ergebnis:");
- if(nh >= 100) {
- SendClientMessage(playerid,0x6FABFFFF,"[Godtest] Godmode: {00FF00}Vorhanden{FFFFFF}!");
- SetPlayerHealth(targetid,100);
- } else {
- SendClientMessage(playerid,0x6FABFFFF,"[Godtest] Godmode: {FF0000}Nicht vorhanden{FFFFFF}!");
- SetPlayerHealth(targetid,100);
- }
- return 1;
- }
- ocmd:accfg(playerid){
- if(!IsPlayerAdmin(playerid))return 1;
- new string[64],str[1024],kbr[32],onoff[16];
- for(new i = 0; i<AC_ANTI_FUNCS; i++){
- if(i != 5){
- switch(AC_Anti[i][1]){
- case 1:(kbr = "Kick");
- case 2:(kbr = "Ban");
- case 3:(kbr = "Reset");
- }
- }
- switch(AC_Anti[i][0]){
- case 1:(onoff = "On");
- case 2:(onoff = "Off");
- }
- if(i != 5)format(string,64,"'%s' | '%s' | '%s' %c",AC_AntiNames[i],onoff,kbr,(i == AC_ANTI_FUNCS) ? '\0' : '\n'),strins(str,string,strlen(str),sizeof(str));
- else if(i == 5)format(string,64,"'%s' | '%s' | Max Ping: %d\n",AC_AntiNames[i],onoff,AC_Anti[5][2]),strins(str,string,strlen(str),sizeof(str));
- }
- return ShowPlayerDialog(playerid,AC_AntiMenu,DIALOG_STYLE_LIST,"Anti - Cheat",str,"Auswählen / Bearbeiten","Abbrechen");
- }
- stock AC_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 AC_IsPlayerInWater(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(!AC_IsPlayerInWater(i))continue;
- new Float:Xpos,Float:Ypos,Float:Zpos;
- GetPlayerPos(i,Xpos,Ypos,Zpos);
- if(Zpos > 1.0){
- if(!AC_IsPlayerSwimming(i)){
- switch(AC_Anti[11][1]){
- case 1:return Kicks(i),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Flyhack!",AC_Namee(i));
- case 2:return Bans(i),AC_SCMToAllF(AC_Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Flyhack!",AC_Namee(i));
- }
- }
- }
- }
- return 1;
- }
- forward Float:AC_DistancePlayerAndCamera(playerid);
- stock Float:AC_DistancePlayerAndCamera(playerid){
- if(GetPlayerState(playerid) != PLAYER_STATE_SPECTATING){
- new Float:pP[3],Float:tP[3],Float:Float_NaN;
- if(!GetPlayerPos(playerid,pP[0],pP[1],pP[2]) || !GetPlayerCameraPos(playerid,tP[0],tP[1],tP[2]))return Float_NaN;
- pP[0] -= tP[0], pP[1] -= tP[1], pP[2] -= tP[2];
- return floatsqroot(floatpower(pP[0],2.0) + floatpower(pP[1],2.0) + floatpower(pP[2],2.0));
- }
- else return floatsqroot(0);
- }
- stock AC_LoadSettings(){
- if(!dini_Exists(AC_FILE)){
- dini_Create(AC_FILE);
- AC_Standard();
- return AC_SaveSettings();
- }
- new str[32];
- for(new i = 0; i<AC_ANTI_FUNCS; i++){
- if(i == 5){
- format(str,32,"%s_2",AC_AntiNames[5]);
- AC_Anti[5][2] = dInt(AC_FILE,str);
- }
- for(new x = 0; x<2; x++){
- format(str,32,"%s_%d",AC_AntiNames[i],x);
- AC_Anti[i][x] = dInt(AC_FILE,str);
- }
- }
- return 1;
- }
- stock AC_SaveSettings(){
- if(!dini_Exists(AC_FILE)){
- dini_Create(AC_FILE);
- return AC_Standard();
- }
- new str[32];
- for(new i = 0; i<AC_ANTI_FUNCS; i++){
- if(i == 5){
- format(str,32,"%s_2",AC_AntiNames[5]);
- dIntSet(AC_FILE,str,AC_Anti[5][2]);
- }
- for(new x = 0; x<2; x++){
- format(str,32,"%s_%d",AC_AntiNames[i],x);
- dIntSet(AC_FILE,str,AC_Anti[i][x]);
- }
- }
- return 1;
- }
- stock AC_Standard(){
- for(new i = 0; i<AC_ANTI_FUNCS; i++){
- AC_Anti[i][0] = 1;
- AC_Anti[i][1] = 1;
- }
- return AC_Anti[5][2] = 700;
- }
- //Ende
- stock AC_sscanf(msg[],arg[],{Float,_}:...) {
- new s_pos = strfind(msg," "),all=1,bool:end;
- while(s_pos != -1 && end == false) {
- strdel(msg,0,s_pos+1),all++,s_pos = strfind(msg," ");
- if(s_pos == -1) end = true,s_pos=strlen(msg);
- new i,tmp[32],var;
- switch(arg[all-2]) {
- case 's': for(; i<s_pos; i++) tmp[var] = msg[i],setarg(all,var,tmp[var]),var++;
- case 'd','i': {
- for(; i<s_pos; i++) tmp[var] = msg[i],var++;
- setarg(all,0,strval(tmp));
- }
- case 'f': {
- for(; i<s_pos; i++) tmp[var] = msg[i],var++;
- setarg(all,0,_:floatstr(tmp));
- }
- }
- }
- return 1;
- }
- #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
- #if defined _ALS_OnVehicleStreamIn
- #undef OnVehicleStreamIn
- #else
- #define _ALS_OnVehicleStreamIn
- #endif
- #define OnVehicleStreamIn AC_OnVehicleStreamIn
- #if defined _ALS_OnDialogResponse
- #undef OnDialogResponse
- #else
- #define _ALS_OnDialogResponse
- #endif
- #define OnDialogResponse AC_OnDialogResponse
- #if defined _ALS_OnPlayerWeaponShot
- #undef OnPlayerWeaponShot
- #else
- #define _ALS_OnPlayerWeaponShot
- #endif
- #define OnPlayerWeaponShot AC_OnPlayerWeaponShot
- #if defined _ALS_GivePlayerMoney
- #undef GivePlayerMoney
- #else
- #define _ALS_GivePlayerMoney
- #endif
- #define GivePlayerMoney AC_GivePlayerMoneyEx
- #if defined _ALS_SetPlayerMoney
- #undef SetPlayerMoney
- #else
- #define _ALS_SetPlayerMoney
- #endif
- #define SetPlayerMoney AC_SetPlayerMoneyEx
- #if defined _ALS_GivePlayerHealth
- #undef GivePlayerHealth
- #else
- #define _ALS_GivePlayerHealth
- #endif
- #define GivePlayerHealth AC_GivePlayerHealthEx
- #if defined _ALS_SetPlayerHealth
- #undef SetPlayerHealth
- #else
- #define _ALS_SetPlayerHealth
- #endif
- #define SetPlayerHealth AC_SetPlayerHealthEx
- #if defined _ALS_GivePlayerArmour
- #undef GivePlayerArmour
- #else
- #define _ALS_GivePlayerArmour
- #endif
- #define GivePlayerArmour AC_GivePlayerArmourEx
- #if defined _ALS_SetPlayerArmour
- #undef SetPlayerArmour
- #else
- #define _ALS_SetPlayerArmour
- #endif
- #define SetPlayerArmour AC_SetPlayerArmourEx
- #if defined _ALS_GivePlayerWeapon
- #undef GivePlayerWeapon
- #else
- #define _ALS_GivePlayerWeapon
- #endif
- #define GivePlayerWeapon AC_GivePlayerWeaponEx
- #if defined _ALS_SetPlayerPos
- #undef SetPlayerPos
- #else
- #define _ALS_SetPlayerPos
- #endif
- #define SetPlayerPos AC_SetPlayerPosEx
- #if defined _ALS_TogglePlayerControllable
- #undef TogglePlayerControllable
- #else
- #define _ALS_TogglePlayerControllable
- #endif
- #define TogglePlayerControllable AC_TogglePlayerControllableEx
- #if defined _ALS_TogglePlayerSpectating
- #undef TogglePlayerSpectating
- #else
- #define _ALS_TogglePlayerSpectating
- #endif
- #define TogglePlayerSpectating AC_TogglePlayerSpectatingEx
- #if defined _ALS_CreateVehicle
- #undef CreateVehicle
- #else
- #define _ALS_CreateVehicle
- #endif
- #define CreateVehicle AC_CreateVehicle_Ex
- #if defined _ALS_AddStaticVehicle
- #undef AddStaticVehicle
- #else
- #define _ALS_AddStaticVehicle
- #endif
- #define AddStaticVehicle AC_AddStaticVehicle_Ex
- #if defined _ALS_AddStaticVehicleEx
- #undef AddStaticVehicleEx
- #else
- #define _ALS_AddStaticVehicleEx
- #endif
- #define AddStaticVehicleEx AC_AddStaticVehicleEx_Ex
- #if defined _ALS_CreateObject
- #undef CreateObject
- #else
- #define _ALS_CreateObject
- #endif
- #define CreateObject AC_CreateObjectEx
- #if defined _ALS_CreatePlayerObject
- #undef CreatePlayerObject
- #else
- #define _ALS_CreatePlayerObject
- #endif
- #define CreatePlayerObject AC_CreatePlayerObjectEx
- #if defined _ALS_PutPlayerInVehicle
- #undef PutPlayerInVehicle
- #else
- #define _ALS_PutPlayerInVehicle
- #endif
- #define PutPlayerInVehicle AC_PutPlayerInVehicleEx
- #if defined _ALS_SetVehiclePos
- #undef SetVehiclePos
- #else
- #define _ALS_SetVehiclePos
- #endif
- #define SetVehiclePos AC_SetVehiclePosEx
- #if defined _ALS_OnUnoccupiedVehicleUpdate
- #undef OnUnoccupiedVehicleUpdate
- #else
- #define _ALS_OnUnoccupiedVehicleUpdate
- #endif
- #define OnUnoccupiedVehicleUpdate AC_OnUnoccupiedVehicleUpdate
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement