Brauche hilfe beim Blitzer

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 ich möchte das der , der den Blitzer aufgestellt hat eine Naricht und das Geld bekommt.
    Ich stehe leider grade auf dem schlauch und raffe nciht wie des gehen soll.


    forward Blitzer_Timer();
    public Blitzer_Timer() {
    for (new playerid = 0; playerid < MAX_PLAYERS; playerid++) {
    if(!IsPlayerInAnyVehicle(playerid)) return 1;
    if(!IsPlayerConnected(playerid) || IsPlayerNPC(playerid)) continue;
    for(new i = 0; i < sizeof(Blitzer); i++) {
    if(IsPlayerInRangeOfPoint(playerid, Blitzer[Radius], Blitzer[BlitzerX], Blitzer[BlitzerY], Blitzer[BlitzerZ])) {
    if(Blitzer[Erstellt] == 1) {
    new save = GetPVarInt(playerid, "BitzPause");
    if(save > 0)
    {
    save--;
    SetPVarInt(playerid, "BitzPause", save);
    return 1;
    }
    new speed = GetPlayerSpeed(playerid,true);
    if(speed > Blitzer[Geschwindigkeit])
    {;
    new string[128];
    // Einstellen des Momentes, in dem der Spieler kein weiteres mal geblitzt werden kann
    SetPVarInt(playerid, "BitzPause", 70);
    GetPlayerName(playerid, sendername, sizeof(sendername));
    // Strafe für Spieler
    SetPVarInt(playerid, "BitzStrafe", (speed*12/6) - Blitzer[Geschwindigkeit]);
    PlayerPlaySound(playerid, 1132, 0.0, 0.0, 0.0);
    PlayerPlaySound(playerid, 1132, 0.0, 0.0, 0.5);
    PlayerPlaySound(playerid, 1132, 0.0, 0.0, 1.0);
    GivePlayerMoney(playerid, -GetPVarInt(playerid, "BitzStrafe"));
    // Text für Spieler
    SendClientMessage(playerid, 0xFF6347AA,"Du wurdest wegen zu hoher Geschwindigkeit geblitzt!");
    format(string,sizeof(string), "Du bist %d km/h gefahren und musst $%d Bußgeld bezahlen.", speed, GetPVarInt(playerid, "BitzStrafe"));
    SendClientMessage(playerid, 0xFF6347AA, string);
    }
    }
    }
    }
    }
    return 1;
    }[i][i]


    Kann mir bitte wer helfen[/i][/i]

  • In deinem Script ist so ein Gewusel, da kann man nichts erkennnen... einrücken ftw. Schau mal auf Zeile 18, das Semikolon ist da Fehl am Platze

    mfg RedDragon 8)


    Was ist GFKD?


    Ein revolutionärer Clan, dessen Eröffnung kurz bevorsteht.
    Mehr Informationen folgen bald.

  • if(strcmp(cmd, "/blitzer", true) == 0)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GREY, "[BENUTZUNG:] /blitzer [Funktion]");
    SendClientMessage(playerid, COLOR_WHITE, "Verfügbare Funktionen: add, remove, removeall, count");
    return 1;
    }
    if (!IsACop(playerid)) return SendClientMessage(playerid, COLOR_LIGHTRED, "[ERROR:] Du bist kein Polizist!");
    if(strcmp(tmp,"add",true) == 0)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_LIGHTBLUE, "[BENUTZUNG:] /blitzer [add] [Geschwindigkeit] [Radius]");


    new b_speed;
    b_speed = strval(tmp);
    if(b_speed < 20 || b_speed > 180) return SendClientMessage(playerid, COLOR_LIGHTRED, "[ERROR:] Die Geschwindigkeit muss zwischen 20 und 180 km/h liegen!");


    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_LIGHTBLUE, "[BENUTZUNG:] /blitzer [add] [Geschwindigkeit] [Radius]");


    new b_radius;
    b_radius = strval(tmp);
    if(b_radius < 5 || b_radius > 50) return SendClientMessage(playerid, COLOR_LIGHTRED, "[ERROR:] Der Radius muss zwischen 5 und 50 Meter liegen!");
    AddBlitzer(playerid,b_speed,b_radius);
    TogglePlayerControllable(playerid, 0);
    SendClientMessage(playerid, TEAM_BLUE_COLOR, "[ZENTRALE:] Ein Blitzer wurde erfolgreich aufgestellt und registriert!");
    return 1;
    }
    else if(strcmp(tmp,"remove",true) == 0)
    {
    RemoveBlitzer(playerid);
    TogglePlayerControllable(playerid, 1);
    SendClientMessage(playerid, TEAM_BLUE_COLOR, "[ZENTRALE:] Dieser Blitzer wurde erfolgreich abgebaut und aus der Akte entfernt!");
    return 1;
    }
    else if(strcmp(tmp,"removeall",true) == 0)
    {
    RemoveAllBlitzer();
    SendClientMessage(playerid, TEAM_BLUE_COLOR, "[ZENTRALE:] Dieser Blitzer wurde erfolgreich abgebaut und aus der Akte entfernt!");
    return 1;
    }
    else if(strcmp(tmp,"count",true) == 0)
    {
    SendClientMessage(playerid, TEAM_BLUE_COLOR, "[ZENTRALE:] Es sind momentang Blitzer registriert und werden um 4.00 Uhr abgebaut!");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "[BENUTZUNG:] /blitzer [Funktion]");
    SendClientMessage(playerid, COLOR_WHITE, "Verfügbare Funktionen: add, remove, removeall, count");
    return 1;
    }
    }

  • Ah, sry, ich dachte, dass der, der den Blitzer aufstellt beim AUFSTELLEN eine Nachricht und Geld bekommen soll, auch wenn das keinen Sinn ergeben würde.
    Du meinst aber wahrscheinlich, wenn ein Spieler dann geblitzt wird und ihm das Geld abgezogen wird.


    Das Problem dabei ist, dass das Script ja nicht weiß, wer den Blitzer aufgestellt hat wenn man geblitzt wird.
    Also musst du in die Funktion, wenn er den Blitzer erstellt den Namen des Cops bzw. des Blitzerstellers binden, um nachher zu schauen ob er a) online ist und b) auch wirklich der ist und nicht nur die ID von ihm "geerbt" hat.


    Aber um dir das zu machen brauche ich den public und den forward von "AddBlitzer" ;).


    Mit freundlichen Grüßen
    Illex

  • Hier ist es :
    stock AddBlitzer(playerid,speed,radius) {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid,x,y,z);
    for(new i = 0; i < sizeof(Blitzer); i++) {
    if(Blitzer[i][Erstellt] == 0) {
    Blitzer[i][BlitzerX] = x + 1.0;
    Blitzer[i][BlitzerY] = y + 1.0;
    Blitzer[i][BlitzerZ] = z;
    Blitzer[i][Geschwindigkeit] = speed;
    Blitzer[i][Radius] = radius;
    Blitzer[i][Erstellt] = 1;
    Blitzer[i][ID] = CreateObject(1278, x + 1.0, y + 1.0, z, 0.0, 0.0, 10);
    return 1;
    }
    }
    return 0;
    }