Hey,
Wenn ich ein Haus erstelle und es dann speichern möchte geht es nicht
ocmd:hauserstellen(playerid)
{
if(!istPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
ShowPlayerDialog(playerid,INTERIOR_TYPWAHL,DIALOG_STYLE_LIST,"Interior Typ auswählen","Trailer\nBedsit\nAppartment\nBungalow\nLuxus\nHaus","Weiter","Abbrechen");
return true;
}
ocmd:speicherhauser(playerid)
{
if(!istPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
for(new i;i!=MAX_HAUSER;i++) SaveHaus(i);
new string1[126];
format(string1,sizeof(string1),"%s speichert alle Häuser",SpielerName(playerid));
print(string1);
return SendClientMessage(playerid,-1,"Aller Häusergespeichert");
}
Stocks
stock LoadHaus(hausid)
{
new inhalt[35],File:f;
new string[55];
format(inhalt,20,"Häuser/Haus %d.ini",hausid);
if(!fexist(inhalt)) return false;
f=fopen(inhalt,io_read);
while(fread(f,inhalt))
{
StripNL(inhalt);
if(strfind(inhalt,"Besitzer: ")!=-1) strdel(inhalt,0,10), format(Haus[hausid][Besitzer],MAX_PLAYER_NAME,inhalt);
else if(strfind(inhalt,"Abgeschlossen: ")!=-1) strdel(inhalt,0,15), Haus[hausid][Abgeschlossen]=(strval(inhalt))?true:false;
else if(strfind(inhalt,"AußenPosX: ")!=-1) strdel(inhalt,0,11), Haus[hausid][Pos][0]=floatstr(inhalt);
else if(strfind(inhalt,"AußenPosY: ")!=-1) strdel(inhalt,0,11), Haus[hausid][Pos][1]=floatstr(inhalt);
else if(strfind(inhalt,"AußenPosZ: ")!=-1) strdel(inhalt,0,11), Haus[hausid][Pos][2]=floatstr(inhalt);
else if(strfind(inhalt,"InnenPosX: ")!=-1) strdel(inhalt,0,11), Haus[hausid][Pos][3]=floatstr(inhalt);
else if(strfind(inhalt,"InnenPosY: ")!=-1) strdel(inhalt,0,11), Haus[hausid][Pos][4]=floatstr(inhalt);
else if(strfind(inhalt,"InnenPosZ: ")!=-1) strdel(inhalt,0,11), Haus[hausid][Pos][5]=floatstr(inhalt);
else if(strfind(inhalt,"Interior: ")!=-1) strdel(inhalt,0,10), Haus[hausid][Int]=strval(inhalt);
else if(strfind(inhalt,"VirtualWorld: ")!=-1) strdel(inhalt,0,14), Haus[hausid][VirtualWorld]=strval(inhalt);
else if(strfind(inhalt,"Preis: ")!=-1) strdel(inhalt,0,7), Haus[hausid][Preis]=strval(inhalt);
}
if(!strcmp(Haus[hausid][Besitzer], "Niemand")) // Haus ist nicht verkauft
{
Haus[hausid][PickupID] = CreatePickup(1273,1,Haus[hausid][Pos][0],Haus[hausid][Pos][1],Haus[hausid][Pos][2]);
format(string,55,"Dieses Haus steht zum Verkauf\n\nPreis: %d $",Haus[hausid][Preis]);
Haus[hausid][Label] = Create3DTextLabel(string,0x33AA33FF,Haus[hausid][Pos][0],Haus[hausid][Pos][1],Haus[hausid][Pos][2],100.0,0,1);
}
if(strcmp(Haus[hausid][Besitzer],!"Niemand"))
{
Haus[hausid][PickupID] = CreatePickup(1239,1,Haus[hausid][Pos][0],Haus[hausid][Pos][1],Haus[hausid][Pos][2]);
format(string,65,"Dieses Haus gehört:\n%s%s",Haus[hausid][Besitzer],(Haus[hausid][Abgeschlossen])?("\n\nAbgeschlossen"):(""));
Haus[hausid][Label] = Create3DTextLabel(string,0x33AA33FF,Haus[hausid][Pos][0],Haus[hausid][Pos][1],Haus[hausid][Pos][2],100.0,0,1);
}
fclose(f);
return 1;
}
stock SaveHaus(hausid)
{
if(!Haus[hausid][Int]) return false;
new inhalt[35],File:f;
format(inhalt,35,"Häuser/Haus %d.ini",hausid);
f=fopen(inhalt,io_write);
format(inhalt,35,"Besitzer: %s\r\n",Haus[hausid][Besitzer]),fwrite(f,inhalt);
format(inhalt,35,"Abgeschlossen: %d\r\n",Haus[hausid][Abgeschlossen]),fwrite(f,inhalt);
format(inhalt,35,"AußenPosX: %f\r\n",Haus[hausid][Pos][0]),fwrite(f,inhalt);
format(inhalt,35,"AußenPosY: %f\r\n",Haus[hausid][Pos][1]),fwrite(f,inhalt);
format(inhalt,35,"AußenPosZ: %f\r\n",Haus[hausid][Pos][2]),fwrite(f,inhalt);
format(inhalt,35,"InnenPosX: %f\r\n",Haus[hausid][Pos][3]),fwrite(f,inhalt);
format(inhalt,35,"InnenPosY: %f\r\n",Haus[hausid][Pos][4]),fwrite(f,inhalt);
format(inhalt,35,"InnenPosZ: %f\r\n",Haus[hausid][Pos][5]),fwrite(f,inhalt);
format(inhalt,35,"Interior: %d\r\n",Haus[hausid][Int]),fwrite(f,inhalt);
format(inhalt,35,"VirtualWorld: %d\r\n",Haus[hausid][VirtualWorld]),fwrite(f,inhalt);
format(inhalt,35,"Preis: %d\r\n",Haus[hausid][Preis]),fwrite(f,inhalt);
fclose(f);
return true;
}
stock CreateHaus(Owner[],Float:X,Float:Y,Float:Z,Float:iX,Float:iY,Float:iZ,Interior,p)
{
new ID=GetFreeHausID();
if(ID==-1) print("Es sind bereits zuviele Häuser erstellt worden | Lösch zu erst eins");
format(Haus[ID][Besitzer],MAX_PLAYER_NAME,Owner);
Haus[ID][Abgeschlossen]=true;
Haus[ID][Pos][0]=X;
Haus[ID][Pos][1]=Y;
Haus[ID][Pos][2]=Z;
Haus[ID][Pos][3]=iX;
Haus[ID][Pos][4]=iY;
Haus[ID][Pos][5]=iZ;
Haus[ID][Int]=Interior;
Haus[ID][Preis]=p;
Haus[ID][VirtualWorld]=GetFreeInteriorVW(Haus[ID][Int]);
Haus[ID][PickupID] = CreatePickup(1273,1,X,Y,Z);
for(new i,j=GetMaxPlayers();i!=j;i++) if(IsPlayerConnected(i)) SetPlayerMapIcon(i,STARTMAPICON+ID,X,Y,Z,31,0xFFFFFFFF);
new string[55];
format(string,55,"Dieses Haus steht zum Verkauf\n\nPreis: %d $",Haus[ID][Preis]);
Haus[ID][Label] = Create3DTextLabel(string,0x33AA33FF,X,Y,Z,100.0,0,1);
return ID;
}
stock DeleteHaus(hausid)
{
strdel(Haus[hausid][Besitzer],0,MAX_PLAYER_NAME);
Haus[hausid][Abgeschlossen]=false;
Haus[hausid][Pos][0]=0;
Haus[hausid][Pos][1]=0;
Haus[hausid][Pos][2]=0;
Haus[hausid][Pos][3]=0;
Haus[hausid][Pos][4]=0;
Haus[hausid][Pos][5]=0;
Haus[hausid][Int]=0;
Haus[hausid][VirtualWorld]=0;
Delete3DTextLabel(Haus[hausid][Label]);
new pfad[20];
format(pfad,20,"Häuser/Haus %d.ini",hausid);
fremove(pfad);
return true;
}
Danke im Vorraus
MfG