Hallo ich habe mir ein Eigenes Simples Anti WaffenCheat System gescriptet.
Nur eine Zeile die makiert ist , ist ein Empty Statement?
Ausserdem ist das Richtig kann man das so abfragen?
forward Blub(playerid);
public Blub(playerid)
{//36 //39 37 16 38
if(GetPlayerWeapon(playerid) == 16 || 37 || 39 || 36 || 38);//Die Zeile
{
format(ALLESTRINGS,sizeof(ALLESTRINGS),"AntiCheat:%s wurde gebannt. Grund: Waffenhack",SpielerName(playerid));
SendClientMessageToAll(ROT,ALLESTRINGS);
}
}
WaffenCheat System?
- BiGGian
- Geschlossen
- Erledigt
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
-
-
Du musst für jede ID noch mal GetPlayerWeapon abfragen glaube ich.
-
forward Blub(playerid);
public Blub(playerid)
{//36 //39 37 16 38
if(GetPlayerWeapon(playerid) == 16 || 37 || 39 || 36 || 38)
{
format(ALLESTRINGS,sizeof(ALLESTRINGS),"AntiCheat:%s wurde gebannt. Grund: Waffenhack",SpielerName(playerid));
SendClientMessageToAll(ROT,ALLESTRINGS);
}
}Das ; weg -
Mein Gott ich mache immer so bei Abfragen wenn ich nicht aufpasse ein Semicolon .Ich muss demnächst mehr nachdenken.
Danke dir
Eine Frage noch wie kann ich das ganze Sinnvoll abrufen? -
Gar nicht
Die Abfrage wird IMMER Wahr sein.
Du musst nämlich immer eine prüfung von etwas machen wenn du etwas abfragst.
Das hateißt du kannst nicht einfach
if(GetPlayerWeapon(playerid) == 16 || 37 || 39 || 36 || 38)
machen, weil 37 etc immer != 0 sind.
du müsstest also immer wieder die waffe abfragen -
Wartemal wie soll den immer wieder die Waffe abfragen kappier ich jetzt nicht ?
-
if(GetPlayerWeapon(playerid) == 16 || 37 || 39 || 36 || 38)
machs mal so:
if(GetPlayerWeapon(playerid) == 16 ||GetPlayerWeapon(playerid) == 37 || GetPlayerWeapon(playerid) == 39 || GetPlayerWeapon(playerid) == 36 || GetPlayerWeapon(playerid) == 38)
mfg.
-
enum cheatwepaon
{
16,
37,
39,
36,
38
};
if(GetPlayerWeapon(playerid)==cheatweapon)
{
....
}So gehts auch xD
-
Dann wird er aber auch gekickt, wenn du die von einem Admin bekommst.
Musst du halt noch eine Abfrage reinmachen, dass wenn er sie von einem Admin bekommt, der Code abgebrochen wird. -
Oder er kann den Waffenhack per /wphack
so wie ich ein und aus schalten ;D -
forward Blub(playerid);
public Blub(playerid)
{//36 //39 37 16 38
if(GetPlayerWeapon(playerid) == 16 ||GetPlayerWeapon(playerid) == 37 || GetPlayerWeapon(playerid) == 39 || GetPlayerWeapon(playerid) == 36 || GetPlayerWeapon(playerid) == 38)
{
format(ALLESTRINGS,sizeof(ALLESTRINGS),"AntiCheat:%s wurde gebannt. Grund: Waffenhack",SpielerName(playerid));
SendClientMessageToAll(ROT,ALLESTRINGS);
KickPlayer(playerid);
SetPVarInt(playerid,"Gebannt",1);
}
}
Ich habe es so gemacht und es passiert aber nix Ingame . Man wird nicht gebannt -
Natürlich passiert da nichts.
Mach eine for-Schleife, durchlaufe alle Spieler, hau ein Timer bei onGameModeInit rein, ruf den auf und dann frag die Schleife mit GetPlayerWeapon ab. -
Wieso nutzt die nicht die neuen Funktionen von 0.3d
OnPlayerGiveDamage oder OnPlayerTakeDamage
Ich würde es ungefähr so machen:
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
{
new string[128], opfer[MAX_PLAYER_NAME], angreifer[MAX_PLAYER_NAME];
new weaponname[24];
GetPlayerName(playerid, opfer, sizeof (opfer));
GetPlayerName(issuerid, angreifer, sizeof (angreifer));
GetWeaponName(weaponid, weaponname, sizeof (weaponname));
if(weaponid == 38)
{
format(string, sizeof(string), "ANTI-CHEAT: %s griff %s mit einer %s an. Er wurde gebannt.", angreifer, opfer,weaponame);
SendClientMessageToAll(COLOR_GREY,string);
SendClientMessage(playerid,COLOR_RED," Du wurdest gebannt/gekickt, da Du dir eine Minigun ercheatest hast. ");
Kick(issuerid);
}
return 1;
} -
Natürlich passiert da nichts.
Mach eine for-Schleife, durchlaufe alle Spieler, hau ein Timer bei onGameModeInit rein, ruf den auf und dann frag die Schleife mit GetPlayerWeapon ab.
Danke dir Perfekt
Kann Closed werden -
breadfish.de
Hat das Thema geschlossen.