Mit einem Timer, Stichwort SetTimer.
Beiträge von Jeffry
-
-
Wenn es auf 22 war, dann war das der Fehler. Es muss auf 23 stehen.
-
Welchen Wert hat MAX_FACTIONS?
-
Wie hast du factionNames und SW_score deklariert? Beide müssen die gleiche Array Größe haben.
-
-
Schau dir eventuell mal den Leawo Blu-ray Player an.
https://www.netzsieger.de/p/leawo-blu-ray-player
PS:
BlueRay CD gibt es nicht, entweder Blu-Ray Disc oder BD
-
Ich wünsche Euch allen eine frohe Weihnachtszeit, bzw. hoffe, dass Ihr alle schöne Weihnachten hattet, die Feiertage sind ja schon fast vorbei. Denjenigen, die Urlaub haben, natürlich einen schönen (Rest-)Urlaub und allen denjenigen, die an den Feiertagen arbeiten, ein besonderes Dankeschön - ohne Euch würde vieles, was vielen Leuten schon fast normal erscheint, nicht möglich sein!
An dieser Stelle möchte ich auch die Gelegenheit nutzen, dem Breadfish Team meinen Dank auszusprechen, für die unermüdliche Arbeit das ganze Jahr über, sowie deren Einsatz für den Aufbau der neuen Forums-Version! Es ist schön zu sehen, auch wenn die Scripting Base leider etwas ausstirbt, dass das Forum selbst und besonders die Community sich nach wie vor aktiv hier zusammenfindet! Lasst uns das auch in das neue Jahrzehnt weiter mitnehmen.
Allen hier wünsche ich einen guten Rutsch in ein gesundes neues Jahr 2020!
-
Gerne
Nur warum TimestampToDate so ein Einfluss hatte ist mit schleierhaft^^
Der Grund ist, dass TimestampToDate an der Stelle das Array sprengt, daher auch die Fehlermeldung vom Crashdetect.
Das Array MonthTimes ist 12 Zellen groß (es sind ja 12 Monate). Das bedeutet, dass man mit den Indizes 0 bis 11 darauf zugreifen kann. Der Fehler in der Include ist aber, dass mit dem Monat darauf zugegriffen wird (sprich 1 bis 12). Somit gibt es immer im Dezember Fehler, die durch die TimestampToDate Include auftreten, da dort das Array gesprengt wird und der Code an der Stelle aufhört weiter zu laufen (daher hat er bei dir nie etwas gemacht).
-
Das dachte ich mir schon
Das TimestampToDate hat da einen Fehler, diesen habe ich im englischen Forum auch mal angemerkt.
Ändere das in der Include, dann sollte alles klappen.
https://forum.sa-mp.com/showthread.php?p=3807026#post3807026
-
Versuche bitte mal folgendes:
Codeif(SpielerInfo[playerid][pPrison] > 0) { TimestampToDate(SpielerInfo[playerid][pPrisonT], year, month, day, hour, minute, second, 1);
zu:Codeprintf("Vor Abfrage: pPrison: %d", SpielerInfo[playerid][pPrison]); if(SpielerInfo[playerid][pPrison] > 0) { printf("Nach Abfrage: pPrison: %d", SpielerInfo[playerid][pPrison]); TimestampToDate(SpielerInfo[playerid][pPrisonT], year, month, day, hour, minute, second, 1); printf("Nach TimestampToDate: pPrison: %d", SpielerInfo[playerid][pPrison]);
Was gibt dir der Server Log dann aus?
-
Ich werde das Tutorial im Dezember wenn ich Urlaub habe auf R41-4 aktualisieren, vorher schaffe ich es leider nicht.
EDIT:
MySQL R41-4 benutzen kann
Ich habe die Aktualisierung auf R41-4 vorgenommen. Das Tutorial ist jetzt wieder aktuell.
Änderungen in bestehenden Codes betreffen folgende Stellen:
zu:
Sowie gegebenenfalls die mysql_log Funktion anpassen zu:
Außerdem muss beim Laden der Fahrzeuge der Code wie folgt angepasst werden:
Code
Alles anzeigenforward LoadFracVehicles_Data(); public LoadFracVehicles_Data() { //Deklaration neuer temporärer Variablen: new rows, id, createdVehs; //Anzahl der gelesenen Datensätze abfragen: cache_get_row_count(rows); //Schleife durch alle Datensätze: for(new i=0; i<rows; i++) { //Fahrzeug existiert in der Datenbank, wir laden die Daten jetzt aus dem Cache. cache_get_value_name_int(i, "ID", id); //Um Fehler bei der Verarbeitung zu vermeiden: if(id < 0 || id >= MAX_FRAC_VEHICLES) continue; //Danach die restlichen Daten laden. Unser Index (der Wert mit dem wir auf das //Fahrzeug in der Datenbank zugreifen) ist die "ID". cache_get_value_name_int(i, "ModelID", fracVehicle[id][e_modelID]); cache_get_value_name_float(i, "PosX", fracVehicle[id][e_x]); cache_get_value_name_float(i, "PosY", fracVehicle[id][e_y]); cache_get_value_name_float(i, "PosZ", fracVehicle[id][e_z]); cache_get_value_name_float(i, "PosA", fracVehicle[id][e_a]); cache_get_value_name_int(i, "Color1", fracVehicle[id][e_color1]); cache_get_value_name_int(i, "Color2", fracVehicle[id][e_color2]); cache_get_value_name_int(i, "FracID", fracVehicle[id][e_fracID]); //(...) Nachfolgender Rest bleibt gleich (...)
Hauptsächlich ist das nur die Umstellung auf die neue Schreibweise von cache_get_value_name_int und cache_get_value_name_float, mehr nicht.
Bei Fragen gerne melden!
-
Du gibst die Nachricht aus, wenn es sich um eine Zahl handelt. Es fehlt ein ! davor.
if(IsNumeric(inputtext)) return SCM(playerid,ROT,"Der betrag muss eine ZAHL sein!");
zu:
if(!IsNumeric(inputtext)) return SCM(playerid,ROT,"Der betrag muss eine ZAHL sein!");
elseEs macht Sinn, das else auch hin zu schreiben, auch wenn es nicht zwingend notwendig ist, da die obere Abfrage schon einen return hat, trotzdem macht es den Code deutlich leserlicher und verhindert solche Fehler.
-
Trenne das mysql_format wie folgt:
mysql_format(handle, query, sizeof(query), "UPDATE users SET level = '%d',", PlayerInfo[playerid][pLevel]);
mysql_format(handle, query, sizeof(query), "%s money = '%d', kills = '%d',", query, PlayerInfo[playerid][pMoney], PlayerInfo[playerid][pKills]);
//...
mysql_format(handle, query, sizeof(query), "%s deaths = '%d' WHERE id = '%d'", query, PlayerInfo[playerid][pDeaths], PlayerInfo[playerid][p_id]); -
GTA San Andreas bekommst du gerade völlig legal von Rockstar Games geschenkt, damit könntest du es versuchen.
https://www.heise.de/newsticke…-San-Andreas-4533035.html -
Wie gesagt, du brauchst das gar nicht einzufügen, es ist standardmäßig bereits aktiv.
Zwecks dem Tag Mismatch, der sollte trotzdem nicht kommen. Nutzt du eventuell, wie anfangs auch beim Plugin, eine falsche Include Version? Welche Version steht denn in deiner a_mysql.inc? Das muss auch die R41-4 sein.
-
Das Logging ist standardmäßig aktiviert, die Funktion muss gar nicht aufgerufen werden.
Nur wenn explizit alles (also auch keine Fehler) geloggt werden sollen, kann das umgestellt werden, hierfür steht der Code schon in MySQL_SetupConnection bereit. -
Du findest beides übrigens auch im Tutorial:
[jTuT] MySQL R41-4 (Installation, XAMPP, Verwendung, Bedienung & Registrations-System)Ich habe dich mehrfach darauf aufmerksam gemacht, dass du es sauber durcharbeiten sollst.
-
Du solltest davor aber gucken, welche Objekte zum Boden gehören, diese solltest du bei CreateObject belassen, da es sonst passieren kann dass du durch den Boden fällst, bevor die Objekte laden.
Besser ist es, den Spieler kurz zu freezen (1 Sekunde), wenn er sich auf eine Map teleportiert, da sonst jedes Boden Objekt einen Streamer Slot Weg nimmt, was früher oder später dazu führt, dass der Streamer seine Arbeit nicht mehr richtig machen kann.
-
Poste bitte was der MySQL Log ausgibt, wenn du den makeadmin Befehl eingibst.
-
Vor der hour Zeile:
days = mutetime/86400;
mutetime -= days*86400;