Beiträge von JOK3R

    Hmm in meinem Script ist das aber schon alles mit bei dem fcInfo O.o anscheint hat das forum gebuggt :x weil warum sollte ich das hier löschen ^^


    Trotzdem steht in der Server_Log nur Color1 und FracID wieder keine Color2 :/


    //Edit
    Okay Größter Facepalm der geschichte... kalppt alles
    Ich bin nur zu blöd um den command einzugen :x
    Ich habe /createfcar 567 (hier dann eigentlich FracID aber habe die Color hingeschrieben, 86) 86 und dann hier die Fraction 7 ...

    Ich habe beides versucht im chat kommt nix und in der DB wird auch nichts geändert.


    //Edit nvm Klappt doch aber was ich nicht verstehe das die Tabelle schon wieder die FracID mit der color 2 vertauscht ....
    Ich sehe auch keinen Fehler in der save funktion


    public SaveAllFracVehs()
    {
    new query[256];
    for(new i=0; i<MAX_FRAC_VEHICLES; i++)
    {
    if(fcInfo[e_modelID] >= 400 && fcInfo[e_modelID] <= 611)
    {
    GetVehiclePos(fcInfo[e_vID], fcInfo[e_x], fcInfo[e_y], fcInfo[e_z]);
    GetVehicleZAngle(fcInfo[e_vID], fcInfo[e_a]);
    format(query, sizeof(query), "UPDATE frakautos SET ModelID = '%d', PosX = '%f', PosY = '%f', PosZ = '%f', PosA = '%f', Color1 = '%d', Color2 = '%d', FracID = '%d' WHERE ID = '%d'",
    fcInfo[e_modelID], fcInfo[e_x], fcInfo[e_y], fcInfo[e_z], fcInfo[e_a], fcInfo[e_color1], fcInfo[e_color2], fcInfo[e_fracID], i);
    printf("query: %s", query);
    mysql_function_query(dbhandle, query, false, "", "");
    }
    }
    return 1;
    }


    stock SaveFracVehCheck(vehicleid)
    {
    new query[256];
    for(new i=0; i<MAX_FRAC_VEHICLES; i++)
    {
    if(fcInfo[e_vID] == vehicleid)
    {
    GetVehiclePos(fcInfo[e_vID], fcInfo[e_x], fcInfo[e_y], fcInfo[e_z]);
    GetVehicleZAngle(fcInfo[e_vID], fcInfo[e_a]);
    format(query, sizeof(query), "UPDATE frakautos SET ModelID = '%d', PosX = '%f', PosY = '%f', PosZ = '%f', PosA = '%f', Color1 = '%d', Color2 = '%d', FracID = '%d' WHERE ID = '%d'",
    fcInfo[e_modelID], fcInfo[e_x], fcInfo[e_y], fcInfo[e_z], fcInfo[e_a], fcInfo[e_color1], fcInfo[e_color2], fcInfo[e_fracID], i);
    printf("query: %s", query);
    mysql_function_query(dbhandle, query, false, "", "");
    return 1;
    }
    }
    return 0;
    }


    Und das hat mir die Server_Log gegeben.

    SQL
    [18:23:04] query: UPDATE frakautos SET ModelID = '567', PosX = '2485.520996', PosY = '-1680.021118', PosZ = '13.241792', PosA = '245.214797', Color1 = '86', Color2 = '7', FracID = '86' WHERE ID = '2'


    Normalerweise müsste hier auch noch eine 86 stehen, steht aber nicht 8| ich glaube dieses system verarscht mich :c


    [18:41:21] LoadFracVehicles_Data aufgerufen.
    [18:41:21] 1 Fahrzeuge gefunden.
    [18:41:21] id: 1
    [18:41:21] 567 2489.040039 -1678.020019 13.195199 275.597991 86 (86) 7
    [18:41:21] Erstellt: 40

    Okay passt :)
    Jetzt schon wieder ein befehl :/ Sorry wenn ich das jetzt hier alles in einem Thread mache aber will das jetzt gefixxt bekommen


    Habe noch nen changefcolor gemacht der aber auch nicht wirklich Klappen will :/



    ocmd:changefcolor(playerid,params[])
    {
    if(!isAdmin(playerid,4))return SendClientMessage(playerid,COLOR_RED,"Dein Adminrang ist zu niedrig.");
    new vehicleid,color1 = -1, color2 = -1;
    if(sscanf(params, "ddd",vehicleid,color1,color2)) return SendClientMessage(playerid,COLOR_GREY, "INFO: {FF9600}/changefcolor {B3B3B3}[VehicleID] [color1] [color2]");
    if(color1 < 0 || color1 > 255 || color2 < 0 || color2 > 255) return SendClientMessage(playerid,COLOR_RED, "Die Color-IDs müssen zwischen 0 und 255 sein!");
    for(new i=0; i<MAX_FRAC_VEHICLES; i++)
    {
    if(fcInfo[i][e_vID] == vehicleid)
    {
    fcInfo[i][e_color1] = color1;
    fcInfo[i][e_color1] = color2;
    ChangeVehicleColor(vehicleid, color1, color2);
    SaveFracVehCheck(vehicleid);
    break;
    }
    }
    return 1;
    }


    stock GetNearestVehicle(playerid, Float:Distance = 1000.0, bool:Mode)
    {
    if(!Distance) Distance = 10.0;
    new Float:X[2], Float:Y[2], Float:Z[2], Float:NearestPos = floatabs(Distance), NearestVehicle = INVALID_VEHICLE_ID;
    GetPlayerPos(playerid, X[1], Y[1], Z[1]);
    for(new i; i<MAX_AUTOS; i++)
    {
    if(!IsVehicleStreamedIn(i, playerid))continue;
    if(IsPlayerInVehicle(playerid, i)) continue;
    if(NearestPos > GetVehicleDistanceFromPoint(i,X[1], Y[1], Z[1])) NearestPos = GetVehicleDistanceFromPoint(i,X[1], Y[1], Z[1]), NearestVehicle = i;
    }
    return NearestVehicle;
    }

    Wow es Klappt :huh: :huh:


    Danke Manuel ^^


    Jetzt habe ich noch eine frage mein flock befehl klappt nicht richtig warum ?
    ocmd:flock(playerid,params[])
    {
    new string[128];
    new vehicleid;
    if(vehicleid==INVALID_VEHICLE_ID)return 1;
    for(new i=0; i<MAX_FRAC_VEHICLES; i++)
    {
    if(!IsPlayerInAnyVehicle(playerid))
    {
    vehicleid=GetNearestVehicle(playerid,fcInfo[i][e_vID],true);
    }
    else
    {
    vehicleid=GetPlayerVehicleID(playerid);
    }
    if(fcInfo[i][e_vID] == vehicleid)
    {
    if(sInfo[playerid][fraktion] != fcInfo[i][e_fracID])
    {
    if(!isFVehicleLocked(vehicleid))
    {
    flockVehicle(vehicleid);
    SetVehicleParamsForPlayer(fcInfo[i][e_vID],playerid,0,1);
    format(string,sizeof(string),"~w~%s ~r~abgeschlossen","Roller");
    GameTextForPlayer(playerid,string,2000,4);
    PlayerPlaySound(playerid,1027,0.0,0.0,0.0);
    return 1;
    }
    else
    {
    funlockVehicle(vehicleid);
    SetVehicleParamsForPlayer(fcInfo[i][e_vID],playerid,0,0);
    format(string,sizeof(string),"~w~%s ~g~aufgeschlossen","Roller");
    GameTextForPlayer(playerid,string,2000,4);
    PlayerPlaySound(playerid,1027,0.0,0.0,0.0);
    return 1;
    }
    }
    }
    }
    return 1;
    }


    stock SaveFracVehCheck(vehicleid)
    {
    new query[256];
    for(new i=0; i<MAX_FRAC_VEHICLES; i++)
    {
    if(fcInfo[i][e_vID] == vehicleid)
    {
    GetVehiclePos(fcInfo[i][e_vID], fcInfo[i][e_x], fcInfo[i][e_y], fcInfo[i][e_z]);
    GetVehicleZAngle(fcInfo[i][e_vID], fcInfo[i][e_a]);
    format(query, sizeof(query), "UPDATE frakautos SET ModelID = '%d', PosX = '%f', PosY = '%f', PosZ = '%f', PosA = '%f', Color1 = '%d', Color2 = '%d', FracID = '%d' WHERE ID = '%d'",
    fcInfo[i][e_modelID], fcInfo[i][e_x], fcInfo[i][e_y], fcInfo[i][e_z], fcInfo[i][e_a], fcInfo[i][e_color1], fcInfo[i][e_color2], fcInfo[i][e_fracID], i);
    printf("query: %s", query);
    mysql_function_query(dbhandle, query, false, "", "");
    return 1;
    }
    }
    return 0;


    }

    Hallo Community,


    Wäre gut wen @Jeffry antworten würde weil es aus seinem System basiert ist :p
    Hab wieder ein Problem wegen dem fraktionscar system :p
    Irgendwie speichert er die Positionen nicht Richtig ab nach dem fparken befehl hier sind die Screenshots


    Vor dem /fparken befehl:
    http://prntscr.com/7p4zeq


    http://fs2.directupload.net/images/150705/yvp6a6d7.png



    Nach dem /fparken befehl:
    http://prntscr.com/7p4zvx


    http://fs2.directupload.net/images/150705/m66d9728.png



    Hier der code


    ocmd:fparken(playerid)
    {
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_DRED, "Du bist in keinem Fahrzeug.");
    new vehicleid = GetPlayerVehicleID(playerid);
    if(SaveFracVehCheck(vehicleid)) return SendClientMessage(playerid, COLOR_DGREEN, "Fahrzeug geparkt.");
    else return SendClientMessage(playerid, COLOR_DRED, "Dieses Fahrzeug kann nicht geparkt werden.");
    }

    Da kommt dann das hier


    [18:08:36] params: 567 / vid: 567
    [18:08:36] i: 0 / e_vID: 0 / vid: 567
    [18:08:36] i: 1 / e_vID: 0 / vid: 567
    [18:08:36] i: 2 / e_vID: 0 / vid: 567
    [18:08:36] i: 3 / e_vID: 0 / vid: 567
    [18:08:36] i: 4 / e_vID: 0 / vid: 567
    [18:08:36] i: 5 / e_vID: 0 / vid: 567
    [18:08:36] i: 6 / e_vID: 0 / vid: 567
    [18:08:36] i: 7 / e_vID: 0 / vid: 567
    [18:08:36] i: 8 / e_vID: 0 / vid: 567
    [18:08:36] i: 9 / e_vID: 41 / vid: 567
    [18:08:36] Keins gefunden.

    hmm anscheint hat nur die Tabelle rum gebuggt :) sollte jetzt alles klappen danke Jeffry
    und gz für 10k Beiträge :p


    Ehm jetzt habe ich noch eine frage zu dem command


    ocmd:deletefcar(playerid, params[])
    {
    new vid;
    if(!IsNumeric(params) || !strlen(params)) return SendClientMessage(playerid, COLOR_GREY, "INFO: {FF9600}/deletefcar {B3B3B3}[Vehicle ID]");
    vid = strval(params);
    if(vid <= 0) return SendClientMessage(playerid, COLOR_DRED, "Error: Vehicle-ID ist kein Fraktions-Fahrzeug.");
    for(new i=0; i<MAX_FRAC_VEHICLES; i++)
    {
    if(fcInfo[i][e_vID] == vid)
    {
    fcInfo[i][e_modelID] = 0;
    fcInfo[i][e_x] = 0.0;
    fcInfo[i][e_y] = 0.0;
    fcInfo[i][e_z] = 0.0;
    fcInfo[i][e_a] = 0.0;
    fcInfo[i][e_color1] = 0;
    fcInfo[i][e_color2] = 0;
    fcInfo[i][e_fracID] = -1;
    new query[128];
    format(query, sizeof(query), "DELETE FROM FracVehicles WHERE ID = '%d'", i);
    mysql_function_query(dbhandle,query,false,"","");
    DestroyVehicle(fcInfo[i][e_vID]);
    fcInfo[i][e_vID] = 0;
    return SendClientMessage(playerid, COLOR_DGREEN, "** Das Fahrzeug wurde Erfolgreich gelöscht. **");
    }
    }
    return SendClientMessage(playerid, COLOR_DRED, "Error: Vehicle-ID ist kein Fraktions-Fahrzeug.");
    }


    Sobald ich den Command eingebe steht da Error: Vehicle-ID ist kein Fraktions-Fahrzeug

    Also entweder bin ich Blind oder blöd



    public SaveAllFracVehs()
    {
    new query[256];
    for(new i=0; i<MAX_FRAC_VEHICLES; i++)
    {
    if(fcInfo[i][e_modelID] >= 400 && fcInfo[i][e_modelID] <= 611)
    {
    GetVehiclePos(fcInfo[i][e_vID], fcInfo[i][e_x], fcInfo[i][e_y], fcInfo[i][e_z]);
    GetVehicleZAngle(fcInfo[i][e_vID], fcInfo[i][e_a]);
    format(query, sizeof(query), "UPDATE frakautos SET ModelID = '%d', PosX = '%f', PosY = '%f', PosZ = '%f', PosA = '%f', Color1 = '%d', Color2 = '%d', FracID = '%d' WHERE ID = '%d'",
    fcInfo[i][e_modelID], fcInfo[i][e_x], fcInfo[i][e_y], fcInfo[i][e_z], fcInfo[i][e_a], fcInfo[i][e_color1], fcInfo[i][e_color2], fcInfo[i][e_fracID], i);
    mysql_function_query(dbhandle, query, false, "", "");
    }
    }
    return 1;
    }


    stock SaveFracVehCheck(vehicleid)
    {
    new query[256];
    for(new i=0; i<MAX_FRAC_VEHICLES; i++)
    {
    if(fcInfo[i][e_vID] == vehicleid)
    {
    GetVehiclePos(fcInfo[i][e_vID], fcInfo[i][e_x], fcInfo[i][e_y], fcInfo[i][e_z]);
    GetVehicleZAngle(fcInfo[i][e_vID], fcInfo[i][e_a]);
    format(query, sizeof(query), "UPDATE frakautos SET ModelID = '%d', PosX = '%f', PosY = '%f', PosZ = '%f', PosA = '%f', Color1 = '%d', Color2 = '%d', FracID = '%d' WHERE ID = '%d'",
    fcInfo[i][e_modelID], fcInfo[i][e_x], fcInfo[i][e_y], fcInfo[i][e_z], fcInfo[i][e_a], fcInfo[i][e_color1], fcInfo[i][e_color2], fcInfo[i][e_fracID], i);
    mysql_function_query(dbhandle, query, false, "", "");
    return 1;
    }
    }
    return 0;


    }

    das ?

    LoadFracVehicles()
    {
    new vehicleid, query[128];
    format(query,sizeof(query),"SELECT * FROM frakautos ORDER BY ID ASC");
    mysql_function_query(dbhandle,query,true,"LoadFracVehicles_Data","i",vehicleid);
    return 1;
    }


    public LoadFracVehicles_Data()
    {
    new rows, id, createdVehs;
    new num_fields,num_rows;
    cache_get_data(num_rows,num_fields,dbhandle);
    for(new i=0; i<rows; i++)
    {
    id = cache_get_field_content_int(i, "ID");
    if(id < 0 || id >= MAX_FRAC_VEHICLES) continue;
    fcInfo[id][e_modelID] = cache_get_field_content_int(i, "ModelID");
    fcInfo[id][e_x] = cache_get_field_content_float(i, "PosX");
    fcInfo[id][e_y] = cache_get_field_content_float(i, "PosY");
    fcInfo[id][e_z] = cache_get_field_content_float(i, "PosZ");
    fcInfo[id][e_a] = cache_get_field_content_float(i, "PosA");
    fcInfo[id][e_color1] = cache_get_field_content_int(i, "Color1");
    fcInfo[id][e_color2] = cache_get_field_content_int(i, "Color2");
    fcInfo[id][e_fracID] = cache_get_field_content_int(i, "FracID");
    if(fcInfo[id][e_modelID] >= 400 && fcInfo[id][e_modelID] <= 611)
    {
    fcInfo[id][e_vID] = CreateVehicle(fcInfo[id][e_modelID], fcInfo[id][e_x], fcInfo[id][e_y], fcInfo[id][e_z], fcInfo[id][e_a], fcInfo[id][e_color1], fcInfo[id][e_color2], -1);
    }
    else
    {
    printf("[ERROR] Model-ID %d existiert nicht (ID: %d).", fcInfo[id][e_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;
    }

    /*
    public LoadFractionCars()
    {
    new val[128],query[256];
    for(new idx;idx<MAX_FRACTION_CARS; idx++)
    {
    format(query, sizeof(query), "SELECT * FROM `frakcars` WHERE `id` = %d", idx);
    mysql_query();
    mysql_store_result();
    if(mysql_retrieve_row())
    {
    mysql_fetch_field_row(val,"VehID");
    FractionCars[idx][fVehid] = strval(val);
    mysql_fetch_field_row(val,"PosX");
    FractionCars[idx][fPos][0] = strval(val);
    mysql_fetch_field_row(val,"PosY");
    FractionCars[idx][fPos][1] = strval(val);
    mysql_fetch_field_row(val,"PosZ");
    FractionCars[idx][fPos][2] = strval(val);
    mysql_fetch_field_row(val,"PosR");
    FractionCars[idx][fPos][3] = strval(val);
    mysql_fetch_field_row(val,"Col1");
    FractionCars[idx][fCol][0] = strval(val);
    mysql_fetch_field_row(val,"Col2");
    FractionCars[idx][fCol][1] = strval(val);
    mysql_fetch_field_row(val,"Fraktion");
    FractionCars[idx][frak_ID] = strval(val);
    }
    mysql_free_result();
    if(FractionCars[idx][fVehid] >= 400 && FractionCars[idx][fVehid] <= 611)
    {
    FractionCars[idx][fCarid] = CreateVehicle(FractionCars[idx][fVehid],FractionCars[idx][fPos][0],FractionCars[idx][fPos][1],FractionCars[idx][fPos][2],FractionCars[idx][fPos][3],FractionCars[idx][fCol][0],FractionCars[idx][fCol][1], -1);
    SetVehicleNumberPlate(FractionCars[idx][fCarid], fInfo[FractionCars[idx][frak_ID]-1]);
    SetVehicleToRespawn(FractionCars[idx][fCarid]);
    FractionCars[idx][fLock] = true;
    }
    }
    }
    */


    Ich habe es mal mit deinem halt versucht mit
    LoadFracVehicles_Data


    //edit
    ich benutze auch schon gar nicht mehr die Tabelle die ich erstellt habe
    Benutze im Moment die du im Tutorial gemacht hast.
    Und da klappt auch alles super mit dem Speicher nur das Problem ist halt das er das Auto nach dem Restart nicht spawnt.

    Ich habe mir mal dein Fraktion System Tutorial angesehen und vieles verändert aber aus irgendeinem Grund wird das auto trotzdem nach dem Restart nicht gespawnt was ist den Falsch :huh: :huh: ????


    Und wen ich mysql_query(); mache bekomme ich einen error

    Okay jetzt zeigt er es an
    http://prntscr.com/7ovmtz
    Aber das auto wird nicht gespawnt nach dem restart.
    Ich habe glaube ich das spawnen vom fahrzeug vergessen


    //edit
    Obwohl ich habe doch in der LoadFraction funktion drin stehen


    if(FractionCars[idx][fVehid] >= 400 && FractionCars[idx][fVehid] <= 611) {
    FractionCars[idx][fCarid] = CreateVehicle(FractionCars[idx][fVehid],FractionCars[idx][fPos][0],FractionCars[idx][fPos][1],FractionCars[idx][fPos][2],FractionCars[idx][fPos][3],FractionCars[idx][fCol][0],FractionCars[idx][fCol][1], -1);
    SetVehicleNumberPlate(FractionCars[idx][fCarid], fInfo[FractionCars[idx][fraktion]-1]);
    SetVehicleToRespawn(FractionCars[idx][fCarid]); }


    Wird aber trotzdem nicht gespawnt :/