Haussystem, Icons werden nicht mehr angezeigt.

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
  • Hallo, habe gerade ein Haussystem als Filterscript eingefügt. Alles klappt bis auf die Icons. Nach einem Restart des Servers werden zwar die Häuser gespeichert, doch die Icons die vor den Häusern normalerweise zu finden sind, wo auch der Besitzer usw. steht verschwinden. Nach dem verkauf des Hauses taucht das icon allerdings wieder auf. Aber nach einem Serverneustart verschwinden die Icons immer.


    Hoffe jemand weiß woran das liegen könnte.

  • [pwn=103]stock LoadHaus(hausid)
    {
    new inhalt[35],File:f;
    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,"Gekauft: ")!=-1) strdel(inhalt,0,9), Haus[hausid][Gekauft]=(strval(inhalt))?true:false;
    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);
    }
    Haus[hausid][PickupID] = CreatePickup((Haus[hausid][Gekauft])?1239:1273,1,Haus[hausid][Pos][0],Haus[hausid][Pos][1],Haus[hausid][Pos][2]);
    fclose(f);
    return true;
    }
    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,"Gekauft: %d\r\n",Haus[hausid][Gekauft]),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][Gekauft]=false;
    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][Gekauft]=false;
    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;
    DestroyPickup(Haus[hausid][PickupID]);
    Delete3DTextLabel(Haus[hausid][Label]);
    for(new i,j=GetMaxPlayers();i!=j;i++) if(IsPlayerConnected(i)) RemovePlayerMapIcon(i,STARTMAPICON+hausid);
    new pfad[20];
    format(pfad,20,"Häuser/Haus %d.ini",hausid);
    fremove(pfad);
    return true;
    }[/pwn]


    [pwn=78]public OnFilterScriptInit()
    {
    for(new i;i!=MAX_HAUSER;i++) LoadHaus(i);
    return true;
    }
    public OnFilterScriptExit()
    {
    for(new i;i!=MAX_HAUSER;i++) SaveHaus(i);
    return true;
    }
    public OnGameModeExit()
    {
    for(new i;i!=MAX_HAUSER;i++) SaveHaus(i);
    return true;
    }[/pwn]


    Hat niemand eine Idee woran das liegt?