Hallo,
hab mal ne kleine Frage. Wie kann ich abfragen ob ein Spieler eine Bestimmte Waffe hat (Minigun). Also mit welcher Abfrage.
Minigun abfrage
- TheTutoFreak
- 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
-
-
GetPlayerWeapon - Wenn der Spieler die Waffe in der Hand hält
GetPlayerWeaponData - Wenn der die Waffe bei sich hat (allgemein seine Waffen) -
Und wie geht das bei GetPlayerWeaponData ?
GetPlayerWeaponData (???); -
Vgl. WaffenCheat System?
-
Schau dir die Wiki dazu an
-
Ich habe es so gemacht aber jetzt Spamt es mir den Chat zu, selbst wenn ich nicht mal eine in der Hand habe...
public WeaponCheck()
{
for(new i;i<MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[i][pAdminlevel] == 0)
{
if(GetPlayerWeapon(i) == 38 || 28 || 32 || 35 || 36 || 37 || 39 || 40)
{
new string[128],name[MAX_PLAYER_NAME];
GetPlayerName(i,name,sizeof(name));
format(string,sizeof(string),"AntiCheat: %s ist im Verdacht sich Waffen zu cheaten.",name);
SendClientMessageToAdmin(Rot,string);
}
}
}
}
return 1;
} -
Du musst ja auch die Waffe immer erneut abfragen
Nicht so: 38 28 ..
Sondern: 38 GetPlayerWeapon(playerid) == 28 .. -
Ah jetzt geht es und wie kann ich mache ndas die Meldung dan nur 1x in ner Stunde angezeigt wird
-
Wieso denn einmal in der Stunde?
Wenn du den Spieler kicken möchtest, dann Kick(i); und die Nachricht hört bei dem Spieler auf.#edit:
Jede Stunde ist nicht wirklich sinnvoll, denn wenn in dieser Stunde ein 2. Cheater da ist, dann wird dieser nicht gemeldet.. -
//Callback (Timer)
forward WeaponCheck();
public WeaponCheck(){
for(new i,string[75],pname[MAX_PLAYER_NAME];i<GetMaxPlayers();++i){
if(!IsPlayerConnedted(playerid) || IsPlayerNPC(playerid))continue;
GetPlayerName(i,pname_,sizeof pname_);
new weapons[13][2];
for(new x;x<12;++x){
GetPlayerWeaponData(i,x,weapons[x][0],weapons[x][1]);
if(weapons[x][0] == 38){
format(string,sizeof string,"AdmCmd: %s wurde vom Anti-Cheat gebannt. Grund: Minigun",pname_);
SendClientMessageToAll(colorcode,string);
return Kick(i);
}
}
}
}//Timer starten bei OnGameModeInit
SetTimer("WeaponCheck",6*10000*60,true);Ist ungetestet, müsse aber soweit Funktionieren.
Aber es rentiert sich wirklich nicht nur jede Stunde den Spieler abzufragen..mfg
-
Man muss es nicht in einen Timer packen.. Man kann es auch bei OnPlayerUpdate reinpacken
-
Kann man, wäre aber auf Dauer nicht die beste Lösung.
Mit einen Timer ist er schon gut dran -
Man muss es nicht in einen Timer packen.. Man kann es auch bei OnPlayerUpdate reinpacken
Wenn du seinen Beitrag gelesen hättest, dann wüsstest du dass er das so wollte.Zitatwie kann ich mache ndas die Meldung dan nur 1x in ner Stunde angezeigt wird
mfg
-
breadfish.de
Hat das Thema geschlossen.