Ich finde Carsurfing ist eine schreckliche Sache. Es sieht dumm aus und ist 0 realistisch.
Vorschlag wäre es zu verbieten und so anzupassen das der Spieler auf einem Auto/ Heli / Flugzeug / Motorrad Schaden erhält wenn er dort mitfährt.
Vorschlag:
Ein serverseitiges Anti-Carsurfing-System, das Carsurfing automatisch erkennt und den Spieler durch kontinuierlichen Schaden dazu zwingt, das Fahrzeug zu verlassen.
Technische Umsetzung
Das System läuft über einen regelmäßigen Timer, z. B. alle 250–500 ms.
Dabei werden folgende Bedingungen geprüft:
Spieler ist nicht in einem Fahrzeug.
GetPlayerSurfingVehicleID(playerid) liefert ein gültiges Fahrzeug oder die Spielerposition befindet sich innerhalb eines definierten Bereichs auf/über einem Fahrzeug.
Das Fahrzeug bewegt sich mit mindestens 5–10 km/h.
Der Spieler befindet sich bereits für eine kurze Zeit auf dem Fahrzeug, um Fehltrigger zu vermeiden.
Wenn alle Bedingungen erfüllt sind:
Carsurfing erkannt
↓
Anti-Carsurfing-Timer startet
↓
Alle X Millisekunden Schaden
↓
Spieler verlässt Fahrzeug
↓
Timer wird beendet + Schaden gestoppt
Schaden / Tod
Beispielsweise:
Carsurfing erkannt
→ 10 HP Schaden alle 500 ms
→ nach ca. 5 Sekunden 0 HP
→ Spieler stirbt
Die Werte sollten configurable sein, sodass die Administration beispielsweise einstellen kann:
Ich würde zusätzlich eine Toleranzzeit von etwa 0,5–1 Sekunde einbauen. Dadurch bekommt ein Spieler nicht sofort Schaden, wenn er beispielsweise beim Aussteigen kurz auf dem Fahrzeug landet.
Außerdem sollte geprüft werden, ob das Fahrzeug tatsächlich in Bewegung ist. Dadurch wird verhindert, dass jemand neben einem stehenden Fahrzeug steht oder auf einem stehenden Fahrzeug sitzt und dafür bestraft wird.
Ergebnis: Carsurfing wird technisch erkannt, der Spieler erhält fortlaufend Schaden und stirbt nach der definierten Zeit, wenn er nicht vom Fahrzeug heruntergeht. Die Werte können dabei vollständig über Defines/Config angepasst werden.
Vorschlag wäre es zu verbieten und so anzupassen das der Spieler auf einem Auto/ Heli / Flugzeug / Motorrad Schaden erhält wenn er dort mitfährt.
Vorschlag:
Ein serverseitiges Anti-Carsurfing-System, das Carsurfing automatisch erkennt und den Spieler durch kontinuierlichen Schaden dazu zwingt, das Fahrzeug zu verlassen.
Technische Umsetzung
Das System läuft über einen regelmäßigen Timer, z. B. alle 250–500 ms.
Dabei werden folgende Bedingungen geprüft:
Spieler ist nicht in einem Fahrzeug.
GetPlayerSurfingVehicleID(playerid) liefert ein gültiges Fahrzeug oder die Spielerposition befindet sich innerhalb eines definierten Bereichs auf/über einem Fahrzeug.
Das Fahrzeug bewegt sich mit mindestens 5–10 km/h.
Der Spieler befindet sich bereits für eine kurze Zeit auf dem Fahrzeug, um Fehltrigger zu vermeiden.
Wenn alle Bedingungen erfüllt sind:
Carsurfing erkannt
↓
Anti-Carsurfing-Timer startet
↓
Alle X Millisekunden Schaden
↓
Spieler verlässt Fahrzeug
↓
Timer wird beendet + Schaden gestoppt
Schaden / Tod
Beispielsweise:
Carsurfing erkannt
→ 10 HP Schaden alle 500 ms
→ nach ca. 5 Sekunden 0 HP
→ Spieler stirbt
Die Werte sollten configurable sein, sodass die Administration beispielsweise einstellen kann:
#define CARSURF_MIN_SPEED 7.0Wichtig
#define CARSURF_DAMAGE 10.0
#define CARSURF_DAMAGE_INTERVAL 500
Beispielhafte Pawn-Logik
forward CheckCarSurfing();
public CheckCarSurfing()
{
for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
{
if(!IsPlayerConnected(playerid))
continue;
// Spieler sitzt bereits in einem Fahrzeug
if(IsPlayerInAnyVehicle(playerid))
{
StopCarSurfing(playerid);
continue;
}
new vehicleid = GetPlayerSurfingVehicleID(playerid);
if(vehicleid != INVALID_VEHICLE_ID)
{
new Float:vx, Float:vy, Float:vz;
GetVehicleVelocity(vehicleid, vx, vy, vz);
new Float:speed = floatsqroot(
vx * vx + vy * vy + vz * vz
);
// Fahrzeug bewegt sich
if(speed > CARSURF_MIN_SPEED)
{
StartCarSurfing(playerid);
continue;
}
}
StopCarSurfing(playerid);
}
return 1;
}
Dazu kommt ein separater Timer bzw. eine Funktion, die bei erkanntem Carsurfing regelmäßig Schaden zufügt:
stock ApplyCarSurfDamage(playerid)
{
if(!IsPlayerConnected(playerid))
return 0;
new Float:health;
GetPlayerHealth(playerid, health);
health -= CARSURF_DAMAGE;
if(health <= 0.0)
{
SetPlayerHealth(playerid, 0.0);
return 1;
}
SetPlayerHealth(playerid, health);
return 1;
}
Ich würde zusätzlich eine Toleranzzeit von etwa 0,5–1 Sekunde einbauen. Dadurch bekommt ein Spieler nicht sofort Schaden, wenn er beispielsweise beim Aussteigen kurz auf dem Fahrzeug landet.
Außerdem sollte geprüft werden, ob das Fahrzeug tatsächlich in Bewegung ist. Dadurch wird verhindert, dass jemand neben einem stehenden Fahrzeug steht oder auf einem stehenden Fahrzeug sitzt und dafür bestraft wird.
Ergebnis: Carsurfing wird technisch erkannt, der Spieler erhält fortlaufend Schaden und stirbt nach der definierten Zeit, wenn er nicht vom Fahrzeug heruntergeht. Die Werte können dabei vollständig über Defines/Config angepasst werden.
✎ bearbeitet 17.08.2026
👍4
❤️1
😮1







