Heyho Breadfish-Gemeinde.
Ich dachte mir, wie lang ich hier schon unterwegs bin und hab mich entschlossen, auch mal was eigenes zu veröffentlichen.
Ich habe ein kleines Skinsystem geschrieben, mit dem man Skins nach bestimmten Kriterien abfragen kann.
Der Befehl dazu ist
GetSkin(Kriterien,Rows);
Die Skins sind nach (meistens) 4 Kriterien untergeordnet.
Die ersten drei sind Geschlecht ("Mann" oder "Frau"), Alter ("Jung" oder "Alt") und Hautfarbe ("Weiss" oder "Schwarz").
Das 4. Kriterium ist individuell, d. h. es sind spezielle Merkmale angegeben. Es gibt Kriterien wie z. B. "Anzug", "Grove", "Ballas",
"Polizei", "Arzt", "Feuerwehr", "Chinese", "Mafia", "Biker", "Nutte", ...
Achtung! Diese Version unterstützt keine Zeichen wie "ß", "ä", "ö" und "ü"! Also statt "ß" schreibt ihr "ss" und statt z. B. "ä" "ae"!
In "Kriterien" gebt ihr eure (wow) Kriterien ein. Dabei müsst ihr beachten, dass ihr diese richtig schreibt
und immer ein Leerzeichen zwischen den Kriterien lasst, wie im unteren Beispiel gezeigt.
new row;
GetSkin("Mann Anzug",row);
"Rows" ist die Anzahl der Skins, die mit den Kriterien übereinstimmt.
Dieser Wert wird von der Funktion selbst bestimmt, d. h. ihr müsst nur eine Variable erstellen,
diese in der Funktion angeben und die Variable wird dann die Anzahl der Skins enthalten.
Jetzt fragt ihr euch sicher wo die Skin-ID's rausgegeben werden.
Diese werden von der Funktion returnt, wie im unteren Beispiel gezeigt.
new skins[MAX_SKINS], row;
skins = GetSkin("Mann Anzug",row);
Die Skins werden als Arrays herausgegeben, deshalb werdet ihr auch die Rows brauchen, damit ihr wisst, wie viele Skins im Array gespeichert wurden.
Am besten ihr nehmt als Größe für euren Array immer MAX_SKINS, das ist in der Include als '128' definiert, ihr könnt es natürlich umändern.
Die Skins sind in einer Tabelle gespeichert und die Include benutzt SQLite, welches in jedem Server schon vorhanden ist.
Download: http://adf.ly/28IJ6
Pastebin: http://pastebin.com/tY2LBi2H
Im Download ist die Include und die Datenbank (dort sind alle Skins gespeichert).
Hier noch ein kleines Benutzungsbeispiel.
dcmd_polizeiinvite(playerid,params[])
{
new skins[MAX_SKINS], row;
skins = GetSkin("Mann Polizei",row);
SetPlayerSkin(playerid, skins[random(row)+1])
SendCliendMessage(playerid, COLOR_RED,"Herzlichen Glückwunsch, du bist nun Polizist!");
return 1;
}
//Edit: Rows besser erklärt, Downloadinhalt aufgezählt
//Edit2: überarbeitet + Update
//Edit3: kleine Fehler verbessert
//Edit4: Pastebin aktualisiert, Beispiel verbessert, Downloadlink aktualisiert (Downloadlink von Datenbank funktioniert nun; 0.3d Skins wurden hinzugefügt)