Blitzer Object

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
  • Guten Tag,


    ich möchte gerne wenn man


    Blitzer macht, das dann ein Object kommt also ein Blitzer


    und wenn mann ihn löscht das er wieder weg geht...


    Hier ist er:


    if(strcmp(cmd, "/blitzer", true) == 0)
    {
    if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 24 || PlayerInfo[playerid][pLeader] == 24|| PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2|| PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] == 3)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GOLD, "___________________________|Blitzer|___________________________");
    SendClientMessage(playerid, COLOR_WHITE, "Benutzung: /blitzer [Funktion]");
    SendClientMessage(playerid, COLOR_WHITE, "Verfügbare Funktionen: neu, weg, alleweg [Rang 4], anzeigen");
    SendClientMessage(playerid, COLOR_GOLD, "_____________________________________________________________");
    return 1;
    }
    if(strcmp(tmp,"neu",true) == 0)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GREY, "Benutzung: /blitzer neu [Geschwindigkeit] [Strafe]");
    return 1;
    }
    new b_speed;
    b_speed = strval(tmp);
    if(b_speed < 20 || b_speed > 180)
    {
    SendClientMessage(playerid, COLOR_GREY, "Hinweis: Die Geschwindigkeit muss zwischen 45 und 200 km/h liegen.");
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GREY, "Benutzung: /blitzer neu [Geschwindigkeit] [Strafe]");
    return 1;
    }
    new b_strafe;
    b_strafe = strval(tmp);
    if(b_strafe < 5 || b_strafe > 500)
    {
    SendClientMessage(playerid, COLOR_GREY, "Hinweis: Die Strafe muss zwischen 5$ / KMH und 500$ / KMH liegen.");
    return 1;
    }
    if(IsPlayerInAnyVehicle(playerid))
    {
    AddBlitzer(playerid,b_speed,b_strafe);
    new player[MAX_PLAYER_NAME];
    GetPlayerName(playerid, player, sizeof(player));
    format(string, sizeof(string), "%s hat einen Blitzer aufgestellt.", player);
    ProxDetector(20.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    format(string, sizeof(string), "Blitzer aufgestellt, Max. Geschwindigkeit: %d, Strafe: %d.", b_speed, b_strafe);
    SendClientMessage(playerid, COLOR_GREEN, string);
    BlitzerErstellt[playerid] = 1;
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du musst in einem Auto sein!");
    }
    }
    else if(strcmp(tmp,"weg",true) == 0)
    {
    RemoveBlitzer(playerid);
    new player[MAX_PLAYER_NAME];
    GetPlayerName(playerid, player, sizeof(player));
    format(string, sizeof(string), "%s hat seinen Blitzer abgebaut.", player);
    ProxDetector(20.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    BlitzerErstellt[playerid] = 0;
    UnFreezePlayer(playerid);
    return 1;
    }
    else if(strcmp(tmp,"alleweg",true) == 0)
    {
    if(PlayerInfo[playerid][pRank] <= 4)
    {
    SendClientMessage(playerid, COLOR_GREY, "Mindestens Rang 4 benötigt!");
    return 1;
    }
    RemoveAllBlitzer();
    SendClientMessage(playerid, COLOR_GREEN, "Alle Blitzer abgebaut.");
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(PlayerInfo[i][pMember] == 24 || PlayerInfo[i][pLeader] == 24)
    {
    RemoveBlitzer(i);
    UnFreezePlayer(i);
    new player[MAX_PLAYER_NAME];
    GetPlayerName(playerid, player, sizeof(player));
    format(string, sizeof(string), "*Alle Blitzer wurden von %s abgebaut.", player);
    SendClientMessage(i, COLOR_LIGHTBLUE, string);
    }
    }
    return 1;
    }
    else if(strcmp(tmp, "anzeigen", true) == 0)
    {
    if(GesammtBlitzer != 0)
    {
    SendClientMessage(playerid, COLOR_GOLD, "______________| Aktive Blitzer |_______________");
    format(string, sizeof(string), "%d / 15 Blitzer derzeit aktiv.", GesammtBlitzer);
    SendClientMessage(playerid, COLOR_WHITE, string);
    SendClientMessage(playerid, COLOR_GOLD, "_____________________________________________");
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Keine Blitzer aktiv.");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "___________________________|Fehler|__________________________");
    SendClientMessage(playerid, COLOR_RED, "Benutzung: /blitzer [Funktion]");
    SendClientMessage(playerid, COLOR_RED, "Verfügbare Funktionen: neu, weg, alleweg [Rang 4], anzeigen");
    SendClientMessage(playerid, COLOR_RED, "_____________________________________________________________");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du bist kein Poliezei-beamter!");
    }
    return 1;
    }


    Hoffe es kann jemand helfen


    MFG


    Hydra

  • Die hab ich schon ich weiß nicht wie man die rein macht


    das der Blitzer kommt kann das mir einer Machen pls


    MFG


    Hydra

  • Sry checke aber net wie ich es rein setzen soll und


    wie man macht das man es löscht usw....


    Kannste es mir rein setzen bitte


    wäre nett ^^


    kann sowas leider noch nicht


    MFG

  • Wieviele Blitzer darf es maximal geben ?
    Eine Multivariable für die Objecte einrichten.
    Beim löschen abfragen bei welchen Blitzer der Spieler sich befindet.
    Dann mit DestroyObject(Blitzerid);


    Das Object zerstören.
    Benötigst du ein Beispiel oder hast du es verstanden ?


    LG RFT

    RFT

  • Verstanden nicht omg


    man darf davon 15 stück machen


    und das Object soll sich danach einfach löschen


    und wenn man den befehl wieder eingibt wieder erstellen...


  • enum eBlitz
    {
    Float:bX,
    Float:bY,
    Float:bZ,
    bObj;
    bool:bexist,
    }
    new BlitzerInfo[15][eBlitz];









    if(strcmp(cmd, "/test", true) == 0)
    {
    new id = GetFreeSlotID();
    new Float: x; Float: y; Float: z;
    GetPlayerPos(..................
    BlitzerInfo[id][bObj]=CreateObject.............
    BlitzerInfo[id][bX]=x;
    BlitzerInfo[id][bX]=y;
    BlitzerInfo[id][bX]=z;
    BlitzerInfo[id][bexist]=true;
    return true;
    }
    if(strcmp(cmd, "/deltest", true) == 0)
    {
    for(new i = 0; i < 15; i++)
    {
    if(IsPlayerInRangeOfPoint(playerid, BlitzerInfo[i][bX], BlitzerInfo[i][bY], BlitzerInfo[i][bZ]))
    {
    BlitzerInfo[i][bexist]=false;
    DestroyObject(BlitzerInfo[i][bObj]);

    }
    }
    return true;
    }


    GetFreeSlotID() // Gibt die freie Slot id wieder; -1 == Kein freier Slot mehr
    {
    for(new i = 0; i < 15; i++)
    {
    if(BlitzerInfo][i][bexist]==false)return i;
    }
    return -1;
    }




    Ich hoffe das reicht als beispiel

    RFT

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen