Hallo,
ich wollte nun auch endlich mal was auf Breadfish starten, und dachte mir das ich einfach mal nen kleines Tutorial machen werden.
Mein Tutorial beinhaltet das Thema wie man ein funktionstüchtiges (/kick) System erstellen kann. Ich werde es mit der Script Version
DCMD und SSCANF vor Scripten.
Es ist nichts großes, aber sollte für Anfänger eigentlich ganz nützlich sein.
Okay, fangen wir an.
__________________________________________________________________________________________________________________________________________________________
Den Befehl scripten wir wie gewohnt unter
public OnPlayerCommandText(playerid, cmdtext[])
Als aller erstes erstellen wir den Befehl.
Man schreibt den Befehl so aufgebaut direkt unter OnPlayerCommandtext. So sieht er aus: dcmd(BEFEHL,BUCHSTABEN ANZAHL,cmdtext);. Direkt darunter setzten wir return 0;
Ist dies erfolt sollte es bei OnPlayerCommandtext so aussehen:
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(kick,4,cmdtext);
return 0;
}
WICHTIG: Ihr müsst die richtige Buchstaben Anzahl angeben. Ist diese Falsch, wird der Server den Befehl nicht erkennen und würde euch sagen, dass es diesen Befehl nicht gibt.
Ich sage es noch einmal. Die Zeile ist so aufgebaut: dcmd(ANAHL, BUCHSTABENANZAHL,cmdtext);
_______________________________________________________________________________________________________________________________________________________
Nun scripten wir den Befehl.Alle Informationen stehen rechts neben jeder gescripteten Zeile:
Als erstes: So sollte der Befehl ohne meine Grünen Informationen aussehen.
dcmd_kick(playerid,params[]) // Erstellt den Befehl
{
new pID; // Erstellt die ID des anderen Spieler (des Spielers der gekickt werden soll.)
new string[128]; // string sollte eigentlich klar sein. 128 ist die länge des Strings.
new grund[128]; // DAs ist die Variabel des Grundes (Im Befehl muss man /kick [playerid] und den [Grund] eingeben.
new spieler[MAX_PLAYER_NAME], spieler2[MAX_PLAYER_NAME]; // Gehört zur erstellung der IDs von uns und des anderen Spielers. (spieler sind wir, spieler 2 der andere spieler)
if(Spieler[playerid][Adminlevel] >= 3) // Wenn der Spieler admin rank 3 ist oder einen höheren besitzt. alles dadrunter kann den befehl nicht ausführen.
{
if(sscanf(params,"us",pID,grund)) // was soll alles geschehen ?? (einmal soll die id des Spielers angegeben werden und danach der Grund.. "u = ID, s = grund"
return SendClientMessage(playerid,weiß,"Verwendung: /kick [playerid] [Grund]"); // siehe eine Zeile oben
if(!IsPlayerConnected(pID)) { return SendClientMessage(playerid,weiß,"Der Spieler ist offline"); } // Wenn der angegebene Spieler nicht da ist.
GetPlayerName(playerid,spieler,sizeof spieler);//erstellt unsere ID und dient dazu damit später unser name in der nachricht angezeigt werden kann
GetPlayerName(pID,spieler2,sizeof spieler2); // erstellt die ID des gekickten spielers. pID = spieler2. Dient auch für die spätere Nachricht
format(string,sizeof string,"AdmCmd: %s wurde von %s gekickt. Grund: %s.",spieler2,spieler,grund); // ist die nachricht und sollte eigentlich klar sein,
SendClientMessageToAll(adminrot,string); // diese nachricht wird dem Server angezeigt. bei %s werden die Ids angezeigt und der angegebene Grund.
format(string,sizeof string,"AdmCmd: Du wurdest von %s gekickt. Grund: %s.",spieler,grund); // diese nachricht wird dem gekickten spieler vor dem kick mit
SendClientMessage(pID,adminrot,string); // kick (pID) angezeigt.
Kick(pID); // kickt den spieler im anschluss
}
return 1;
}
_______________________________________________________________________________________________________________________________________________________
Bitte Bewerten und Kommentieren. Ich würde gerne eure Meinungen über dieses Tutorial wissen !!
Feedback erlaubt
MFG