Beiträge von Kaliber

    es die Möglichkeiten gibt sein Partyerlebnis öffentlich zu teilen

    Nein, hör doch auf, das ist ja DIE IDEE.


    Gäbe es doch nur eine Plattform, wo man seine Freunde adden könnte, um Bilder oder gar Videos zu teilen.


    Neben WhatsApp, Signal, Telegram, Instagram, Facebook, Twitter, Snapchat, TikTok brauch es unbedingt noch eine App, gerade für diesen Zweck. Das ist ja essentiell seine Partyerlebnisse in die Öffentlichkeit zu tragen.

    Auf den anderen kann man ja keine Bilder oder Videos teilen, also mega gute Nische.


    Wenn du die Millionen dafür gemacht hast, hier Idee Nr. 2.

    Eine Dating App. Aber mal ordentlich.


    Das wird unsere Gesellschaft als Ganzes voranbringen, da bin ich mir sicher!


    Für sowas kann ich dir ChatGPT ans Herz legen.


    Das hat sogut wie alle öffentlichen Dokus gelesen und all das Wissen in Foren aufgesammelt.



    Wenn das nicht weiterhilft, dann gerne hier nochmal melden ;)

    Du hast da e_modelid, statt modelid stehen.


    Es ist halt maximal stupid modelid als globale Variable zu haben. Fast so wie wenn man playerid o.ä. als globale Variable hätte.

    Nenn es um zu gModelid (für global) oder sowas. Oder lass es ganz weg eig ist es unnötig.


    #Handy

    ich versteh nur nicht was daran falsch ist

    Es steht doch da, was falsch ist.


    Schau mal in die Doku: https://team.sa-mp.com/wiki/My…#cache_get_value_name_int


    Du verwendest cache_get_value_name_int gibst aber keinen Spaltennamen an...


    So wie das aussieht, willst du cache_get_value_index_int verwenden.


    Aber selbst da, bekommst du nicht als return wert den Wert zurück, sondern als Parameter gesetzt.


    Sprich dann so nutzen:


    cache_get_value_index_int(i, 0, dynClothesInfo[playerid][i][cID]);


    Wobei ich dir empfehle das per Name zu machen, damit es zu keinen Verwechslungen kommt...ist schwer zu finden xD


    Oder nutze direkt ein ORM System, wobei das etwas komplexer ist, wenn man damit noch nie gearbeitet hat.

    Genau :)


    Nur die Klammern sind unnötig, also:


    C++
    for(new i, j = GetPlayerPoolSize(); i <= j; i++)
    {
        if(IsPlayerNPC(i) || !eingeloggt[i]) continue;
        SpeichereSpieler(i);
    }


    Das reicht völlig.


    Wenn btw keine Reihenfolge nötig ist (beim Zählen der Loop), kannst die Loop auch noch optimieren:


    C++
    for(new i = GetPlayerPoolSize(); i != -1; i--)
    {
        if(IsPlayerNPC(i) || !eingeloggt[i]) continue;
        SpeichereSpieler(i);
    }


    Dann ist die Bedingung nämlich eine Konstante und keine Variable mehr.


    Aber Grundsätzlich ist das mit dem GetPlayerPoolSize überbewertet. Ich denke es macht mehr Sinn MAX_PLAYERS auf ein angemessenes Niveau zu definieren und dann zu nutzen.


    OMP zum Beispiel hat das auch entdeckt und empfiehlt halt foreach oder MAX_PLAYERS :)


    Siehe: https://www.open.mp/docs/scrip…nctions/GetPlayerPoolSize

    Das hängt mit Callback-Hooking zusammen :)


    Dort wird quasi der Callback unbenannt mit _ALS_ und deshalb kannst du das nicht direkt aufrufen.

    Generell ist das keine gute Idee Callbacks direkt aufzurufen. Willst du, dass der Spieler den Server verlässt, dann Kick ihn.


    Ansonsten lager den Code von OnPlayerDisconnect in eine Funktion aus und rufe diese gezielt auf.


    PS: Der schlägt dir Gas vor, weil der Compiler durcheinander kommt. Der sucht nach 3 stelligen Variablennamen, weil "ALS" auch 3 stellig ist und schlägt dir das deshalb vor :D

    Dinge die mir aufgefallen sind:

    1. Gut, dass der Server 1000 Slots hat. Das nenne ich Optimismus! 💕
    2. Wieso darf das Passwort keine Sonderzeichen enthalten, wtf? Nutzt ihr kein Hashing? Das wirkt maximal suspekt und gefährlich.
    3. Ich kann mich nicht registrieren, er sagt nachdem ich mein PW eingegeben habe, dass mein PW nicht stimmt. (Habe es mit 2 Accs ausprobiert) Das sollte evtl nochmal geprüft werden.

    Joa, also Respekt 👍🏼

    (function($) {

    Es ist komisch, dass du Dropbox direkt aufrufst.

    Normalerweise musst du das dem $.fn Objekt hinzufügen.


    In deinem Fall am Ende (der (function($) { Funktion) folgendes tun:


    $.fn.Dropbox = Dropbox;


    Und dann das wie folgt aufrufen:


    JavaScript
    function BootOs_Dropbox(elem) {
        var myBootOs = new $.fn.Dropbox({content: 'ajax/test.php', elem: elem, ajax: true});
    }

    nur wird das nur auf eine Seite angezeigt und nicht auf beiden Seiten

    Das liegt an der Reihenfolge, wie du die Dinge aufrufst.


    Du musst natürlich erst das eine Objekt erstellen und anheften und dann das Andere.

    Nicht beides versuchen parallel zu mixxen.


    Ich empfehle dir btw das in eine Funktion auszulagern (da du das sicherlich noch öfters nutzen wirst) und zum Anderen einen Streamer zu verwenden, denn wenn du da (nur als extremes Beispiel) 500 Fahrzeuge hast, könntest du keine anderen Objekte mehr auf dem Server streamen 😅 Deshalb nie CreateObject verwenden, sondern immer CreateDynamicObject.


    Sähe dann z.B. so aus:


    Habe es eben getestet, also mit den Daten stimmt alles.


    (Bekommst du da nicht mega viele compile Fehler?)


    Wie Maho schon gesagt hat, es reicht quasi:


    C++
    Postwagen[0]=CreateVehicleEx(609,989.9643,-1525.2175,13.7328,180.3481,1,1,120,false);
    
    new postobj = CreateObject(19477, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
    SetObjectMaterialText(postobj, "-", 0, OBJECT_MATERIAL_SIZE_128x64,"Wingdings", 75, 1, 0xFFFFFFFF, 0, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
    AttachObjectToVehicle(postobj, Postwagen[0],1.24, -1.0, 1.2, 0.0, 0.0, 0.0);

    So, das sieht doch schon einmal ganz anders aus.


    Laut Log handelt es sich hier um einen OutOfMemory Fehler der GPU.


    Da gibt es jetzt 3 Möglichkeiten:

    1. Der Mod ist absolut kacke programmiert. Am Besten testest du das, wenn jemand mit besserer Hardware das testet und wenn es dort auch fehlschlägt, dann kannst du dir sehr sicher sein, dass da Memory-Leaks oder unnötige riesen Speicher-Reservierungen. im Code vorhanden sind.
    2. Deine GPU hat einen Hardwarefehler, zu wenig Speicherplatz, ist zu alt oder hat veraltete Treiber o.ä.
    3. Im Log wird versucht D3D11 zu verwenden. D3D11 steht für Direct3D11 oder auch DirectX11 genannt. Da stellt sich mir jetzt die Frage, wieso da auf die 11er Version zugegriffen wird. Liegt das an deinem PC, welches Betriebssystem nutzt du? Seit Windows10 ist der Standard eigentlich DirectX12. Eventuell hier mal aktualisieren.

    Viel Erfolg :)

    Ich liebe es ja Log Einträge als Screenshots zu erhalten...vor Allem, wenn es nur n kleiner Teil der Logs ist.

    Auch gut, dass die Screens in unterschiedlicher Zeitlicher Abfolge gepostet wurden...


    Am Besten wäre ja ein Video, wie du die Logs ganz schnell durchscrollst, kappa xD


    Wieso nicht einfach den gesamten Log mal hier posten? Ist das so schwer? Oder hänge ihn an...



    Was hat das in der Sektion Fehler / Vorschläge / Kritik / Lob zum Forum zu suchen? Also die Zeit hätte man sich nehmen können...

    tag mismatch ist immer die hp = 15.0;

    Ah, sry, schreib es so:


    Oder versuchs mal so: