Moin,
ich möchte mal ein Anti-Cheat-System bauen
Nun ich wollte mit den Waffen anfangen..Wie mache ich das wenn man z.B sich die Waffe mit ID 38 ercheatet das man gebannt wird?
Also wenn man sich bestimmte Waffen cheatet die dort eingetragen sind wird man gebannt
danke im vorraus
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
@AntiCheat();
new i = 0;
@AntiCheat()
{
for(; i < MAX_PLAYERS; i++)
{
if(GetPlayerWeapon(i) == 38)
{
Ban(i);
}
}
return 1;
} -
aber wird man dann nicht auch gebannt, wenn man z.b. zum minigun-dm geht?
-
Marshall wenn du willst kan ich dir ein für deinen Server guten Anti-Weapon-cheat einbauen. Habe da einen muss diesen nur wegen dem MinigunArena umschreiben.
-
das hab ich eben gemeint...wenn man dann zur minigun-arena geht, denkt das anti-cheat-system, dass man sich eine minigun gecheatet hat^^ xD
-
Also soll ich dir ein scripten für dein gmode wo ers nit denkt?
-
Und jetzt mal ein "richtiges" Anti-Cheat + Ping Kick:
#include a_samp#define maxPingWarns 5
#define maxPing 500new
i = 0,
ip[16],
str[64],
s = 0,
wep,
ammo,
n[MAX_PLAYER_NAME],
pingWarns[MAX_PLAYERS],
pingVar[MAX_PLAYERS];public OnGameModeInit()
{
SetTimer("Checking", 1000, false);
return 1;
}@Checking();
@Checking()
{
for(; i < MAX_PLAYERS; i++)
{
if(BadPlayerWeapons(i))
{
GetPlayerName(i, n, sizeof(n));
GetPlayerIp(i, ip, sizeof(ip));
for(; s < 13; s++) GetPlayerWeaponData(i, s, wep, ammo);
format(str, sizeof(str), "%s wurde wegen Waffenhack (WaffenID: %d, Ammo: %d) gebannt. IP: %d", n, wep, ammo, ip);
SendClientMessageToAll(0xFF0000FF, str);
BanEx(i, "Weaponhack");
}
pingVar[i]++;
if(pingVar[i] > 10 && pingWarns[i] < maxPingWarns)
{
pingVar[i] = 0;
pingWarns[i]++;
if(pingWarns[i] > maxPingWarns)
{
GetPlayerName(i, n, sizeof(n));
format(str, sizeof(str), "%s wurde wegen High-Ping (Ping: %d), gekickt.", n, GetPlayerPing(i));
SendClientMessageToAll(0xFF0000FF, str);
Kick(i);
}
format(str, sizeof(str), "Du hast bisher %d von %d Ping Warns! Bitte fix deinen Ping!", pingWarns[i], maxPingWarns);
SendClientMessage(i, 0xFF0000FF, str);
}
}
return 1;
}stock BadPlayerWeapons(thePlayer)
{
new gun = GetPlayerWeapon(thePlayer);
if(gun == 16 || gun == 18 || gun == 35 || gun == 36 || gun == 37 || gun == 38 || gun == 39) return 1;
return 0;
} -
dankee