Frak car system

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
  • so
    Jeffry:
    createPlayerCar(playerid,modelid,Float:x,Float:y,Float:z,Float:r)
    {
    for(new i=0; i<sizeof(cInfo); i++)
    {
    if(cInfo[i][id_x]!=0)continue;
    cInfo[i][besitzer]=sInfo[playerid][db_id];
    cInfo[i][c_x]=x;
    cInfo[i][c_y]=y;
    cInfo[i][c_z]=z;
    cInfo[i][c_r]=r;
    cInfo[i][model]=modelid;
    cInfo[i][id_x] = CreateVehicle(modelid,x,y,z,r,-1,-1,-1);
    tank[cInfo[i][id_x]] = 100;
    SetVehicleParamsEx(cInfo[i][id_x],0,0,0,1,0,0,0);
    saveCarToDB(playerid,i);
    new query[256];
    format(query,sizeof(query),"UPDATE autos SET Kennzeichen='%s' WHERE id='%i'",cInfo[i][ckz],cInfo[i][db_id]);
    mysql_function_query(dbhandle,query,false,"","");
    return 1;
    }
    return 1;
    }

  • Beitrag von reaL. ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • wäre es nicht einfacher Mit MAX_VEHICLES zu Arbeiten eine Abfrage durch alle cars und abfragen ob es dort schon existiert und dann durch die Datenbank abzufragen ?


    dann bekomme ich Errors


    C:\Users\anette\Desktop\Selfmade\Reallife Script v1.3.5\gamemodes\Reallifescript.pwn(11741) : error 033: array must be indexed (variable "cInfo")
    C:\Users\anette\Desktop\Selfmade\Reallife Script v1.3.5\gamemodes\Reallifescript.pwn(11743) : error 017: undefined symbol "pvVehicle"
    C:\Users\anette\Desktop\Selfmade\Reallife Script v1.3.5\gamemodes\Reallifescript.pwn(11743) : warning 215: expression has no effect
    C:\Users\anette\Desktop\Selfmade\Reallife Script v1.3.5\gamemodes\Reallifescript.pwn(11743) : error 001: expected token: ";", but found "]"
    C:\Users\anette\Desktop\Selfmade\Reallife Script v1.3.5\gamemodes\Reallifescript.pwn(11743) : error 029: invalid expression, assumed zero
    C:\Users\anette\Desktop\Selfmade\Reallife Script v1.3.5\gamemodes\Reallifescript.pwn(11743) : fatal error 107: too many error messages on one line


    Jeffry:




    und wenn ich das hier mache dan spawnen nicht alle fcars
    public LoadFracVehicles_Data()
    {
    new rows, id, createdVehs;
    rows = cache_num_rows();
    for(new i=0; i<rows; i++)
    {
    id = cache_get_field_content_int(i, "ID");
    if(id < 0 || id >= MAX_FRAC_VEHICLES) continue;
    fcars[id][fc_modelID] = cache_get_field_content_int(i, "ModelID");
    fcars[id][fc_x] = cache_get_field_content_float(i, "PosX");
    fcars[id][fc_y] = cache_get_field_content_float(i, "PosY");
    fcars[id][fc_z] = cache_get_field_content_float(i, "PosZ");
    fcars[id][fc_a] = cache_get_field_content_float(i, "PosA");
    fcars[id][fc_color1] = cache_get_field_content_int(i, "Color1");
    fcars[id][fc_color2] = cache_get_field_content_int(i, "Color2");
    fcars[id][fc_fracID] = cache_get_field_content_int(i, "FracID");
    if(fcars[id][fc_modelID] >= 400 && fcars[id][fc_modelID] <= 611)
    {
    fcars[id][fc_vID] = CreateVehicle(fcars[id][fc_modelID], fcars[id][fc_x], fcars[id][fc_y], fcars[id][fc_z], fcars[id][fc_a], fcars[id][fc_color1], fcars[id][fc_color2], -1);
    /*new str[10],plate;
    plate = GetFreeNumberPlate();
    format(str, sizeof(str), "PRP-%d", plate);
    cInfo[i][ckz] = SetVehicleNumberPlate(cInfo[i][id_x],str);*/
    }
    else
    {
    printf("[Error] Model-ID %d existiert nicht (ID: %d).", fcars[id][fc_modelID], id);
    }
    if(GetVehicleModel(MAX_VEHICLES-1) != 0) return print("Es können keine weiteren Fahrzeuge geladen werden, Limit (MAX_VEHICLES) erreicht.");
    createdVehs++;
    if(createdVehs == MAX_FRAC_VEHICLES) return print("Es können keine weiteren Fahrzeuge geladen werden, Limit (MAX_FRAC_VEHICLES) erreicht.");
    }
    return 1;
    }

  • Nein.


    Der Error kommt, weil du die Variable nicht umbenannt hast.
    stock GetFreeNumberPlate()
    {
    new rand = random(9000)+1000, security;
    GFNP_AGAIN:
    for(new i=0; i<MAX_FRAC_VEHICLES; i++)
    {
    if(fracVehicle[i][e_plate] == rand)
    {
    rand++;
    if(rand > 9999)
    {
    if(security > 0) return -1;
    rand = 1000;
    security = 1;
    }
    goto GFNP_AGAIN;
    }
    }
    for(new i=0; i<sizeof(cInfo); i++)
    {
    if(cInfo[i][e_plate] == rand)
    {
    rand++;
    if(rand > 9999)
    {
    if(security > 0) return -1;
    rand = 1000;
    security = 1;
    }
    goto GFNP_AGAIN;
    }
    }
    return rand;
    }


    Außerdem musst du in dem enum zu cInfo auch e_plate eintragen.

  • ok hab das jetze aber es wird i-wie net gespeichert bei den Fcars


    public SaveAllFracVehs()
    {
    new query[256];
    for(new i=0; i<MAX_FRAC_VEHICLES; i++)
    {
    if(fcars[i][fc_modelID] >= 400 && fcars[i][fc_modelID] <= 611)
    {
    format(query, sizeof(query), "UPDATE FracVehicles SET ModelID = '%d', PosX = '%f', PosY = '%f', PosZ = '%f', PosA = '%f', Color1 = '%d', Color2 = '%d', FracID = '%d', Kennzeichen = '%d' WHERE ID = '%d'",
    fcars[i][fc_modelID], fcars[i][fc_x], fcars[i][fc_y], fcars[i][fc_z], fcars[i][fc_a], fcars[i][fc_color1], fcars[i][fc_color2], fcars[i][fc_fracID],fcars[i][e_plate], i);
    mysql_tquery(dbhandle, query);
    }
    }
    return 1;
    }


    LoadFrakVehicles()
    {
    mysql_tquery(dbhandle, "SELECT * FROM FracVehicles ORDER BY ID ASC", "LoadFracVehicles_Data");
    return 1;
    }


    public LoadFracVehicles_Data()
    {
    new rows, id, createdVehs;
    rows = cache_num_rows();
    for(new i=0; i<rows; i++)
    {
    id = cache_get_field_content_int(i, "ID");
    if(id < 0 || id >= MAX_FRAC_VEHICLES) continue;
    fcars[id][fc_modelID] = cache_get_field_content_int(i, "ModelID");
    fcars[id][fc_x] = cache_get_field_content_float(i, "PosX");
    fcars[id][fc_y] = cache_get_field_content_float(i, "PosY");
    fcars[id][fc_z] = cache_get_field_content_float(i, "PosZ");
    fcars[id][fc_a] = cache_get_field_content_float(i, "PosA");
    fcars[id][fc_color1] = cache_get_field_content_int(i, "Color1");
    fcars[id][fc_color2] = cache_get_field_content_int(i, "Color2");
    fcars[id][fc_fracID] = cache_get_field_content_int(i, "FracID");
    cache_get_field_content(i,"Kennzeichen",fcars[id][e_plate],dbhandle,10);
    if(fcars[id][fc_modelID] >= 400 && fcars[id][fc_modelID] <= 611)
    {
    fcars[id][fc_vID] = CreateVehicle(fcars[id][fc_modelID], fcars[id][fc_x], fcars[id][fc_y], fcars[id][fc_z], fcars[id][fc_a], fcars[id][fc_color1], fcars[id][fc_color2], -1);
    SetVehicleNumberPlate(fcars[i][fc_vID],fcars[i][e_plate]);
    }
    else
    {
    printf("[Error] Model-ID %d existiert nicht (ID: %d).", fcars[id][fc_modelID], id);
    }
    if(GetVehicleModel(MAX_VEHICLES-1) != 0) return print("Es können keine weiteren Fahrzeuge geladen werden, Limit (MAX_VEHICLES) erreicht.");
    createdVehs++;
    if(createdVehs == MAX_FRAC_VEHICLES) return print("Es können keine weiteren Fahrzeuge geladen werden, Limit (MAX_FRAC_VEHICLES) erreicht.");
    }
    return 1;
    }

  • cache_get_field_content(i,"Kennzeichen",fcars[id][e_plate],dbhandle,10);
    zu:
    fcars[id][e_plate] = cache_get_field_content_int(i, "Kennzeichen");


    SetVehicleNumberPlate(fcars[i][fc_vID],fcars[i][e_plate]);
    zu:
    new str[10];
    format(str, sizeof(str), "ABC-%d", fcars[i][e_plate]);
    SetVehicleNumberPlate(fcars[i][fc_vID],str);

  • Beitrag von reaL. ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Jeffry:
    ich habe jetze das Problem mit mein VIP Cars und meinen Job cars wie muss ich das machen ?
    Job enum
    enum JobCars
    {
    Jobid,
    model,
    Float:c_x,
    Float:c_y,
    Float:c_z,
    Float:c_r,
    Color1,
    Color2,
    v_ID
    }


    so wird erstellt
    for(new c=0; c<sizeof(Jobc); c++)
    {
    Jobc[code=c][v_ID] = AddStaticVehicleEx(Jobc[code=c][model],Jobc[code=c][c_x],Jobc[code=c][c_y],Jobc[code=c][c_z],Jobc[code=c][c_r],Jobc[code=c][Color1],Jobc[code=c][Color2],-1);
    if(Jobc[code=c][Jobid] == 2)
    {
    SetVehicleNumberPlate(Jobc[code=c][v_ID],"Müllmann");
    }