Beiträge von Kaliber

    Pack mal crashdetect rein und zeig mal deine Tabellen Struktur :)


    Und hast du mal Beispieldaten? Also mich interessiert die Länge der einzelnen Felder...


    //Edit:


    PS: Zeile 21 mal so schreiben:


    ShowPlayerDialog(playerid, D_PP, DIALOG_STYLE_TABLIST_HEADERS, "Spielerprotokoll", str, "Schließen", ((rows%10 == 0)?("Weiter"):("")));

    Geht sowas noch ?

    Die Frage ist doch eher, sollte es so gemacht werden?


    Und die Antwort ist ganz klar nein.


    Das hat seine Gründe, wieso diese Asynchronität eingeführt wurde.


    Natürlich muss man jetzt etwas umdenken, weil man es davor gewohnt war synchron zu arbeiten.


    Du brauchst den Wert nicht, du kannst einfach den Code, der danach kommt in den Callback packen und ihn da weiter ausführen lassen.


    Und dort quasi den Wert verarbeiten lassen.


    Danke aber hast du vielleicht noch ein paar Tipps, wo ich mehr darüber lernen kann, etc.
    Auch wenn es blöd klingt aber irgendwie finde ich nicht viel dazu.

    Hmmmm...learning by doing :D


    Einfach leicht anfangen, mit ein paar Keras Beispielen, etwas abändern und spielen, schauen was was macht.


    Vllt fällt dir auch TensorFlow JS leichter? Gibt glaube ich auch gute Tutorials von "The Coding Train" :)

    @Talykos Jetzt übertreiben wir mal nicht, zumal new query[MAX_PLAYERS_NAME+1]; das auch nicht geht, da der Rest des Querys ja noch drum rum muss.



    ProtocolRead[P_MAX][600][3]

    Das frisst deine Ressourcen.
    Lösche es, du kannst das alles schöner schreiben.


    Versuche es mal so:



    Das scheint mir ein eleganter Weg zu sein! :)


    Schlaf schön ;)

    Mal 2 ganz blöde Fragen.


    • Nutzt du ProtocolRead nur in diesen Codes?
    • Wie hast du das deklariert?
    • Mal ein paar Hinweise generell wegen der Performanz.
      • Nutze LIMIT in deinen SQL Abfragen. Das ist hier auch der Schlüssel, wie du das elegant hier alles lösen kannst. Dann brauchst du keine komischen if-Abfragen wie in Zeile 22. (Wenn du schon sowas nutzt, dann auch ein break, sonst läuft die Schleife ja sinnlos weiter xD)
      • Deine String-größen sind nicht wirklich optimal gewählt...allein bei deinem CMD kannst du 64, statt 256 verwenden.

    habe diesen Kurs gefunden

    "gefunden" du meinst wohl, du wurdest bei jedem YouTube Video mit dieser dummen Werbung belästigt.


    Also ich rate dir davon ab.


    Das Andere sieht doch ganz gut aus, der erklärt viel, wenn du es etwas peppiger haben magst empfehle ich dir Siraj Raval :D


    Ansonsten ist das schon mal ein guter Einstieg in die Thematik :)

    Das break ist falsch gesetzt.


    Das solltest du so schreiben:


    for(new i;i<GetVehiclePoolSize();i++)

    Schreibe es:


    for(new i=GetVehiclePoolSize(); i!=0; i--)


    Autos starten bei 1 und enden bei der letzten ID.


    Ergo wäre nur folgendes richtig:


    for(new i=1;i<=GetVehiclePoolSize();i++)


    Allerdings ist das nicht so performant, wie mein erstes Beispiel (da jeden Durchgang die Funktion aufgerufen werden würde)! :)

    Achso, mein Fehler du redest von Vita Village dem MTA Skript...


    Ich dachte du redest von einem SA:MP Skript, sry, habe nicht auf die Ordnerstruktur geachtet, boah, das echt nervig.


    Mein Fehler, sry.

    Ehhh, wenn mich nicht alles täuscht wurde dieses Skript doch nur verkauft oder auch veröffentlicht (wenn ja, bitte mal Link).


    Ansonsten suchst du gerade die Nadel im Heuhaufen.


    Denn außer dir haben vielleicht dann < 5 Personen (natürlich geschätzt) dieses Skript.


    Von diesen suchst du jmd der skripten kann und sich mit diesem Skript auskennt, der online ist und bereit ist dir zu helfen :D


    Entweder du legst etwas Code offen, wendest dich an den Skripter persönlich ooooder wartest auf den 6er im Lotto :)

    Du kannst es auch ganz ohne Variable machen.

    Nette Idee, aber als kurze Anmerkung sollte gesagt werden, dass diese Methode nicht mehr funktioniert, wenn jemand in der Zeit wo der Dialog offen ist disconnected oder ein Ticket schließt, was zuvor offen war.


    Ergo muss man sich sputen mit dem Auswählen :D

    mysql_oquery(secondQuery, THREAD_SAVEPLAYERCAR, playerid, gSQL);

    Was ist das? Lösch das, hier sendest du nämlich nur den letzten Teil des Querys und das ist natürlich kein vollständiger Query.



    strdel(mainQuery, 0, sizeof(mainQuery));
    strdel(secondQuery, 0, sizeof(secondQuery));

    Das ist übrigens nicht nötig, da du die Variablen lokal deklarierst.
    Dadurch liegen sie auf dem Stack der Funktion und dieser Stack wird automatisch am Ende der Funktion geleert :)
    Das nimmt dir Pawn also ab.



    War auf jeden Fall eine Idee von mir, das so zu gestalten.

    Keine Frage, das kann man so machen :)


    Paar Alternativen: