HP von Spieler jederzeit abfragen
- VAM
- Geschlossen
- Erledigt
-
-
-
Korrigiere mich wenn ich falsch liege, aber bei OnGameModeInit kannst du doch keiner playerid verwenden, oder?
-
Hab das jetzt so , aber der Pawno Compiler crasht deswegen.. also beim compilen :
Codeif(Leben > 99.0)return { new logstr[128]; format(logstr,sizeof(logstr),"Der Spieler %s wurde vom System gebannt. Grund: Heal-Hack", PlayerName(playerid)); AddLog("log_ban.txt",logstr); KickEx(playerid); return 1; }
Und oben bei den Variablen halt :
Kann mir wer helfen und sagen warum es crasht ?
-
-
Korrigiere mich wenn ich falsch liege, aber bei OnGameModeInit kannst du doch keiner playerid verwenden, oder?
Du müsstest dort natürlich eine Schleife die alle Spieler durchgeht einbauen
-
So , habs jetzt getan.
Aber habe die 100.0 durch 99.0 ersetzt.
Aber wenn ich InGame komme werde ich sofort gebannt.
Habe durchs ganze Script gesucht nach "SetPlayerHealth" und alle Sets waren auf 99...
Weiß jemand vielleichst sonst was?
-
Der Spieler verbindet sich automatisch mit 100 HP, es kann sein das es daran liegt. Hast du eine Variable die prüft ob der Spieler eingeloggt ist?
-
Der Spieler verbindet sich automatisch mit 100 HP, es kann sein das es daran liegt. Hast du eine Variable die prüft ob der Spieler eingeloggt ist?
Wie meinst du das genau mit der Variable?
Bei OnPlayerLogin?
-
Z.b. PlayerInfo[playerid][pLoggedIn] diese Variable wird dann auf true gesetzt sobald der Spieler eingeloggt ist (wichtig eingeloggt und nicht auf dem server connected).
Allerdings verstehe ich nicht warum du es nicht über 100 HP machst. -
Z.b. PlayerInfo[playerid][pLoggedIn] diese Variable wird dann auf true gesetzt sobald der Spieler eingeloggt ist (wichtig eingeloggt und nicht auf dem server connected).
Allerdings verstehe ich nicht warum du es nicht über 100 HP machst.Warum ich es nicht über 100 HP mache?
Weil die meisten Health Cheats die HP auf 100 setzen.
Und die normale HP dann auf meinem Server 99 ist, also weiß man logischerweise dass dieser cheatet, weil dieser über 99 HP ist.// Thema abgelenkt xD
Ehm ja also ich habe als Variable loggedin.
also das hier habe ich jetzt :Code
Alles anzeigenpublic OnPlayerRequestClass(playerid, classid) { if(pInfo[playerid][loggedin]) { TogglePlayerSpectating(playerid,true); TogglePlayerSpectating(playerid,false); return 1; } SetSpawnInfo(playerid,0,0,0.0,0.0,0.0,0.0,0,0,0,0,0,0); if(IsPlayerNPC(playerid))return 1; TogglePlayerSpectating(playerid,true); SetTimerEx("OnPlayerLogin", 500, false, "i", playerid); return 1; }
Also sollte ich da irgendwo die Spieler-HP auf 99 setzen?
-
Du kannst auch damit entgegenwirken indem du eine Variable erstellst die überprüft ob der Spieler HP vom Server aus bekommen hat und wenn nicht wird er gebannt.
-
Würde dies gerne so machen,
also muss ich da irgendwo die Spieler HP dann auf 99 setzen ?
-
Bin jetzt etwas verwirrt, welche Variante möchtest du denn jetzt haben?
-
Die Überprüfung ob der Spieler ÜBER 99 HP hat. Wenn ja wird er gebannt.
Aber bei mir wird man gebannt, weil man JA beim LOGIN automatisch 100 HP kriegt.
Dies möchte ich allerdings vermeiden, und die Spieler HP vor dem Login / Spawn auf 99 SETZEN..
Daher meine Frage, muss ich das dann da OnPlayerRequestClass hinzufügen mit der SetPlayerHealth(playerid,99); oder nicht?
Also ich habe ja das wegen dem loggedin hast du ja gesagt :
Code
Alles anzeigenpublic OnPlayerRequestClass(playerid, classid) { if(pInfo[playerid][loggedin]) { TogglePlayerSpectating(playerid,true); TogglePlayerSpectating(playerid,false); return 1; } SetSpawnInfo(playerid,0,0,0.0,0.0,0.0,0.0,0,0,0,0,0,0); if(IsPlayerNPC(playerid))return 1; TogglePlayerSpectating(playerid,true); SetTimerEx("OnPlayerLogin", 500, false, "i", playerid); return 1; }
-
Müsste so funktionieren.
Codepublic OnPlayerUpdate(playerid) { new Float:currentHP; GetPlayerHealth(playerid, currentHP); if(currentHP != GetPVarFloat(playerid, "HP")){ OnPlayerHealthHasChange(playerid, GetPVarFloat(playerid, "HP"), currentHP); SetPVarFloat(playerid, "HP", currentHP); } return 1; }
-
Ich würde von dieser Strategie abraten.
Der Spieler ist vollkommen in der Lage, sein HP an einem Automaten (oder nach Death und so weiter) auf 100.00 zu setzen. Daher musst du die Automaten auch ggf. entfernen oder durch die Automatenpositionen ggf. Ausnahmestellen errichten, da sonst sinlose Bans entstehen. -
Der selben Meinung bin ich auch, danke Pascal!
Es gibt nämlich auch eine coolere Lösung. -
Der selben Meinung bin ich auch, danke Pascal!
Es gibt nämlich auch eine coolere Lösung.Wüsste leider nicht wie genau.
Habe mir vorgenommen mein Variante zu ändern.
Wisst ihr eventuell wie und mit welchen Funktionen?Habe da leider wirklich gesagt 0 Plan.
-
breadfish.de
Hat das Thema geschlossen.