Guten Tag,
ich bekomme in letzter Zeit die ganze Zeit den folgenden Fehler:
error 033: array must be indexed (variable "string2")
Die Dazugehörige Zeile:
if(string2 >= 1)
Was ist falsch?
EDIT: Code geändert // aktualisiert
Guten Tag,
ich bekomme in letzter Zeit die ganze Zeit den folgenden Fehler:
error 033: array must be indexed (variable "string2")
Die Dazugehörige Zeile:
if(string2 >= 1)
Was ist falsch?
EDIT: Code geändert // aktualisiert
Hi
Du kannst einen String nicht mit einer Zahl vergleichen^^
Du willst wahrscheinlich abfragen wie lang der String ist, oder ob was drin steht. Dafür kannst du die Funktion "strlen(string)" verwenden Das returnt die Länge des Strings
"if(strlen(string) >= 1)"
MFG, Robdeflop®
Um ehrlich zu sein wollte ich das nicht. Ich habe das Adminlevel in der .ini Datei des jeweiligen Spielers gespeichert. Wenn dieses 1 oder höher ist darf er diesen Command ausführen. Wenn nicht, dann eben nicht. Wie kann ich das sonst scripten?
Mein bisheriger Command:
dcmd_getvehicle(playerid, params[])
{
new name[MAX_PLAYER_NAME];
new string[255];
new string2[255];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "/Users/%s.ini", name);
format(string2, sizeof(string2), "%s", dini_Get(string, "Adminlevel"));
if(string2 >= 1)
{
// dann passiert das und das...
}
else
{
SendClientMessage(playerid, COLOR_RED, "Sie besitzen nicht die benötigten Adminrechte.");
return 1;
}
}
Wie ich mir denken kann, sind bei dir die Adminlevel als Zahl dargestellt.
Daher muss es statt:
format(string2, sizeof(string2), "%s", dini_Get(string, "Adminlevel"));
format(string2, sizeof(string2), "%i", dini_Int(string, "Adminlevel"));
heißen.
Das %s steht für eine Zeichenfolge und das %i für eine Zahl.
Ich hoffe das ich richtig liege.
mfg.
Opa
new a_level;
a_level=dini_Int(string, "Adminlevel");
if(a_level >= 1)
//...
Mach doch einfach:
new admlvl = dini_Int(string, "Adminlevel");
schon haste das Adminlevel in der Variable admlvl.
Okey, so funktioniert es.
Und wie mache ich das dann bei meinem Registersystem?
new name[MAX_PLAYER_NAME];
new string[255];
new string2[255];
new string3[255];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "/Users/%s.ini", name);
format(string2, sizeof(string2), "%s", dini_Get(string, "Passwort"));
format(string3, sizeof(string3), "%s", inputtext);
if(string3 != string2) // <----
{
SendClientMessage(playerid, COLOR_YELLOW, "Das eingegebene Passwort stimmt nicht überein. Versuche es erneut und achte auf Groß- und Kleinschreibung.");
}
else
{
SendClientMessage(playerid, COLOR_YELLOW, "Du hast dich erfolgreich eingeloggt, Viel Spaß!");
}
Hier bräuchte ich doch nun Arrays oder?
EDIT: Ist es in diesem Fall nicht möglich es so umzusetzen?
strcmp
Danke.