/government Problem

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 Tag,


    Ich möchte den Befehl etwas kleiner machen und habe vor das anstatten das man den Staatsnachricht SAPD Sollte der Rang Name da stehn wie kann ich das machen?




    if(strcmp(cmd, "/government", true) == 0 || strcmp(cmd, "/gov", true) == 0)
    {
    new sinmsg[2000];
    if(IsPlayerConnected(playerid))
    {
    if(gTeam[playerid] != 2 && !IsACop(playerid) && !IsPlayerInFrac(playerid, 7) && !IsPlayerInFrac(playerid, 24) && !IsPlayerInFrac(playerid, 4))
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist nicht befugt.");
    return 1;
    }
    if(PlayerInfo[playerid][pRank] < 9)
    {
    SendClientMessage(playerid, COLOR_GREY, "Du benötigst mindestens Rang 9.");
    return 1;
    }
    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: /gov(ernment) [Nachricht]");
    return 1;
    }
    if(PlayerInfo[playerid][pMember] == 7 && PlayerInfo[playerid][pRank] >= 9)
    {
    format(sinmsg, sizeof(sinmsg), "<< Staatsnachricht Regierung %s: %s >>", sendername, result);
    }
    else if(PlayerInfo[playerid][pMember] == 1 && PlayerInfo[playerid][pRank] >= 9)
    {
    format(sinmsg, sizeof(sinmsg), "<< Staatsnachricht SAPD %s: %s >>", sendername, result);
    }
    else if(PlayerInfo[playerid][pMember] == 4 && PlayerInfo[playerid][pRank] >= 9)
    {
    format(sinmsg, sizeof(sinmsg), "<< Staatsnachricht LSMD %s: %s >>", sendername, result);
    }
    else if(PlayerInfo[playerid][pMember] == 2 && PlayerInfo[playerid][pRank] >= 9)
    {
    format(sinmsg, sizeof(sinmsg), "<< Staatsnachricht FBI %s: %s >>", sendername, result);
    }
    //else format(sinmsg, sizeof(sinmsg), "<< Staatsnachricht %s: %s >>", sendername, result);
    SendClientMessageToAll(COLOR_DBLUE, sinmsg);
    }
    return 1;
    }



    //E:


    %s [Rangname] %s[Spielername] %s[Sein Text]


    //E:


    if(strcmp(cmd, "/government", true) == 0 || strcmp(cmd, "/gov", true) == 0)
    {
    new sinmsg[2000];
    if(IsPlayerConnected(playerid))
    {
    if(gTeam[playerid] != 2 && !IsACop(playerid) && !IsPlayerInFrac(playerid, 7) && !IsPlayerInFrac(playerid, 24) && !IsPlayerInFrac(playerid, 4))
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist nicht befugt.");
    return 1;
    }
    if(PlayerInfo[playerid][pRank] < 9)
    {
    SendClientMessage(playerid, COLOR_GREY, "Du benötigst mindestens Rang 9.");
    return 1;
    }
    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: /gov(ernment) [Nachricht]");
    return 1;
    }
    if(PlayerInfo[playerid][pMember] == 7 && PlayerInfo[playerid][pRank] >= 9)
    {
    format(sinmsg, sizeof(sinmsg), "<< %s %s: %s >>", pRank, sendername, result);
    }
    else if(PlayerInfo[playerid][pMember] == 1 && PlayerInfo[playerid][pRank] >= 9)
    {
    format(sinmsg, sizeof(sinmsg), "<< %s %s: %s >>", pRank, sendername, result);
    }
    else if(PlayerInfo[playerid][pMember] == 4 && PlayerInfo[playerid][pRank] >= 9)
    {
    format(sinmsg, sizeof(sinmsg), "<< %s %s: %s >>", pRank, sendername, result);
    }
    else if(PlayerInfo[playerid][pMember] == 2 && PlayerInfo[playerid][pRank] >= 9)
    {
    format(sinmsg, sizeof(sinmsg), "<< %s %s: %s >>", pRank, sendername, result);
    }
    //else format(sinmsg, sizeof(sinmsg), "<< Staatsnachricht %s: %s >>", sendername, result);
    SendClientMessageToAll(COLOR_DBLUE, sinmsg);
    }
    return 1;
    }


    So hätte ich das jetzt gemacht

    Einmal editiert, zuletzt von DerFamer ()

  • Den Befehl so:
    if(strcmp(cmd, "/government", true) == 0 || strcmp(cmd, "/gov", true) == 0)
    {
    new sinmsg[145]; //Mehr wie 145 kann SendClientMessage nicht verarbeiten
    if(gTeam[playerid] != 2 && !IsACop(playerid) && !IsPlayerInFrac(playerid, 7) && !IsPlayerInFrac(playerid, 24) && !IsPlayerInFrac(playerid, 4)) return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht befugt.");
    if(PlayerInfo[playerid][pRank] < 9) return SendClientMessage(playerid, COLOR_GREY, "Du benötigst mindestens Rang 9.");
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new text[128];
    format(text, sizeof(text), cmdtext[strlen(cmd)+1]);
    if(!strlen(text)) return SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /gov(ernment) [Nachricht]");
    format(sinmsg, sizeof(sinmsg), "<< %s %s: %s >>", GetRangName(PlayerInfo[playerid][pRank]), sendername, text);
    SendClientMessageToAll(COLOR_DBLUE, sinmsg);
    return 1;
    }


    Und ganz unten im Gamemode:
    stock GetRangName(rang)
    {
    new rName[32];
    switch(rang)
    {
    case 0: rName = "Newbie";
    case 1: rName = "Beginner";
    case 2: rName = "Advanced";
    //...
    default: rName = "Unbekannt";
    }
    return rName;
    }

  • stock GetRangName(rang)
    {
    new rName[32];
    switch(rang)
    {
    case 0: rName = "Chief of Police";
    case 1: rName = "Deputy Chief";
    case 2: rName = "FBI Director";
    case 3: rName = "Deputy Director";
    case 4: rName = "Direktor des Ordnungsamtes";
    case 5: rName = "stellv. Direktor";
    case 6: rName = "Chef Arzt";
    case 7: rName = "stellv. Chefarzt";
    case 8: rName = "Präsident";
    case 9: rName = "Vizepräsiden";
    default: rName = "Unbekannt";
    }
    return rName;
    }


    Wird aber Unbekannt angezeigt :/?

  • Dann hast du einen anderen Rang als 0-9. Lass ihn dir mal ausgeben, dann siehst du im Server Log was du hast:
    stock GetRangName(rang)
    {
    printf("GetRangName: Rang: %d", rang);
    new rName[32];
    switch(rang)
    {
    case 0: rName = "Chief of Police";
    case 1: rName = "Deputy Chief";
    case 2: rName = "FBI Director";
    case 3: rName = "Deputy Director";
    case 4: rName = "Direktor des Ordnungsamtes";
    case 5: rName = "stellv. Direktor";
    case 6: rName = "Chef Arzt";
    case 7: rName = "stellv. Chefarzt";
    case 8: rName = "Präsident";
    case 9: rName = "Vizepräsiden";
    default: rName = "Unbekannt";
    }
    return rName;
    }

  • stock GetRangName(rang)
    {
    printf("GetRangName: Rang: %d", rang);
    new rName[32];
    switch(rang)
    {
    case 0: rName = "Chief of Police";
    case 1: rName = "Deputy Chief";
    case 2: rName = "FBI Director";
    case 3: rName = "Deputy Director";
    case 4: rName = "Direktor des Ordnungsamtes";
    case 5: rName = "stellv. Direktor";
    case 6: rName = "Chef Arzt";
    case 7: rName = "stellv. Chefarzt";
    case 8: rName = "Präsident";
    case 9: rName = "Vizepräsiden";
    default: rName = "Unbekannt";
    }
    return rName;
    }



    Es sollte nur Rang: 11,10,9 schreiben können darum if(PlayerInfo[playerid][pRank] < 9) return SendClientMessage(playerid, COLOR_GREY, "Du benötigst mindestens Rang 9.");


    ist das eingebaut das der Jenige erst ab Rang 9 schreiben darf.


    Fraktionen: 1,2,4,24 Gangs/Mafien brauchen das nicht

  • stock GetRangName(rang)
    {
    printf("GetRangName: Rang: %d", rang);
    new rName[32];
    switch(rang)
    {
    case 0: rName = "Chief of Police"; //Rang 11
    case 1: rName = "Deputy Chief"; //Rang 10
    case 2: rName = "Assistant Chief"; //Rang 9
    case 3: rName = "FBI Director"; //Rang 11
    case 4: rName = "Deputy Director"; //Rang 10
    case 5: rName = "Chief of Staff"; //Rang 9
    case 6: rName = "Direktor des Ordnungsamtes"; //Rang 11
    case 7: rName = "stellv. Direktor"; //Rang 10
    case 8: rName = "Assistents Direktor"; //Rang 9
    case 9: rName = "Chef Arzt"; //Rang 11
    case 10: rName = "stellv. Chefarzt"; //Rang 10
    case 11: rName = "Oberarzt"; //Rang 9
    case 12: rName = "Präsident"; //Rang 11
    case 13: rName = "Vizepräsiden"; //Rang 10
    case 14: rName = "Ober Staatsanwalt"; //Rang 9
    default: rName = "Unbekannt";
    }
    return rName;
    }



    So habe ich das jetzt eingebaut