Fahrzeuge speichern an der selben Position

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
  • Ich habe schon wieder ein Problem beim Speichern meiner Fahrzeuge, seit neusten speichern plötzlich alle Fahrzeuge an der selben Position wenn ich /park eingebe, was mache ich falsch ?
    CMD:park(playerid, params[])
    {
    new parkID;
    parkID = GetPlayerVehicleID(playerid);
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,COLOR_RED,"You have to be in a vehicle to use this command.");
    if(!IsPrivateCar(parkID))return SendClientMessage(playerid,COLOR_RED,"You can only use this command in your own vehicle.");
    for(new i=0; i<sizeof(cInfo); i++)
    {
    if(cInfo[i][id_x]==0)continue;
    if(cInfo[i][besitzer]!=sInfo[playerid][id0])continue;
    GetVehiclePos(cInfo[i][id_x],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z]);
    GetVehicleZAngle(cInfo[i][id_x],cInfo[i][c_r]);
    GetVehicleColor(cInfo[i][id_x],cInfo[i][vcolor1],cInfo[i][vcolor2]);
    cInfo[i][tuning0] = GetVehicleComponentInSlot(cInfo[i][id_x],0);
    cInfo[i][tuning1] = GetVehicleComponentInSlot(cInfo[i][id_x],1);
    cInfo[i][tuning2] = GetVehicleComponentInSlot(cInfo[i][id_x],2);
    cInfo[i][tuning3] = GetVehicleComponentInSlot(cInfo[i][id_x],3);
    cInfo[i][tuning4] = GetVehicleComponentInSlot(cInfo[i][id_x],4);
    cInfo[i][tuning5] = GetVehicleComponentInSlot(cInfo[i][id_x],5);
    cInfo[i][tuning6] = GetVehicleComponentInSlot(cInfo[i][id_x],6);
    cInfo[i][tuning7] = GetVehicleComponentInSlot(cInfo[i][id_x],7);
    cInfo[i][tuning8] = GetVehicleComponentInSlot(cInfo[i][id_x],8);
    cInfo[i][tuning9] = GetVehicleComponentInSlot(cInfo[i][id_x],9);
    cInfo[i][tuning10] = GetVehicleComponentInSlot(cInfo[i][id_x],10);
    cInfo[i][tuning11] = GetVehicleComponentInSlot(cInfo[i][id_x],11);
    cInfo[i][tuning12] = GetVehicleComponentInSlot(cInfo[i][id_x],12);
    cInfo[i][tuning13] = GetVehicleComponentInSlot(cInfo[i][id_x],13);
    new query[256];
    format(query,sizeof(query),"UPDATE vehicles SET x='%f',y='%f',z='%f',r='%f',color1='%i',color2='%i',tune0='%i',tune1='%i',tune2='%i',tune3='%i',tune4='%i',tune5='%i',tune6='%i',tune7='%i',tune8='%i',tune9='%i',tune10='%i',tune11='%i',tune12='%i',tune13='%i' WHERE id='%i'",cInfo[i][c_x],cInfo[i][c_y],
    cInfo[i][c_z],
    cInfo[i][c_r],
    cInfo[i][vcolor1],
    cInfo[i][vcolor2],
    cInfo[i][tuning0],
    cInfo[i][tuning1],
    cInfo[i][tuning2],
    cInfo[i][tuning3],
    cInfo[i][tuning4],
    cInfo[i][tuning5],
    cInfo[i][tuning6],
    cInfo[i][tuning7],
    cInfo[i][tuning8],
    cInfo[i][tuning9],
    cInfo[i][tuning10],
    cInfo[i][tuning11],
    cInfo[i][tuning12],
    cInfo[i][tuning13],
    cInfo[i][db_id]);
    mysql_function_query(dbhandle,query,false,"","");
    }
    SendClientMessage(playerid,COLOR_RED,"Vehicle parked!");
    return 1;
    }

  • Du solltest noch abgleichen ob es das fahrzeug ist in dem du sitzt in deiner for-schleife.
    hier wird ja abgeprüft ob es dein Fahrzeug ist


    if(!IsPrivateCar(parkID))return SendClientMessage(playerid,COLOR_RED,"You can only use this command in your own vehicle.");


    Hier wäre es vllt nicht schlecht wenn du über diese funktion direkt die slotid des fahrzeuges in dem array
    cInfo zurück geben würdest aber ob du das machst ist deine sache.



    Wie bereits erwähnt fehlt lediglich die abfrage in der for-schleife ob es das fahrzeug ist in dem du sitzt.
    for(new i=0; i<sizeof(cInfo); i++) {
    if(cInfo[i][id_x] != parkID)continue;


  • Bewirkt leider nur einen Game Crash. Habe weiterhin das Problem, dass alle privaten Fahrzeuge an der selben Position speichern und nicht nur das Fahrzeug in dem ich /park eingegeben habe. Das gleiche ist auch mit Farben und Tunings.