makeleader befehl mit Skins

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 liebe Community


    Ich versuche gerade in meinem makeleader befehl die skins zu verteilen sobald man Leader bekommt
    aber das klappt nicht so richtig wie ich das haben will
    und der code mit dem if(isPlayerInFrakt(pID,fID) == fID) kalppt aber auch nur in Fraktion 1 also LSPD und bei den andren kann ich mich so oft setzen wie ich will


    Hier der Code
    ocmd:makeleader(playerid, params[])
    {
    if(!isAdmin(playerid, 4))return SendClientMessage(playerid,COLOR_DRED, "Dein Adminrang ist zu niedrig.");
    new pID, fID;
    if(sscanf(params,"ui",pID,fID))return SendClientMessage(playerid,COLOR_GREY, "INFO: {FF9600}/makeleader {B3B3B3}[playerid] [fraktid]");
    if(isPlayerInFrakt(pID,fID) == fID)return SendClientMessage(playerid,COLOR_DRED, "Der Spieler ist schon in dieser Fraktion!");
    if(fID >= sizeof(fInfo))return SendClientMessage(playerid,COLOR_DRED, "Fraktion existiert nicht.");
    sInfo[pID][fraktion] = fID;
    sInfo[pID][rang] = 6;
    if(sInfo[playerid][rang] == 6) { sInfo[playerid][fraktion] = 1; SetPlayerSkin(playerid, 280); }
    else if (sInfo[playerid][rang] == 6) { sInfo[playerid][fraktion] = 2; SetPlayerSkin(playerid, 71); }
    else if (sInfo[playerid][rang] == 6) { sInfo[playerid][fraktion] = 3; SetPlayerSkin(playerid, 279); }
    else if (sInfo[playerid][rang] == 6) { sInfo[playerid][fraktion] = 4; SetPlayerSkin(playerid, 276); }
    else if (sInfo[playerid][rang] == 6) { sInfo[playerid][fraktion] = 5; SetPlayerSkin(playerid, 187); }
    else if (sInfo[playerid][rang] == 6) { sInfo[playerid][fraktion] = 6; SetPlayerSkin(playerid, 115); }
    else if (sInfo[playerid][rang] == 6) { sInfo[playerid][fraktion] = 7; SetPlayerSkin(playerid, 105); }
    else if (sInfo[playerid][rang] == 6) { sInfo[playerid][fraktion] = 8; SetPlayerSkin(playerid, 103); }
    else if (sInfo[playerid][rang] == 6) { sInfo[playerid][fraktion] = 9; SetPlayerSkin(playerid, 120); }
    else if (sInfo[playerid][rang] == 6) { sInfo[playerid][fraktion] = 10; SetPlayerSkin(playerid, 113); }
    else if (sInfo[playerid][rang] == 6) { sInfo[playerid][fraktion] = 11; SetPlayerSkin(playerid, 110); }
    new string[128];
    SpawnPlayer(playerid);
    savePlayer(pID);
    format(string,sizeof(string),"Admin %s hat dich zum Leader der Fraktion %s gemacht",SpielerName(playerid), fInfo[fID][f_name]);
    SendClientMessage(pID, COLOR_DGREEN, string);
    format(string,sizeof(string),"Du hast %s zum Leader der Fraktion %s gemacht.",SpielerName(pID), fInfo[fID][f_name]);
    SendClientMessage(playerid, COLOR_DGREEN,string);
    return 1;
    }


    Ich wollte eigentlich eine skin Auswahl machen aber ich weiß leider nicht wie das geht :/
    Vielleicht kann mir da ja einer helfen :')


    Mit freundlichen Grüßen
    Jonny

  • So willst du es, oder?
    ocmd:makeleader(playerid, params[])
    {
    if(!isAdmin(playerid, 4))return SendClientMessage(playerid,COLOR_DRED, "Dein Adminrang ist zu niedrig.");
    new pID, fID;
    if(sscanf(params,"ui",pID,fID))return SendClientMessage(playerid,COLOR_GREY, "INFO: {FF9600}/makeleader {B3B3B3}[playerid] [fraktid]");
    if(isPlayerInFrakt(pID,fID))return SendClientMessage(playerid,COLOR_DRED, "Der Spieler ist schon in dieser Fraktion!");
    if(fID >= sizeof(fInfo))return SendClientMessage(playerid,COLOR_DRED, "Fraktion existiert nicht.");
    sInfo[pID][fraktion] = fID;
    sInfo[pID][rang] = 6;
    if(sInfo[pID][fraktion] == 1) { SetPlayerSkin(pID, 280); }
    else if (sInfo[pID][fraktion] == 2) { SetPlayerSkin(pID, 71); }
    else if (sInfo[pID][fraktion] == 3) { SetPlayerSkin(pID, 279); }
    else if (sInfo[pID][fraktion] == 4) { SetPlayerSkin(pID, 276); }
    else if (sInfo[pID][fraktion] == 5) { SetPlayerSkin(pID, 187); }
    else if (sInfo[pID][fraktion] == 6) { SetPlayerSkin(pID, 115); }
    else if (sInfo[pID][fraktion] == 7) { SetPlayerSkin(pID, 105); }
    else if (sInfo[pID][fraktion] == 8) { SetPlayerSkin(pID, 103); }
    else if (sInfo[pID][fraktion] == 9) { SetPlayerSkin(pID, 120); }
    else if (sInfo[pID][fraktion] == 10) { SetPlayerSkin(pID, 113); }
    else if (sInfo[pID][fraktion] == 11) { SetPlayerSkin(pID, 110); }
    new string[145];
    SpawnPlayer(pID);
    savePlayer(pID);
    format(string,sizeof(string),"Admin %s hat dich zum Leader der Fraktion %s gemacht",SpielerName(playerid), fInfo[fID][f_name]);
    SendClientMessage(pID, COLOR_DGREEN, string);
    format(string,sizeof(string),"Du hast %s zum Leader der Fraktion %s gemacht.",SpielerName(pID), fInfo[fID][f_name]);
    SendClientMessage(playerid, COLOR_DGREEN,string);
    return 1;
    }



    EDIT:
    @HydranT_: Danke für den Hinweis! :good:

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry ()

  • Okay klappt alles
    Da ich schon ein Skin speicher system habe das so geht

    SetPlayerSkin(playerid,sInfo[playerid][skin]);


    möchte ich ja auch natürlich das die skins gespeichert werden
    Aber wie wie soll ich den jetzt die ganzen skin id's die da stehen jetzt speichern ?


    Ich glaube nicht wen ich einfach das so machen würde das es gehen wird ^^


    if (sInfo[pID][fraktion] == 5) { SetPlayerSkin(pID,sInfo[playerid][skin] 187); }

  • if (sInfo[pID][fraktion] == 5) { SetPlayerSkin(pID,(sInfo[playerid][skin]=187)); }


    Oder einfach:
    if (sInfo[pID][fraktion] == 5) { sInfo[playerid][skin] = 187; }


    Und nach den ganzen Abfragen:
    SetPlayerSkin(pID,sInfo[playerid][skin]);

  • hmm


    Ich habe das jetzt so gemacht

    ocmd:makeleader(playerid, params[])
    {
    if(!isAdmin(playerid, 4))return SendClientMessage(playerid,COLOR_DRED, "Dein Adminrang ist zu niedrig.");
    new pID, fID;
    if(sscanf(params,"ui",pID,fID))return SendClientMessage(playerid,COLOR_GREY, "INFO: {FF9600}/makeleader {B3B3B3}[playerid] [fraktid]");
    if(isPlayerInFrakt(pID,fID))return SendClientMessage(playerid,COLOR_DRED, "Der Spieler ist schon in dieser Fraktion!");
    if(fID >= sizeof(fInfo))return SendClientMessage(playerid,COLOR_DRED, "Fraktion existiert nicht.");
    sInfo[pID][fraktion] = fID;
    sInfo[pID][rang] = 6;
    if (sInfo[pID][fraktion] == 5) { SetPlayerSkin(pID,(sInfo[playerid][skin]=187)); }
    else if (sInfo[pID][fraktion] == 6) { SetPlayerSkin(pID,(sInfo[playerid][skin]=115)); }
    else if (sInfo[pID][fraktion] == 7) { SetPlayerSkin(pID,(sInfo[playerid][skin]=105)); }
    else if (sInfo[pID][fraktion] == 8) { SetPlayerSkin(pID,(sInfo[playerid][skin]=103)); }
    else if (sInfo[pID][fraktion] == 9) { SetPlayerSkin(pID,(sInfo[playerid][skin]=120)); }
    else if (sInfo[pID][fraktion] == 10) { SetPlayerSkin(pID,(sInfo[playerid][skin]=113)); }
    else if (sInfo[pID][fraktion] == 11) { SetPlayerSkin(pID,(sInfo[playerid][skin]=110)); }
    new string[145];
    sInfo[pID][oldSkin] = GetPlayerSkin(pID);
    SpawnPlayer(pID);
    savePlayer(pID);
    format(string,sizeof(string),"Admin %s hat dich zum Leader der Fraktion %s gemacht",SpielerName(playerid), fInfo[fID][f_name]);
    SendClientMessage(pID, COLOR_DGREEN, string);
    format(string,sizeof(string),"Du hast %s zum Leader der Fraktion %s gemacht.",SpielerName(pID), fInfo[fID][f_name]);
    SendClientMessage(playerid, COLOR_DGREEN,string);
    return 1;
    }



    oder hätte das
    sInfo[pID][oldSkin] = GetPlayerSkin(pID);


    Wo anders hin gemusst ?


    Weil sobald ich Spawne ist mein skin weg und ich bekomme den CJ Skin

  • irgendwie speichert er nur die Skin id Sobald ich leader der fraktion bin und den skin bekommen habe
    und nach dem gmx habe ich den fraktions skin obwohl ich mit /setskin befehl schon einen andren skin habe ...


    http://prntscr.com/7jzsn1


    Vergiss was ich gesagt habe ^^


    Jetzt speichert es es rightig aber


    bei dem takerleader command gibt er mir dann aber trotzdem den Fraktions skin muss ich bei OnPlayerSpawn dann auch SetPlayerSkin(pID,sInfo[playerid][oldSkin]); oder nicht ?


    ocmd:takeleader(playerid,params[])
    {
    if(!isAdmin(playerid, 4))return SendClientMessage(playerid,COLOR_DRED, "Dein Adminrang ist zu niedrig.");
    new pID, fID,fraktname;
    if(sscanf(params,"u",pID,fID))return SendClientMessage(playerid,COLOR_GREY, "INFO: {FF9600}/takeleader {B3B3B3}[playerid]");
    if(fID >= sizeof(fInfo))return SendClientMessage(playerid,COLOR_DRED, "Fraktion existiert nicht.");
    if(sInfo[pID][rang]==0)return SendClientMessage(playerid,COLOR_DRED,"Spieler hat keine Rechte.");
    sInfo[pID][fraktion] = 0;
    sInfo[pID][rang] = 0;
    new string[128];
    SetPlayerSkin(pID,sInfo[playerid][oldSkin]);
    SpawnPlayer(pID);
    savePlayer(pID);
    format(string,sizeof(string),"%s hat dir die Leaderrechte für deine Fraktion entzogen.",SpielerName(playerid));
    SendClientMessage(pID, COLOR_RED, string);
    format(string,sizeof(string),"Du hast %s die Leaderrechte für die Fraktion %s entzogen.",SpielerName(pID), fraktname);
    SendClientMessage(playerid, COLOR_BLUE,string);
    return 1;
    }

    Einmal editiert, zuletzt von JOK3R ()