Hallo,
Ich habe ein Problem mit den Farben meiner Fraktionsautos. Wenn ich das fahrzeug erstelle, dann ist alles ok, Auto wird erstellt, mit richtiger Farbe. Standartfarbe.
Danach ändere ich die Farbe, zb. auf 3. Ich habe einen Extrabefehl gemacht, der hieß /checkfarbe. Dieser Befehl gibt dann die Farbe aus, welche die Variable gerade hat. Kurz nachdem ändern ist es richtig, da steht dann drinne Farbe 1 soundso | Farbe 2 soundso. Das funktioniert, es wird auch richtig in die Datenbank gegeben und auch ausgelesen, das habe ich geprintet und es funktioniert einwandfrei. Das Fahrzeug wird beim Laden erstellt, da läuft es auch und wenn es dann richtig steht, dann hat es wieder die Standartfarbe.
Wenn ich die Fahrzeuge respawne, dann wird die Farbe auch zurückgesetzt. In den Befehl steht dann Farbe 1 = 0. Warum ist das so? Das Fahrzeug ist nicht schwarz. Ich kann die Fabr sooft ändern wie ich will, es ändert sich nichts. Nach jeden respawn ist es wieder die alte Farbe, obwohl es richtig gespeichert wird. Es hat immer funktioniert, seit 0.3.7 geht es gar nicht mehr. Ich habe schon einmal eine Frage gestellt, diesbezüglich, wegen einen anderen System, aber hier liegt der wahre Fehler. Es wird richtig ausgelesen, aber verschwindet trotzdem. Warum ist das so?
ocmd:fcarcolor(playerid,params[])
{
new farbe1,farbe2;
if(!DarfPlayerCommand(playerid))return ErrorMsg(playerid,"Du darfst keine Befehle nutzen.");
if(!IsPlayerAnAdmin(playerid,5))return ErrorMsg(playerid,"Du bist kein "#SERVERTAG" Teammitglied. /Dein Rang reicht nicht aus.");
if(sscanf(params,"ii",farbe1,farbe2))return ErrorMsg(playerid,"Nutze: /fcarcolor [farbe1] [farbe2]");
if(!IsPlayerInAnyVehicle(playerid))return ErrorMsg(playerid,"Du sitzt in keinen Fahrzeug.");
if(!isFraktAuto(GetPlayerVehicleID(playerid)))return ErrorMsg(playerid,"Das Fahrzeug in dem du sitzt gehört keiner Fraktion an.");
for(new i=1;i<MAX_AUTOS; i++)
{
if(FraktAuto[i][id_x]==GetPlayerVehicleID(playerid))
{
if(FraktAuto[FraktAuto[i][id_x]][besitzer]==SpielerInfo[playerid][Frakt]||IsPlayerAnAdmin(playerid,6))
{
FraktAuto[FraktAuto[i][id_x]][vfarbe1]=farbe1;
FraktAuto[FraktAuto[i][id_x]][vfarbe2]=farbe2;
ChangeVehicleColor(GetPlayerVehicleID(playerid),farbe1,farbe2);
format(string,sizeof(string),"Du hast die Farbe des %s's geändert.",GetVehicleName(GetVehicleModel(FraktAuto[i][id_x])));
SendClientMessage(playerid,COLOR_GRUEN,string);
OneFCarSave(FraktAuto[i][id_x]);
return 1;
}
}
}
return 1;
}
Alles anzeigen
So ändere ich die Farben. Die Farbe wird auch einwandfrei gesetzt, doch nach dem respawn ist FraktAuto[FraktAuto[i][id_x]][vfarbe2] immer auf 0, trotz richtiger auslesung, das ist seltsam.
Hier dürft ihr OneFCarSave sehen
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[i],carLSD[i],carMats[i]);
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[i],carHanf[i],carLunch[i],carKoks[i],distanz[i],carPizza[0][i],carPizza[1][i],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[i],carKit[i],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;
}
Alles anzeigen
Ich hoffe ihr könnt mir helfen. Liebe Grüße.