Hey Leute,
ich suche schon den ganzen Tag nach einer Lösung für mein Problem, aber ich finde nichts.
Helf ihr mir bitte.???
Ich bekomme ich immer dem gleichen Fehler
E:\SAMP - Server\gamemodes\new.pwn(62) : error 033: array must be indexed (variable "inputtext")
//Zeile und Variable sind natürlich unterschiedlich.
if (inputtext == dini_Get("pfad","key_pw")
{
switch (dini_Get("pfad","key_team")
{
case 0:
{
dini Probleme
- Jay2007
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
new inputtext = dini_Get("pfad","key_pw")
-
Darf ich fragen was mir das bringt.
tut mir Leid...also ich möchte damit eine datenbank für die Spielerdaten machen. und die Abfrage gugt eben in welchem team/fraktion der spieler ist, also was in dem .ini steht.
und da bringt es nichts die gleich zu setzen.
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new b[50], pfad[100];
GetPlayerName(playerid,b,sizeof(b));
format(pfad,sizeof(pfad),"/spieler/%s.ini",b);
switch (dialogid)
{
case dialogin:
{
if (response == 1)
{
if (inputtext == dini_Get("pfad","key_pw"))
{
switch (dini_Get("pfad","key_team")
{
case 0:
{
SetSpawnInfo(playerid,0,262,169.2092,-1956.7495,3.7696,0,0,0,0,0,0);
SpawnPlayer(playerid);
}
}
}
damit das mal komplett ist -
du musst ja erstmal festlegen, das "inputtext" ist.
Wenn du das nicht festgelegt hast, kannst du auch niht abfragen ob das so ist
-
Aber inputtext kommt doch aus dem Callback raus oder nicht?
Also oben ist eben ein Dialog mit input feld. -
nicht so if (inputtext == dini_Get("pfad","key_pw")
Sondern entweder so
if (strval(inputtext) == dini_Get("pfad","key_pw")oder so
if (strlen(inputtext) == dini_Get("pfad","key_pw")Jenachdem was du auslesen willst...
-
public OnPlayerConnect(playerid)
{
new b[50], pfad[100];
GetPlayerName(playerid,b,sizeof(b));
format(pfad,sizeof(pfad),"/spieler/%s.ini",b);
if (dini_Exists("pfad"))
{
ShowPlayerDialog(playerid,0,DIALOG_STYLE_INPUT,"Willkommen auf Jays Server","Log dich bitte, mit deinem Passwort ein","Login","Abbrechen");
}Das steht oben, und brignt es mir doch nichts daraus eine Int zu machen oder die Länge zu kennen oder?
ich möchte ja den Inhalt haben. -
Um strings zu vergleichen lieber strcmp benutzen.
also anstatt
if (inputtext == dini_Get("pfad","key_pw"))
besser
if(strcmp(inputtext, dini_Get("pfad","key_pw"), true)==0)
benutzen. -
Danke das habe ich gestern im Halbschlaf auch noch raus gefunden xD
Jetzt habe ich ein neues Problem.
Egal wie ich es mache, ich bekomme immer die info, das es die .ini Datei nicht gibt.
Wo werden denn .ini´s hingespeichert?
also man gibt ja:
dini_Create("/spieler/Jay2007.ini");
if (dini_Exists("/spieler/Jay2007ini");
{
SendClientMessage(playerid,grau,"Der Pfad existiert");
}
else
{
SendClientMessage(playerid,grau,"Der Pfad existiert nicht");
}Das habe nur einfach mal als versuch gemacht, doch ich bekomme immer: Der Pfad existiert nicht
Danke im vorraus
Jay2007 -
Die werden im Scriptfilesordner unter Spieler gespeichert ("/spieler/").
Aber so wird doch nur überprüft ob die eine Ini existiert, wenn nun aber ein andere Spieler connected? GetPlayerName als Tipp. -
Ahh danke für die Info.
Ja ich habe mir diese Standart-Funktion erstellt.
GetPlayerName(playerid,name,sizeof(name));
format(pfad,sizeof(pfad),"/spieler/%s.ini",name);Damit man die Daten hat aber immer wenn ich die mit dini_Exists(pfad) mache, mit der Ausgabe von oben, kommt:
Der Pfad existiert nicht. -
breadfish.de
Hat das Thema geschlossen.