2 Fragen zu Fraktionrängen

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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
  • 1. Ich möchte das wenn ich jemanden eine Rang gebe direkt der Rangname Angezeit wird. Also: Du wurdest von Ouzplayed zum Praktikanten befördert.
    Es wird aber momentan noch so Angezeit: Du wurdest von Ouzplayed zum 1 befördert.


    Der Befehl:
    ocmd:setrank(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,1))return SendClientMessage(playerid,GRAU,"Du bist nicht bei der Polizei angestellt");
    if(!isPlayerRang(playerid,5))return SendClientMessage(playerid,GRAU,"Du bist kein Leader!.");
    new pID,rank;
    new s[128];
    if(sscanf(params,"ui",pID,rank))return SendClientMessage(playerid,HELLBLAU,"/setrank [Name/ID] [Rank]");
    if(rank<1||rank>5)return SendClientMessage(playerid,GRAU,"Bitte gültigen Fraktions Rang angeben.");
    SetPVarInt(pID,"FraktionRang",rank);
    format(s,sizeof(s),"Du hast %s zum %d befördert",sName(pID),rank);
    SendClientMessage(playerid,HELLBLAU,s);
    format(s,sizeof(s),"Du wurdest von %s zum %d befördert",sName(playerid),rank);
    SendClientMessage(pID,HELLBLAU,s);
    SpielerSpeichern(pID);
    return 1;
    }


    RangNamen Stock
    stock RangName(playerid)
    {
    new Rangname[16];
    switch(GetPVarInt(playerid,"FraktionRang"))
    {
    case 0:(Rangname = "-");
    case 1:(Rangname = "Praktikant");
    case 2:(Rangname = "Auszubildener");
    case 3:(Rangname = "Angestellter");
    case 4:(Rangname = "CoLeader");
    case 5:(Rangname = "Leader");
    }
    }


    FRAGE 2.
    Wie mache ich es dann wenn der Polizist im Dienst ist und was schreibt das dort auch sein Rangname Steht
    Also zum Beispiel Praktikant Outplayed: bfangasebnhm

    Regelmäßiger Stuhlgang im Leben des Menschen ist das A&A

  • Kann eigentlich nicht sein.
    Poste mal den Code.


    ocmd:setrank(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,1))return SendClientMessage(playerid,GRAU,"Du bist nicht bei der Polizei angestellt");
    if(!isPlayerRang(playerid,5))return SendClientMessage(playerid,GRAU,"Du bist kein Leader!.");
    new pID,rank;
    new s[128];
    if(sscanf(params,"ui",pID,rank))return SendClientMessage(playerid,HELLBLAU,"/setrank [Name/ID] [Rank]");
    if(rank<1||rank>5)return SendClientMessage(playerid,GRAU,"Bitte gültigen Fraktions Rang angeben.");
    SetPVarInt(pID,"FraktionRang",rank);
    SpielerSpeichern(pID);
    format(s,sizeof(s),"Du hast %s zum %d befördert",sName(pID),RangName(playerid));
    SendClientMessage(playerid,HELLBLAU,s);
    format(s,sizeof(s),"Du wurdest von %s zum %d befördert",sName(playerid),RangName(playerid));
    SendClientMessage(pID,HELLBLAU,s);
    return 1;
    }

    Regelmäßiger Stuhlgang im Leben des Menschen ist das A&A

  • LÖSUNG:

    Spoiler anzeigen
    ocmd:setrank(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,1))return SendClientMessage(playerid,GRAU,"Du bist nicht bei der Polizei angestellt");
    if(!isPlayerRang(playerid,5))return SendClientMessage(playerid,GRAU,"Du bist kein Leader!.");
    new pID,rank;
    new s[128];
    if(sscanf(params,"ui",pID,rank))return SendClientMessage(playerid,HELLBLAU,"/setrank [Name/ID] [Rank]");
    if(rank<1||rank>5)return SendClientMessage(playerid,GRAU,"Bitte gültigen Fraktions Rang angeben.");
    SetPVarInt(pID,"FraktionRang",rank);
    format(s,sizeof(s),"Du hast %s zum %s befördert",sName(pID),RangName(pID));
    SendClientMessage(playerid,HELLBLAU,s);
    format(s,sizeof(s),"Du wurdest von %s zum %s befördert",sName(playerid),RangName(pID));
    SendClientMessage(pID,HELLBLAU,s);
    SpielerSpeichern(pID);
    return 1;
    }
    stock RangName(playerid)
    {
    new Rangname[16];
    switch(GetPVarInt(playerid,"FraktionRang"))
    {
    case 0:(Rangname = "-");
    case 1:(Rangname = "Praktikant");
    case 2:(Rangname = "Auszubildener");
    case 3:(Rangname = "Angestellter");
    case 4:(Rangname = "CoLeader");
    case 5:(Rangname = "Leader");
    }
    return rangname;
    }


    Danke an Manniac

    Regelmäßiger Stuhlgang im Leben des Menschen ist das A&A

    Einmal editiert, zuletzt von OutPlayed ()

  • Lösch das was du bisher hast und schreibe es so:


    static const RangNamen[][] = {"-","Praktikant","Auszubildener","Angestellter","CoLeader","Leader"};
    ocmd:setrank(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,1))return SendClientMessage(playerid,GRAU,"Du bist nicht bei der Polizei angestellt");
    if(!isPlayerRang(playerid,5))return SendClientMessage(playerid,GRAU,"Du bist kein Leader!.");
    new pID,rank,s[128];
    if(sscanf(params,"ui",pID,rank))return SendClientMessage(playerid,HELLBLAU,"/setrank [Name/ID] [Rank]");
    if(rank<1||rank>5)return SendClientMessage(playerid,GRAU,"Bitte gültigen Fraktions Rang angeben.");
    SetPVarInt(pID,"FraktionRang",rank);
    format(s,sizeof(s),"Du hast %s zum %s befördert",sName(pID),RangNamen[rank]);
    SendClientMessage(playerid,HELLBLAU,s);
    format(s,sizeof(s),"Du wurdest von %s zum %s befördert",sName(playerid),RangNamen[rank]);
    SendClientMessage(pID,HELLBLAU,s);
    SpielerSpeichern(pID);
    return 1;
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S