Bei einer Geschwindigkeitsüberschreitung von 10 KMH 1 Punkt.

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
  • Hallo,


    Wie kann man das machen, dass man bei einer Geschwindigkeitsüberschreitung von 10 KMH 1 Punkt bekommt?


    Blitzer System:
    //======== BLITZER ========//
    Function Blitzer_Timer() {
    new save, strafe, speeds;
    for (new playerid = 0; playerid < MAX_PLAYERS; playerid++) {
    save = GetPVarInt(playerid, "BlitzPause");
    if(save > 0) {
    save--;
    SetPVarInt(playerid, "BlitzPause", save);
    continue;
    }
    if(!IsPlayerInAnyVehicle(playerid) || IsPlayerNPC(playerid)) continue;
    for(new i = 0; i < sizeof(Blitzer); i++) {
    if(Blitzer[i][Erstellt] == 1) {
    if(IsPlayerInRangeOfPoint(playerid, Blitzer[i][Radius], Blitzer[i][BlitzerX], Blitzer[i][BlitzerY], Blitzer[i][BlitzerZ])) {
    new Float:speed_x,Float:speed_y,Float:speed_z,Float:final_speed,final_speed_int;
    new veh = GetPlayerVehicleID(playerid);
    GetVehicleVelocity(veh, speed_x, speed_y, speed_z);
    final_speed = floatsqroot(((speed_x*speed_x)+(speed_y*speed_y))+(speed_z*speed_z))*175; // 136.666667 = kmph // 85.4166672= mph
    final_speed_int = floatround(final_speed,floatround_round);
    speeds = final_speed_int;
    if(speeds > Blitzer[i][Geschwindigkeit] && !IsACop(playerid) && !IsPlayerInFrac(playerid, 22)&& GetPlayerState(playerid) == 2) {
    new string[128];
    // Einstellen des Momentes, in dem der Spieler kein weiteres mal geblitzt werden kann
    SetPVarInt(playerid, "BlitzPause", (BLITZER_TIMER_INTERVALL * BLITZER_PAUSE * 60) / 1000);
    // Strafe für Spieler
    strafe = Blitzer[i][Strafe] * (speeds-Blitzer[i][Geschwindigkeit]);
    PlayerPlaySound(playerid, 1132, 0.0, 0.0, 0.0);
    FraktionsKasse[23] += strafe;
    GivePlayerMoney(playerid, -strafe);
    // Text für Spieler
    format(string,sizeof(string), "[BLITZER]Du bist %d KM/H gefahren, erlaubt waren %d KM/H, du musst $%d Bußgeld bezahlen.", speeds, Blitzer[i][Geschwindigkeit], strafe);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    // Für Oamt
    for(new o = 0; o < MAX_PLAYERS; o++)
    {
    if(PlayerInfo[i][pMember] == 24 || PlayerInfo[i][pLeader] == 24)
    {
    if(IsPlayerInRangeOfPoint(o, Blitzer[i][Radius], Blitzer[i][BlitzerX], Blitzer[i][BlitzerY], Blitzer[i][BlitzerZ]))
    {
    new giveplayer[MAX_PLAYER_NAME];
    GetPlayerName(o, giveplayer, sizeof(giveplayer));
    format(string, sizeof(string), "%s ist %d KM/H gefahren und hat %d$ Bußgeld gezahlt.", giveplayer, speeds, strafe);
    SendClientMessage(o, COLOR_YELLOW, string);
    }
    }
    }
    // Ende für Cops
    }
    }
    }
    }
    }
    return 1;
    }


    Punktesystem:
    PlayerInfo[giveplayerid][pCarP] = 0;

  • Wäre sowas auch möglich?


    if(speeds - Blitzer[i][Geschwindigkeit] > 9)
    {
    PlayerInfo[playerid][pCarP]++;
    SendClientMessage(playerid, COLOR_YELLOW, "[BLITZER]Außerdem hast du 1. Strafpunkt bekommen!");
    }
    if(speeds - Blitzer[i][Geschwindigkeit] > 19)
    {
    PlayerInfo[playerid][pCarP]++;
    SendClientMessage(playerid, COLOR_YELLOW, "[BLITZER]Außerdem hast du 2. Strafpunkt bekommen!");
    }
    if(speeds - Blitzer[i][Geschwindigkeit] > 29)
    {
    PlayerInfo[playerid][pCarP]++;
    SendClientMessage(playerid, COLOR_YELLOW, "[BLITZER]Außerdem hast du 3. Strafpunkt bekommen!");
    }

    Einmal editiert, zuletzt von Shoxx ()

    • Offizieller Beitrag

    Natürlich geht das.
    Machs aber so:
    if(speeds - Blitzer[i][Geschwindigkeit] > 9)
    {
    PlayerInfo[playerid][pCarP]++;
    SendClientMessage(playerid, COLOR_YELLOW, "[BLITZER]Außerdem hast du 1. Strafpunkt bekommen!");
    }
    else if(speeds - Blitzer[i][Geschwindigkeit] > 19)
    {
    PlayerInfo[playerid][pCarP]++;
    SendClientMessage(playerid, COLOR_YELLOW, "[BLITZER]Außerdem hast du 2. Strafpunkt bekommen!");
    }
    else if(speeds - Blitzer[i][Geschwindigkeit] > 29)
    {
    PlayerInfo[playerid][pCarP]++;
    SendClientMessage(playerid, COLOR_YELLOW, "[BLITZER]Außerdem hast du 3. Strafpunkt bekommen!");
    }

  • if(speeds - Blitzer[i][Geschwindigkeit] > 9)
    {
    PlayerInfo[playerid][pCarP] + 1;
    SendClientMessage(playerid, COLOR_YELLOW, "[BLITZER]Außerdem hast du 1. Strafpunkt bekommen!");
    }
    else if(speeds - Blitzer[i][Geschwindigkeit] > 19)
    {
    PlayerInfo[playerid][pCarP] + 2;
    SendClientMessage(playerid, COLOR_YELLOW, "[BLITZER]Außerdem hast du 2. Strafpunkt bekommen!");
    }
    else if(speeds - Blitzer[i][Geschwindigkeit] > 29)
    {
    PlayerInfo[playerid][pCarP] + 3;
    SendClientMessage(playerid, COLOR_YELLOW, "[BLITZER]Außerdem hast du 3. Strafpunkt bekommen!");
    }


    Geht das?

  • Ja, wie gesagt du hängst bei den IF abfragen mach es einfach so

    if(speeds - Blitzer[i][Geschwindigkeit] >= 10 && speeds - Blitzer[i][Geschwindigkeit] =< 30 ) { // Das heißt wenn speed über 10 o. 10 und speed unter 30 o. 30
    new punkte = speeds - Blitzer[i][Geschwindigkeit] / 10;
    PlayerInfo[playerid][pCarP]+=punkte;
    }

    Da ich nicht weiß was in speeds oder in Blitzer[i][Geschwindigkeit] genau drinnesteht kann es sein das es nicht funktioniert ...

  • // Hab den Fehler gefunden.


    Allerdings funktioniert es nicht richtig.


    Ich bin 18 kmh zu schnell gefahren und dann steht dort Du hast 118 Strafpunkte bekommen..


    Das von Mysteriöser kann so ja nicht funktionieren.

    3 Mal editiert, zuletzt von Shoxx () aus folgendem Grund: Fehler Edit

  • //======== BLITZER ========//
    Function Blitzer_Timer() {
    new save, strafe, speeds;
    for (new playerid = 0; playerid < MAX_PLAYERS; playerid++) {
    save = GetPVarInt(playerid, "BlitzPause");
    if(save > 0) {
    save--;
    SetPVarInt(playerid, "BlitzPause", save);
    continue;
    }
    if(!IsPlayerInAnyVehicle(playerid) || IsPlayerNPC(playerid)) continue;
    for(new i = 0; i < sizeof(Blitzer); i++) {
    if(Blitzer[i][Erstellt] == 1) {
    if(IsPlayerInRangeOfPoint(playerid, Blitzer[i][Radius], Blitzer[i][BlitzerX], Blitzer[i][BlitzerY], Blitzer[i][BlitzerZ])) {
    new Float:speed_x,Float:speed_y,Float:speed_z,Float:final_speed,final_speed_int;
    new veh = GetPlayerVehicleID(playerid);
    GetVehicleVelocity(veh, speed_x, speed_y, speed_z);
    final_speed = floatsqroot(((speed_x*speed_x)+(speed_y*speed_y))+(speed_z*speed_z))*175; // 136.666667 = kmph // 85.4166672= mph
    final_speed_int = floatround(final_speed,floatround_round);
    speeds = final_speed_int;
    if(speeds > Blitzer[i][Geschwindigkeit] && !IsACop(playerid) && !IsPlayerInFrac(playerid, 22)&& GetPlayerState(playerid) == 2) {
    new string[128];
    // Einstellen des Momentes, in dem der Spieler kein weiteres mal geblitzt werden kann
    SetPVarInt(playerid, "BlitzPause", (BLITZER_TIMER_INTERVALL * BLITZER_PAUSE * 60) / 1000);
    // Strafe für Spieler
    strafe = Blitzer[i][Strafe] * (speeds-Blitzer[i][Geschwindigkeit]);
    PlayerPlaySound(playerid, 1132, 0.0, 0.0, 0.0);
    FraktionsKasse[23] += strafe;
    GivePlayerMoney(playerid, -strafe);
    // Text für Spieler
    format(string,sizeof(string), "[BLITZER]Du bist %d KM/H gefahren, erlaubt waren %d KM/H, du musst $%d Bußgeld bezahlen.", speeds, Blitzer[i][Geschwindigkeit], strafe);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    // Für Oamt
    for(new o = 0; o < MAX_PLAYERS; o++)
    {
    if(PlayerInfo[i][pMember] == 24 || PlayerInfo[i][pLeader] == 24)
    {
    if(IsPlayerInRangeOfPoint(o, Blitzer[i][Radius], Blitzer[i][BlitzerX], Blitzer[i][BlitzerY], Blitzer[i][BlitzerZ]))
    {
    new giveplayer[MAX_PLAYER_NAME];
    GetPlayerName(o, giveplayer, sizeof(giveplayer));
    format(string, sizeof(string), "%s ist %d KM/H gefahren und hat %d$ Bußgeld gezahlt.", giveplayer, speeds, strafe);
    SendClientMessage(o, COLOR_YELLOW, string);
    }
    }
    }
    // Ende für Cops
    }
    }
    }
    }
    }
    return 1;
    }


    Das hier ist die Blitzer Strafe Funktion.

  • #define BLITZER_TIMER_INTERVALL 500 // Intervall für das Blitzen (in Milliesekunden)


    SetTimer("Blitzer_Timer", BLITZER_TIMER_INTERVALL, 1);


    //======== BLITZER ========//
    Function Blitzer_Timer() {
    new save, strafe, speeds;
    for (new playerid = 0; playerid < MAX_PLAYERS; playerid++) {
    save = GetPVarInt(playerid, "BlitzPause");
    if(save > 0) {
    save--;
    SetPVarInt(playerid, "BlitzPause", save);
    continue;
    }
    if(!IsPlayerInAnyVehicle(playerid) || IsPlayerNPC(playerid)) continue;
    for(new i = 0; i < sizeof(Blitzer); i++) {
    if(Blitzer[i][Erstellt] == 1) {
    if(IsPlayerInRangeOfPoint(playerid, Blitzer[i][Radius], Blitzer[i][BlitzerX], Blitzer[i][BlitzerY], Blitzer[i][BlitzerZ])) {
    new Float:speed_x,Float:speed_y,Float:speed_z,Float:final_speed,final_speed_int;
    new veh = GetPlayerVehicleID(playerid);
    GetVehicleVelocity(veh, speed_x, speed_y, speed_z);
    final_speed = floatsqroot(((speed_x*speed_x)+(speed_y*speed_y))+(speed_z*speed_z))*175; // 136.666667 = kmph // 85.4166672= mph
    final_speed_int = floatround(final_speed,floatround_round);
    speeds = final_speed_int;
    if(speeds > Blitzer[i][Geschwindigkeit] && !IsACop(playerid) && !IsPlayerInFrac(playerid, 22)&& GetPlayerState(playerid) == 2) {
    new string[128];
    // Einstellen des Momentes, in dem der Spieler kein weiteres mal geblitzt werden kann
    SetPVarInt(playerid, "BlitzPause", (BLITZER_TIMER_INTERVALL * BLITZER_PAUSE * 60) / 1000);
    // Strafe für Spieler
    strafe = Blitzer[i][Strafe] * (speeds-Blitzer[i][Geschwindigkeit]);
    PlayerPlaySound(playerid, 1132, 0.0, 0.0, 0.0);
    FraktionsKasse[23] += strafe;
    GivePlayerMoney(playerid, -strafe);
    // Text für Spieler
    format(string,sizeof(string), "[BLITZER]Du bist %d KM/H gefahren, erlaubt waren %d KM/H, du musst $%d Bußgeld bezahlen.", speeds, Blitzer[i][Geschwindigkeit], strafe);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    // Für Oamt
    for(new o = 0; o < MAX_PLAYERS; o++)
    {
    if(PlayerInfo[i][pMember] == 24 || PlayerInfo[i][pLeader] == 24)
    {
    if(IsPlayerInRangeOfPoint(o, Blitzer[i][Radius], Blitzer[i][BlitzerX], Blitzer[i][BlitzerY], Blitzer[i][BlitzerZ]))
    {
    new giveplayer[MAX_PLAYER_NAME];
    GetPlayerName(o, giveplayer, sizeof(giveplayer));
    format(string, sizeof(string), "%s ist %d KM/H gefahren und hat %d$ Bußgeld gezahlt.", giveplayer, speeds, strafe);
    SendClientMessage(o, COLOR_YELLOW, string);
    }
    }
    }
    // Ende für Cops
    }
    }
    }
    }
    }
    return 1;
    }

  • Ja allerdings hätte ich das gerne so:


    /*/------------------------------Punkte------------------------------
    if(speeds - Blitzer[i][Geschwindigkeit] > 19)
    {
    PlayerInfo[playerid][pCarP] ++;
    SendClientMessage(playerid, COLOR_YELLOW, "[BLITZER]Du hast zudem noch 1 Strafpunkt bekommen.");
    }
    else if(speeds - Blitzer[i][Geschwindigkeit] > 29)
    {
    PlayerInfo[playerid][pCarP] ++;
    SendClientMessage(playerid, COLOR_YELLOW, "[BLITZER]Du hast zudem noch 2 Strafpunkte bekommen.");
    }
    else if(speeds - Blitzer[i][Geschwindigkeit] > 39)
    {
    PlayerInfo[playerid][pCarP] ++;
    SendClientMessage(playerid, COLOR_YELLOW, "[BLITZER]Du hast zudem noch 3 Strafpunkte bekommen.");
    }*/
    //------------------------------Punkte------------------------------


    Das man jenachdem wie schnell man fährt Punkte bekommt also wenn man nur bis 29 KMH zu schnell sit das man 1 Punkt bekommt dann bis 39; 2 Punkte und ab 39< gibts 3 punkte