Auto läd nicht richtig

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
  • Guten tag liebe community,
    ich habe folgendes problem und zwar habe ich ein '/accar' befehl erst um autos Ingame zu erstellen und zu speichern aber irgendwie werden die daten des Cars nicht richtig in das enum übergeschrieben.


    Hier mal der Code:


    ocmd:accar(playerid,params[])
    {
    new vID,fID, staat, Float:x, Float:z, Float:y, Float:r, Color1, Color2;
    GetPlayerPos(playerid,x,y,z);
    GetPlayerFacingAngle(playerid,r);
    if(sscanf(params,"iiiii",vID,Color1,Color2,fID,staat))return SendClientMessage(playerid,rot,"/accar [Vehicle ID][Farbe 1][Farbe 2][Fraktions ID (Wenn Staatfahrzeug 0)][Staat (Wenn ein Staats Fahrzeug 1)]");
    if(vID<400||vID>611)return SendClientMessage(playerid,rot,"Die Vehicle ID muss zwischen 400 und 611 liegen!");
    if(fID==0)
    {
    if(staat==0)
    {
    SendClientMessage(playerid, rot,"Du musst endweder das Auto als Staats oder als Fraktions Fahrzeug Melden!");
    return 1;
    }
    }
    new i = getFreeCarID()+1;
    new string[164];
    format(string,sizeof string,"/autos/car %i.txt",i);
    dini_Create(string);
    dini_FloatSet(string,"x",x);
    dini_FloatSet(string,"y",y);
    dini_FloatSet(string,"z",z);
    dini_FloatSet(string,"r",r);
    dini_IntSet(string,"VehicleID",vID);
    dini_IntSet(string,"Color_1",Color1);
    dini_IntSet(string,"Color_2",Color2);
    dini_IntSet(string,"Fraktion",fID);
    dini_IntSet(string,"Staat",staat);
    dini_FloatSet(string,"Tank",100.0);
    if(fID==0)
    {
    dini_Set(string,"besitzer","Staat");
    }
    else
    if(staat==0)
    {
    new fraktname[164];
    switch(fID)
    {
    case 1:{fraktname=FRAKTION_1;}
    case 2:{fraktname=FRAKTION_2;}
    case 3:{fraktname=FRAKTION_3;}
    case 4:{fraktname=FRAKTION_4;}
    case 5:{fraktname=FRAKTION_5;}
    case 6:{fraktname=FRAKTION_6;}
    case 7:{fraktname=FRAKTION_7;}
    case 8:{fraktname=FRAKTION_8;}
    case 9:{fraktname=FRAKTION_9;}
    case 10:{fraktname=FRAKTION_10;}
    case 11:{fraktname=FRAKTION_11;}
    case 12:{fraktname=FRAKTION_12;}
    case 13:{fraktname=FRAKTION_13;}
    case 14:{fraktname=FRAKTION_14;}
    case 15:{fraktname=FRAKTION_15;}
    case 16:{fraktname=FRAKTION_16;}
    case 17:{fraktname=FRAKTION_17;}
    }
    dini_Set(string,"besitzer",fraktname);
    }
    new mycar;
    vInfo[i][v_id_x]=CreateVehicle(vID,x,y,z,r,Color1,Color2,0);
    PutPlayerInVehicle(playerid,mycar,0);
    vInfo[i][v_tank]=100.0;
    vInfo[i][v_status]=1;
    vInfo[i][v_id_x]=mycar;
    vInfo[i][v_db_id]=i;
    strpack(vInfo[i][v_besitzer],dini_Get(string,"besitzer"));
    vInfo[i][v_fraktion]=fID;
    vInfo[i][v_staat]=staat;
    vInfo[i][v_x]=x;
    vInfo[i][v_y]=y;
    vInfo[i][v_z]=z;
    vInfo[i][v_r]=r;
    vInfo[i][v_vehicleid]=vID;
    vInfo[i][v_color_1]=Color1;
    vInfo[i][v_color_2]=Color2;
    return 1;
    }


    /edit
    Damit meine ich das die daten erst nach dem ich alle autos nochmal neu laden lasse erst richtig übermittelt wurden



    Vielen dank schonmal im Vorraus

  • Ich habe auf die schnelle am Handy keinen Fehler gesehen.
    Aber mache das weg:
    vInfo[i][v_id_x]=mycar;
    Und in PutPlayerInVehicle das mycar dann zu:
    vInfo[i][v_id_x]

  • Dein "mycar" ist so wie ich sehe das Problem.
    Du erstellst eine Variable mycar. Die hat ja am Anfang den Wert 0.
    Dann benutzt du PutPlayerInVehicle(playerid, vehicleid, seatid);
    Bei vehicleid trägst du mycar ein- also 0.
    Dann überschreibst du vInfo[i][v_id_x] mit mycar.


    Lass die Variable mycar einfach ganz weg.
    PutPlayerInVehicle(playerid, vInfo[i][v_id_x],0);


    Und vInfo[i][v_id_x] = mycar ... einfach ganz weg.