Kannst du bitte den ganzen Stock mal posten?
Beiträge von Jeffry
-
-
Zeile 62:
Du hast unter den Includes die "handle" Variable nicht deklariert:Zeile 68:
Du hast kein PlayerInfo-Array, das musst du anpassen, so wie das Stats-Array bei dir heißt. Wenn du keines hast, musst du es wie beschrieben anlegen, ebenfalls unter den Includes:C
Alles anzeigenenum pDataEnum { p_id, bool:pLoggedIn, pName[MAX_PLAYER_NAME], pLevel, pMoney, pKills, pDeaths } new PlayerInfo[MAX_PLAYERS][pDataEnum];
Ich hoffe, dass der PWN Tag bald wieder aktiviert wird, damit man solche Tutorials auch wieder lesen kann. -
Prinzipiell, bevor du da ewig einen Fehler suchst (ich sehe keinen), wäre es besser, PlayerTextDraws zu verwenden, sofern sich der Text ändern soll.
Alternativ, falls sich der Text des Textdraws nie ändert, dann kannst du auch einfach 2 normale (nicht player) Textdraws erstellen und dem Spieler das entsprechende anzeigen.Je nach dem.
-
Mache beim AddMietCar:
ZuSo ist es dann wesentlich besser abzufragen, on ein Fahrzeug bereits erstellt ist.
Eine SQL Abfrage für jedes Fahrzeug ist zu aufwendig für dem Server. Am besten du entfernst den CheckRentCar stock, wenn es so klappt. -
-
-
Prinzipiell kannst du die Schleife hier schon weg lassen, aber da ich nicht weiß, ob und wie du es noch anders im Code verwendest, habe ich es so gelassen.
Zwecks dem anderen Problem:
So wie es momentan aussieht zeigt es in dem Post nicht an, kannst du das bitte nochmal posten, dass man es sieht? -
-
Könntest du die ungekürzten Codes posten? Es ist immer schwer an Hand von gekürzten Codes etwas zu sehen, bzw. diese dann gescheit zu debuggen.
-
-
Da würde ich einen Timer nehmen, mit einer Schleife darin.
-
Ein Timer ist meistens sinnvoller, da du sonst eine X-Fache Belastung der CPU durch X Timer hast.
Mehrere Timer bieten sich nur dann an, wenn die Last verteilt werden soll, und das ist nur dann der Fall, wenn im Timer viel gemacht wird, dass ein einmaliger Aufruf gegebenenfalls zu lag führt (Dateiaufrufe, SQL Queries, ...). -
Wie sieht deine SetVehicleEngineOff Funktion aus, kannst du die bitte posten?
-
-
Die Tafel zählt das nicht hoch bzw. von Anfang an, steht da eine 0.
Du musst das mit einem Timer (oder auf Aufruf) aktualisieren lassen, sprich diesen Code nochmal aufrufen.
-
Änderung nur auf Zeile 1: ocmd statt cmd,
1) Das Thema steht bereits seit mehreren Tagen auf erledigt und das Problem ist behoben.
2) CMD wird bei zcmd Verwendet, ocmd bei ocmd. -
Ah, ok. Das scheint über einen Timer gesteuert zu sein.
Kannst du bitte von beiden Textdraw die Codes posten, die dahinter stehen? Die, die den Text der beiden Textdraws setzen. -
Ja, da lässt sich leider nicht viel dran ändern.
-
So:
C
Alles anzeigenpublic SaveAllCars() { printf("Starte SaveAllCars"); new query[512]; for(new i=0; i<MAX_AUTOS; i++) { printf("i: %d | Model: %d | Besitzer: %s", i, CarInfo[i][modelID], CarInfo[i][Besitzer]); if(CarInfo[i][modelID] >= 400 && CarInfo[i][modelID] <= 611) { printf("Gekauft: %d", CarInfo[i][c_Gekauft]); if(CarInfo[i][c_Gekauft] == 0) { //GetVehiclePos(CarInfo[i][c_vID], CarInfo[i][c_x], CarInfo[i][c_y], CarInfo[i][c_z]); //GetVehicleZAngle(CarInfo[i][c_vID], CarInfo[i][c_a]); format(query, sizeof(query), "UPDATE Cars SET Besitzer = '%s',ModelID = '%d', PosX = '%f', PosY = '%f', PosZ = '%f', PosA = '%f', Color1 = '%d', Color2 = '%d',Preis = '%d',Gekauft = '%d', Versicherung = '%d', Schild = '%s', Drogen = '%d', Waffen = '%d', Geld = '%d' WHERE ID = '%d'", CarInfo[i][Besitzer],CarInfo[i][modelID], CarInfo[i][c_x], CarInfo[i][c_y], CarInfo[i][c_z], CarInfo[i][c_a], CarInfo[i][c_color1], CarInfo[i][c_color2],CarInfo[i][c_Preis],CarInfo[i][c_Gekauft], CarInfo[i][c_Versicherung],CarInfo[i][c_Schild],CarInfo[i][c_Drogen],CarInfo[i][c_Waffen],CarInfo[i][c_Geld], i); mysql_tquery(handle, query); printf("query: %s", query); SendClientMessageToAll(info, "Nicht gekauft Autos wurden gespeichert!"); } if(CarInfo[i][c_Gekauft] == 1) { new Float:VehPos[4]; GetVehiclePos(CarInfo[i][c_vID],VehPos[0],VehPos[1],VehPos[2]); GetVehicleZAngle(CarInfo[i][c_vID], VehPos[3]); format(query, sizeof(query), "UPDATE Cars SET Besitzer = '%s',ModelID = '%d', PosX = '%f', PosY = '%f', PosZ = '%f', PosA = '%f', Color1 = '%d', Color2 = '%d',Preis = '%d',Gekauft = '%d', Versicherung = '%d', Schild = '%s', Drogen = '%d', Waffen = '%d', Geld = '%d' WHERE ID = '%d'", CarInfo[i][Besitzer],CarInfo[i][modelID], VehPos[0], VehPos[1], VehPos[2], VehPos[3], CarInfo[i][c_color1], CarInfo[i][c_color2],CarInfo[i][c_Preis],CarInfo[i][c_Gekauft],CarInfo[i][c_Versicherung],CarInfo[i][c_Schild],CarInfo[i][c_Drogen],CarInfo[i][c_Waffen],CarInfo[i][c_Geld], i); mysql_tquery(handle, query); printf("query: %s", query); SendClientMessageToAll(info, "Gekaufte Autos wurden gespeichert!"); new query[256]; format(query, sizeof(query), "UPDATE Cars SET tuning0 = %d", GetVehicleComponentInSlot(CarInfo[i][c_vID], 0)); for(new j=1; j<14; j++) { format(query, sizeof(query), "%s, tuning%d = %d ", query, j, GetVehicleComponentInSlot(CarInfo[i][c_vID], j)); } format(query, sizeof(query), "%sWHERE ID = %d", i); mysql_tquery(handle, query); printf("query: %s", query); } } } SendClientMessageToAll(info, "Alle Fahrzeuge wurden gespeichert!"); printf("Fertig."); return 1; }Das Laden kannst du auch mit einer Schleife machen, oder alle einzeln, das geht beides.
Schau mal, ob du das Laden selbst hin bekommst, wenn nicht poste den Code vom Laden. -
Doch, die brauchst du in dem Befehl.
So wie ich dir ihn gegeben habe sollte er passen. Die Schleife brauchst du, um den richtigen Index zu finden.