Vorwort
Hallo, ich wollte euch heute mal zeigen, wie man mit strget arbeitet!
Als aller erstes, müsst ihr die Verkürzung von strtok scripten, alsostrget und das geht so:
Ganz unten im Script:
// strget
stock strget(strx[], pos, search = ' ') {
new arg, ret[128], idxx;
for (new i = 0; i < strlen(strx); i++) {
if(strx[i] == search || i == strlen(strx) || strx[i + 1] == 10) {
arg++;
if (arg == pos + 1){
ret[i-idxx] = EOS;
return ret;
} else if (arg == pos)
idxx= i+1;
}
else if (arg == pos)
ret[i - idxx] = strx[i];
}
return ret;
}
Das alles nun zu erläutern, würde Anfänger nur durcheinander bringen, lediglich ist es einfach nur eine Abkürzung, des Komplizierten "strtok"!
Teil 1.
Da wir nun "strget" erstellt haben, erläutere ich mal kurz was es bringt!
Mit strget, können wir Commands Scripten, welche mit ID´s zu tun haben z.b /skin [Skin ID] etc, zudem ist strget wesentlich einfacher als strtok, naja nicht so viel Theorie und gleich zur Sache!
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(strget(cmdtext, 0), "/skin")) // Der commando, wenn ihr ein cmd mit strget macht, müsst ihr immer (!strcmp(strget(cmdtext, 0), "/")) verwenden, da es ohne das strget und !strcmp nicht möglich ist...
{
if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid,ROT,"Du bist kein Admin!"); //Überprüft, ob der Spieler Admin ist
new skinx = strval(strget(cmdtext, 1)); //Beschreibt, was die erste Zahl nach /skin bedeutet, also bedeutet (cmdtext, "zahl") an welcher Stelle man z.b die Skin ID eintragen muss, im beispiel an erster Stelle nach /skin
new giveplayeridx = strval(strget(cmdtext, 2)); //Erklärt sich ja eigentlich nun von selber, dies ist nun die playerid, welcher wir den Skin zu weisen wollen!
if(skinx < 1 || skinx > 299) // das <1 || 299> heißt, wie Niedrig/Hoch die Zahl sein darf, bzw. hier sind nun Skin ID 1 bis 299 verfügbar, da dort < 1 (also von 1) || 299> (bis 299)
if(giveplayeridx < 0 || giveplayeridx > 100) //Hier das selbe, nur mit der Playerid, hier jedoch nur 0 bis 100, wieso "0"? Weil der Erste player der Joint ID 0 hat :D
{
SendClientMessage(playerid, ROT, "Da ist was falsch, benutze /skin [SkinID] [SpielerID]"); //Wenn man vergisst eine ID zu schreiben, komm diese Fehlermeldung
if(!IsPlayerConnected(giveplayeridx) && !IsPlayerNPC(giveplayeridx))return SendClientMessage(playerid, ROT, "Diese ID ist nicht vergeben!"); //Wenn eine Ungültige ID angegeben worden ist
return 1;
}
SetPlayerSkin(giveplayeridx, skinx); //Wenn alles richtig ist, soll der skin, der angegebenen PlayerID, auf den angegebenen Skin gesetzt werden
return 1;
}
return 0;
}
Das wars eigentlich auch schon, nur ein kleines Feines Tutorial für strget... wenn es etwas undeutlich/zu unerklärt ist, schreibt es bitte, ich werde versuchen es zu überarbeiten, da ich nicht genau wusste wie ich das jetzt formulieren sollte, aber zur Not sind ja noch die // Commends da
Naja ich hoffe ihr habts verstanden viel Spaß damit!