Blitzer system problem

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 Abend,


    Ich habe ein Problem bei meinem Blitzer System unzwar:


    wie kann ich den Standort der blitzers eingeben un ihn dann ausgeben??


    hir der befehl:


    if(strcmp(strget(cmdtext,0),"/createblitzer", true, 10) == 0)
    {
    if(PlayerInfo[playerid][leader] == 1|| PlayerInfo[playerid][Team] == 1)
    {
    new speed,radius,name, msg[128];
    speed = strval(strget(cmdtext,1));
    radius = strval(strget(cmdtext,2));
    name = strval(strget(cmdtext,3));
    if(!strlen(strget(cmdtext,1))||!strlen(strget(cmdtext,2)))
    {
    SendClientMessage(playerid, 0xffffffff, "Benutzung: /blitzer [Geschwindigkeit] [Radius] [StandOrt Beschreibung]");
    return 1;
    }
    AddBlitzer(playerid,speed,radius,PlayerInfo[playerid][Team],name);
    format(msg,sizeof(msg),"*** [HQ]: %s %s hat einen Blitzer am %s /*<- hir der Standort*/ aufegestellt mit einer Geschwindigkeit von: %d ***",FrakName(playerid),PlayerName(playerid),name/*<- die variable*/,speed);
    for( new i = 0; i<MAX_PLAYERS; i++) {
    if(PlayerInfo[i][Team] == 1 || PlayerInfo[i][Team] == 2 || PlayerInfo[i][Team] == 3 || PlayerInfo[i][Team] == 8) {
    SendClientMessage(i,COLOR_PURPLE,msg);
    return 1;
    }
    }
    }
    return 1;
    }

    Mit freundlichen Grüßen,


    Fabi.StaR :love::saint:


  • Mach es so wie ich es hier mache gebe dir ein besseres System.


    Als erstes definierst du die Anzahl der Blitzer so wie hier bei deinen defines.
    #define MAX_BLITZER 40 // Maximale Anzahl von Blitzern#define BLITZER_TIMER_INTERVALL 500 // Intervall für das Blitzen (in Milliesekunden)#define BLITZER_PAUSE 1 // Anzahl der Minuten, in denen der Spieler nicht mehr geblitzt werden kann




    Dann machst du ein enum und erstellst was neues wie hier bei den new



    enum eBlitzer { ID,Float:BlitzerX, Float:BlitzerY, Float:BlitzerZ, Radius, Geschwindigkeit, Erstellt, Strafe};
    new Blitzer[MAX_BLITZER][eBlitzer];new GesammtBlitzer;new BlitzerErstellt[MAX_PLAYERS];



    Dann unter OnPlayerCommandText & unter den anderen Befehlen den Befehl hinzufügen.


    if(strcmp(cmd, "/blitzer", true) == 0) { if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1|| PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pMember] == 22 || PlayerInfo[playerid][pLeader] == 22) { 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 < 10 || b_strafe > 100) { SendClientMessage(playerid, COLOR_GREY, "Hinweis: Die Strafe muss zwischen 10$ / KMH und 100$ / KMH liegen."); return 1; } 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 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; 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 / 40 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 konnte dir helfen ;)

  • Einfach oben im Script (Falls es da nicht schon ist)


    #include a_zones


    Dann später im Befehl:



    new zone[28];
    GetPlayer2DZone(playerid, zone, sizeof(zone));


    //Deine anderen Sachen
    //...
    format(msg,sizeof(msg),"*** [HQ]: %s %s hat einen Blitzer in %s aufgestellt mit einer Geschwindigkeit von: %d ***",FrakName(playerid),PlayerName(playerid),zone,speed);
    //Deine anderen Sachen

  • Wie machste das dein Pawn Quellcode untereinander ist? Bei mir ist der nebeneinander



  • wo setzt du denn den Radius?

    Mit freundlichen Grüßen,


    Fabi.StaR :love::saint: