Nabend zusammen.
Voweg: ich bin ein absoluter Scriptneuling, befasse mich damit erst seit ca. 1 Woche. Habe mich anhand Tutorials auf Youtube rangetastet und bin nun dabei die übernommenen Systeme auf eigene Faust zu erweitern (um präzise zu werden, ich benutze das System von MrMonat's Tutorials).
Zur Sache: ich benutze MySQL als Datenbank und möchte an Fahrzeugen angebrachtes Tuning speichern. Dafür habe ich für jeden 'Carmod-Typ' (also Spoiler, Felgen etc.) eine eigene Spalte in meiner 'Autos' MySQL Tabelle erstellt und die entsprechenden Variablen meinem AutoEnum hinzugefügt. Welches Tuning verbaut ist wollte ich dann entweder bei OnVehicleMod oder OnEnterExitModShop (Funktioniert das bei beiden?) auslesen, das ganze per GetVehicleComponentInSlot.
Hier der Code, den ich mir dafür überlegt habe:
{
for(new i=0; i<sizeof(cInfo); i++)
{
if(cInfo[i][id_x]==0)continue;
if(cInfo[i][besitzer]!=sInfo[playerid][db_id])continue;
cInfo[i][c_spoiler] = GetVehicleComponentInSlot(cInfo[i][id_x],CARMODTYPE_SPOILER);
new query[128];
format(query,sizeof(query),"UPDATE autos SET c_spoiler='%i' WHERE id='%i'",cInfo[i][c_spoiler]);
mysql_function_query(dbhandle,query,false,"","");
}
return 1;
}
Leider haut das nicht hin. Wichtig zu erwähnen ist aber, dass das ganze rückwärts bereits einwandfrei funktioniert! D.h., wenn ich in meiner MySQL Datenbank die Spalte "c_spoiler" mit der entsprechenden Komponenten ID fülle und ins Spiel gehe, wird das Auto tatsächlich mit dem korrekten Tuningteil geladen. Es funktioniert nur nicht das Auslesen und Speichern der Teile in die Datenbank.
Hier nochmal der Code, den ich fürs Laden verwende, falls relevant:
{
new num_fields,num_rows;
cache_get_data(num_rows,num_fields,dbhandle);
if(!num_rows)return 1;
for(new i=0; i<num_rows; i++)
{
new id=getFreeCarID();
cInfo[id][model]=cache_get_field_content_int(i,"model",dbhandle);
cInfo[id][carcol1]=cache_get_field_content_int(i,"carcol1",dbhandle);
cInfo[id][carcol2]=cache_get_field_content_int(i,"carcol2",dbhandle);
cInfo[id][c_spoiler]=cache_get_field_content_int(i,"c_spoiler",dbhandle);
cInfo[id][c_hood]=cache_get_field_content_int(i,"c_hood",dbhandle);
cInfo[id][c_roof]=cache_get_field_content_int(i,"c_roof",dbhandle);
cInfo[id][c_side]=cache_get_field_content_int(i,"c_side",dbhandle);
cInfo[id][c_lamps]=cache_get_field_content_int(i,"c_lamps",dbhandle);
cInfo[id][c_nitro]=cache_get_field_content_int(i,"c_nitro",dbhandle);
cInfo[id][c_exhaust]=cache_get_field_content_int(i,"c_exhaust",dbhandle);
cInfo[id][c_wheels]=cache_get_field_content_int(i,"c_wheels",dbhandle);
cInfo[id][c_stereo]=cache_get_field_content_int(i,"c_stereo",dbhandle);
cInfo[id][c_hydraulics]=cache_get_field_content_int(i,"c_hydraulics",dbhandle);
cInfo[id][c_fbump]=cache_get_field_content_int(i,"c_fbump",dbhandle);
cInfo[id][c_rbump]=cache_get_field_content_int(i,"c_rbump",dbhandle);
cInfo[id][c_ventleft]=cache_get_field_content_int(i,"c_ventleft",dbhandle);
cInfo[id][c_ventright]=cache_get_field_content_int(i,"c_ventright",dbhandle);
cInfo[id][besitzer]=cache_get_field_content_int(i,"besitzer",dbhandle);
cInfo[id][c_x]=cache_get_field_content_float(i,"x",dbhandle);
cInfo[id][c_y]=cache_get_field_content_float(i,"y",dbhandle);
cInfo[id][c_z]=cache_get_field_content_float(i,"z",dbhandle);
cInfo[id][c_r]=cache_get_field_content_float(i,"r",dbhandle);
cInfo[id][db_id]=cache_get_field_content_int(i,"id",dbhandle);
cInfo[id][id_x]=CreateVehicle(cInfo[id][model],cInfo[id][c_x],cInfo[id][c_y],cInfo[id][c_z],cInfo[id][c_r],cInfo[id][carcol1],cInfo[id][carcol2],-1);
AddVehicleComponent(cInfo[id][id_x],cInfo[id][c_spoiler]);
AddVehicleComponent(cInfo[id][id_x],cInfo[id][c_hood]);
AddVehicleComponent(cInfo[id][id_x],cInfo[id][c_roof]);
AddVehicleComponent(cInfo[id][id_x],cInfo[id][c_side]);
AddVehicleComponent(cInfo[id][id_x],cInfo[id][c_lamps]);
AddVehicleComponent(cInfo[id][id_x],cInfo[id][c_nitro]);
AddVehicleComponent(cInfo[id][id_x],cInfo[id][c_exhaust]);
AddVehicleComponent(cInfo[id][id_x],cInfo[id][c_wheels]);
AddVehicleComponent(cInfo[id][id_x],cInfo[id][c_stereo]);
AddVehicleComponent(cInfo[id][id_x],cInfo[id][c_hydraulics]);
AddVehicleComponent(cInfo[id][id_x],cInfo[id][c_fbump]);
AddVehicleComponent(cInfo[id][id_x],cInfo[id][c_rbump]);
AddVehicleComponent(cInfo[id][id_x],cInfo[id][c_ventleft]);
AddVehicleComponent(cInfo[id][id_x],cInfo[id][c_ventright]);
tank[cInfo[i][id_x]]=cache_get_field_content_int(i,"c_tank",dbhandle);
}
return 1;
}
Wenn es ein total banaler Fehler oder Quatsch von mir ist, bitte ich um Nachsicht. Danke im Voraus!