Beiträge von Jeffry

    Die Funktion wird ans Plugin übergeben, welches selbst in einem eigenen Thread hängt.
    Also den test will ist sehen der das gegenteil beweist - denn rein SA:MP Teschnisch ist das schon eine Lüge.


    Wie gesagt, ich habe mit einem einzigen Query Lags verursacht. Mit mehreren Queries testweise noch viel stärkere Lags. Alle anderen Funktionen (zum Beispiel aus Files auslesen) gingen dabei ohne Lags.
    Was letzendlich das Problem war ist dabei nicht relevant. Fakt ist, dass der SA:MP Server für die Zeit des Lags keine weiteren Funktionen ausgeführt hat. Generell tritt dieses Problem auf, wenn auf dem Server auf dem die Datenbank liegt eine hohe Lese-/Schreibrate im Gange ist. Dies hat aber weder Files noch sonstige Funktionen beeinflusst, nur MySQL.



    Jemanden der Lüge zu bezichtigen ich übrigens nicht die feine Art.



    Manyula:
    http://forum.sa-mp.de/gta-mult…ng-fragen-667#post1951525

    Jeffry: Das wage ich zu bezweifeln. Denn der Query wird abgeschickt -> Server kann weiter arbeiten.


    Nope, sobald der Query raus ist, macht der Server weiter, egal was passiert.


    Ich würde es nicht sagen, wenn ich es nicht selbst getestet hätte. ;)


    ...und nein, es waren keine tausend Queries, es war genau eins.



    Manyula: Es ist besser einen Timer mit 50 Berechnungen zu haben, als 50 Timer mit je einer Berechnung, das geht weniger auf die CPU.

    Kann man pauschal sagen, was "kleinere" und "größere" Berechnungen sind?


    Dateiabfragen (öffnen und schließen) würde ich nicht in einen Timer packen, außer er wird nur sehr wenig aufgerufen. Ebenso MySQL.


    Generell:
    Alles Spiel-Interne = kleine Berechnungen (außer du übertreibst es mit Loops) (Textdraws, Nachrichten, irgendwelche Get/Set Funktionen)
    Alles Spiel-Externe = größere Berechnungen (Files, MySQL, ...)

    Dann poste bitte mal den gesamten dazugehörigen Code, damit ich mir die Abfolge heute Abend mal genauer anschauen kann. Es wird wohl am besten sein, wenn wir dann das ganze mal debuggen um so vielleicht den Fehler recht schnell zu finden.
    Falls du dich damit etwas auskennst, kannst du ja auch selbst schon anfangen den Code zu debuggen, ansonsten poste eben den Code, dann mache ich dir das später.

    Wenn du alleine auf dem Server bist muss es ja deinen Marker auch nicht verstecken, es ist ja eh keiner da der ihn sieht. Von daher passt das doch, oder?


    Du solltest es mit zwei Spielern testen.

    1.)
    Du musst den Ton selbst aufnehmen, dann auf einem Webspace als mp3 hochladen und dann kannst du den Ton mit PlayAudioStreamForPlayer abspielen.


    2.) Wie 1.


    3.)
    Generell, Nein. Allerdings kannst du versuchen, das Objekt der Zellen zu entfernen, je nach dem wie groß das ist, manchmal sind die Interiors auch ein Teil, und dann mit anderen Objekten die Zelle wieder bauen, wobei du dann eben ein eigenes Tor nimmst. Ob das mit irgendwelchen Objekten geht, die genau groß genug sind, musst du wohl oder übel ausprobieren.


    4.) Ich rate dir einen Editor zu nutzen, wie diesen hier: http://forum.sa-mp.com/showthread.php?t=335711

    Ok, da ist alles korrekt.
    Stimmt denn die ID dir angezeigt wird mittlerweile wenigstens?


    Wenn ja, poste mal den Teil mit dem du die Daten beim Start des Servers lädst, und den Teil mit dem du ein Haus kaufen kannst. Du hast irgendwo bei der Wert Zuweisung einen Fehler gemacht, deshalb zeigt es da so komisch an.
    Wenn nein, poste das trotzdem, dann ist bei der ID auch was falsch, das hoffe ich aber nicht.

    Das kann man pauschal nicht sagen. Du kannst den Server mit einer Zeile überlasten, oder mit 1000 Zeilen keine Probleme haben. Generell kommt es darauf an wie oft du den Timer aufrufst. Aber wenn es nur ein paar Berechnungen sind, die Textdraws updaten, macht das nichts aus.

    Füge das OnQueryError mal in deinen Code ein und lasse dir die Werte der Parameter mit Print alle ausgeben. Dann poste was bei Aufruf (wird es ja offensichtlich) geprintet wird.
    Irgendwas geht da nämlich schief.


    http://wiki.sa-mp.com/wiki/MySQL#OnQueryError


    Berechtigungen in der Datenbank hast du aber schon alle, oder?



    Edit:
    DJ Deagle: Das schaue ich mir morgen Nachmittag genau an. Wegen dem FORM: Manchmal sieht man bekanntlich den Wald vor lauter Bäumen nicht mehr, hab ich nicht bemerkt, aber dafür gibt es ja Logs. ^^


    Edit2:
    DJ Deagle: Super! :thumbup: Da hätten wir sonst wohl noch etwas gesucht. Gut, dass du es gefunden hast.

    Super!


    Nein, das ist weil der Index sich nicht ändert, aber der Wert der Variable sich ändern kann, bzw sich ändert, die Überschneidungen die ich beschrieben habe. Die Indexe sind jeweils nur einmal vorhanden und überschneiden sich nicht.

    Dann lade dir das nativechecker Plugin herunter und füge es in deinen Server ein. Dann poste was im Server Log ausgegeben wird.
    Du hast wahrscheinlich eine falsche Version eines Plugins, oder doch eins vergessen.

    stock LoadCarDealers()
    {
    print("LoadCarDealers");
    mysql_query("SELECT * FORM `Cardealers`");
    mysql_store_result();
    new rows = mysql_num_rows();
    printf("rows: %d", rows);
    if(rows != 0 && rows <= 5) {
    new str[1024],idx=0;
    while(mysql_fetch_row(str)) {
    print(str);
    new string[256];
    sscanf(str, "e<p<|>ds[32]fffds[24]dd>",AHInfo[idx]);
    if((!strcmp(AHInfo[idx][zOwner],"Niemand",true))) {
    AHInfo[idx][zPickup]=CreatePickup(1273,1,AHInfo[idx][zPosX],AHInfo[idx][zPosY],AHInfo[idx][zPosZ],0);
    format(string,128,"** %s **\nDieses Autohaus ist zu verkaufen!\nPreis: %s€\nLevel: %d\nAutohaus kaufen: /buybiz",AHInfo[idx][zName],inspoints(AHInfo[idx][zPrice]),AHInfo[idx][zLevel]);
    AHInfo[idx][zLabel]=Create3DTextLabel(string,COLOR_AHLABEL,AHInfo[idx][zPosX],AHInfo[idx][zPosY],AHInfo[idx][zPosZ],10,0,0);
    AHInfo[idx][zCreated] = true;
    } else {
    AHInfo[idx][zPickup]=CreatePickup(1272,1,AHInfo[idx][zPosX],AHInfo[idx][zPosY],AHInfo[idx][zPosZ],0);
    format(string,128,"** %s **\nBesitzer: %s",AHInfo[idx][zName],AHInfo[idx][zOwner]);
    AHInfo[idx][zLabel]=Create3DTextLabel(string,COLOR_AHLABEL,AHInfo[idx][zPosX],AHInfo[idx][zPosY],AHInfo[idx][zPosZ],10,0,0);
    AHInfo[idx][zCreated] = true;
    }
    printf("%d: %s", idx, string);
    idx++;
    }
    mysql_free_result();
    }
    return 1;
    }
    Lass es mal so laufen und poste dann was im Server Log steht.

    natürlich liegt das am Plugin!. und es war mir klar das der Post von Ihm kommt weil ich diesen Fehler früher selber gemacht hatte.. aber ich habe ihm ja auch geschrieben das er das falsche Plugin hat oder etwa nicht?


    Ja, nur hast du ihm den Link für BlueG's Plugin gegeben (!), und zudem lag der Fehler auch in der server.cfg. :pinch: