Hallo Leute, Ich habe nun endlich mein Carsystem fertig und mutte festtellen das, überall wo SetVehiclePaeramsEx stand nichts passirt
Hier ein Beispiel:
switch(Vehicle[i][Abgeschlossen])
{
case 1:
{
Vehicle[i][Abgeschlossen] = 0;
printf("%d",Vehicle[i][Abgeschlossen]);
dini_IntSet(Autodatei,"Abgeschlossen",0);
SetVehicleParamsEx(i,Vehicle[i][engine],Vehicle[i][lights],Vehicle[i][alarm],Vehicle[i][Abgeschlossen],Vehicle[i][bonnet],Vehicle[i][boot],0);
SendClientMessage(playerid,COLOR_GREEN, "Auto aufgeschlossen");
return 1;
}
Ein sehr langer CMD(Ser stark gekürtzts) auch zum Abschlueßen des Autos.
Es funktionirt alles die Variable Abegschlossen wird auf 1 oder 0 gesetzt und geprintet dann in die Datei geschrieben aber das Auto wird nicht abgeschlossen.
Die Nachricht am ende wird dann auch noch gut ausgegeben.
Meine Frage:Wiso wird das Auto nicht abgeschlossen.Es funktionirt weder beim Motor,Kofferraum,Motorhaube,Lcihter und alle sehen so ähnlich aus wie oben, nur mit anderen variabeln.
SetVehicleParamsEx wird nicht ausgeführt
- carlos1710
- Geschlossen
- Erledigt
-
-
-
Ich habe vergessen zu erwähnen, das hab ich ganz oben unter OnGameMode
Ist also drinn -
Mach überall mal print rein ob der überhaupt bis dahin hinkommt
-
Der kommt bis dahin, Wie oben beschrieben ist ein print drinne
printf("%d",Vehicle[i][Abgeschlossen]);
Das wird aufgerufen und die variable wird auch von 1 auf 0 gesetzt wie es sein soll.
und der letzte debug ist die ClientMessage die auch aufgerufen/angezeigt wird -
SendClientMessage(playerid,COLOR_GREEN, "Auto aufgeschlossen");
Den siehst du auch?
Dann poste mal deinSetVehicleParamsEx(i,Vehicle[i][engine],Vehicle[i][lights],Vehicle[i][alarm],Vehicle[i][Abgeschlossen],Vehicle[i][bonnet],Vehicle[i][boot],0);
-
Ich verstehe nicht ganz, hier mal ein gröserer Ausschnitt.
switch(Vehicle[i][Abgeschlossen])
{
case 1:
{
Vehicle[i][Abgeschlossen] = 0;
printf("%d",Vehicle[i][Abgeschlossen]);
dini_IntSet(Autodatei,"Abgeschlossen",0);
SetVehicleParamsEx(i,Vehicle[i][engine],Vehicle[i][lights],Vehicle[i][alarm],Vehicle[i][Abgeschlossen],Vehicle[i][bonnet],Vehicle[i][boot],0);
SendClientMessage(playerid,COLOR_GREEN, "Auto aufgeschlossen");
return 1;
}
case 0:
{
Vehicle[i][Abgeschlossen] = 1;
printf("%d",Vehicle[i][Abgeschlossen]);
dini_IntSet(Autodatei,"Abgeschlossen",1);
SetVehicleParamsEx(i,Vehicle[i][engine],Vehicle[i][lights],Vehicle[i][alarm],Vehicle[i][Abgeschlossen],Vehicle[i][bonnet],Vehicle[i][boot],0);
SendClientMessage(playerid,COLOR_RED, "Auto abgeschlossen");
return 1;
}
}
Ist ebenfalls noch stark gekürtzt auch hier funktionirt alles ist das auto offen, solle es zu gemacht werden, ist es wir wird es auf gemacht.
Ich bekomme die Prints die stimmen und die Clientmessage, die je nach fall die richtige ist.
Nur ist das auto nicht offen zu.
Der selbe Code mit anderen variablen ist auhc bei motorhaube kofferraum usw funktionirt auch nicht ganz
//EDIT: Ich habe gerade herausgefunden, dass diese Funktion nirgendwo im Script funktionirt. -
//Edit nehme ich zurück!
Bitte mal SetVehicleParamsEx hier rein posten
-
SetVehicleParamsEx(i,Vehicle[i][engine],Vehicle[i][lights],Vehicle[i][alarm],Vehicle[i][Abgeschlossen],Vehicle[i][bonnet],Vehicle[i][boot],0);
-
Mach mal
GetVehicleParamsEx
und lass dir mal das Ergebnis in einem Format nach dem SetVehicle rausgeben bitte
-
also
Ich hab das nun printen lassen
SetVehicleParamsEx(i,Vehicle[i][engine],Vehicle[i][lights],Vehicle[i][alarm],Vehicle[i][Abgeschlossen],Vehicle[i][bonnet],Vehicle[i][boot],0);
GetVehicleParamsEx(i,ba,bs,bd,bf,bg,bb,bgg);
printf("Der Fahrzeugstatus:%d,%d,%d,%d,%d,%d,%d",ba,bs,bd,bf,bgg,bb);
In der console steht über alle ne 0
Der Farhzeugstatus: 0,0,0,0,0... -
Dann passt was mit dem i nicht... definitiv!
Lass dir mal das i ausgeben ob die carid überhaupt passt -
Mit i muss alles passen i ist in einer schleife die alle autos abfährt
-
Sicher das nicht irgendwo ein return drin ist oder so? Teste es halt mal
-
Ein anderes Beispiel selbes Problem hier
for(new i = 1; i < nextcarID; i++)
{
new Autodatei[50];
format(Autodatei,50,"/Autos/%d.txt",i);
Vehicle[i][modelid] = dini_Int(Autodatei,"modelid");
Vehicle[i][HP] = dini_Int(Autodatei,"HP");
format(Vehicle[i][Nummernschild],50,dini_Get(Autodatei,"Nummernschild"));
Vehicle[i][Farbe1] = dini_Int(Autodatei,"Farbe1");
Vehicle[i][Farbe2] = dini_Int(Autodatei,"Farbe2");
Vehicle[i][Paintjob] = dini_Int(Autodatei,"Paintjob");
Vehicle[i][posx] = dini_Int(Autodatei,"posx");
Vehicle[i][posy] = dini_Int(Autodatei,"posy");
Vehicle[i][posz] = dini_Int(Autodatei,"posz");
Vehicle[i][posa] = dini_Int(Autodatei,"posa");
Vehicle[i][Abgeschlossen] = dini_Int(Autodatei,"Abgeschlossen");
Vehicle[i][engine] = dini_Int(Autodatei,"engine");
Vehicle[i][lights] = dini_Int(Autodatei,"lights");
Vehicle[i][alarm] = dini_Int(Autodatei,"alarm");
Vehicle[i][doors] = dini_Int(Autodatei,"doors");
Vehicle[i][bonnet] = dini_Int(Autodatei,"bonnet");
Vehicle[i][boot] = dini_Int(Autodatei,"boot");
[...]//Auto wird geladen
Vehicle[i][RearBumper] = dini_Int(Autodatei,"RearBumper");
SetVehicleNumberPlate(CreateVehicle(Vehicle[i][modelid],Vehicle[i][posx],Vehicle[i][posy],Vehicle[i][posz]+1.5,Vehicle[i][posa],-1,-1,-1),dini_Get(Autodatei,"Nummernschild"));
SetVehicleHealth(i,Vehicle[i][HP]);
SetVehicleParamsEx(i,Vehicle[i][engine],Vehicle[i][lights],Vehicle[i][alarm],Vehicle[i][Abgeschlossen],Vehicle[i][bonnet],Vehicle[i][boot],0);
GetVehicleParamsEx(i,ba,bs,bd,bf,bg,bb,bgg);
printf("Der Fahrzeugstatus:%d,%d,%d,%d,%d,%d,%d",ba,bs,bd,bf,bgg,bb,i);
UpdateVehicleDamageStatus(i,Vehicle[i][DPanels],Vehicle[i][DDoors],Vehicle[i][DLights],Vehicle[i][DTires]); -
Du kannst so mit i nicht arbeiten, i braucht die VehicleID, du benutzt i aber als Schleifen Variable...
Benutze z.B.
new car;
car = CreateVehicle...Und von da nimmste dort nurnoch car statt i (Natürlich nicht in den Arrays) in den Funktionen wo die VehicleID benötigt wird
-
Na dann ist kein Wunder das es net geht
Sagte doch liegt an deinem i -
Also ich verstehs immernoch nicht, ich verstehe dass nun so, üb erall wo das enum aufgerufen wird mit den variablen des fahrzeugs gespeichert/geladen werden, muss ich nun ein anstatt i ein casr oder eine andere Variable setzen?
Aber was ist da denn der konkrete Fehler?
Edit// wenn ich mit car ein auto erstelle muss ich doch aus der variable car eine arry machen, woher weis der compiler sonst, welchem fahrzeug das nummernschild gegeben werden soll.
Edit2// Ich meine ich muss das doch dann so machen
car[1]=CreateVehicle. . .
car[2]=Create...
damit der compiler weis welches auto ich suche -
//
new car;
car = CreateVehicle(Vehicle[i][modelid],Vehicle[i][posx],Vehicle[i][posy],Vehicle[i][posz]+1.5,Vehicle[i][posa],-1,-1,-1);
SetVehicleNumberPlate(car,dini_Get(Autodatei,"Nummernschild"));
SetVehicleHealth(car,Vehicle[i][HP]);
SetVehicleParamsEx(car,Vehicle[i][engine],Vehicle[i][lights],Vehicle[i][alarm],Vehicle[i][Abgeschlossen],Vehicle[i][bonnet],Vehicle[i][boot],0);
GetVehicleParamsEx(car,ba,bs,bd,bf,bg,bb,bgg);
printf("Der Fahrzeugstatus:%d,%d,%d,%d,%d,%d,%d",ba,bs,bd,bf,bgg,bb,i);
UpdateVehicleDamageStatus(car,Vehicle[i][DPanels],Vehicle[i][DDoors],Vehicle[i][DLights],Vehicle[i][DTires]);Zum Beispiel
-
Ich hab es nun so ist das falsch?
new car[2000]
damit alle 2000 autos eine eigene variable haben
und dann
Vehicle[i][RearBumper] = dini_Int(Autodatei,"RearBumper");
car[i]=CreateVehicle(Vehicle[i][modelid],Vehicle[i][posx],Vehicle[i][posy],Vehicle[i][posz]+1.5,Vehicle[i][posa],-1,-1,-1)
SetVehicleNumberPlate(car[i],dini_Get(Autodatei,"Nummernschild"));
SetVehicleHealth(car[i],Vehicle[i][HP]);
SetVehicleParamsEx(car[i],Vehicle[i][engine],Vehicle[i][lights],Vehicle[i][alarm],Vehicle[i][Abgeschlossen],Vehicle[i][bonnet],Vehicle[i][boot],0);
GetVehicleParamsEx(car[i],ba,bs,bd,bf,bg,bb,bgg);
printf("Der Fahrzeugstatus:%d,%d,%d,%d,%d,%d,%d",ba,bs,bd,bf,bgg,bb,i);
UpdateVehicleDamageStatus(car[i],Vehicle[i][DPanels],Vehicle[i][DDoors],Vehicle[i][DLights],Vehicle[i][DTires]);
Ist das so falsch oder geht das auch ?
//EDIT:Also nun wird das alles richtig gepprintet, aber wenn ich den befehl eingebe passirt immernoch nichts -
breadfish.de
Hat das Thema geschlossen.