Probleme mit /asup 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
  • Guten Morgen liebe Community,
    ich habe ein kleines Problem mit meinem Reportsystem. Ich habe es nun auf mein Script angepasst alles schön und gut. Nur leider ist mir jetzt aufgefallen, dass der Befehl /asup zum antworten im Ticket fehlt. Ich habe versucht den Befehl anzupassen aber leider empfängt der User keine Nachricht. Ich sehe auch nicht, dass ich eine abgeschickt habe. Kann mir jemand den Befehl bitte anpassen? Ich bin echt am verzweifeln. Ich glaube das hängt mit den playerid und pID oder sowas zusammen das man die einfach nur vertauschen muss, dass es genau anders herum ist. Aber das klappt bei mir iwie nicht so ganz. Ich hoffe ihr könnt mir helfen und ich sage schonmal danke :)


    COMMAND:sup(playerid,params[])
    {
    new text[256];
    if(sscanf(params,"s[128]",text))
    {
    SendClientMessage(playerid, COLOR_GREY,"* Benutzung: /sup [Nachricht]");
    }
    else
    {
    if(TicketAngenommen[playerid] == 0)
    {
    SendClientMessage(playerid, COLOR_GREY,"Du bist in keinem aktivem Report!");
    }
    else
    if(TicketAngenommen[playerid] == 1)
    {
    new pID = DeinSupport[playerid];
    new antwort[128], antwort2[128], DerFragende[MAX_PLAYER_NAME], DerFragende[MAX_PLAYER_NAME];
    GetPlayerName(playerid, DerFragende, sizeof (DerFragende));
    GetPlayerName(pID, DerSup, sizeof (DerSup));
    format(antwort, sizeof (antwort),"--> %s", text);
    SendClientMessage(playerid, COLOR_YELLOW, antwort);
    format(answer2, sizeof (answer2), "%s schrieb: %s", DerFragende, text);
    SendClientMessage(pID, COLOR_YELLOW, antwort2);
    }
    }
    return 1;
    }


    Falls ihr noch was vom Code braucht schreibt es einfach rein :)

  • Versuche es so.
    Wenn es nicht geht, poste was im Server Log steht, wenn du den Befehl eingibst.
    COMMAND:sup(playerid,params[])
    {
    printf("params: %s", params);
    printf("TicketAngenommen: %d | pID: %d", TicketAngenommen[playerid], DeinSupport[playerid]);
    new string[145], pID = DeinSupport[playerid], name[MAX_PLAYER_NAME];
    if(!params[0]) return SendClientMessage(playerid, COLOR_GREY,"* Benutzung: /sup [Nachricht]");
    if(TicketAngenommen[playerid] == 0) return SendClientMessage(playerid, COLOR_GREY,"Du bist in keinem aktivem Report!");
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string),"--> %s", params);
    print(string);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    format(string, sizeof(string), "%s schrieb: %s", name, params);
    print(string);
    SendClientMessage(pID, COLOR_YELLOW, string);
    return 1;
    }

  • Nein du hast es falsch verstanden. Der /sup Befehl geht. Ich will den Befehl für den Admin erstellen und zwar /asup um zu antworten.
    Nur wenn ich meinen Code verwende und die pID und playerid auswechsel passiert garnix. Den Befehl gibt es zwar passiert aber rein gar nix.

  • Ja jetzt hast du es richtig verstanden :) Der Admin kann über /sup nämlich nicht antworten. Darum will ich ja /asup haben ^^


    Hier der verlangte Code zum annehmen des Tickets:


    COMMAND:taketicket(playerid,params[])
    {
    new pID;
    new string2[256], string[256], string3[256], string4[256],mitteilung[128] , DerPlayer[MAX_PLAYER_NAME], DerAdmin[MAX_PLAYER_NAME];
    if(sscanf(params,"u[128]",pID))
    {
    return SendClientMessage(playerid, COLOR_GREY,"[Benutzung]: /taketicket [Ticket-ID]");
    }
    new pname[MAX_PLAYERS],save[512];
    GetPlayerName(pID,pname,sizeof pname);
    format(save,sizeof save,"Tickets/%s.ini",pname);
    if(dini_Exists(save))
    {
    if(isPlayerAnAdmin(playerid,1))
    {
    string2 = dini_Get(save,"Suptext");
    string3 = dini_Get(save,"Suptext2");
    string4 = dini_Get(save,"Suptext3");
    GetPlayerName(pID, DerPlayer, sizeof(DerPlayer));
    GetPlayerName(playerid, DerAdmin, sizeof(DerAdmin));
    format(string, sizeof(string), "%s schrieb folgende Supportnachricht:", DerPlayer);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    SendClientMessage(playerid, COLOR_YELLOW, string2);
    SendClientMessage(playerid, COLOR_YELLOW, string3);
    SendClientMessage(playerid, COLOR_YELLOW, string4);
    SendClientMessage(playerid, COLOR_YELLOW, "Du kannst nun per /sup [Nachricht] antworten.");
    format(mitteilung, sizeof(mitteilung), "[SUPPORT] %s hat dein Support Ticket geöffnet. Du kannst nun per /sup [Nachricht] direkt mit ihm schreiben!",DerAdmin);
    SendClientMessage(pID, COLOR_YELLOW, mitteilung);
    DeinSupport[pID] = playerid;
    TicketAngenommen[pID] = 1;
    }
    }
    return 1;
    }

  • Wäre es nicht eine Möglichkeit, dass beide denn /sup nutzen können? Das dürfte doch einfacher sein.
    Füge da einfach zu dem annehmen Code das hier hinzu:
    DeinSupport[playerid] = pID;
    TicketAngenommen[playerid] = 1;


    Dann können beide mit /sup schreiben.
    Sonst müsstest du eine weitere Variable anlegen, die dann zum Beispiel "DeineAnnahme" heißt, und es dann gleich wie bei /sup machen, nur mit "DeineAnnahme".