Geldautomat wird nicht Geladen, warum?

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


    Die Überschrift sagt schon alles Aus, ich hab mir ein Dynamisches ATM - System erstellt. Dies ermöglicht einen im Spiel Geldautomaten zu erstellen.
    Nun es Funktioniert auch, sie Werden wie gewollt erstellt. Nur werden sie nach einem Server neustart nicht wieder Geladen, woran könnte es liegen?



    Hier habt ihr mal die Stocks, Code:


    stock SaveATM(atmid)
    {
    new BDatei[64];
    format(BDatei,50,"/Automaten/%d.txt",atmid);
    dini_Set(BDatei,"Object",ATMInfo[atmid][atmobjectid]);
    dini_Set(BDatei,"Text",ATMInfo[atmid][atmname]);
    dini_FloatSet(BDatei,"X",ATMInfo[atmid][atmx]);
    dini_FloatSet(BDatei,"Y",ATMInfo[atmid][atmy]);
    dini_FloatSet(BDatei,"Z",ATMInfo[atmid][atmz]);
    dini_FloatSet(BDatei,"XRot",ATMInfo[atmid][atmx]);
    dini_FloatSet(BDatei,"YRot",ATMInfo[atmid][atmy]);
    dini_FloatSet(BDatei,"ZRot",ATMInfo[atmid][atmz]);
    return 1;
    }


    stock CATM(Float:x,Float:y,Float:z,name[]) /* Erstellt den Automaten */
    {
    new BDatei[64];
    for(new atmid=1;atmid<MAX_ATMS;atmid++)
    {
    format(BDatei,50,"/Automaten/%d.txt",atmid);
    if(!fexist(BDatei))
    {
    dini_Create(BDatei);
    dini_Set(BDatei,"Text",name);
    dini_IntSet(BDatei,"Object",2618);
    dini_FloatSet(BDatei,"X",x);
    dini_FloatSet(BDatei,"Y",y);
    dini_FloatSet(BDatei,"Z",z);
    dini_FloatSet(BDatei,"XRot",0.000000);
    dini_FloatSet(BDatei,"YRot",0.000000);
    dini_FloatSet(BDatei,"ZRot",0.000000);
    return LATM(atmid);
    }
    }
    return 1;
    }


    stock LATM(atmid) /* Läd die Automaten */
    {
    new BDatei[64],string[16];
    format(BDatei,50,"/Automaten/%d.txt",atmid);
    if(!fexist(BDatei))return 0;
    format(ATMInfo[atmid][atmname],16,"%s",dini_Int(BDatei,"Text"));
    ATMInfo[atmid][atmobjectid] = dini_Int(BDatei,"Object");
    ATMInfo[atmid][atmx] = dini_Float(BDatei,"X");
    ATMInfo[atmid][atmy] = dini_Float(BDatei,"Y");
    ATMInfo[atmid][atmz] = dini_Float(BDatei,"Z");
    ATMInfo[atmid][atmxrot] = dini_Float(BDatei,"XRot");
    ATMInfo[atmid][atmyrot] = dini_Float(BDatei,"YRot");
    ATMInfo[atmid][atmzrot] = dini_Float(BDatei,"ZRot");
    format(string,16,"%s",dini_Get(BDatei,"Text"));
    ATMInfo[atmid][atm_objekt] = CreateObject(2618, ATMInfo[atmid][atmx],ATMInfo[atmid][atmy],ATMInfo[atmid][atmz], ATMInfo[atmid][atmxrot],ATMInfo[atmid][atmyrot],ATMInfo[atmid][atmzrot],1000);
    ATMInfo[atmid][atm_label] = Create3DTextLabel(string,0x00F0F1FF,ATMInfo[atmid][atmx],ATMInfo[atmid][atmy],ATMInfo[atmid][atmz],20,0,1);
    return 1;
    }



    Ich finde den Fehler einfach nicht, vielleicht seht ihr ja mehr.

  • dini_FloatSet(BDatei,"X",ATMInfo[atmid][atmx]);
    dini_FloatSet(BDatei,"Y",ATMInfo[atmid][atmy]);
    dini_FloatSet(BDatei,"Z",ATMInfo[atmid][atmz]);
    dini_FloatSet(BDatei,"XRot",ATMInfo[atmid][atmx]);
    dini_FloatSet(BDatei,"YRot",ATMInfo[atmid][atmy]);
    dini_FloatSet(BDatei,"ZRot",ATMInfo[atmid][atmz]);


    Wieso setzt du bei den normalen Koordinaten und bei der Rotation die selben Koordinaten?

  • Au Danke dir, gut Aufgepasst ist mir gar nicht aufgefallen ^^, aber dies löst leider nicht mein Problem :(



    Die Automaten werden ja Erstellt und es wird auch eine Datei angelegt. Aber diese Lädt er nicht ..

  • Versuch es mal so :


    Spoiler anzeigen

    stock SaveATM(atmid)
    {
    new BDatei[64];
    format(BDatei,50,"/Automaten/%d.txt",atmid);
    dini_Set(BDatei,"Object",ATMInfo[atmid][atmobjectid]);
    dini_Set(BDatei,"Text",ATMInfo[atmid][atmname]);
    dini_FloatSet(BDatei,"X",ATMInfo[atmid][atmx]);
    dini_FloatSet(BDatei,"Y",ATMInfo[atmid][atmy]);
    dini_FloatSet(BDatei,"Z",ATMInfo[atmid][atmz]);
    dini_FloatSet(BDatei,"XRot",ATMInfo[atmid][atmxrot]);
    dini_FloatSet(BDatei,"YRot",ATMInfo[atmid][atmyrot]);
    dini_FloatSet(BDatei,"ZRot",ATMInfo[atmid][atmzrot]);
    return 1;
    }

  • Genau so muss es bei dem Code ja auch aussehen, hab es auch schon so geändert gehabt. Aber Problem ist wie schon gesagt noch da.

  • Hä?



    Wie warum lass ich die Speichern?
    Ich erstelle doch die Geldautomaten im Spiel, und an diesen kann dann Tätigkeiten wie Geld Abheben/Einzahlen/Überweisen o.ä gemacht werden.
    Schicker sähe es dann natürlich aus Automaten da stehen zuhaben, aber genau diese Werden ja nicht gespeichert, und deine Methode raff ich nicht ganz, was soll mir das den bringen?

  • So die Geldautomaten werden nun richtig erstellt/Geladen. Aber der 3DText davon wird zwar mit erstellt & Angezeigt aber, nach einem Server neustart nicht geladen.



    stock SaveATM(atmid)
    {
    new BDatei[64];
    format(BDatei,50,"/Automaten/%d.txt",atmid);
    dini_Set(BDatei,"Object",ATMInfo[atmid][atmobjectid]);
    dini_Set(BDatei,"Text",ATMInfo[atmid][atmname]);
    dini_FloatSet(BDatei,"X",ATMInfo[atmid][atmx]);
    dini_FloatSet(BDatei,"Y",ATMInfo[atmid][atmy]);
    dini_FloatSet(BDatei,"Z",ATMInfo[atmid][atmz]);
    dini_FloatSet(BDatei,"XRot",ATMInfo[atmid][atmxrot]);
    dini_FloatSet(BDatei,"YRot",ATMInfo[atmid][atmyrot]);
    dini_FloatSet(BDatei,"ZRot",ATMInfo[atmid][atmzrot]);
    return 1;
    }


    stock CATM(Float:x,Float:y,Float:z,name[]) /* Erstellt den Automaten */
    {
    new BDatei[64];
    for(new atmid=1;atmid<MAX_ATMS;atmid++)
    {
    format(BDatei,50,"/Automaten/%d.txt",atmid);
    if(!fexist(BDatei))
    {
    dini_Create(BDatei);
    dini_Set(BDatei,"Text",name);
    dini_IntSet(BDatei,"Object",2618);
    dini_FloatSet(BDatei,"X",x);
    dini_FloatSet(BDatei,"Y",y);
    dini_FloatSet(BDatei,"Z",z);
    dini_FloatSet(BDatei,"XRot",0.000000);
    dini_FloatSet(BDatei,"YRot",0.000000);
    dini_FloatSet(BDatei,"ZRot",0.000000);
    return LATM(atmid);
    }
    }
    return 1;
    }


    stock LATM(atmid) /* Läd die Automaten */
    {
    new BDatei[64], string[16];
    format(BDatei,50,"/Automaten/%d.txt",atmid);
    if(!fexist(BDatei))return 0;
    format(ATMInfo[atmid][atmname],16,"%s",dini_Get(BDatei,"Text"));
    ATMInfo[atmid][atmobjectid] = dini_Int(BDatei,"Object");
    ATMInfo[atmid][atmx] = dini_Float(BDatei,"X");
    ATMInfo[atmid][atmy] = dini_Float(BDatei,"Y");
    ATMInfo[atmid][atmz] = dini_Float(BDatei,"Z");
    ATMInfo[atmid][atmxrot] = dini_Float(BDatei,"XRot");
    ATMInfo[atmid][atmyrot] = dini_Float(BDatei,"YRot");
    ATMInfo[atmid][atmzrot] = dini_Float(BDatei,"ZRot");
    ATMInfo[atmid][atm_objekt] = CreateObject(2618, ATMInfo[atmid][atmx],ATMInfo[atmid][atmy],ATMInfo[atmid][atmz], ATMInfo[atmid][atmxrot],ATMInfo[atmid][atmyrot],ATMInfo[atmid][atmzrot],1000);
    format(string,sizeof(string),"%s",ATMInfo[atmid][atmname]);
    ATMInfo[atmid][atm_label] = Create3DTextLabel(string,0x00F0F1FF,ATMInfo[atmid][atmx],ATMInfo[atmid][atmy],ATMInfo[atmid][atmz],20,0,1);
    return 1;
    }