Hausererstellen

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
  • 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