Beiträge von Kaliber

    Sie kann in ihrem aktuellen Stand keine komplexeren Programmieraufgaben lösen.

    Achso, das klang so, als ob du generell von KI sprichst. Dass das ChatGPT aktuell noch nicht vermag - ok.

    Hast du das aus diesem Tutorial entnommen?


    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Hast du da am Anfang die Änderungen an der Client-Config auch vorgenommen? :)


    Wenn nicht, check das mal aus und teste evtl das auch mit dem Chat. Vermutlich stimmt da etwas bei der Einrichtung nicht.

    Sagen wir du hast 3 Felder in der Datenbank.


    id, level, geld


    Und weiterhin sagen wir in der Datenbank gibt es 2 Spieler, die du abfragst.


    Dann ist der row_count = 2 und der field_count = 3


    Also wenn Rows = 0 ist, dann wissen wir, dass kein Spieler gefunden wurde. Das ist die wichtige Information.

    Wie viele Felder zurückkommen, wenn Rows zurückkommen, wissen wir eig eh schon immer, da wir sie im Query spezifizieren.

    Aus diesem Grund ist diese Info eig unnötig und wurde dann später ausgelagert in eine andere Funktion.


    Falls du aus irgendwelchen Gründen das auch wissen magst, gibt es die: cache_get_field_count Funktion, welche genauso funktioniert wie die row_count Funktion :)

    wie müsste es denn nun sein das er nicht mehr mekkert?

    Also eigentlich ist es richtig so.

    Keine Ahnung, was qawno hat, wenn ich den Code bei mir verwende, bekomme ich keine Warnings.


    Allerdings ein paar Hinweise:

    1. Du kannst die Schleife mit break abbrechen, wenn du jmd gefunden hast, wozu soll er weiter suchen.
    2. Du brauchst die Variable nicht mehr auf 0 setzen am Ende, da sie eh zerstört wird.
    3. Den Code könntest du womöglich öfter gebrauchen und ist eine Funktionalität, welche du auslagern solltest.

    Ich empfehle dir sowas:


    Kannst du mir das vielleicht erklären? Ich benutze den pawncc von open.mp.

    Das hat damit nichts zu tun.


    Die haben das in der Standard-Lib geändert, dass man sich nicht vertippen kann.


    Du solltest da nicht TEXT_DRAW_FONT:1 nutzen, sondern die Werte, welche im enum definiert wurden.


    In diesem Fall TEXT_DRAW_FONT_1


    Genauso solltest du oben nicht progressbar_direction:0 nutzen, sondern direkt: BAR_DIRECTION_RIGHT


    Beim Align, sollst du dann auch nicht TEXT_DRAW_ALIGN:1 nutzen, sondern direkt: TEXT_DRAW_ALIGN_LEFT


    Dadurch kann man das besser lesen, als einfach nur eine 0 oder 1. Da weiß man direkt, um was es sich handelt.


    Kannst ja einfach mal in das Include von omp reinschauen, das ist das omp_textdraw.inc Da siehst du die ganzen enums.


    C++
    enum TEXT_DRAW_ALIGN:__TEXT_DRAW_ALIGN
    {
        TEXT_DRAW_ALIGN_LEFT                       = 1,
        TEXT_DRAW_ALIGN_CENTRE,
        TEXT_DRAW_ALIGN_CENTER = TEXT_DRAW_ALIGN_CENTRE,
        TEXT_DRAW_ALIGN_RIGHT
    }

    Benutzen die auch includes?

    Ja, natürlich.


    Aber viele "durchsuchen" auch tausende Zeilen Code. Da wissen die Skripter halt, wo was steht.

    Wenn man die grundlegenden Callbacks in SA:MP kennt, dann weiß man ja tendenziell, wo was zu suchen ist.

    Aber natürlich ist es extrem schwer so Bugs zu identifizieren. Das ist der Grund, wieso es so viele Bugs auf vielen Servern gibt.

    1. Kein Godfather nutzen.


    2. Modularer Skripten Durch static ist es möglich Dinge ähnlich wie mit private besser zu trennen.


    Die Lösung lautet Includes. Wichtig dafür ist auch Hooking (in dem verlinkten Thread weiter unten steht da noch was zu) zu verstehen.


    Hoffe du arbeitest auch direkt mit OpenMP.


    Wichtig auch, Streamer Plugin nutzen (für alles! Objekte, Pickups, 3DTextlabel) und MySQL (kein Dini o.ä.).

    Empfehle auch Pawn.CMD für Commands.

    Und den neusten Pawn Compiler https://github.com/pawn-lang/compiler/releases


    Ein gutes, performantes, sauberes SA:MP Skript zu entwickeln ist ein sehr langwieriger Prozess. Ich weiß nicht, wieso man sich im Jahr 2023 diesen struggle noch antun sollte. Niemand wird dich dafür lobpreisen, es wird keine User geben, welche das zu schätzen wissen. Vermutlich wird es gar keine User geben.


    Als Übung ist es natürlich interessant, aber vielleicht gäbe es da Projekte, bei denen auch mehr Leute einen Nutzen von haben.

    Aber trotzdem, viel Erfolg. 👍🏼

    Es gibt ChatGPT, es gibt Google und es gibt YouTube.


    Und du fragst auf Breadi danach? xD


    Das nenne ich mal mutig.


    Aber ich leite einfach mal weiter auf YouTube, da wird es gut erklärt:


    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Also das hat nichts mit meiner Programmierung zu tun.


    Hättest du mal ein print gesetzt, wie z.B. so:


    C#
    static string ToReadableByteArray(String xMsg)
    {
        bytes[] bytes = Encoding.ASCII.GetBytes(xMsg);
        return string.Concat(bytes.Select(b => " "+b.ToString("x2")).ToArray());
    }
    
    //Und dann folgendes geloggt hättest:
    Console.WriteLine(ToReadableByteArray(PrepareMessage(newAnzeige))); //Da kommt raus:
    //7a 41 31 54 65 73 74 0d 4e

    Es wird ja auch ein 0a angehangen.

    Da schaust du hier: https://www.torsten-horn.de/techdocs/ascii.htm

    Und siehst, aha, das ist ja gar kein Punkt, sondern ein LF, ein Line Feed, also ein new line.

    Und das kommt durch das WriteLine, welches du am Serial Port verwendest.


    Mal ein:


    Code
    serialPort1.Write(PrepareMessage(newAnzeige));

    probiert? :)

    Ich lass das Video einfach mal unkommentiert, aber so fühle ich mich manchmal, wenn ich hier Beiträge lese.


    Externer Inhalt youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Da fällt einem echt nichts mehr zu ein.

    Was denn für ein CMS?


    Und wieso suchst du Teammitglieder?


    Ist das nicht eher die falsche Sektion?

    Bietest du nicht eher Geld? Muss das nicht in den Marktplatz?

    Oder hoffst du darauf, dass dir das jemand aus Spaß 4 free macht?