Kleiner Admin Chat

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
  • Ich gebe dir im folgenden eine Hilfestellung.
    Dies soll nicht heißen, dass ich dir komplett bei deiner Aufgabe helfe, sondern dir nur einen Denkanstoß gebe bzw. ein Beispiel, wie man es machen könnte.
    ocmd:a(playerid,params[]) //Ein Beispiel für den Adminrang Supporter
    {
    new message[128],name[MAX_PLAYER_NAME]; //Ein String namens message und eine Variable namens name wird erstellt.
    GetPlayerName(playerid,name,sizeof(name)); //Der Name aus der Variable name wird ausgelesen.
    if(GetPVarInt(playerid,"Adminlevel")==1) //Es wird abgefragt, ob der Spieler das Adminlevel 1 besitzt.
    {
    if(sscanf(params,"s",message))return SendClientMessage(playerid,Grau,"Verwendung: /a [Text]"); //Sollte klar sein.
    format(message,sizeof(message),"* Supporter %s: %s",name,message); //Der String message wird formatiert, sodass dort der ausgelesene Name verwendet werden kann.
    SendAdminMessage(Gelb,message); //Der Stock SendAdminMessage sendet den formatierten String nur an Spieler, die einen Adminrang besitzen. Weiteres dazu unten.
    }
    return 1;
    }
    stock SendAdminMessage(farbe,const message[]) //Ein Stock mit den Parametern farbe und message wird erstellt.
    {
    new playerid;
    for(;playerid!=MAX_PLAYERS;playerid++)
    {
    if(!IsPlayerConnected(playerid)) continue;
    if(GetPVarInt(playerid,"Adminlevel"))SendClientMessage(playerid,farbe,message); // Wenn der Spieler ein Adminlevel besitzt, wird die Message weitergeleitet.
    }
    }


  • Hab mir das jetzt 3x Durchgelesen, aber ich verstehe trotzdem nicht was ich da jz genau falsch gemacht habe, was die einzelnen Dinge bewirken weis ich ja, nur irgendwie funktioniert es in dieser zusammensetzung nicht so wie ich es möchte.

    ehm. Administration StateV ~ Domi

  • Auch wenn das nicht wirklich zum Thema gehört:


    Spoiler anzeigen
    Wenn man nur 1nen Parameter haben will so wie in diesem Fall, sollte man kein sscanf nutzen, da das nur unnötig Zeit verbraucht und ungenau ist (wenn du z.B. einen Text hast splittet sscanf die Leerzeichen raus, was bei einem Text suboptimal ist)...

    Spoiler anzeigen
    Also kannst du auch einfach folgendes machen:

    Spoiler anzeigen
    ocmd:a(playerid,params[]) {
    if(!GetPVarInt(playerid,"Adminlevel")) return SendClientMessage(playerid,Grau,"Du bist kein Administrator!");
    if(!params[0]) return SendClientMessage(playerid,Grau,"Verwendung: /a [Text]"); //Sollte klar sein.
    new message[144],name[MAX_PLAYER_NAME]; //Ein String namens message und eine Variable namens name wird erstellt.
    GetPlayerName(playerid,name,sizeof(name)); //Der Name aus der Variable name wird ausgelesen.
    format(message,sizeof(message),"* Supporter %s: %s",name,params); //Der String message wird formatiert, sodass dort der ausgelesene Name verwendet werden kann.
    return SendAdminMessage(Gelb,message); //Der Stock SendAdminMessage sendet den formatierten String nur an Spieler, die einen Adminrang besitzen. Weiteres dazu unten.
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


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