/ticket 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
  • Hey Brotfischer ich hab mal ne kleine Frage:
    Ich habe mir (mit hilfe aus dem Forum) einen Ticket Befehl gebastelt der so aussieht:

    Spoiler anzeigen

    ocmd:ticket(playerid, params[])
    {
    new pID, reason[30], preis, string[128];
    if(!isPlayerInFrakt(playerid, 1)) return SendClientMessage(playerid, rot, "Du bist nicht berechtigt ein Ticket auszustellen.");
    if(!isPlayerInFrakt(playerid, 14)) return SendClientMessage(playerid, rot, "Du bist nicht berechtigt ein Ticket auszustellen.");
    if(sscanf(params, "us[30]i", pID,reason,preis)) return SendClientMessage(playerid, gelb, "INFO: /ticket [playerid] [Grund] [Preis]");
    format(string,sizeof(string),"%s hat dir ein Ticket über $%i ausgestellt. Grund: %s", getPlayerName(playerid), preis, reason);
    SendClientMessage(pID, gelb, string);
    SendClientMessage(pID, gelb, "Gebe /accept ticket ein um das Ticket zu bezahlen.");
    SetPVarInt(pID, "tic_active", 1);
    SetPVarInt(pID, "tic_geber", playerid);
    SetPVarInt(pID, "tic_price", preis);
    return 1;
    }


    Es gibt soweit keine Errors oder Warnings nur wenn ich inGame den Befehl eingebe steht im Chat das ich nicht dazu berechtigt bin (klar hab ich ja so eingebaut) nur das Problem ist das ich in der Fraktion 14 bin :D ich habe schon probiert in fraktion 1 zu gehen und auch schon andere Fraktionen (die nicht funktionieren sollten) getestet aber es geht mit KEINER Fraktion.


    isPlayerInFrakt Abfrage:

    Spoiler anzeigen

    isPlayerInFrakt(playerid, f_id){
    if(sInfo[playerid][fraktion]==f_id)return 1;
    return 0;
    }

    Ziemlich Simpel


    Danke im Vorraus
    - Chris

  • Das wird nur funktionieren wenn du in beiden Fraktionen gleichzeitig bist.


    Beispiel:
    Ich bin in Fraktion 1: Nicht 1? Nein --> Nicht 14? Ja. ---> Ende
    Ich bin in Fraktion 14: Nicht 1? Ja --> Ende



    So musst du es machen:
    if(!isPlayerInFrakt(playerid, 1) && !isPlayerInFrakt(playerid, 14)) return SendClientMessage(playerid, rot, "Du bist nicht berechtigt ein Ticket auszustellen.");
    Hier:
    Wenn nicht in 1 UND nicht in 14.


    Beispiel:
    Ich bin in Fraktion 1: Nicht 1? Nein --> Nicht 14? Ja. ---> 0 && 1 -> 0 -> Alles ok, wird nicht angezeigt
    Ich bin in Fraktion 14: Nicht 1? Ja --> Nicht 14? Nein. ---> 1 && 0 -> 0 -> Alles ok, wird nicht angezeigt