problem mit LoadVehicle!

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,


    jedes mal wenn ich unter GameModeInt bei mir im Script LoadVehicle(); einschalte dann crasht der server immer, da er irgendwie die Cars nicht aus der car.cfg herraus lesen kann.
    Nun stelle ich mir die Frage warum er es nicht herraus lesen kann!


    Code:public LoadVehicles()
    {
    new
    INFO[128];
    new File: CarFile = fopen("cars.cfg", io_read);
    if ( CarFile )
    {
    new key[ 256 ], val[ 256 ];
    new Data[ 256 ];
    while ( fread( CarFile , Data , sizeof( Data ) ) )
    {
    for(new v=0;v<MAX_VEHICLES;v++)
    {
    key = ini_GetKey( Data );
    format(INFO, sizeof(INFO), "Owner[%d]",v);
    if( strcmp( key , INFO, true ) == 0 ) { val = ini_GetValue( Data ); Vehicle[v][vOwner] = strval( val ); printf("Succesfull Loaded %s",INFO); printf("%s",strval(val)); }
    //else {print("Succesfully return"); return 1; }
    format(INFO, sizeof(INFO), "Model[%d]",v);
    if( strcmp( key , INFO, true ) == 0 ) { val = ini_GetValue( Data ); Vehicle[v][vModel] = strval( val );printf("Succesfull Loaded %s",INFO);printf("%d",strval(val)); }
    format(INFO, sizeof(INFO), "Color1[%d]",v);
    if( strcmp( key , INFO, true ) == 0 ) { val = ini_GetValue( Data ); Vehicle[v][vColor1] = strval( val );printf("Succesfull Loaded %s",INFO);printf("%d",strval(val)); }
    format(INFO, sizeof(INFO), "Color2[%d]",v);
    if( strcmp( key , INFO, true ) == 0 ) { val = ini_GetValue( Data ); Vehicle[v][vColor2] = strval( val );printf("Succesfull Loaded %s",INFO); printf("%d",strval(val)); }
    format(INFO, sizeof(INFO), "Number[%d]",v);
    if( strcmp( key , INFO, true ) == 0 ) { val = ini_GetValue( Data ); Vehicle[v][vNumber] = strval( val );printf("Succesfull Loaded %s",INFO); printf("%s",strval(val)); }
    format(INFO, sizeof(INFO), "Health[%d]",v);
    if( strcmp( key , INFO, true ) == 0 ) { val = ini_GetValue( Data ); Vehicle[v][vHealth] = strval( val );printf("Succesfull Loaded %s",INFO);printf("%d",strval(val)); }
    format(INFO, sizeof(INFO), "X[%d]",v);
    if( strcmp( key , INFO, true ) == 0 ) { val = ini_GetValue( Data ); Vehicle[v][vX] = strval( val );printf("Succesfull Loaded %s",INFO);printf("%f",strval(val)); }
    format(INFO, sizeof(INFO), "Y[%d]",v);
    if( strcmp( key , INFO, true ) == 0 ) { val = ini_GetValue( Data ); Vehicle[v][vY] = strval( val );printf("Succesfull Loaded %s",INFO);printf("%f",strval(val)); }
    format(INFO, sizeof(INFO), "Z[%d]",v);
    if( strcmp( key , INFO, true ) == 0 ) { val = ini_GetValue(Data); Vehicle[v][vZ] = strval(val);printf("Succesfull Loaded %s",INFO);printf("%f",strval(val));}
    format(INFO, sizeof(INFO), "A[%d]",v);
    if( strcmp( key , INFO, true ) == 0 ) { val = ini_GetValue(Data); Vehicle[v][vA] = strval(val);printf("Succesfull Loaded %s",INFO);printf("%f",strval(val));}
    format(INFO, sizeof(INFO), "Locked[%d]",v);
    if( strcmp( key , INFO, true ) == 0 ) { val = ini_GetValue(Data); Vehicle[v][vLocked] = strval(val);printf("Succesfull Loaded %s",INFO);printf("%d",strval(val));}
    format(INFO, sizeof(INFO), "ID[%d]",v);
    if( strcmp( key , INFO, true ) == 0 ) { val = ini_GetValue(Data); Vehicle[v][vID] = strval(val);printf("Succesfull Loaded %s",INFO);printf("%d",strval(val));}
    Vehicle[v][vID] = CreateVehicle(Vehicle[v][vModel],Vehicle[v][vX],Vehicle[v][vY],Vehicle[v][vZ],Vehicle[v][vA],Vehicle[v][vColor1],Vehicle[v][vColor2],9000000);
    SpawnedVehicles ++;
    }
    }
    fclose(CarFile);
    }
    return 1;
    }



    public CreateSavedVehicle(MODEL, Float:x,Float:y,Float:z,Float:rotation, color1, color2, owner[], numberplate[])
    {
    new inhalt[64];
    new File: hFile = fopen("cars.cfg", io_append);
    if (hFile)
    {
    format(inhalt, 64, "Owner[%d]=%s\n",SpawnedVehicles, owner); fwrite(hFile, inhalt);
    format(inhalt, 64, "Model[%d]=%d\n",SpawnedVehicles, MODEL); fwrite(hFile, inhalt);
    format(inhalt, 64, "X[%d]=%f\n",SpawnedVehicles, Float:x); fwrite(hFile, inhalt);
    format(inhalt, 64, "Y[%d]=%f\n",SpawnedVehicles, Float:y); fwrite(hFile, inhalt);
    format(inhalt, 64, "Z[%d]=%f\n",SpawnedVehicles, Float:z); fwrite(hFile, inhalt);
    format(inhalt, 64, "A[%d]=%f\n",SpawnedVehicles, Float:rotation); fwrite(hFile, inhalt);
    format(inhalt, 64, "Color1[%d]=%d\n",SpawnedVehicles, color1); fwrite(hFile, inhalt);
    format(inhalt, 64, "Color2[%d]=%d\n",SpawnedVehicles, color2); fwrite(hFile, inhalt);
    format(inhalt, 64, "Number[%d]=%s\n",SpawnedVehicles, numberplate); fwrite(hFile, inhalt);
    format(inhalt, 64, "Locked[%d]=1\n",SpawnedVehicles); fwrite(hFile, inhalt);
    format(inhalt, 64, "ID[%d]=%d\n", SpawnedVehicles, SpawnedVehicles); fwrite(hFile, inhalt);
    CreateVehicle(MODEL, Float:x, Float:y,Float:z,Float:rotation, color1,color2, -1);
    SpawnedVehicles ++;
    fclose(hFile);
    }
    return 1;
    }


    GameModeInt:
    LoadVehicles();



    Bitte helft mir, es ist sehr wichtig :(


    MfG: Apoolecu


    EDIT: kennt sich keiner damit aus oder wie?


    bitte helft mir doch ist doch eigentlich nicht so schwer oder?

  • so, endlich mal einer :)


    wenn ich die datei leer haben (ohne autos) passiert nichts :), aber wenn ich ein auto drinnen habe und dies dann sich selber speichert und ich ein GMX mache dann, passiert es bei jedem wo drauf kommt bzw. ist das die gta.exe crasht :(


    EDIT: Weis vill einer an was das liegen kann?

  • also black meinte datei sieht so aus:


    Owner[0]=apoolecu
    Model[0]=477
    X[0]=750.351135
    Y[0]=-523.281311
    Z[0]=16.335937
    A[0]=0.000000
    Color1[0]=1
    Color2[0]=1
    Number[0]=Bla
    Locked[0]=1
    ID[0]=0



    und das Model=0 muss dann z.B. Model=1 sein oder wie? Aber wie sage ich dem Speichersystem das er nicht die ID 0 Speichern darf?


    MfG: Apoolecu


    //Edit Sehe gerade: Model ist gleich Vehicle Spawn nummer, kann es sein das es an der ID liegt?

  • ja liegt es nun an dem fahrzeug wo da drinnen ist das es die GTA.exe immer crasht?


    Pöse ID 0 wie kann ich nun in dem Script sagen das ID böse ist und ncht geladen werden darf? mit If oder?


    MfG: Apoolecu

  • nene die 0 stimmt schon
    das is nur die reihenfolge wie der die ladet/speichert durch die for/next schleife




    EDIT:


    probier mal statt
    Vehicle[v][vID] = CreateVehicle(Vehicle[v][vModel],Vehicle[v][vX],Vehicle[v][vY],Vehicle[v][vZ],Vehicle[v][vA],Vehicle[v][vColor1],Vehicle[v][vColor2],9000000);


    ->
    Vehicle[v][vID] = AddStaticVehicleEx(Vehicle[v][vModel],Vehicle[v][vX],Vehicle[v][vY],Vehicle[v][vZ],Vehicle[v][vA],Vehicle[v][vColor1],Vehicle[v][vColor2],90000);


    sag bescheid ob es geht

    Einmal editiert, zuletzt von Flag ()

  • schau mal im log nach, bis wohin der die autos ladet


    und schreib unter


    Vehicle[v][vID] = CreateVehicle(Vehicle[v][vModel],Vehicle[v][vX],Vehicle[v][vY],Vehicle[v][vZ],Vehicle[v][vA],Vehicle[v][vColor1],Vehicle[v][vColor2],9000000);
    SpawnedVehicles ++;



    noch printf("Auto geladen");


    dann siehst du ob der crasht bevor, oder nachdem er das auto erstellt^^

  • public LoadVehicles()
    {
    new
    INFO[128];
    new File: CarFile = fopen("cars.cfg", io_read);
    if ( CarFile )
    {
    new key[ 256 ], val[ 256 ];
    new Data[ 256 ];
    while ( fread( CarFile , Data , sizeof( Data ) ) )
    {
    for(new v=0;v<MAX_VEHICLES;v++)
    {
    key = ini_GetKey( Data );
    format(INFO, sizeof(INFO), "Owner[%d]",v);
    if( strcmp( key , INFO, true ) == 0 ) { val = ini_GetValue( Data ); Vehicle[v][vOwner] = strval( val ); printf("Succesfull Loaded %s",INFO); printf("%s",strval(val)); }
    //else {print("Succesfully return"); return 1; }
    format(INFO, sizeof(INFO), "Model[%d]",v);
    if( strcmp( key , INFO, true ) == 0 ) { val = ini_GetValue( Data ); Vehicle[v][vModel] = strval( val );printf("Succesfull Loaded %s",INFO);printf("%d",strval(val)); }
    format(INFO, sizeof(INFO), "Color1[%d]",v);
    if( strcmp( key , INFO, true ) == 0 ) { val = ini_GetValue( Data ); Vehicle[v][vColor1] = strval( val );printf("Succesfull Loaded %s",INFO);printf("%d",strval(val)); }
    format(INFO, sizeof(INFO), "Color2[%d]",v);
    if( strcmp( key , INFO, true ) == 0 ) { val = ini_GetValue( Data ); Vehicle[v][vColor2] = strval( val );printf("Succesfull Loaded %s",INFO); printf("%d",strval(val)); }
    format(INFO, sizeof(INFO), "Number[%d]",v);
    if( strcmp( key , INFO, true ) == 0 ) { val = ini_GetValue( Data ); Vehicle[v][vNumber] = strval( val );printf("Succesfull Loaded %s",INFO); printf("%s",strval(val)); }
    format(INFO, sizeof(INFO), "Health[%d]",v);
    if( strcmp( key , INFO, true ) == 0 ) { val = ini_GetValue( Data ); Vehicle[v][vHealth] = strval( val );printf("Succesfull Loaded %s",INFO);printf("%d",strval(val)); }
    format(INFO, sizeof(INFO), "X[%d]",v);
    if( strcmp( key , INFO, true ) == 0 ) { val = ini_GetValue( Data ); Vehicle[v][vX] = strval( val );printf("Succesfull Loaded %s",INFO);printf("%f",strval(val)); }
    format(INFO, sizeof(INFO), "Y[%d]",v);
    if( strcmp( key , INFO, true ) == 0 ) { val = ini_GetValue( Data ); Vehicle[v][vY] = strval( val );printf("Succesfull Loaded %s",INFO);printf("%f",strval(val)); }
    format(INFO, sizeof(INFO), "Z[%d]",v);
    if( strcmp( key , INFO, true ) == 0 ) { val = ini_GetValue(Data); Vehicle[v][vZ] = strval(val);printf("Succesfull Loaded %s",INFO);printf("%f",strval(val));}
    format(INFO, sizeof(INFO), "A[%d]",v);
    if( strcmp( key , INFO, true ) == 0 ) { val = ini_GetValue(Data); Vehicle[v][vA] = strval(val);printf("Succesfull Loaded %s",INFO);printf("%f",strval(val));}
    format(INFO, sizeof(INFO), "Locked[%d]",v);
    if( strcmp( key , INFO, true ) == 0 ) { val = ini_GetValue(Data); Vehicle[v][vLocked] = strval(val);printf("Succesfull Loaded %s",INFO);printf("%d",strval(val));}
    format(INFO, sizeof(INFO), "ID[%d]",v);
    if( strcmp( key , INFO, true ) == 0 ) { val = ini_GetValue(Data); Vehicle[v][vID] = strval(val);printf("Succesfull Loaded %s",INFO);printf("%d",strval(val));}
    if(Vehicle[v][vModel] != 0)
    {
    Vehicle[v][vID] = CreateVehicle(Vehicle[v][vModel],Vehicle[v][vX],Vehicle[v][vY],Vehicle[v][vZ],Vehicle[v][vA],Vehicle[v][vColor1],Vehicle[v][vColor2],90000);
    SpawnedVehicles ++;
    }
    }
    }
    fclose(CarFile);
    }
    return 1;
    }



    public CreateSavedVehicle(MODEL, Float:x,Float:y,Float:z,Float:rotation, color1, color2, owner[], numberplate[])
    {
    new inhalt[64];
    new File: hFile = fopen("cars.cfg", io_append);
    if (hFile)
    {
    format(inhalt, 64, "Owner[%d]=%s\n",SpawnedVehicles, owner); fwrite(hFile, inhalt);
    format(inhalt, 64, "Model[%d]=%d\n",SpawnedVehicles, MODEL); fwrite(hFile, inhalt);
    format(inhalt, 64, "X[%d]=%f\n",SpawnedVehicles, Float:x); fwrite(hFile, inhalt);
    format(inhalt, 64, "Y[%d]=%f\n",SpawnedVehicles, Float:y); fwrite(hFile, inhalt);
    format(inhalt, 64, "Z[%d]=%f\n",SpawnedVehicles, Float:z); fwrite(hFile, inhalt);
    format(inhalt, 64, "A[%d]=%f\n",SpawnedVehicles, Float:rotation); fwrite(hFile, inhalt);
    format(inhalt, 64, "Color1[%d]=%d\n",SpawnedVehicles, color1); fwrite(hFile, inhalt);
    format(inhalt, 64, "Color2[%d]=%d\n",SpawnedVehicles, color2); fwrite(hFile, inhalt);
    format(inhalt, 64, "Number[%d]=%s\n",SpawnedVehicles, numberplate); fwrite(hFile, inhalt);
    format(inhalt, 64, "Locked[%d]=1\n",SpawnedVehicles); fwrite(hFile, inhalt);
    format(inhalt, 64, "ID[%d]=%d\n", SpawnedVehicles, SpawnedVehicles); fwrite(hFile, inhalt);
    CreateVehicle(MODEL, Float:x, Float:y,Float:z,Float:rotation, color1,color2, -1);
    SpawnedVehicles ++;
    fclose(hFile);
    }
    return 1;
    }



    probiers mal damit

  • Sorry, dass ich jetzt erst antworte. Habe meine ganze Festplatte nach der funktionierenden richtigen Version abgesucht und endlich gefunden :):


    public LoadVehicles()
    {
    if(dini_Exists("cars.cfg"))
    {
    new
    //string[MAX_PLAYER_NAME],
    Number,
    Float:XYZA,
    INFO[64];
    for(new v=1;v<MAX_VEHICLES;v++)
    {
    format(INFO, sizeof(INFO), "Owner[%d]",v);
    if(!dini_Isset("cars.cfg", INFO)) { return 1; }


    //string = dini_Get("cars.cfg", INFO);
    //Vehicle[v][vOwner] = dini_Get("cars.cfg", INFO);
    //format(Vehicle[v][vOwner],128,"%s",dini_Get("cars.cfg", INFO));
    strmid(Vehicle[v][vOwner],dini_Get("cars.cfg", INFO),0,strlen(Vehicle[v][vOwner]),strlen(Vehicle[v][vOwner]));


    format(INFO, sizeof(INFO), "Model[%d]",v);
    if(!dini_Isset("cars.cfg", INFO)) { return 1; }
    Number = dini_Int("cars.cfg", INFO);
    Vehicle[v][vModel] = Number;


    format(INFO, sizeof(INFO), "Color1[%d]",v);
    if(!dini_Isset("cars.cfg", INFO)) { return 1; }
    Number = dini_Int("cars.cfg", INFO);
    Vehicle[v][vColor1] = Number;


    format(INFO, sizeof(INFO), "Color2[%d]",v);
    if(!dini_Isset("cars.cfg", INFO)) { return 1; }
    Number = dini_Int("cars.cfg", INFO);
    Vehicle[v][vColor2] = Number;


    /* format(INFO, sizeof(INFO), "Number[%d]",v);
    //string = dini_Get("cars.cfg", INFO);
    Vehicle[v][vNumber] = dini_Get("cars.cfg", INFO);*/


    format(INFO, sizeof(INFO), "Health[%d]",v);
    if(!dini_Isset("cars.cfg", INFO)) { return 1; }
    XYZA = dini_Float("cars.cfg", INFO);
    Vehicle[v][vHealth] = XYZA;


    format(INFO, sizeof(INFO), "X[%d]",v);
    if(!dini_Isset("cars.cfg", INFO)) { return 1; }
    XYZA = dini_Float("cars.cfg", INFO);
    Vehicle[v][vX] = XYZA;


    format(INFO, sizeof(INFO), "Y[%d]",v);
    if(!dini_Isset("cars.cfg", INFO)) { return 1; }
    XYZA = dini_Float("cars.cfg", INFO);
    Vehicle[v][vY] = XYZA;


    format(INFO, sizeof(INFO), "Z[%d]",v);
    if(!dini_Isset("cars.cfg", INFO)) { return 1; }
    XYZA = dini_Float("cars.cfg", INFO);
    Vehicle[v][vZ] = XYZA;


    format(INFO, sizeof(INFO), "A[%d]",v);
    if(!dini_Isset("cars.cfg", INFO)) { return 1; }
    XYZA = dini_Float("cars.cfg", INFO);
    Vehicle[v][vA] = XYZA;


    format(INFO, sizeof(INFO), "Locked[%d]",v);
    if(!dini_Isset("cars.cfg", INFO)) { return 1; }
    Number = dini_Int("cars.cfg", INFO);
    Vehicle[v][vLocked] = Number;


    format(INFO, sizeof(INFO), "ID[%d]",v);
    if(!dini_Isset("cars.cfg", INFO)) { return 1; }
    Number = dini_Int("cars.cfg", INFO);
    Vehicle[v][vID] = Number;


    Vehicle[v][vID] = CreateVehicle(Vehicle[v][vModel],Vehicle[v][vX],Vehicle[v][vY],Vehicle[v][vZ],Vehicle[v][vA],Vehicle[v][vColor1],Vehicle[v][vColor2],9000000);
    SpawnedVehicles ++;
    }
    }
    else { dini_Create("cars.cfg"); print("cars.cfg succesfully installed."); return LoadVehicles(); }
    return 1;
    }



    Ist zwar in dini, aber beim testen funktionierte sie dafür Problemlos.

    ...