Ich grüße euch Breadfisch, ich habe ein Problem bei meinem Fraktionsfahrzeugen, die nicht richtig gespeichert werden,
naja eine Variable wird nicht richtig gespeichert, ich hoffe ihr könnt mir da ein bisschen helfen, da ich den Sinn nicht verstehe,
vielleicht könnt ihr mir ja allgemein helfen, vielleicht hab ich komplett etwas falsch gemacht, naja, ich bin mir aber über keinen Fehler bewusst.
Bevor ich zum Problem überschreite, ein paar Daten die hilfreich sein können.
MySQL-Infos
Server: Localhost via UNIX socket
Server-Typ: MySQL
Server Version: 5.1.73-1 - (Debian)
Protokoll-Version: 10
Benutzer: samp4337@localhost
Server Zeichensatz: UTF-8 Unicode
(utf8)
Fehlerbeschreibung
Also der Fehler ist dieser, ich fahre ein bisschen mit einem frisch erstellten Fraktionsfahrzeug herum, dann mache ich irgendwann einmal /fparken, dann
wird alles sofort gespeichert, das Fahrzeug wird kurz gelöscht und sofort wieder erstellt, es sollten Dabei keine Daten verloren gehen, jedenfalls, zeigt der Tachometer immer seine richtige KM-Anzahl an, bspw. 3.1km usw. nachdem der Befehl /fparken ausgeführt wurde, ist die distanz, das was ich gefahren bin im Beispiel wieder 0.0 km, sie wurde einfach resettet ohne jeglichen Grund, es ist auch nichts zu finden, was das resettet, das ist schon etwas doof, denn die distanz sollte wegen dem Oilwechsel und Tüvsystem gespeichert werden und nicht bei /fparken resettet werden. Das ist sehr komisch, vielleicht kennt der eine oder andere das Problem, und kann mir da beistehen.
Die Scriptfunktion
ocmd:fparken(playerid)
{
if(!DarfPlayerCommand(playerid))return ErrorMsg(playerid,"Du kannst keine Befehle nutzen.");
if(SpielerInfo[playerid][Frakt]==0&&!isImporter(playerid))return ErrorMsg(playerid,"Du bist nicht in der jewaligen Fraktion.");
if(SpielerInfo[playerid][leader]==0&&!isImporter(playerid))return ErrorMsg(playerid,"Du bist kein Leader.");
if(GetPlayerVehicleSeat(playerid)!=0)return ErrorMsg(playerid,"Du bist nicht der Fahrer des Fahrzeuges.");
for(new i=1;i<MAX_AUTOS;i++)
{
if(FraktAuto[i][id_x]!=GetPlayerVehicleID(playerid))continue;
if(FraktAuto[i][besitzer]==SpielerInfo[playerid][Frakt]||FraktAuto[i][besitzer]==32&&SpielerInfo[playerid][Frakt]==4||isImporter(playerid)&&FraktAuto[i][besitzer]==31)
{
SendClientMessage(playerid,COLOR_GRUEN,"Du hast das Fahrzeug erfolgreich umgeparkt.");
GetVehiclePos(FraktAuto[i][id_x],FraktAuto[i][v_xc],FraktAuto[i][v_yc],FraktAuto[i][v_zc]);
GetVehicleZAngle(FraktAuto[i][id_x],FraktAuto[i][v_ac]);
OneFCarSave(i);
FCarSpawner(i);
PutPlayerInVehicle(playerid,FraktAuto[i][id_x],0);
return 1;
}
}
return 1;
}
-------------------------------------
stock OneFCarSave(i)
{
new amainquery[1000],aquery[500];
if(FraktAuto[i][vmodel]!=0)
{
GetVehiclePos(FraktAuto[i][id_x],FraktAuto[i][v_xc],FraktAuto[i][v_yc],FraktAuto[i][v_zc]);
GetVehicleZAngle(FraktAuto[i][id_x],FraktAuto[i][v_ac]);
format(aquery,sizeof(aquery),"UPDATE `fraktautos` SET `besitzer`='%i',`model`='%i',`paintjob`='%i',`farbe1`='%i',`farbe2`='%i',`vmod0`='%i',`vmod1`='%i',`vmod2`='%i',`vmod3`='%i',`vmod4`='%i',`vmod5`='%i',",
FraktAuto[i][besitzer],FraktAuto[i][vmodel],FraktAuto[i][paintjob],FraktAuto[i][vfarbe1],FraktAuto[i][vfarbe2],FraktAuto[i][vmod0],FraktAuto[i][vmod1],FraktAuto[i][vmod2],FraktAuto[i][vmod3],FraktAuto[i][vmod4],FraktAuto[i][vmod5]);
strcat(amainquery,aquery);
format(aquery,sizeof(aquery),"`vmod6`='%i',`vmod7`='%i',`vmod8`='%i',`vmod9`='%i',`vmod10`='%i',`vmod11`='%i',`vmod12`='%i',`vmod13`='%i',`benzin`='%i',`kaputt`='%i',`carlsd`='%i',`carmats`='%i',",
FraktAuto[i][vmod6],FraktAuto[i][vmod7],FraktAuto[i][vmod8],FraktAuto[i][vmod9],FraktAuto[i][vmod10],FraktAuto[i][vmod11],FraktAuto[i][vmod12],FraktAuto[i][vmod13],FraktAuto[i][benzin],istkaputt[FraktAuto[i][id_x]],carLSD[FraktAuto[i][id_x]],carMats[FraktAuto[i][id_x]]);
strcat(amainquery,aquery);
format(aquery,sizeof(aquery),"`carc4`='%i',`carhanf`='%i',`carlunch`='%i',`carkoks`='%i',`distance`='%f',`carpizza0`='%i',`carpizza1`='%i',`lastwechsel`='%i',`neon`='%i',`x`='%f',",
carC4[FraktAuto[i][id_x]],carHanf[FraktAuto[i][id_x]],carLunch[FraktAuto[i][id_x]],carKoks[FraktAuto[i][id_x]],distanz[FraktAuto[i][id_x]],carPizza[0][FraktAuto[i][id_x]],carPizza[1][FraktAuto[i][id_x]],FraktAuto[i][lastwechsel],FraktAuto[i][neon],FraktAuto[i][v_xc]);
strcat(amainquery,aquery);
format(aquery,sizeof(aquery),"`y`='%f',`z`='%f',`a`='%f',`preis`='%i',`dunger`='%i',`carkit`='%i' WHERE `id`='%i'",
FraktAuto[i][v_yc],FraktAuto[i][v_zc],FraktAuto[i][v_ac],FraktAuto[i][preis],carDunger[FraktAuto[i][id_x]],carKit[FraktAuto[i][id_x]],FraktAuto[i][d_id]);
strcat(amainquery,aquery);
mysql_query(amainquery);
mysql_free_result();
strdel(amainquery,0,sizeof(amainquery));
strdel(aquery,0,sizeof(aquery));
printf("- Fraktionsfahrzeug %d gespeichert -",i);
}
return 1;
}
-------------------------------------
forward FCarSpawner(i);
------------------------------------
public FCarSpawner(i)
{
DestroyVehicle(FraktAuto[i][id_x]);
FraktAuto[i][id_x]=CreateVehicleEx(FraktAuto[i][vmodel],FraktAuto[i][v_xc],FraktAuto[i][v_yc],FraktAuto[i][v_zc],FraktAuto[i][v_ac],FraktAuto[i][vfarbe1],FraktAuto[i][vfarbe2],-1);
if(FraktAuto[i][besitzer]==13){format(string,sizeof(string),"Präsi");}
else
{
if(FraktAuto[i][besitzer]==31||FraktAuto[i][besitzer]==32)
{
if(FraktAuto[i][preis]==789){format(string,sizeof(string),"Import");}
if(FraktAuto[i][preis]==1789){format(string,sizeof(string),"Gebraucht");}
}
else{format(string,sizeof(string),"%s-%d",getFCarOwner(FraktAuto[i][besitzer]),FraktAuto[i][id_x]);}
}
SetVehicleNumberPlateEx(FraktAuto[i][id_x],string);
FahrzeugTunen(i);
switch(GetVehicleModel(i))
{
case 433:{SetVehicleHealth(i,3250.0);}
case 432:{SetVehicleHealth(i,10000);}
case 528:{SetVehicleHealth(i,4000);}
case 601:{SetVehicleHealth(i,4000);}
case 596:{SetVehicleHealth(i,1500);}
case 598:{SetVehicleHealth(i,1500);}
case 597:{SetVehicleHealth(i,1500);}
case 599:{SetVehicleHealth(i,1500);}
case 427:{SetVehicleHealth(i,3000);}
case 490:{SetVehicleHealth(i,2500);}
case 470:{SetVehicleHealth(i,2000);}
case 428:{SetVehicleHealth(i,4000);}
}
return 1;
}
---------------------------
stock FahrzeugTunen(vehicle)
{
if(vehicle==INVALID_VEHICLE_ID||vehicle==0)return 1;
new vehicleid=vehicle;
for(new j=1;j<MAX_AUTOS;j++)
{
if(PlayerAuto[j][id_x]==vehicle)
{
if(PlayerAuto[j][vmod0]){AddVehicleComponent(vehicle,PlayerAuto[j][vmod0]);}
if(PlayerAuto[j][vmod1]){AddVehicleComponent(vehicle,PlayerAuto[j][vmod1]);}
if(PlayerAuto[j][vmod2]){AddVehicleComponent(vehicle,PlayerAuto[j][vmod2]);}
if(PlayerAuto[j][vmod3]){AddVehicleComponent(vehicle,PlayerAuto[j][vmod3]);}
if(PlayerAuto[j][vmod4]){AddVehicleComponent(vehicle,PlayerAuto[j][vmod4]);}
if(PlayerAuto[j][vmod5]){AddVehicleComponent(vehicle,PlayerAuto[j][vmod5]);}
if(PlayerAuto[j][vmod6]){AddVehicleComponent(vehicle,PlayerAuto[j][vmod6]);}
if(PlayerAuto[j][vmod7]){AddVehicleComponent(vehicle,PlayerAuto[j][vmod7]);}
if(PlayerAuto[j][vmod8]){AddVehicleComponent(vehicle,PlayerAuto[j][vmod8]);}
if(PlayerAuto[j][vmod9]){AddVehicleComponent(vehicle,PlayerAuto[j][vmod9]);}
if(PlayerAuto[j][vmod10]){AddVehicleComponent(vehicle,PlayerAuto[j][vmod10]);}
if(PlayerAuto[j][vmod11]){AddVehicleComponent(vehicle,PlayerAuto[j][vmod11]);}
if(PlayerAuto[j][vmod12]){AddVehicleComponent(vehicle,PlayerAuto[j][vmod12]);}
if(PlayerAuto[j][vmod13]){AddVehicleComponent(vehicle,PlayerAuto[j][vmod13]);}
if(PlayerAuto[j][paintjob]!=-1){ChangeVehiclePaintjob(vehicle,PlayerAuto[j][paintjob]);}
if(neon_1[vehicleid]==0&&PlayerAuto[j][neon]!=0&&neonan[vehicleid]==1)
{
new Float:xc,Float:yc,Float:zc;
GetVehiclePos(vehicleid,xc,yc,zc);
neon_1[vehicleid]=CreateDynamicObject(PlayerAuto[j][neon],xc,yc,zc,0,0,0);
AttachDynamicObjectToVehicle(neon_1[vehicleid], vehicleid, -0.8, 0.0, -0.5, 0.0, 0.0, 0.0);
}
if(neon_2[vehicleid]==0&&PlayerAuto[j][neon]!=0&&neonan[vehicleid]==1)
{
new Float:xc,Float:yc,Float:zc;
GetVehiclePos(vehicleid,xc,yc,zc);
neon_2[vehicleid]=CreateDynamicObject(PlayerAuto[j][neon],xc,yc,zc,0,0,0);
AttachDynamicObjectToVehicle(neon_2[vehicleid], vehicleid, 0.8, 0.0, -0.5, 0.0, 0.0, 0.0);
}
return 1;
}
if(FraktAuto[j][id_x]==vehicle)
{
if(FraktAuto[j][vmod0]){AddVehicleComponent(vehicle,FraktAuto[j][vmod0]);}
if(FraktAuto[j][vmod1]){AddVehicleComponent(vehicle,FraktAuto[j][vmod1]);}
if(FraktAuto[j][vmod2]){AddVehicleComponent(vehicle,FraktAuto[j][vmod2]);}
if(FraktAuto[j][vmod3]){AddVehicleComponent(vehicle,FraktAuto[j][vmod3]);}
if(FraktAuto[j][vmod4]){AddVehicleComponent(vehicle,FraktAuto[j][vmod4]);}
if(FraktAuto[j][vmod5]){AddVehicleComponent(vehicle,FraktAuto[j][vmod5]);}
if(FraktAuto[j][vmod6]){AddVehicleComponent(vehicle,FraktAuto[j][vmod6]);}
if(FraktAuto[j][vmod7]){AddVehicleComponent(vehicle,FraktAuto[j][vmod7]);}
if(FraktAuto[j][vmod8]){AddVehicleComponent(vehicle,FraktAuto[j][vmod8]);}
if(FraktAuto[j][vmod9]){AddVehicleComponent(vehicle,FraktAuto[j][vmod9]);}
if(FraktAuto[j][vmod10]){AddVehicleComponent(vehicle,FraktAuto[j][vmod10]);}
if(FraktAuto[j][vmod11]){AddVehicleComponent(vehicle,FraktAuto[j][vmod11]);}
if(FraktAuto[j][vmod12]){AddVehicleComponent(vehicle,FraktAuto[j][vmod12]);}
if(FraktAuto[j][vmod13]){AddVehicleComponent(vehicle,FraktAuto[j][vmod13]);}
if(FraktAuto[j][paintjob]!=-1){ChangeVehiclePaintjob(vehicle,FraktAuto[j][paintjob]);}
if(neon_1[vehicleid]==0&&FraktAuto[j][neon]!=0&&neonan[vehicleid]==1)
{
new Float:xc,Float:yc,Float:zc;
GetVehiclePos(vehicleid,xc,yc,zc);
neon_1[vehicleid]=CreateDynamicObject(FraktAuto[j][neon],xc,yc,zc,0,0,0);
AttachDynamicObjectToVehicle(neon_1[vehicleid], vehicleid, -0.8, 0.0, -0.5, 0.0, 0.0, 0.0);
}
if(neon_2[vehicleid]==0&&FraktAuto[j][neon]!=0&&neonan[vehicleid]==1)
{
new Float:xc,Float:yc,Float:zc;
GetVehiclePos(vehicleid,xc,yc,zc);
neon_2[vehicleid]=CreateDynamicObject(FraktAuto[j][neon],xc,yc,zc,0,0,0);
AttachDynamicObjectToVehicle(neon_2[vehicleid], vehicleid, 0.8, 0.0, -0.5, 0.0, 0.0, 0.0);
}
return 1;
}
printf("Fehler beim Tunen aufgetreten. Fahrzeug nicht gefunden. ID: %i",j);
return 1;
}
return 1;
}
------------------------
So und das wars, es ist sicherlich scheiße umständlich und kostet jede Menge Zeit sich dem anzunehmen, aber lasst euch ruhig Zeit,
hoffentlich gibt es da eine hilfe.
LG Dr.Brummer