Hausfrage

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
  • Ich Wollte an meinem haussystem anstatt gametext 3dlabels machen aber dieses funkioniert nicht ganz
    er createt nicht an alle 200 häuser eins nur ein paar


    Hier bei OnGameModeInit:



    for(new h = 0; h < sizeof(HouseInfo); h++)
    {
    if(HouseInfo[h][hOwned] == 1)
    {
    if(HouseInfo[h][hRentabil] == 0)
    {
    format(string, sizeof(string), "Dieses Haus gehört: %s \nLevel: %d",HouseInfo[h][hOwner],HouseInfo[h][hLevel]);
    Info1 = Create3DTextLabel(string,COLOR_ORANGE,HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez],30.0,0,1);
    }
    else
    {
    format(string, sizeof(string), "Dieses Haus gehört: %s \nMiete: $%d Level: %d \nBenutze /rentroom, um ein Zimmer zu mieten",HouseInfo[h][hOwner],HouseInfo[h][hRent],HouseInfo[h][hLevel]);
    Info2 = Create3DTextLabel(string,COLOR_ORANGE,HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez],30.0,0,1);
    }
    return 1;
    }
    else
    {
    format(string, sizeof(string), "Dieses Haus ist zu Verkaufen \nBeschreibung: %s \nPreis: $%d \nLevel: %d \nBenutze /buyhouse um es zu kaufen",HouseInfo[h][hDiscription],HouseInfo[h][hValue],HouseInfo[h][hLevel]);
    Info3 = Create3DTextLabel(string,COLOR_ORANGE,HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez],30.0,0,1);
    }


    und zum aktulisieren bei buyhouse und sellhouse


    public Haus3D()
    {
    new string[256];
    for(new h = 0; h < sizeof(HouseInfo); h++)
    {
    if(HouseInfo[h][hOwned] == 1)
    {
    if(HouseInfo[h][hRentabil] == 0)
    {
    Delete3DTextLabel(Info1);
    Delete3DTextLabel(Info2);
    Delete3DTextLabel(Info3);
    format(string, sizeof(string), "Dieses Haus gehört: %s \nLevel: %d",HouseInfo[h][hOwner],HouseInfo[h][hLevel]);
    Info1 = Create3DTextLabel(string,COLOR_ORANGE,HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez],30.0,0,1);
    }
    else
    {
    Delete3DTextLabel(Info1);
    Delete3DTextLabel(Info2);
    Delete3DTextLabel(Info3);
    format(string, sizeof(string), "Dieses Haus gehört: %s \nMiete: $%d Level: %d \nBenutze /rentroom, um ein Zimmer zu mieten",HouseInfo[h][hOwner],HouseInfo[h][hRent],HouseInfo[h][hLevel]);
    Info2 = Create3DTextLabel(string,COLOR_ORANGE,HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez],30.0,0,1);
    }
    return 1;
    }
    else
    {
    Delete3DTextLabel(Info1);
    Delete3DTextLabel(Info2);
    Delete3DTextLabel(Info3);
    format(string, sizeof(string), "Dieses Haus ist zu Verkaufen \nBeschreibung: %s \nPreis: $%d \nLevel: %d \nBenutze /buyhouse um es zu kaufen",HouseInfo[h][hDiscription],HouseInfo[h][hValue],HouseInfo[h][hLevel]);
    Info3 = Create3DTextLabel(string,COLOR_ORANGE,HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez],30.0,0,1);
    }
    }
    return 1;
    }


    dann eben Bei Sellhouse und Buyhouse habe ich


    Haus3D(); gemacht wo ist der fehler wie gesagt der createt nicht alle und wenn ich mir eins kaufe und verkaufe gehen wieder ein paar weg..


    /E/ Text

    Einmal editiert, zuletzt von Quini ()

  • Du hast nur 3 variablen in denen du die ID des 3dTextes speicherst. Du hast aber mehr häuser also werden die 3 variablen immer nur geändert. Versuchs mal so:
    Ganz nach oben:
    new Text3D:HausInfo[ANZAHL_DEINER_HÄUSER];//das einfach in die anzahl deiner Häsuer ändern
    Dann unter OnGameModeInit oder wo auch immer du die 3d texte erstellst:
    for(new h = 0; h < sizeof(HouseInfo); h++)
    {
    if(HouseInfo[h][hOwned] == 1)
    {
    if(HouseInfo[h][hRentabil] == 0)
    {
    format(string, sizeof(string), "Dieses Haus gehört: %s \nLevel: %d",HouseInfo[h][hOwner],HouseInfo[h][hLevel]);
    }
    else
    {
    format(string, sizeof(string), "Dieses Haus gehört: %s \nMiete: $%d Level: %d \nBenutze /rentroom, um ein Zimmer zu mieten",HouseInfo[h][hOwner],HouseInfo[h][hRent],HouseInfo[h][hLevel]);
    }
    }
    else
    {
    format(string, sizeof(string), "Dieses Haus ist zu Verkaufen \nBeschreibung: %s \nPreis: $%d \nLevel: %d \nBenutze /buyhouse um es zu kaufen",HouseInfo[h][hDiscription],HouseInfo[h][hValue],HouseInfo[h][hLevel]);
    }
    HausInfo[h] = Create3DTextLabel(string,COLOR_ORANGE,HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez],30.0,0,1);
    Und zum Aktualisieren solltest du Update3DTextLabelText benutzen anstatt zu löschen und neu zu erstellen:
    public Haus3D()
    {
    new string[256];
    for(new h = 0; h < sizeof(HouseInfo); h++)
    {
    if(HouseInfo[h][hOwned] == 1)
    {
    if(HouseInfo[h][hRentabil] == 0)
    {
    format(string, sizeof(string), "Dieses Haus gehört: %s \nLevel: %d",HouseInfo[h][hOwner],HouseInfo[h][hLevel]);
    }
    else
    {
    format(string, sizeof(string), "Dieses Haus gehört: %s \nMiete: $%d Level: %d \nBenutze /rentroom, um ein Zimmer zu mieten",HouseInfo[h][hOwner],HouseInfo[h][hRent],HouseInfo[h][hLevel]);
    }
    }
    else
    {
    format(string, sizeof(string), "Dieses Haus ist zu Verkaufen \nBeschreibung: %s \nPreis: $%d \nLevel: %d \nBenutze /buyhouse um es zu kaufen",HouseInfo[h][hDiscription],HouseInfo[h][hValue],HouseInfo[h][hLevel]);
    }
    Update3DTextLabelText(HausInfo[h], COLOR_ORANGE, string);
    }
    return 1;
    }


    Mfg.

    The fact is, I am right. And if you think I'm wrong, you are wrong.