Könnte mir das wer erklären? Am besten kleines Beispielscript *gg*
Need help! Wie speichere ich Sachen in Ini-Dateien ?
- Monte
- 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
-
-
TUTORIAL zu USER.INI
Oben an den Script fügt ihr das hier einenum pInfo
{
pTutorial,
};
new PlayerInfo[MAX_PLAYERS][pInfo];Wenn ihr ein Register oder Login System habt dann kommt das hier
public OnPlayerRegister(playerid, password[])
{
if(IsPlayerConnected(playerid))
{
new string3[36];
new playername3[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername3, sizeof(playername3));
format(string3, sizeof(string3), "%s.ini", playername3);
new File: hFile = fopen(string3, io_write);
if (hFile)
{
strmid(PlayerInfo[playerid][pKey], password, 0, strlen(password), 255);
new var[36];format(var, 36, "Tutorial=%d\n",PlayerInfo[playerid][pTutorial]);fwrite(hFile, var);
public OnPlayerUpdate(playerid)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid])
{
new string3[36];
new playername3[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername3, sizeof(playername3));
format(string3, sizeof(string3), "%s.ini", playername3);
new File: hFile = fopen(string3, io_write);
if (hFile)
{
new var[36];
format(var, 36, "Tutorial=%d\n",PlayerInfo[playerid][pTutorial]);fwrite(hFile, var);public OnPlayerLogin(playerid,password[])
{
new tmp2[256];
new string2[64];
new playername2[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername2, sizeof(playername2));
format(string2, sizeof(string2), "%s.ini", playername2);
new File: UserFile = fopen(string2, io_read);
if ( UserFile )
{
new PassData[256];
new keytmp[256], valtmp[256];
fread( UserFile , PassData , sizeof( PassData ) );
keytmp = ini_GetKey( PassData );
if( strcmp( keytmp , "Schlüssel" , true ) == 0 )
{
valtmp = ini_GetValue( PassData );
strmid(PlayerInfo[playerid][pKey], valtmp, 0, strlen(valtmp)-1, 255);
}
if(strcmp(PlayerInfo[playerid][pKey],password, true ) == 0 )
{
new key[ 256 ] , val[ 256 ];
new Data[ 256 ];
while ( fread( UserFile , Data , sizeof( Data ) ) )
{
if( strcmp( key , "Tutorial" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pTutorial] = strval( val ); } -
man kanns aber auch kompliziert machen^^
das is jetzt nur ein beispiel, um sowas wie texte zu speichern:
if(strcmp(cmdtext,"/IchMagSchinken",true)==0) {
new name[MAX_PLAYER_NAME], string[256];
GetPlayerName(playerid,name,sizeof(name));
format(string,sizeof(string),"%s mag Schinken",name);
new File:gla = fopen("NameDesFiles",io_append); fwrite(gla,string); fclose(gla);
SendClientMessageToAll(farbe,string);
return 1;
} -
Danke, habe jetzt im Wiki, das mit den .txt gesehen. Und werde dies auch nutzen. Das ist einfacher und bringt den gleichen Effekt mit sich *gg*
-
Kannst es auch mal mit DINI ausprobieren,Guide [Why-not]: Dini 1.5.1 - Why (don't) use it?.Dort sind auch die Vor-Nachteile beschrieben.
-
Viel zu kompliziert für mich.
-
breadfish.de
Hat das Thema geschlossen.