hostname per Befehl ändern

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 Lieber Breadfish user,
    ich wollte fragen wie man den hostnamen per Befehl ingame ändern kann soweit bin ich:
    ocmd:changehost(playerid,params[])
    {
    if(SpielerInfo[playerid][pAdminlevel] < 4)return SendClientMessage(playerid,Rot,""COLG"[Info:]"COLR" Möglich ab: "COLG" Adminrank: 4");
    return 1;
    }


    danke im voraus :)

  • SendRconCommand(hostname Dein Hostname);


    Gruß

  • So zum Beispiel:


    ocmd:changehost(playerid,params[])
    {
    if(SpielerInfo[playerid][pAdminlevel] < 4)return SendClientMessage(playerid,Rot,""COLG"[Info:]"COLR" Möglich ab: "COLG" Adminrank: 4");
    if(!params[0]) return SendClientMessage(playerid,Rot,"Verwendung: /changehost [Hostname]");
    new string[145];
    format(string,sizeof string,"hostname %s",params);
    SendRconCommand(string);
    format(string,sizeof string,"Du hast den Hostname erfolgreich auf %s geändert!",params);
    return SendClientMessage(playerid,Blau,string);
    }


    mfg. :thumbup:


    //Edit: Joa ups...die params vergessen :rolleyes:

    ast2ufdyxkb1.png


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

    Einmal editiert, zuletzt von Kaliber ()


  • Wenn ich den Befehl jetzt eingebe z.B /changehost Test kommt per SendClientMessage:
    Du hast den Hostname erfolgreich auf geändert

  • Und dann noch eine Frage bezüglich eines Adminsystems,
    Wie kann ich den einzelnen Admin's Ranknamen hinzufügen und dann in einem Befehl z.B adminchat oder /ooc chat zufügen sprich:


    ServerOwner xsL33p sagt:

  • So etwas kann man mithilfe so einer Funktion machen ;)
    stock GetAdminRang(playerid){
    new arang[64];
    switch(SpielerInfo[playerid][pAdmin]){
    case 1:strcat(arang,"Adminrang1");
    case 2:strcat(arang,"Adminrang2");
    }
    return arang;
    }
    Die Abfrage für den Adminrang musst du ggf. anpassen.


    Wenn du den Adminrang dann auslesen möchtest, machst du das einfach so.
    new string[128];
    format(string,128,"Adminrang von mir: %s",GetAdminRang(playerid));

  • Ich habe versucht einen /test Befehl zumachen einfach zum testen,ob ich es hinbekomme,allerdings wenn ich /test hallo eingebe kommt das:
    **(( ServerOwner xsL33p sagt: y ))**


    Der Code:
    ocmd:test(playerid,params[])
    {
    new string[128];
    new text[128];
    if(sscanf(params,"us",text))return SendClientMessage(playerid,Rot,"/test [text]");
    format(string,sizeof(string),"**(( %s %s sagt: %s ))**",GetAdminRang(playerid),GetName(playerid),text);
    SendClientMessageToAll(-1,string);
    return 1;
    }


    Und wie kann ich dann daraus machen,dass ich den /ooc einschalten und ausschalten kann?

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • ocmd:test(playerid,params[])
    {
    new string[128],text[64];
    if(sscanf(params,"s[64]",text))return SendClientMessage(playerid,Rot,"/test [Text]");
    format(string,128,"**(( %s %s sagt: %s ))**",GetAdminRang(playerid),GetName(playerid),text);
    return SendClientMessageToAll(-1,string);
    }
    Schreib das mal so. Du hattest 2 Parameter eingegeben, aber gibst nur einen an. Ebenfalls musst du bei Strings in Sscanf die Länge mit angeben.


    Um den Chat ein-/ ausschalten kannst, musst du mit einer Variable arbeiten, die du setzt und abfragst.


    EDIT:

    Code
    u: Spieler
    s: String
    i | d: Interval
    f: Floats


    Dies ist noch einmal eine kleine Übersicht für die Parameter.



    Grüße

  • Enum: Hier die sscanf Funktion zu nutzen ist Käse, du hast nur einen Parameter, was willst du da splitten?


    ocmd:test(playerid,params[])
    {
    new string[144];
    if(!params[0]) return SendClientMessage(playerid,Rot,"/test [Text]");
    format(string,144,"**(( %s %s sagt: %s ))**",GetAdminRang(playerid),GetName(playerid),params);
    return SendClientMessageToAll(-1,string);
    }


    Außerdem ist für Chat-Ausgaben die Länge 144 wesentlich besser, da mehr geschrieben werden kann. (144 = Maximum)