Hallo Leute,
ich hab mir mal die Zeit genommen und ein kleines Plugin erstellt was es ermöglicht Dynamische Variablen zu erstellen ohne
unnötige Array zu verwenden, derzeit sind es Globale Variablen, ich werde jedoch in nächster Zeit noch Variablen, extra
für Fahrzeuge erstellen dieses System soll erkennen wenn ein Auto zerstört wird also komplett gelöscht so das die Variablen
wieder verschwinden, so wie gesagt derzeit noch nicht vorhanden.
Ich habe versucht mit der schnellstmöglichen Methode zu arbeiten, ohne das es groß auf die Ressourcen geht.
Funktionen zum setzen
SetVarString(slot,name[],value[]);
- Setzt eine Variable als Text
SetVarInt(slot,name[],value);
- Setzt eine Variable als Zahl
SetVarFloat(slot,name[],Float:value);
- Setzt eine Variable als Komma zahl
( INFO : Falls die Variablen mit selben Namen existieren werden sie logischerweise verändert, auch der Typ wird übernommen, also kann man Float zu String wandeln und int zu Float usw.. )
Zum Abrufen...
GetVarString(slot,name[],output[],maxlen = sizeof(output));
- Gibt die Variable als Zeichenfolge wieder ( Muss vom dementsprechenden Typ sein )
GetVarInt(slot,name[]);
- Gibt die Variable als Zahl wieder
Float:GetVarFloat(slot,name[]);
- Gibt die Variable als Komma Zahl wieder
Extras...
IsVarSet(slot,name[]);
- Fragt ab ob Variable gesetzt wurde.
DeleteVar(slot,name[]);
- Löscht Variable komplett
VarUbound();
- Fragt den höchsten Index ab sprich die Anzahl aller Variablen.
VarType(slot,name[]);
- Gibt den Variablen Typ wieder.
VarIndex(index,output[],maxlen = sizeof(output));
- Gibt den Namen einer Variablen in einem Index wieder.
VarSlot(index);
- Slot der Variable im Index wiedergeben
Variablen Datentypen
#define BFX_VAR_INT 2
#define BFX_VAR_STRING 4
#define BFX_VAR_FLOAT 8
if(VarType(1,"bla") == BFX_VAR_INT) // Fragt ab ob der Datentyp dem entspricht mit der, die Variable belegt ist.
Beispiel
SetVarFloat(1,"PI",3.14);
SetVarFloat(1,"PT",3.34);
SetVarString(1,"Test","String");
new val[64];
for(new i = 0;i<VarUbound();i++)
{
VarIndex(1,i,val);
if(VarType(1,val) == BFX_VAR_FLOAT)
{
printf("Value %f",GetVarFloat(1,val));
}
}
So das war es soweit, ich weiß es ist nichts großes & es war auch nicht viel Arbeit, aber wie gesagt es wird noch einiges verbessert & hinzugefügt.