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.