Pardon Befehl

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
  • Habe mal mit einem Wantedsystem angefangen und das Suspecten geht auch soweit. Allerdings habe ich nen zweiten Befehl zum Abziehen von Wanteds, beispielsweise für Fehler, erstellt (Grund ist ja egal). Auf jeden Fall hier mal der Code:
    ocmd:su(playerid,params[])
    {
    if(!IstSpielerInFrak(playerid,1)) return SendClientMessage(playerid,Hellblau,"Du bist kein Polizist!");
    new pID, amount, reason[32];
    new Playerdatei[128];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(pID,name,sizeof(name));
    format(Playerdatei,sizeof(Playerdatei),"/Accounts/%s.ini",name);
    if(sscanf(params,"uds",pID,amount,reason)) return SendClientMessage(playerid,Gelb,"Benutzung: /su [ID] [Anzahl] [Grund]");
    if(amount <1 || amount >69) return SendClientMessage(playerid,Hellblau,"Du kannst nicht weniger als 1 oder mehr als 69 Wantedpunkte geben!");
    if(dini_Int(Playerdatei,"Wanteds")>=69-amount||GetPVarInt(pID,"Wanteds")>=69-amount) return SendClientMessage(playerid,Hellblau,"Der Spieler hat schon 69 Wantedpunkte!");
    new copmsg[64], crimemsg[64];
    GetPlayerName(pID,name,sizeof(name));
    format(copmsg,sizeof(copmsg),"Du hast %s %d Wantedpunkte gegeben. Grund: %s",name,amount,reason);
    format(crimemsg,sizeof(crimemsg),"Du hast von einem Cop %d Wantedpunkte erhalten. Grund: %s",amount,reason);
    SendClientMessage(playerid,Hellblau,copmsg); SendClientMessage(pID,Blau,crimemsg);
    dini_IntSet(Playerdatei,"Wanteds",amount);
    SetPVarInt(pID,"Wanteds",amount);
    return 1;
    }
    ocmd:pa(playerid,params[])
    {
    if(!IstSpielerInFrak(playerid,1)) return SendClientMessage(playerid,Hellblau,"Du bist kein Polizist!");
    new pID, amount, reason[32];
    new Playerdatei[128];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(pID,name,sizeof(name));
    format(Playerdatei,sizeof(Playerdatei),"/Accounts/%s.ini",name);
    if(sscanf(params,"uds",pID,amount,reason)) return SendClientMessage(playerid,Gelb,"Benutzung: /pa [ID] [Anzahl] [Grund]");
    if(amount <1 || amount >69) return SendClientMessage(playerid,Hellblau,"Du kannst nicht weniger als 1 oder mehr als 69 Wantedpunkte abziehen!");
    if(amount >dini_Int(Playerdatei,"Wanteds")||amount >GetPVarInt(pID,"Wanteds")) return SendClientMessage(playerid,Gelb,"Soviele Wanteds hat der Spieler nicht!");
    new copmsg[64], crimemsg[64];
    GetPlayerName(pID,name,sizeof(name));
    format(copmsg,sizeof(copmsg),"Du hast %s %d Wantedpunkte abgezogen. Grund: %s",name,amount,reason);
    format(crimemsg,sizeof(crimemsg),"Du hast von einem Cop %d Wantedpunkte abgezogen bekommen. Grund: %s",amount,reason);
    SendClientMessage(playerid,Hellblau,copmsg); SendClientMessage(pID,Blau,crimemsg);
    dini_IntSet(Playerdatei,"Wanteds",-amount);
    SetPVarInt(pID,"Wanteds",-amount);
    return 1;
    }
    Das Problem ist: Beim pa (pardon) Befehl, kommt immer 'Soviele Wanteds hat der Spieler nicht!', egal wieviele in der Dini stehen. Wo ist der Fehler? Errors oder so bekomme ich nicht.
    Greetz

    Greetz

  • Du holst den Namen der Person aus einem leeren String. Du musst sscanf benutzen bevor du GetPlayerName verwendest.