ocmd Befehl Komplikation

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 wollte fragen , wie es möglich ist,
    dass wenn ein Spieler an einer Stelle steht und dort
    die Wanteds aufgelistet werden.
    Ich habe mir gedacht es muss irgendwie so gehen:


    ocmd:wanteds(playerid,params[])
    {
    if(!IsPlayerInRangeOfPoint(playerid,5,2,2,2))return SendClientMessage(playerid,"Du bist nicht an der richtigen Stelle!");
    new Wanteds,string[128];



    aber leider weiß ich nicht wirklich weiter.


    MfG


    /edit: Überschrift angepasst, war zu allgemein :D

  • ich möchte ja das die Wanteds aufgelistet werden


    dazu möchte ich sagen das wanted mit PVar gespeichert werden mit "Wanted"


    MfG

  • OCMD:wantedauflisten(playerid,params[])
    {
    #pragma unused params
    if(!IsPlayerInRangeOfPoint(playerid,5,2,2,2))
    {
    new msg[128],suche=0;
    for (new i; i < MAX_PLAYERS; i++)
    {
    if (playerInfo[i][Wanted] > 0)
    {
    format(msg, sizeof(msg), "%s%s: %i Fahndungslevel", msg, playerInfo[i][Name], playerInfo[i][Wanted]);
    suche++;
    }
    }
    if(suche==0)
    return SendClientMessage(playerid, COLOR_RED, "Zurzeit werden keine Spieler gesucht...^^");


    return SendClientMessage(playerid, COLOR_YELLOW, msg);
    }
    return 1;
    }

  • wäre es nicht i-wie einfacher mit GetPlayerWantedLevel oderso?


    i-wie so wie meine anderen befehle hätte ich die gerne


    meine anderen beiden befehle :



    ocmd:wantedgeben(playerid,params[])
    {
    if(!isPlayerPolizist(playerid))return SendClientMessage(playerid,ROT,"Du bist kein Polizist!");
    if(GetPVarInt(playerid,"Duty")==0)return SendClientMessage(playerid,ROT,"Du bist nicht im Dienst!");
    new pID,grund[128],string[128];
    if(sscanf(params,"is",pID,grund))return SendClientMessage(playerid,GRAU,"/wantedgeben [id] [grund]");
    format(string,sizeof(string),"Du hast ein Wanted von ID:%d bekommen! Grund: %s",playerid,grund);
    SendClientMessage(pID,GELB,string);
    format(string,sizeof(string),"Du hast ID:%d ein Wanted gegeben! Grund: %s",pID,grund);
    SendClientMessage(playerid,GELB,string);
    SetPlayerWantedLevel(pID,GetPlayerWantedLevel(pID) + 1);
    SetPlayerColor(pID,HELLGRÜN);
    return 1;
    }
    ocmd:aktereinigen(playerid,params[])
    {
    if(!isPlayerPolizist(playerid))return SendClientMessage(playerid,ROT,"Du bist kein Polizist!");
    if(GetPVarInt(playerid,"Duty")==0)return SendClientMessage(playerid,ROT,"Du bist nicht im Dienst!");
    new pID,string[128];
    if(sscanf(params,"i",pID))return SendClientMessage(playerid,GRAU,"/aktereinigen [id]");
    format(string,sizeof(string),"Deine Akte wurde von ID:%d gereinigt!",playerid);
    SendClientMessage(pID,HELLBLAU,string);
    format(string,sizeof(string),"Du hast die Akte von ID:%d gereinigt!",pID);
    SendClientMessage(playerid,HELLBLAU,string);
    SetPlayerWantedLevel(pID,0);
    return 1;
    }



    MfG

  • Ja klar, ich wusste nur nicht wie du deine Wanteds aussliest. Ich kenne ja deine Variablen nicht.
    Du kannst die Variablen einfach per GetPlayerWantedLevel ersetzen.

  • könntest du dies bitte machen mit dem ersetzten?
    I-wie stimmt da bei mir grad net...


    i-wie wenn GetPlayerWanted (Wanted < 0 ) wird er auf der liste angezeigt!


    könnte das bitte jemand machen? :(


    MfG

  • Hey,


    wie kommst du denn auf dieses Ergebnis?

    Zitat

    GetPlayerWanted(Wanted < 0)


    Wenn "Wanted" kleiner ist als 0..
    Abgesehen davon, muss dort ein Parameter für Spieler-ID´s hin.


    Du musst genau wie bei deinem "wantedgeben" - Befehl die Wanteds auslesen.
    Wenn diese größer als 0 sind, den Rest ausführen.


    Grüße,
    tonyalva

  • ich mein ja größer als 0 ^^ :D


    wie lese ich genau daten von anderen cmd´s ab ?
    sorry für die vielen fragen...


    MfG

  • habe es so:



    ocmd:wanteds(playerid,params[])
    {
    #pragma unused params
    if(!IsPlayerInRangeOfPoint(playerid,5,2,2,2))return SendClientMessage(playerid,ROT,"Du bist nicht an der richtigen Stelle!");
    {
    new pID,msg[128],suche=0;
    for (new i; i < MAX_PLAYERS; i++)
    {
    if (GetPlayerWantedLevel(pID) < 0);
    {
    format(msg, sizeof(msg), "%s%i: %i Fahndungslevel", msg, pID, GetPlayerWantedLevel(pID) > 0);
    suche++;
    }
    }
    if(suche==0)
    return SendClientMessage(playerid, ROT, "Zurzeit ist kein Spieler Wanted!");
    return SendClientMessage(playerid, HELLBLAU, msg);
    }
    return 1;
    }


    aber da stimmt garnichts, sprich error..


    MfG


    /edit: Zeilen werden i-wie immer und immer wieder verändert, das regt auf -.-

    Einmal editiert, zuletzt von _SKY_ ()

  • ich weiß ja nicht,
    ich hab kp wie ich das machen muss.


    wie soll ich sonst das wanted abfragen ?


    MfG


    /edit:
    jetziger befehl:

    ocmd:wanteds(playerid,params[])
    {
    #pragma unused params
    if(!IsPlayerInRangeOfPoint(playerid,5,2,2,2))return SendClientMessage(playerid,ROT,"Du bist nicht an der richtigen Stelle!");
    {
    new msg[128],suche=0;
    for (new i; i < MAX_PLAYERS; i++)
    {
    if (GetPlayerWantedLevel(playerid) > 0)
    {
    format(msg, sizeof(msg), "%s%i: %i Fahndungslevel", msg, playerid, GetPlayerWantedLevel(playerid) > 0);
    suche++;
    }
    }
    if(suche==0)
    return SendClientMessage(playerid, ROT, "Zurzeit ist kein Spieler Wanted!");
    return SendClientMessage(playerid, HELLBLAU, msg);
    }
    }

    Einmal editiert, zuletzt von _SKY_ ()

  • Es muss GetPlayerWantedLevel(i) heißen. Und diese Zeile:
    format(msg, sizeof(msg), "%s%i: %i Fahndungslevel", msg, playerid, GetPlayerWantedLevel(playerid) > 0);
    GetPlayerWantedLevel(playerid) -> 0); was soll das denn bewirken? Du liest ja seine Wanteds ab, also einfach GetPlayerWantedLevel(playerid);

  • so jetzt werden die wanteds ingame angezeigt


    jedoch 2x ...


    Mein befehl:

    ocmd:wanteds(playerid,params[])
    {
    if(!IsPlayerInRangeOfPoint(playerid,5,-1921.4448,562.6837,35.1869))return SendClientMessage(playerid,ROT,"Du bist nicht an der richtigen Stelle!");
    {
    new msg[128],suche=0;
    for (new i; i < MAX_PLAYERS; i++)
    {
    new spieler[MAX_PLAYER_NAME];
    new Wanted = GetPlayerWantedLevel(i);
    GetPlayerName(i, spieler, sizeof(spieler));
    if (GetPlayerWantedLevel(i) > 0)
    {
    format(msg, sizeof(msg), "%s[%d]: %d Fahngungslevel", spieler,i,Wanted);
    SendClientMessage(playerid, HELLBLAU, msg);
    suche++;
    }
    }
    if(suche==0)
    return SendClientMessage(playerid, ROT, "Zurzeit ist kein Spieler Wanted!");
    return SendClientMessage(playerid, HELLBLAU, msg);
    }
    }


    MfG


    /edit ich meine damit:
    dass die wanteds 2 mal angezigt werden so:
    _SKY[ID:1]: 1 Fahndungslevel
    _SKY[ID:1]: 1 Fahndungslevel


    das nervt extrem.. :(

    Einmal editiert, zuletzt von _SKY_ ()