Beiträge von Kaliber

    new tmp_name[128];

    cache_get_value_name(i, "fraktion", tmp_name);

    strmid(FrakInfo[id][frak_name], tmp_name, 0, sizeof(tmp_name), sizeof(tmp_name));

    Kannst das auch direkt laden:


    cache_get_value_name(i, "fraktion", FrakInfo[id][frak_name], 64);


    Im Enum ändere das zu frak_name[64], denn so lange werden Fraktionsnamen ja nicht...256 Zeichen, das wäre ja Wahnsinn :D


    Vermutlich weil du irgendwo DestroyPickup verwendest ;)


    Und dort die ID 0 gelöscht wird.


    Das ist der übliche Fehler in den Skripten, sie bedenken nicht, dass 0 eine gültige PickupID ist.


    Aus dem Grund wird z.B. im GF Skript am 0 Punkt ein Pickup ganz oben im Skript erzeugt ^^


    Würde man aber richtig programmieren, würden so Fehler nicht passieren. Aber das ist der Grund für den berühmten ID 0 Bug :)

    Wo ist diese Abfrage den drinnen?

    In einem Timer oder unter OnPlayerUpdate?


    So oder so solltest du dafür timestamps nutzen alias gettime().


    Ich reiche ein paar Beispiele später nach, gerade leider nur am Handy.

    Vllt findest schon was online :)

    Ich vermute das es etwas mit den YSI Includes zu tun hat

    So ist es ;)


    YSI nutzt auch ein Makro für SCM.

    Also musst es entweder zu SCN oder wie du magst umbenennen.

    Bin mir aber gerade nicht mehr sicher wofür genau, dafür müsst ich nochmal in die Lib schauen, aber bin unterwegs...geht also schlecht xD


    Kannst ja mal testen ob #undef SCM und dann drunter #define SCM hilft...ansonsten wie gesagt einfach was anderes nehmen xD


    #Handy

    Ist jetzt nur geraten, da ich mit FiveM noch nie was gemacht habe.


    Wenn das mit CSS erstellt wird, dann musst du den z-Index anpassen.


    Ist es ein internes Framework, dann zeige die Notification einfach erst nach der Login Box an.

    Welche Bedeutung hat das %d in der scanf Funktion?

    Schau mal hier: http://www2.hs-esslingen.de/~z…ref/FUNCTIONS/format.html


    Für was steht das CLS in system?

    cls steht für clear screen und cleart quasi das Konsolenfenster :)



    Welcher Vorteil hat der switch gegenüber scanf?

    switch hat nichts mit scanf zu tun, scanf musst du weiterhin verwenden.

    Das hat nur was mit dem if und else if zu tun. Siehe: https://www.c-howto.de/tutorial/verzweigungen/switch-case/


    Es hat den Vorteil, dass es deutlich schneller ist als if und else if. Und in deinem Fall auch übersichtlicher :)

    allerdings kam da dieser Fehler

    Achso, ja in diesem Fall musst natürlich scanf und nicht sscanf nutzen ^^


    PS: Kannst auch anstatt if und else if einfach einen Switch nutzen:


    C
    system ("CLS");
    switch(option)
    {
        case 1: eins(); break;
        case 2: zwei(); break;
        case 3: drei(); break;
        default: printf("Ungültige Nummer!");
    }

    Na, dann kannst du einfach so was machen:


    Sollen ja schließlich nur leere Fahrzeuge gerespawnt werden.


    PS: Die Implementation von IsVehicleOccupied ist nicht sehr effizient. Es gibt hier bessere Methoden, wie z.B. einfach ein bool flag o.ä. in der Variable und anschließend Callbacks zum Aktualisieren nutzen.

    wie kann ich das anstellen, dass der Leader auch nur seine Freaktion Respawnt ?

    Wir kennen dein System ja nicht...


    Kannst du etwas erklären, wie du Dinge abspeicherst, wie entsprechende Variablen heißen bzw du es lädst.

    Die Array Strukturen wären hier entscheidend :)

    Worauf bezieht sich MAX_FRAC_VEHICLES?

    was für einen Fehler übersehe ich?

    Da hilft dir Debugging, entweder mit einem Breakpoint oder einfach ein printf über entsprechende Zeile schreiben und einfach mal dir ausgeben lassen, was so in username und l.username steht und ob das eben identisch ist ;)


    Vermutlich wird es nicht richtig aus der Datei ausgelesen und in das struct übertragen.


    Können auch Probleme mit der Kodierung herrschen, aus diesem (und vielen weiteren Gründen), sollte man auch eine Datenbank nutzen und keine einfache Text Datei um Passwörter etc zu speichern.


    Passwörter sollten grundsätzlich auch gehasht werden (hatte damals ein kleines Tutorial dazu verfasst: Hash Verfahren genauer erklärt ) und nicht im Klartext abgelegt werden (ist rechtlich sogar untersagt, siehe DSGVO) :)

    Also format ist sehr langsam und sollte tunlichst vermieden werden.


    In diesem Fall kannst du komplett darauf verzichten.


    Und wenn du direkt einen String zuweisen kannst (in diesem Fall den Dialog-Titel), dann tue dies, dann brauchst du keinen extra Speicher für eine Variable reservieren.


    Der Crash entsteht hier, da kein \n verwendet wird und somit alles in eine Zeile geschrieben wird und diese überläuft.


    Der Code kann aber deutlich schöner geschrieben werden, z.B. mit einem Makro: