/makeleader befehl ?!

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,
    ich hab mal neh frage, und zwar:


    wie kann ich es so machen, das ich sehe wer leader wurde und von welcher Fraktion also z.B so:


    "Du hast XYZ zum Leader der Fraktion/Gang XYZ gemacht"
    und der andere soll dann die meldung bekommen:
    "Du wurdest von [Admin XYZ] zum Leader der Fraktion/Gang [Name der Fraktion/gang] gemacht"


    Mein Befehl:
    ocmd:makeleader(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Rang zu Niedrig.");

    new pID,fID;
    if(sscanf(params,"ui",pID,fID))return SendClientMessage(playerid,ROT,"Info-Befehl: {FFFFFF}Benutze /makeleader [playerid] [fraktionsid]");
    {
    SetPVarInt(pID,"Fraktion",fID);
    SendClientMessage(playerid,BLAU,"Erfolgreich.");
    }
    new player;
    if(!IsPlayerConnected(player))
    {
    return SendClientMessage(playerid,ROT,"Info: {FFFFFF}Es ist kein Spieler mit der angegebenen ID online.");
    }
    return 1;
    }


    danke im Vorraus!
    MFG
    Siteco

  • So hab dir mal schnell was geschrieben. Musst nur noch vielleicht ein paar Sachen anpassen.
    Ist ungetestet! Wenn du Probleme dabei hast, schreib mich einfach an.


    ocmd:makeleader(playerid,params[])
    {
    new fraktname[64];
    switch(GetPVarInt(playerid,"Fraktion")) // Speichersystem anpassen ;)
    { //Hier deine Fraktionen eintragen, da ich nicht weiß, wie deine Fraktionen defined sind
    case 0:{fraktname="Keine";}
    case 1:{fraktname=Fraktion1;}
    case 2:{fraktname=Fraktion2;}
    case 3:{fraktname=Fraktion3;}
    case 4:{fraktname=Fraktion4;}
    case 5:{fraktname=Fraktion5;}
    case 6:{fraktname=Fraktion6;}
    case 7:{fraktname=Fraktion7;}
    }


    if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Rang zu Niedrig.");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"Ungültiger Spieler!"); // <---- Hier ist die neue ID Abfrage


    new pID,fID,string1[128], string2[128];
    if(sscanf(params,"ui",pID,fID))return SendClientMessage(playerid,ROT,"Info-Befehl: {FFFFFF}Benutze /makeleader [playerid] [fraktionsid]");
    {
    SetPVarInt(pID,"Fraktion",fID);
    SetPVarInt(pID,"Leader",1); // Hier wird der Wert Leader auf 1 gesetzt!
    SendClientMessage(playerid,BLAU,"Erfolgreich.");
    format(string1,sizeof(string1),"Du hast %s zum Leader der Fraktion %s gemacht.",SpielerName(pID),fraktname);
    SendClientMessage(playerid,BLAU,string1);
    format(string2,sizeof(string2),"Du wurdest von %s zum Leader der Fraktion %s gemacht.",SpielerName(playerid),fraktname);
    SendClientMessage(pID,BLAU,string2);
    }
    return 1;
    }


    //Edit1: Wie Cr4sh schon sagte, könntest du in deinem Dini Speicher (wenn vorhanden) eine neuen Wert "Leader" erstellen. Habs mal hinzugefügt!
    //Edit2: Desweiteren könnte man den IsPlayerConnected Befehl kürzen... Hab es auch mal reingeschrieben :P (Brauchst du nicht ändern, wenn du nicht willst)