Fraktionschat

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
  • HeyHoo,


    Ich habe ein Problem mit meinem Fraktionschat.
    Immer wenn ich InGame /f HALLO eintippe, kommt, Benutze: /f(raktion) [Text]!
    Hier der ganze Befehl:

    ocmd:f(playerid,params[])
    {
    new result[128];
    if(sscanf(params,"s[128]",result))return SendClientMessage(playerid,Grau, "Benutze: /f(raktion) [Text]");
    {
    new resultstring[256];
    new Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Name, sizeof(Name));
    new member = SpielerInfo[playerid][pFraktion];
    if(SpielerInfo[playerid][pFraktion]!=0)
    {
    if(member==1)
    {
    if(SpielerInfo[playerid][pFrakrang] == 7) { format(resultstring, sizeof(resultstring), "Captain %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 6) { format(resultstring, sizeof(resultstring), "Lieutnant %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 5) { format(resultstring, sizeof(resultstring), "Oberkommissar %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 4) { format(resultstring, sizeof(resultstring), "Kommissar %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 3) { format(resultstring, sizeof(resultstring), "Bewährungshelfer %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 2) { format(resultstring, sizeof(resultstring), "Officer %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 1) { format(resultstring, sizeof(resultstring), "Cadet %s: %s", Name, result); }
    }
    else if(member==2)
    {
    if(SpielerInfo[playerid][pFrakrang] == 7) { format(resultstring, sizeof(resultstring), "Director %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 6) { format(resultstring, sizeof(resultstring), "Deputy Director %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 5) { format(resultstring, sizeof(resultstring), "Supervisor %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 4) { format(resultstring, sizeof(resultstring), "Elite Agent %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 3) { format(resultstring, sizeof(resultstring), "Special Agent %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 2) { format(resultstring, sizeof(resultstring), "Professional Agent %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 1) { format(resultstring, sizeof(resultstring), "Agent %s: %s", Name, result); }
    }
    for(new i; i<MAX_PLAYERS; i++)
    {
    if(SpielerInfo[i][pFraktion])
    {
    SendClientMessage(i, ChatGreen, resultstring);
    }
    }
    }
    }
    return 1;
    }

    Was ist falsch?


    lg
    Deagle

  • So?
    ocmd:f(playerid,params[])
    {
    new result[128];
    if(sscanf(params,"s",result))return SendClientMessage(playerid,Grau, "Benutze: /f(raktion) [Text]");
    {
    new resultstring[256];
    new Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Name, sizeof(Name));
    new member = SpielerInfo[playerid][pFraktion];
    if(SpielerInfo[playerid][pFraktion]!=0)
    {
    if(member==1)
    {
    if(SpielerInfo[playerid][pFrakrang] == 7) { format(resultstring, sizeof(resultstring), "Captain %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 6) { format(resultstring, sizeof(resultstring), "Lieutnant %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 5) { format(resultstring, sizeof(resultstring), "Oberkommissar %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 4) { format(resultstring, sizeof(resultstring), "Kommissar %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 3) { format(resultstring, sizeof(resultstring), "Bewährungshelfer %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 2) { format(resultstring, sizeof(resultstring), "Officer %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 1) { format(resultstring, sizeof(resultstring), "Cadet %s: %s", Name, result); }
    }
    else if(member==2)
    {
    if(SpielerInfo[playerid][pFrakrang] == 7) { format(resultstring, sizeof(resultstring), "Director %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 6) { format(resultstring, sizeof(resultstring), "Deputy Director %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 5) { format(resultstring, sizeof(resultstring), "Supervisor %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 4) { format(resultstring, sizeof(resultstring), "Elite Agent %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 3) { format(resultstring, sizeof(resultstring), "Special Agent %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 2) { format(resultstring, sizeof(resultstring), "Professional Agent %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 1) { format(resultstring, sizeof(resultstring), "Agent %s: %s", Name, result); }
    }
    for(new i; i<MAX_PLAYERS; i++)
    {
    if(SpielerInfo[i][pFraktion])
    {
    SendClientMessage(i, ChatGreen, resultstring);
    }
    }
    }
    }
    return 1;
    }



  • hatte ich auch schon, klappt nicht

  • Sollte so funktionieren:


    ocmd:f(playerid,params[])
    {
    new result[128];
    if(sscanf(params,"s[128]",result)) return SendClientMessage(playerid,Grau, "Benutze: /f(raktion) [Text]");

    new resultstring[256];
    new Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Name, sizeof(Name));
    new member = SpielerInfo[playerid][pFraktion];
    if(SpielerInfo[playerid][pFraktion]!=0)
    {
    if(member==1)
    {
    if(SpielerInfo[playerid][pFrakrang] == 7) { format(resultstring, sizeof(resultstring), "Captain %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 6) { format(resultstring, sizeof(resultstring), "Lieutnant %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 5) { format(resultstring, sizeof(resultstring), "Oberkommissar %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 4) { format(resultstring, sizeof(resultstring), "Kommissar %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 3) { format(resultstring, sizeof(resultstring), "Bewährungshelfer %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 2) { format(resultstring, sizeof(resultstring), "Officer %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 1) { format(resultstring, sizeof(resultstring), "Cadet %s: %s", Name, result); }
    }
    else if(member==2)
    {
    if(SpielerInfo[playerid][pFrakrang] == 7) { format(resultstring, sizeof(resultstring), "Director %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 6) { format(resultstring, sizeof(resultstring), "Deputy Director %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 5) { format(resultstring, sizeof(resultstring), "Supervisor %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 4) { format(resultstring, sizeof(resultstring), "Elite Agent %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 3) { format(resultstring, sizeof(resultstring), "Special Agent %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 2) { format(resultstring, sizeof(resultstring), "Professional Agent %s: %s", Name, result); }
    else if(SpielerInfo[playerid][pFrakrang] == 1) { format(resultstring, sizeof(resultstring), "Agent %s: %s", Name, result); }
    }
    for(new i; i<MAX_PLAYERS; i++)
    {
    if(SpielerInfo[i][pFraktion])
    {
    SendClientMessage(i, ChatGreen, resultstring);
    }
    }
    }
    return 1;
    }


    Sscanf gibt bei keinem Fehler 0 zurück, bei einem Fehler 1.
    Also wenn ein Fehler auftritt, wird dem Spieler eine Nachricht ausgegeben und gleichzeitig der Rückgabewert der Funktion "SendClientMessage" zurückgegeben.
    Das heißt, der Code danach wird nicht mehr ausgeführt.



    BlackLegend


    (e): Code eingerückt.



  • Klappt nicht :(