Problem mit der wiedergabe von Spielernamen

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
  • Hallo Leute,


    ich habe ein kleines Problem, und zwar habe ich in meinen Befehlen einen kleinen Feher.
    Zum Beispiel mein '/makeleader'-Befehl.
    Es funktioniert alles, bis auf das, die Namen nicht richtig wiedergegeben werden.


    Beispiel:
    Admin Peter_Lustig (ID:0) will den Spieler Lars (ID:1) mit '/makeleader 1 6" zum leader der Fraktion 6 machen.
    Alles funktioniert eigentlich, bis auf dass Admin Peter_Lustig folgende Nachrichten bekommt:
    "[06:33:09] Du hast Peter_Lustig zum Leader der Fraktion 'Gummibärenbande' gemacht!" <- Spielernachricht
    "[06:33:09] Peter_Lustig hat Peter_Lustig zum Leader der Fraktion 'Gummibärenbande' gemacht!"
    <- Adminnachricht
    Und Spieler Lars bekommt folgende Nachricht:
    "[06:33:09] Peter_Lusitg hat dich zum Leader der Fraktion 'Gummibärenbande' gemacht!" <- Spielernachricht


    Nun heißt es, dass der Admin sich lt. Chat selbst zum Leader der Gummibärenbande gemacht hat, was aber lt. Scriptzeile (Zeile 25, string1) nicht stimmt.


    dcmd_makeleader(playerid,params[]) //Adminbefehl
    {
    new pID, fID, string[128], string1[128], string2[128], frakname[64], aname[MAX_PLAYER_NAME], name[MAX_PLAYER_NAME]; GetPlayerName(playerid,aname,sizeof(aname)); GetPlayerName(pID,name,sizeof(name));
    if(SpielerInfo[playerid][pPerso] != 1) return 1;
    if(SpielerInfo[playerid][pAdmin] < 4) return 1;
    if(sscanf(params,"ud",pID,fID)) return SendClientMessage(playerid,GRAU,"Verwendung: /makeleader [ID] [Fraktions-ID] | Gebe '/frakids' für die Fraktions-ID's ein!");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,ROT,"Dieser Spieler wurde nicht gefunden!");
    if(SpielerInfo[pID][pFraktion] == fID && SpielerInfo[pID][pLeader] == 1) return SendClientMessage(playerid,ROT,"Der Spieler ist bereits Leader dieser Fraktion!");
    if(fID < 1 || fID > 11) return SendClientMessage(playerid,ROT,"Ungültige Angabe!");
    switch(fID)
    {
    case 1:(frakname=frakname1);
    case 2:(frakname=frakname2);
    case 3:(frakname=frakname3);
    case 4:(frakname=frakname4);
    case 5:(frakname=frakname5);
    case 6:(frakname=frakname6);
    case 7:(frakname=frakname7);
    case 8:(frakname=frakname8);
    case 9:(frakname=frakname9);
    case 10:(frakname=frakname10);
    case 11:(frakname=frakname11);
    }
    SpielerInfo[pID][pFraktion] = fID; SpielerInfo[pID][pLeader] = 1; SpielerInfo[pID][pFrakRang] = 1;
    format(string,sizeof(string),"Du hast %s zum Leader der Fraktion '%s' gemacht!",name,frakname); format(string1,sizeof(string1),"%s hat %s zum Leader der Fraktion '%s' gemacht!",aname,name,frakname); format(string2,sizeof(string2),"%s hat dich zum Leader der Fraktion '%s' gemacht!",aname,frakname);
    SendClientMessage(playerid,GELB,string); SendAdminMessage(PINK,string1); SendClientMessage(pID,GELB,string2);
    return SavePlayer(pID);
    }



    Scheinbar hat es was mit "pID" zutun, eine Lösung habe ich bisher aber noch nicht gefunden.


    Wäre nett wenn mir da jemand helfen würde.




    Gruß
    AlphaGen

    DIVIDE ET IMPERA

  • Du hast einfach den Namen zu früh geholt


    Ich hab den command etwas angepasst, da ein string vollkommen ausreicht
    dcmd_makeleader(playerid,params[]) //Adminbefehl
    {
    new pID, fID, string[128], aname[MAX_PLAYER_NAME], name[MAX_PLAYER_NAME],frakname[50];
    if(SpielerInfo[playerid][pPerso] != 1) return 1;
    if(SpielerInfo[playerid][pAdmin] < 4) return 1;
    if(sscanf(params,"ud",pID,fID)) return SendClientMessage(playerid,GRAU,"Verwendung: /makeleader [ID] [Fraktions-ID] | Gebe '/frakids' für die Fraktions-ID's ein!");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,ROT,"Dieser Spieler wurde nicht gefunden!");
    if(SpielerInfo[pID][pFraktion] == fID && SpielerInfo[pID][pLeader] == 1) return SendClientMessage(playerid,ROT,"Der Spieler ist bereits Leader dieser Fraktion!");
    if(fID < 1 || fID > 11) return SendClientMessage(playerid,ROT,"Ungültige Angabe!");
    GetPlayerName(playerid,aname,sizeof(aname));
    GetPlayerName(pID,name,sizeof(name));
    switch(fID)
    {
    case 1:{frakname=frakname1;}
    case 2:{frakname=frakname2;}
    case 3:{frakname=frakname3;}
    case 4:{frakname=frakname4;}
    case 5:{frakname=frakname5;}
    case 6:{frakname=frakname6;}
    case 7:{frakname=frakname7;}
    case 8:{frakname=frakname8;}
    case 9:{frakname=frakname9;}
    case 10:{frakname=frakname10;}
    case 11:{frakname=frakname11;}
    }
    SpielerInfo[pID][pFraktion] = fID;
    SpielerInfo[pID][pLeader] = 1;
    SpielerInfo[pID][pFrakRang] = 1;
    format(string,sizeof(string),"Du hast %s zum Leader der Fraktion '%s' gemacht!",name,frakname);
    SendClientMessage(playerid,GELB,string);
    format(string,sizeof(string),"%s hat %s zum Leader der Fraktion '%s' gemacht!",aname,name,frakname);
    SendAdminMessage(PINK,string);
    format(string,sizeof(string),"%s hat dich zum Leader der Fraktion '%s' gemacht!",aname,frakname);
    SendClientMessage(pID,GELB,string);
    return SavePlayer(pID);
    }

    All in all it's just another brick in the wall


  • Mhmm... jetzt tut sich irgendwie garnicht mehr..
    Wenn ich '/makeleader' eingebe, passiert überhaupt nichts.

    DIVIDE ET IMPERA