Problem mit /oticket

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
  • Hey Leute,
    ich habe ein Problem ich mache grad ein Befehl /oticket bei dem die Playerid, Führerscheinpunkte, Geld und der Grund angegeben werden soll.
    Das mit der Playerid funktioniert. Dann macht er aber wo eigentlich die Punkte stehen sollen macht er gleichzeitig auch als Geldbetrag.
    Und das was als Geld angegeben ist und als Grund steht beides bei Grund. Kann mir jemand helfen?


    Ich glaube das das Problem bei Zeile 20-22 liegt.


    if(strcmp(cmd, "/oticket", true) == 0)
    {
    new points;
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pMember] == 24 || PlayerInfo[playerid][pLeader] == 24)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /oticket [playerid] [Punkte] [Preis] [Grund]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /oticket [playerid] [Punkte] [Preis] [Grund]");
    return 1;
    }
    points = strval(tmp);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /oticket [playerid] [Punkte] [Preis] [Grund]");
    return 1;
    }
    moneys = strval(tmp);
    if(moneys < 1 || moneys > 99999) { SendClientMessage(playerid, COLOR_GREY, " Nicht weniger als 1 oder mehr als 99999 !"); return 1; }
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    if (ProxDetectorS(8.0, playerid, giveplayerid))
    {
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[64];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(!strlen(result))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /oticket [playerid] [Punkte] [Preis] [Grund]");
    return 1;
    }
    format(string, sizeof(string), "* Du hast %s ein Ticket in Höhe von $%d und %d Führerscheinpunkten ausgestellt, Grund: %s", giveplayer, moneys, points, (result));
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "* Ordnungsamtbeamter %s hat dir ein Ticket in Höhe von $%d und %d Führerscheinpunkten ausgestellt, Grund: %s", sendername, moneys, points, (result));
    SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
    SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, "* Um das Ticket zu bezahlen gib '/accept ticket' ein.");
    TicketOffer[giveplayerid] = playerid;
    TicketMoney[giveplayerid] = moneys;
    PlayerInfo[playerid][pPinB] += points;
    if(PlayerInfo[giveplayerid][pPinB] >= 18)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    SendClientMessage(giveplayerid, COLOR_LIGHTRED,"Du hast mehr als 18 Führerscheinpunkte!");
    SendClientMessage(giveplayerid, COLOR_LIGHTRED,"dein Führerschein wird dir nun Entzogen, du kannst ihn neu beantragen!");
    SendClientMessage(giveplayerid, COLOR_LIGHTRED,"Nutze '/exit' um aus dem Auto auszusteigen");
    TogglePlayerControllable(giveplayerid,0);
    PlayerExitAble[giveplayerid] = 1;
    PlayerInfo[giveplayerid][pPinB] = 0;
    PlayerInfo[giveplayerid][pCarLic] = 0;
    PlayerInfo[giveplayerid][pMotoLic] = 0;
    PlayerInfo[giveplayerid][pLKWLic] = 0;
    }
    else
    {
    SendClientMessage(giveplayerid, COLOR_LIGHTRED,"Du hast mehr als 18 Führerscheinpunkte!");
    SendClientMessage(giveplayerid, COLOR_LIGHTRED,"dein Führerschein wird dir nun Entzogen, du kannst ihn neu beantragen!");
    PlayerInfo[giveplayerid][pPinB] = 0;
    PlayerInfo[giveplayerid][pCarLic] = 0;
    PlayerInfo[giveplayerid][pMotoLic] = 0;
    PlayerInfo[giveplayerid][pLKWLic] = 0;
    }
    }
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist nicht nah genug !");
    return 1;
    }
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist nicht beim Ordnungsamt!");
    return 1;
    }
    }
    return 1;
    }