Hey Jungs und Mädels,
ich bin am verzweifeln. Ich habe mir ein Anti Cheat gedownloadet und es bei mir im Script eingefügt. Ich habe sogar M_Bot dafür raus genommen.
Nun habe ich aber mehrere Probleme und ich weis nicht wie ich die Beheben kann ..
Probleme :
Undzwar, wenn ich /aduty mache wird ja mein Armor auf 100 gesetzt. Wenn ich aduty off gehe werde ich gekickt = Armor hack.
Am Startower ist ein Fallschirm, wenn ich den aufhebe werde ich gekickt = Waffenhack.
Wenn ich vom Startower runter springe werde ich gekickt = Speedhack.
Nach einer bestimmten Zeit werde ich wegen Healthhack gekickt, obwohl ich nichts mache. Ich war aufm Desktop und als ich wieder ongekommen bin wurde ich gekickt.
Wenn ich als Landwirt das Feld zuende geerntet habe, werde ich in einen LKW getan und sofort gekickt = Teleport hack
Ich habe bis her nur das Moneycheat behoben.
Ich habe mit dem Hersteller des Anti cheats gesprochen und er sagt bei ihm funktioniert es wunderbar.
Ich soll alles mit Ex am ende machen sprich GivePlayerMoney wird zu GivePlayerMoneyEx. Das habe ich soweit bei allem gemacht, egal ob givegun oder armor oder health.
Ich benutze das norme GnE Script welches ich editiert habe.
Hier mal die Funktionen und die da wo ich gekickt werde.
public GivePlayerWeaponEx(playerid,Gun,Muni){
Waffe[playerid][Gun] = 1;
return GivePlayerWeapon(playerid, Gun, Muni);
}
public GivePlayerMoneyEx(playerid,money){
ACNewMoney[playerid] += money;
return GivePlayerMoney(playerid,money);
}
public SetPlayerMoneyEx(playerid,money){
ACNewMoney[playerid] = money;
ResetPlayerMoney(playerid);
return GivePlayerMoney(playerid,ACNewMoney[playerid]);
}
public SetPlayerArmourEx(playerid,Float:armour){
ACNewArmour[playerid] = armour;
parmour[playerid] = armour;
return SetPlayerArmour(playerid,armour);
}
public GivePlayerArmourEx(playerid,Float:armour){
new Float:oarmour;
GetPlayerArmour(playerid,oarmour);
ACOldArmour[playerid] = oarmour;
ACNewArmour[playerid] = armour += oarmour;
parmour[playerid] = armour += oarmour;
return SetPlayerArmour(playerid,armour + oarmour);
}
public SetPlayerHealthEx(playerid,Float:health){
ACNewHealth[playerid] = health;
return SetPlayerHealth(playerid,health);
}
public GivePlayerHealthEx(playerid,Float:health){
ACNewHealth[playerid] += health;
return SetPlayerHealth(playerid,ACNewHealth[playerid]);
}
public AC_CheckWeapon(playerid){
new Weaps[13][2],AC_Namee[MAX_PLAYER_NAME];
if(SpawnWaffenVar[playerid] == 0)
{
for(new i = 0; i<MAX_PLAYERS; i++)
{
if(IsPlayerNPC(i))continue;
if(!IsPlayerConnected(i))continue;
GetPlayerName(i,AC_Namee,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){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)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Waffenhack!",AC_Namee),Kicks(i);
}
}
}
return 1;
}
public AC_AntiCheatTimer(){
new i = 0,Float:health,Float:armour,surf;
for(; i<MAX_PLAYERS; i++)
{
new a = 0;
for(; a<MAX_PLAYERS; a++)
{
if(PlayerInfo[a][pAdmin] <= 0)
{
if(!IsPlayerConnected(i))continue;
if(AC_start[i] == 0)continue;
if(Desk[i] >= 1)continue;
if(IsPlayerNPC(i))continue;
GetPlayerHealth(i,health);
GetPlayerArmour(i,armour);
new SAC_Name[MAX_PLAYER_NAME]; GetPlayerName(i,SAC_Name,MAX_PLAYER_NAME);
if(GetPlayerSpecialAction(i) == SPECIAL_ACTION_USEJETPACK)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Jetpack!",SAC_Name),Kicks(i);
else if(GetPlayerPing(i) > MAX_PING)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Zu hoher Ping! ( %i / %i )",SAC_Name,GetPlayerPing(i),MAX_PING),Kicks(i);
else if(GetPlayerMoney(i) > ACNewMoney[i])return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Moneyhack!",SAC_Name),Kicks(i);//
else if(health > ACNewHealth[i])return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Healthhack!",SAC_Name),Kicks(i);
else if(armour > ACNewArmour[i])return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Armourhack!",SAC_Name),Kicks(i);
else if(freezed[i] == 1 && AC_GetPlayerSpeed(i) > 0)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Unfreeze!",SAC_Name),Kicks(i);
else if(AC_GetPlayerSpeed(i) > MAX_PLAYERSPEED)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Speedhack!",SAC_Name),Kicks(i);
else if(IsPlayerInAnyVehicle(i))if(AC_GetVehicleSpeed(GetPlayerVehicleID(i)) > MAX_VEHSPEED)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Speedhack!",SAC_Name),Kicks(i);
surf = GetPlayerSurfingVehicleID(i);
if(!(GetPlayerSurfingVehicleID(i) == INVALID_VEHICLE_ID) && (AC_GetVehicleSpeed(surf) > 0))return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Carsurf!",SAC_Name),Kicks(i);
if(switched[i] == 2)
{
GetPlayerPos(i,NewPos[i][0],NewPos[i][1],NewPos[i][2]);
new Float:d = AC_Distance(OldPos[i][0],OldPos[i][1],OldPos[i][2],NewPos[i][0],NewPos[i][1],NewPos[i][2]);
if(d >= 18 && posbyserver[i] != 1)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Airbrake / Teleporthack!",SAC_Name),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;
}
Ich möchte das Anti Cheat umbedingt benutzen, also bitte nicht mit "nimm es raus" ankommen ..
Ja falls ihr noch Codes oder sonstiges braucht könnt ihr bescheid sagen
Ich hoffe jemand kann mir bei dem Problemen helfen ..
Mfg Saphire