Ich benutze kein GF oda sowas in der Art. Ich schreibe (zum üben) einen eigenen GM (nix Großes).
Das nenn ich doch mal echt vorbildlich
Also ich erkläre dir mal die bekanntesten Funktionen die es von Strings gibt:
strcmp:
Wohl eine der bekanntesten, da sie in OnPlayerCommandText für jeden Command gebraucht wird
Mit strcmp vergleichst du zwei Strings du übergibts sie folgendermaßen:
strcmp(string1, string2, ignorecase)
ignorecase bedeutet hierbei ob die Funktion auf Groß und Kleinschreibung achten soll, wenn du also
strcmp("WORT", "wort", true) übergibts dann ignoriert die Funktion Groß und Kleinschreibung und gibt zurück das die Wörter das gleiche sind
Die Funktion gibt übrigends den Unterschied zwischen den beiden Strings zurück, d.h. also wenn sie 0 zurück gibt dann sind beide gleiche
deshalb werden meistens Commands so geschrieben:
if(strcmp(cmdtext, "/help", true) == 0)
{
....
}
Dabei wird kontrolliert ob der Unterschied zwischen cmdtext (Der Command der eingegeben wurde) und "/help" 0 ist, dabei ist es egal ob der Spieler "/help" oder "/HELP" oder "/hElP" eingegeben hat.
strlen:
Diese Funktion gibt die Länge des Strings zurück sprich
strlen("hallo");
würde 5 zurückgeben. Die Funktion wird zB. benutzt um ungültige Eingaben zu überprüfen.
format:
So ziemlich die wichtigste Funktion, mit ihr lassen sich Sachen in Strings einfügen.
Während man in anderen Programmiersprachen wie zB. Java einfach System.out.println("1. Thema: Addition: 1 + 1 = " + 2); machen kann
Muss man in Pawno Sachen per "format" einfügen, sicherlich kennt ihr "format c:" was unter Windows die Festplatte C: auf dem meistens das Betriebsystem ist, formatiert wird. Durchs formatieren werden sowohl bei der Festplatte als auch bei der String erst einmal sämtliche Daten rausgelöscht, bevor dann alles neue reingeschrieben wird, du musst also keine Angst haben das Reste von früher noch drin sind.
Beispiel:
new
tmp[128];
format(tmp, sizeof(tmp), "Hallo mein Name ist %s. Ich bin %i Jahre alt und weiß schon die ersten 6 Stellen von Pi (%f). Mein Lieblingstier ist der %x.", "Hans Wurst", 12, 3.14159, 45045);
tmp würde nun so aussehen:
"Hallo mein Name ist Hans Wurst. Ich bin 12 Jahre alt und weiß schon die ersten 6 Stellen von Pi (3.14159). Mein Lieblingstier ist der 0xAFFE."
Zur Erklärung:
Ihr müsst Sachen die ihr einfügen wollt vorher mit einem "%" und nachfolgendem Buchstaben ankündigen, hinten hängt ihr dann die ganzen Sachen in der gleichen Reihenfolge durch ein Komma getrennt dran.
Es gibt die folgenden Buchstaben:
%s - Stellt einen anderen String dar (In diesem Fall "Hans Wurst")
%i oder %d - Stellt einen Interger/Dezimalwert dar (In diesem Fall 12)
%f - Stellt eine Zahl mit Nachkommastellen dar (In diesem Fall 3.14159)
%x - Stellt eine Zahl im Hexadezimalsystem dar (Im Beispiel ist 45045 Dezimal == AFFE Hexadezimal)
%c - Stellt einen einzelnen Buchstaben (zB. 'J') dar
strcat:
Diese Funktion hängt zwei Strings aneinander, Beispiel:
new
tmp[128];
tmp = "Hallo mein Name ist Schweiß. ";
strcat(tmp, "Axel Schweiß.");
tmp wäre dann: "Hallo mein Name ist Schweiß. Axel Schweiß."
strval:
Wandelt einen String in eine Zahl um.
strval("12345");
Würde 12345 zurück geben.
strval("12blubb345");
Würde 12 zurückgeben da die Funktion immer nur bis zum ersten ungültigen Zeichen übersetzt.
valstr:
Wie der umgedrehte Name unschwer erraten lässt stellt diese Funktion das genaue Gegenteil zur obigen dar.
new
tmp[32];
valstr(tmp, 1234);
tmp wäre dann "1234".
Ich hoffe das hilft ein bisschen