Beiträge von SlliX

    Spontan würden mir zwei Möglichkeiten einfallen:

    1. Du modellierst jeden Skin den du bearbeiten willst so um, dass einzelne Bereiche (Augen, Mund, Bart, etc.) eigene Texturen haben, die du dann individuell mit engineApplyShaderToWorldTexture ansprechen kannst

    2. Oder, was vermutlich sinniger ist, du erstellst für jede Kombination von Gesicht (z.B. Brauner Bart & Blaue Augen, Roter Bart & Grüne Augen, etc.) eine Textur, die du dann je nach Einstellung des Charakters per Shader setzt

    Womöglich gibt es hier bessere Methoden, die ich jedoch nicht kenne.

    Lua
    dbQuery(connection, ("INSERT INTO whitelist (Serial,Name) VALUES (?,?)"))

    Du vergisst bei deiner query die Werte selbst zu übergeben, das "Serial" und "Name" in der Klammer nach "whitelist" sind die Spaltennamen in der DB, nicht deine Werte. so müsste es funktionieren:

    Lua
    dbQuery(connection, "INSERT INTO whitelist (Serial, Name) VALUES (?, ?)", Serial, Name)

    Da dbQuery Synchron ausgeführt wird, und du nur eine einfache Insert ausführen willst, würde sich sich glaube ich auch eher dbExec empfehlen.

    Dein EventHandler mit onPlayerConnect darf bei der Funktion keine klammern haben, aus `check()` wird `check`.

    Zudem ist der erste Parameter von onPlayerConnect der Spielername, und nicht das Spielerobjekt, welches du für das triggerClientEvent brauchst.

    onPlayerConnect hat als source das Spielerobjekt, also ändere in deinem triggerClientEvent das ´player´ in ´source´ um.

    In deinem triggerClientEvent verwendest du ´getRootElement´, was jedoch keine definierte variable ist.

    Du kannst entweder ´getRootElement()´, ´root´ oder ´resourceRoot´ nehmen. (Das Wiki empfiehlt ´resourceRoot´)

    Ich würde dir empfehlen es zu verhindern das Beifahrer mit in die Dimension kommen, da das eig. nur Probleme bereitet.

    Du könntest abfragen, ob der Spieler der den Marker betritt der Fahrer ist und jeden anderen rausschmeißen:

    Lua
    for seat, player in pairs(getVehicleOccupants(veh)) do
        if seat ~= 0 then
            removePedFromVehicle(player)
        end
    end

    Wenn du jedoch die Beifahrer dabei haben willst, macht deine Beifahrer abfrage keinen sinn.

    Um die Leute im Fahrzeug abzufragen, gibt es entweder die Funktion getVehicleOccupants oder getVehicleOccupant.

    Der Fehler sagt aus, das deine Datenbankspalte nur DATETIME akzeptiert, da fällt dein TIMESTAMP nicht drunter.

    Entweder zu wandelst deine Datenbankspalte zum wert TIMESTAMP um oder du konvertierst dein TIMESTAMP in DATETIME direkt im Script.

    https://wiki.multitheftauto.com/wiki/GetRealTime hat hier zu mindestens einen Ansatz:

    Lua
    local formattedTime = string.format("%04d-%02d-%02d %02d:%02d:%02d", year + 1900, month + 1, monthday, hours, minutes, seconds)

    Ob der Syntax aber stimmt kann ich dir nicht sagen.

    Du könntest es so machen, dass du ein ElementData auf das Fahrzeug legst und dann beim einsteigen einen Timer setzt, der immer prüft ob die Geschwindigkeit erreicht ist. Bei deinem Script bin ich mir nichtmal sicher ob das funktionieren würde, da du das ganze clientseitig versuchst, und z.B. ausgestreamte Fahrzeuge nicht mehr existieren und somit nichts getriggert werden kann.

    Ungetestet, muss noch etwas angepasst werden, der Timer wird z.B. nicht entfernt wenn man vor dem explodieren aussteigt:

    setGlitchEnabled hilft in diesem Fall nicht, da es tausende Bugs gibt die nicht von der Funktion abgedeckt werden. Der einzige Laufbug der damit gefixt wird ist der mit Leertaste spamen, den den er meint ist jedoch so nicht fixbar.

    ... Ja was die Classlib ist mir bewusst, meine Frage war ob diese in deinem Gamemode eingebunden ist, aber anscheinend hast du keine Ahnung was dein Script überhaupt ist. Schick am besten mal deine ganze Admin datei, damit ich gucken kann obs komplett OOP ist

    Der Fehler sagt aus das dein v["text"] keinen Wert hat, er ist also einfach in der Datenbank / in deinem dbPoll nicht vorhanden. Schau mal ob es wirklich eine Spalte "text" gibt, oder es daran liegt, das "text" kleingeschrieben ist, da du oben "Username" und "Text" mit Großbuchstaben in die Datenbank speicherst.

    Btw hab direkt nochmal ne frage ist es möglich einen spieler quasi durchsichtig zu machen das man hindurch laufen kann aber den spieler an sich noch ganz normal sieht also nicht einfach setElementAlpha auf 0?

    https://wiki.multitheftauto.com/wiki/SetElementCollisionsEnabled

    +

    ein Timer der nach n-Zeit die Kollision wieder aktiviert

    //EDIT

    oder https://wiki.multitheftauto.com/wiki/SetElementCollidableWith, ich weiß grad nicht ob bei setElementCollisionsEnabled der Spieler dann auch durch die Welt fällt

    Auf dieser Art klingt wird der Sound sehr oft hintereinander abgespielt das liegt sehr wahrscheinlich an der funktion die ich habe es ist in einer Bedingung eingebaut und naja ich möchte es "normal" hintereinander abspielen lassen. Aber ich danke dir sehr. Leider funktioniert es nicht so einfach.

    Arafat Wenn du uns die ganze Funktion mitsamt den Bedingungen sowie den Sound ansich bereitstellst, kann man dir bestimmt mehr helfen, als nur raten zu können.

    Was ist denn dein Ziel? Soweit ich das verstehe spielt dein Script einen Sound ab, und eine andere Funktion checkt (vermutlich immer wieder) ob der Sound fertig ist, destroyed ihn und startet ihn wieder.

    Warum so umständlich?

    Lua
    playSound( string soundPath, [ bool looped = false, bool throttled = true ] )

    Wenn du bei playSound einfach das zweite Argument auf true stellst, brauchst du nicht den Sound immer wieder neustarten. Wenn der Sound aufhören soll, musst du lediglich das Element destroyen.