Ich denk ma den key bezeichner brauchst du immer , denn du willst ja was aus dem bestimmten key haben
Dateiensystem dini - Dateien erstellen, löschen, speichern, laden
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
-
-
geht das nicht so wie bei gf mit fwriten und der schrott?
siehe hier:
public LoadBizz()
{
new arrCoords[19][64];
new strFromFile2[256];
new File: file = fopen("bizz.cfg", io_read);
if (file)
{
new idx;
while (idx < sizeof(BizzInfo))
{
fread(file, strFromFile2);
split(strFromFile2, arrCoords, '|');
BizzInfo[idx][bOwned] = strval(arrCoords[0]);
strmid(BizzInfo[idx][bOwner], arrCoords[1], 0, strlen(arrCoords[1]), 255);
strmid(BizzInfo[idx][bMessage], arrCoords[2], 0, strlen(arrCoords[2]), 255);
strmid(BizzInfo[idx][bExtortion], arrCoords[3], 0, strlen(arrCoords[3]), 255);
BizzInfo[idx][bEntranceX] = floatstr(arrCoords[4]);
BizzInfo[idx][bEntranceY] = floatstr(arrCoords[5]);
BizzInfo[idx][bEntranceZ] = floatstr(arrCoords[6]);
BizzInfo[idx][bExitX] = floatstr(arrCoords[7]);
BizzInfo[idx][bExitY] = floatstr(arrCoords[8]);
BizzInfo[idx][bExitZ] = floatstr(arrCoords[9]);
BizzInfo[idx][bLevelNeeded] = strval(arrCoords[10]);
BizzInfo[idx][bBuyPrice] = strval(arrCoords[11]);
BizzInfo[idx][bEntranceCost] = strval(arrCoords[12]);
BizzInfo[idx][bTill] = strval(arrCoords[13]);
BizzInfo[idx][bLocked] = strval(arrCoords[14]);
BizzInfo[idx][bInterior] = strval(arrCoords[15]);
BizzInfo[idx][bProducts] = strval(arrCoords[16]);
BizzInfo[idx][bMaxProducts] = strval(arrCoords[17]);
BizzInfo[idx][bPriceProd] = strval(arrCoords[18]);
printf("BizzInfo:%d Owner:%s Message:%s Entfee:%d Till:%d Products:%d/%d Interior:%d.\n",
idx,
BizzInfo[idx][bOwner],
BizzInfo[idx][bMessage],
BizzInfo[idx][bEntranceCost],
BizzInfo[idx][bTill],
BizzInfo[idx][bProducts],
BizzInfo[idx][bMaxProducts],
BizzInfo[idx][bInterior]);
idx++;
}
fclose(file);
}
return 1;
} -
kann man als menuitem auch nen namen aus ner datei nehmen? wenn ja wie?
-
AddMenuItem(MyMenu,dini_Get("file.txt","text"));
Ja, das kann man
-
also zum thema "dini_Get(...);" da gibts bei mir i-wie probleme -.-
gLogged[playerid] = 1; // 100% richtig
PlayerInfo[playerid][pName] = dini_Get(String, "Name"); // <<< Zeile
PlayerInfo[playerid][pAdmin] = dini_Int(String, "Admin"); // 100% richtig
error 047: array sizes do not match, or destination array is too small
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase1 Error.
Was ist falsch? Bugt die dini datei? <<< bezweifel ich!
MFG
Ich -
strmid(PlayerInfo[playerid][pName],dini_Get(String, "Name"),0,MAX_STRING,MAX_STRING);
-
format(PlayerInfo[playerid][pName],sizeof(PlayerInfo[playerid][pName]),dini_Get(String, "Name"));
Ja...kommt im Endeffekt etwa das gleiche raus.
-
C:\Users\Simon\Desktop\SA-MP RL\gamemodes\[GM]MyGamemode.pwn(105) : error 017: undefined symbol "MAX_STRING"
-
Eine frage:
Wie erstellt man eine Datei mit den usernamen den man besitzt? -
new PlayerName[MAX_PLAYER_NAME];
new String1[100];
GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
format(String1, sizeof(String1), "%s.ini", PlayerName);
Create(String1); -
Hm okay danke aber wo muss ich das einfügen? Das tut verstehe ich nicht ganz so richtig. Meine frage: WIe mache ich das man in der datei users.ini folgendes reinschreibt:
Name = 1 oder 0
wenn 1 passiert das und das (das mache ich schon)
wie geht das? -
new PlayerName[MAX_PLAYER_NAME];
new String1[100];
GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
format(String1, sizeof(String1), "%s.ini", PlayerName);
dini_Create(String1);
dini_IntSet(String1,"Name",1); // 1 = Variable, die unter Name gespeichert werden soll -
Hm danke aber bei mir speichert er dann Name=1 statt z.B Nickname=1 wieso?
Und wie mache ich das hier:
new number = dini_Int("/folder/file.ini", "sampforums");
if(number == 1)
{
// sampforums entspricht 1, wie bei dini_IntSet gespeichert
}
Also das steht im ersten post und wie mache ich das bei mir (bei file.ini soll nickname.ini sein bei jeden ist das ja anders) das wenn man nummer1 hat das man dann woanders spawnt? -
ich hab mit dini n kleines prob, ich will zB das hier laden [ist nur ein beispiel]
dcmd_MeineSprache(playerid,params[])
{
#pragma unused params
new number = dini_Int("MasterScript/Spieler/%.ini", "Sprache");
if(number == 1)
{
SendClientMessage(playerid, COLOR_WHITE," You choose English");
}
if(number == 2)
{
SendClientMessage(playerid, COLOR_WHITE," Sie haben deutsch ausgewählt");
}
return 1;
}geispeichert ist schon alles, wie gesagt nur laden, das hauptproblem also, dini_int
new number = dini_Int("MasterScript/Spieler/%.ini", "Sprache");
davor
GetPlayerName(playerid,name,sizeof(name));
format(save,sizeof(save),"MasterScript/Spieler/%s.ini",name);wie kann ich den nun den spielernamen laden, den wenn ich
"MasterScript/Spieler/%s.ini",name);
mache, hab ich um ein wort ja zuviel -
Hey ho leute,
bei mir werden in der ini datei immer falsche werte gespeichert wie 48?
woran könnt das leigen
mfg Leonid4s -
Hey Leute. Ich versuche mich grade in Dini einzuarbeiten und wollte ein System machen, wo eine Datei erstellt wird, in der das Geld beim Disconnecten gespeichert wird und beim einloggen wieder geladen wird:
Leider kommt bei mir folgende Fehlermeldung:
error 033: array must be indexed (variable "-unknown-") in Zeile 17public OnPlayerConnect(playerid)
{
new Cname[MAX_PLAYER_NAME], string[56];SendClientMessage(playerid, Orange, "~~Willkommen auf meinem Server~~");
GetPlayerName(playerid,Cname,16);
new filename[25];
format(filename, sizeof(filename), "%s.ini", Cname);if(dini_Exists(filename)) //existierender Spieler
{
format(string, sizeof(string), "Hallo %s!Willkommen zurück!", Cname);
SendClientMessage(playerid, gruen, string);new Geldbeimstart = dini_Get(filename, "Geld");
GivePlayerMoney(playerid,Geldbeimstart);
}
else //Neuer Spieler
{
format(string, sizeof(string), "Hallo %s!Du scheinst neu zu sein!", Cname);
SendClientMessage(playerid, falschrot, string);format(string, sizeof(string), "%s.ini", Cname);
dini_Create(string);
dini_Set(string,"Geld", "1500");}
return 1;
}public OnPlayerDisconnect(playerid, reason)
{
new Spielername[MAX_PLAYER_NAME], string[56];
new Geld = GetPlayerMoney(playerid);
new Geldstring[9];
format(Geldstring, sizeof(Geldstring), "%s", Geld);
format(string, sizeof(string), "%s.ini", Spielername);
dini_Set( string, "Geld", Geldstring);
return 1;
} -
Verusch mal in Zeile 17 statt
new Geldbeimstart = dini_Get(filename, "Geld");
einmal
new Geldbeimstart = dini_Int(filename, "Geld");das der Geldbetrag warscheinlich ein Integer ist.
MFG Raicoon
-
Cool danke. Compiled krieg ichs auf jeden Fall schonmal. Danke
-
Sorry wegen doppelpost.
Ich hab noch ein Problem und zwar möchte ich, dass beim disconnect das Geld in dem File gespeichert wird. Ich habe folgendes gescriptet:
public OnPlayerDisconnect(playerid, reason)
{
new Spielername[MAX_PLAYER_NAME], string[56];
new Geld = GetPlayerMoney(playerid);
format(string, sizeof(string), "%s.ini", Spielername);
dini_IntSet( string, "Geld", Geld);
return 1;
}
Kein error aber dennoch wird das Geld nicht gespeichert und ich komme jetzt nicht drauf, woran es liegen könnte. Ich hab 0.3a und den dazu gehörigen Server.
Hoffe jemand hat ne Idee =) -
public OnPlayerDisconnect(playerid, reason)
{
new Spielername[MAX_PLAYER_NAME], string[56];
new Geld = GetPlayerMoney(playerid);
format(string, sizeof(string), "%s.ini", Spielername);
if(!fexist(string))dini_Create(string); // << muss sein
dini_IntSet( string, "Geld", Geld);
return 1;
}