Fehler beim Häuser Laden usw.

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
  • Habe gestern mich an ein Haus System ran gemacht. Gestern habe ich es mit Haus1 Haus2 usw gemacht.
    Nun wollte ich es mit Haus[0], Haus[1] usw machen, also mit einer For-Schleife.
    Nun geht garnichts mehr.



    #define MAX_HOUSE 2
    new Text3D:Haus[MAX_HOUSE];
    new HausPick[MAX_HOUSE];


    stock LoadHouse()
    {
    for(new j = 0; j < MAX_HOUSE; j++)
    {
    new string[128],status[50],string2[300];
    new Float:X2, Float:Y2, Float:Z2;
    X2 = dini_Float("/Häuser/Haus[j].ini", "X");
    Y2 = dini_Float("/Häuser/Haus[j].ini", "Y");
    Z2 = dini_Float("/Häuser/Haus[j].ini", "Z");
    if(dini_Int("/Häuser/Haus[j].ini","Offen")==1) { status = "Haus Offen"; }
    else if(dini_Int("/Häuser/Haus[j].ini","Offen")==0) { status = "Haus Geschlossen"; }
    format(string,sizeof(string),"Besitzer: %s\nKosten: %i$\n%s",dini_Get("/Häuser/Haus[j].ini","Besitzer"),dini_Int("/Häuser/Haus[j].ini","Kosten"),status);
    Haus[j] = CreateDynamic3DTextLabel(string, GRAU, X2,Y2,Z2, 7.5);
    string2 = dini_Get("/Häuser/Haus[j].ini", "Besitzer");
    if(strcmp(string2, "Niemand", false) == 0)
    {
    HausPick[j] = CreateDynamicPickup(1273,1,X2,Y2,Z2,0,0);
    }
    else
    {
    HausPick[j] = CreateDynamicPickup(1272,1,X2,Y2,Z2,0,0);
    }
    }
    return 1;
    }


    Hoffe mir kann jemand helfen.

  • "/Häuser/Haus[j].ini" ist der Fehler das j wird als string genommen und nicht als den jeweiligen Wert den es von der For-Schleife bekommt.


    Teste es einfach mal mit


    format(string,sizeof(string),"/Häuser/Haus[%d].ini",j);

  • "/Häuser/Haus[j].ini" ist der Fehler das j wird als string genommen und nicht als den jeweiligen Wert den es von der For-Schleife bekommt.


    Teste es einfach mal mit


    format(string,sizeof(string),"/Häuser/Haus[%d].ini",j);


    Habe das so gemacht, geht nicht. Auch mit %i nicht(Was meistens bei mir statt %d geht.)


    stock LoadHouse()
    {
    for(new j = 0; j < MAX_HOUSE; j++)
    {
    new string[128],status[50],string2[300],string5[128];
    new Float:X2, Float:Y2, Float:Z2;
    format(status,sizeof(status),"Haus %i wurde geladen.",j);
    print(status);
    format(string5,sizeof(string5),"/Häuser/Haus[%i]",j);
    X2 = dini_Float(string5, "X");
    Y2 = dini_Float(string5, "Y");
    Z2 = dini_Float(string5, "Z");
    if(dini_Int(string5,"Offen")==1) { status = "Haus Offen"; }
    else if(dini_Int(string5,"Offen")==0) { status = "Haus Geschlossen"; }
    format(string,sizeof(string),"Besitzer: %s\nKosten: %i$\n%s",dini_Get(string5,"Besitzer"),dini_Int(string5,"Kosten"),status);
    Haus[j] = CreateDynamic3DTextLabel(string, GRAU, X2,Y2,Z2, 7.5);
    string2 = dini_Get(string5, "Besitzer");
    if(strcmp(string2, "Niemand", false) == 0)
    {
    HausPick[j] = CreateDynamicPickup(1273,1,X2,Y2,Z2,0,0);
    }
    else
    {
    HausPick[j] = CreateDynamicPickup(1272,1,X2,Y2,Z2,0,0);
    }
    }
    return 1;
    }