MySQL Threading

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallihallo Community,


    mir stellt sich momentan folgendes Problem: Ich habe eine Funktion in welcher Fraktionsautos gelöscht, danach aus der Datenbank ausgelesen und wieder erstellt werden. Da ich die threading benutze, kommt es bei gleichzeitigem Aufrufen der Funktion vor, dass Auto's doppelt+ spawnen, was auch logisch ist! Nun meine Frage: Gibt es einen eleganteren Weg dies zu lösen als das Verwenden von globalen Variablen?


    ~Mydayyy

  • grml ._. hatte gehofft ich habs Verständlich erklärt..


    stock RespawnFCars()
    {
    for(new i = 0; i < sizeof(fcInfo); i++)
    {
    for(new k = 0; k < MAX_FCARS; k++)
    {
    DestroyVehicle(fcInfo[i][k][fc_CarID]);
    }
    }
    new query[150];
    for(new i = 0; i < sizeof(fcInfo); i++)
    {
    format(query, sizeof(query), "SELECT * FROM `"TABLE_FACTIONCAR"` WHERE `ownerfac` = '%d'", i);
    mysql_function_query(g_MysqlHandle, query, true, "SQLC_RespawnFCars", "i", i);
    }
    return 1;
    }


    Würde man nun RespawnFCars direkt hintereinander aufrufen, hingt das Erstellen der Autos natürlich zurück. Würde sich mit globalen Variablen lösen lassen. Meine Frage: Gibts dafür auch nen eleganteren Weg?

  • Warum überhaupt die fahrzeuge löschen und neu erstellen beim respawn solang das fahrzeug in der ursprünglichen position erstellt wurde wo es auch respawen
    soll so wird das auto auch wieder richtig danach gespawnt daher kann man auch das SetVehicleToRespawn.


    Was sinn macht ist das Auto nochmal neu zuerstellen beim parken.

  • Warum überhaupt die fahrzeuge löschen und neu erstellen beim respawn solang das fahrzeug in der ursprünglichen position erstellt wurde wo es auch respawen
    soll so wird das auto auch wieder richtig danach gespawnt daher kann man auch das SetVehicleToRespawn.


    Was sinn macht ist das Auto nochmal neu zuerstellen beim parken.


    Stimmt auch wieder, dennoch hab ich auch andere ähnliche Prozeduren - mir scheint als komme ich um globale Variablen nicht rum?