Kleine-Scripting-Fragen

  • @Hardcore4435 Ich gehe davon aus, dass du Clientseitig den Marker erstellt hast (Weshalb der Fehler auftritt)


    Ballerst ne Abfrage rein, ob das hitElement der localPlayer ist, sollte dein Problem gelöst sein.


    Siehe hier:


    Lua
    addEventHandler("onClientMarkerHit", deinMarker, function(uElement)
    if (uElement == localPlayer) then
    --> Dein Code
    end
    end)
  • @n0pe Danke für die antwort. Die marker sind serverseitig erstellt worden und die abfrage mache ich mit onMarkerHit. Ich werde jetzt einfach die marker clientseitig erstellen. Die marker müssen sowieso nicht serverseitig sein

    Full PvP DayZ [MTA DayZ]
    Server: mtasa://185.249.198.123:22003
    :):):):):):):):):):)

  • anke für die antwort. Die marker sind serverseitig erstellt worden und die abfrage mache ich mit onMarkerHit. Ich werde jetzt einfach die marker clientseitig erstellen. Die marker müssen sowieso nicht serverseitig sein

    Durch lernst aber dann nicht aus dem Fehler. Ich denke mal das dein Fehler beim Triggern liegt weil du es bestimmt für jeden Spieler triggerst statt dem Spieler der im Marker ist.

    Code
    triggerClientEvent ( [ table/element sendTo = getRootElement(), ] string name, element sourceElement [, arguments... ] )

    Hierbei ist muss bei sendTo der Spieler angegeben werden der hinein läuft, du hast dort bestimmt getRootElement() wodurch es bei jedem Spieler getriggert wird.SourceElement ist das Object was du beim Client als Source nutzen willst hierbei meistens auch wieder der Spieler.


    Mit freundlichen Grüßen


    Strider

  • Oh ja ich hatte getRootElement ups egal ist jetzt clientseitig :D


    Habt direkt aber noch eine neue Frage und zwar ist es möglich das auto indem der player einsteigt schon abzufragen ohne das er im auto sitzt? Weil ich mache ein car lock system sprich beim einsteigen öffnet sich ein fenster wo man das password von dem auto eingeben muss. Das password setze ich via setElementData auf das auto die abfragen ist dann halt mit getElementData aber ich kann während dem einsteigen noch kein getElementData nutzen da getPedOccupiedVehicle nil ist. Vielleicht habt ihr ja ideen wie man das komplett anders machen kann

    Full PvP DayZ [MTA DayZ]
    Server: mtasa://185.249.198.123:22003
    :):):):):):):):):):)

    Einmal editiert, zuletzt von Hardcore4435 ()

  • Das bringt wenig kannst dir ja mal im chat ne nachricht ausgeben lassen bei dem event. dann wirst du sehen das die nachricht erst dann kommt wenn du im auto sitzt. Ich brauchte das sobald man quasi the hand an der tür hat. Hab das ganze jetzt anders gemacht mit isElementInRange

    Full PvP DayZ [MTA DayZ]
    Server: mtasa://185.249.198.123:22003
    :):):):):):):):):):)

  • @Hardcore4435 wenn du die Funktion richtig nutzt funktioniert sie auch.


    Hier ein Beispiel, was einem beim "f" drücken im Chat ausgibt, wer welches Fahrzeug betreten wollte und cancelt dann das event und lässt einen nicht einsteigen.


    Lua
    function output(enteringPlayer)
    name = getPlayerName(enteringPlayer)
    auto = getVehicleName(source)
    outputChatBox(""..name.." hat versucht das Fahrzeug "..auto.." zu betreten!",enteringPlayer,255,0,0)
    cancelEvent()
    end
    addEventHandler("onVehicleStartEnter",getRootElement(),output)

    Das ganze sieht dann so aus:
    https://streamable.com/icahb

  • Servus hab nochmal ne frage. Hab hier ne kleine Funktion die mir den Inhalt von nem Table ausgibt. Möchte diese Funktion jetzt triggern und den wert der returned wird damit abfragen


    Hier die funktion:


    Lua
    function getVehiclesFromUser()
    for key,value in pairs(fahrzeugeUser) do
    outputChatBox(tostring(value))
    return tostring(value)
    end
    end
    addEvent("getVehiclesFromUser",true)
    addEventHandler("getVehiclesFromUser",root,getVehiclesFromUser)


    trigger es so:

    Lua
    triggerEvent("getVehiclesFromUser",localPlayer,localPlayer)

    Full PvP DayZ [MTA DayZ]
    Server: mtasa://185.249.198.123:22003
    :):):):):):):):):):)

  • Warum respawned der spieler nicht? Debugscript sagt nichts. Er faded quasi die ganze zeit nur raus sobald der timer abgelaufen ist portet sich die kamera nochmal an die spieler leiche und geht dann wieder weiter nach oben und es passiert einfach NICHTS. Verstehe das nicht

    Full PvP DayZ [MTA DayZ]
    Server: mtasa://185.249.198.123:22003
    :):):):):):):):):):)

  • Servus leute hab hier eine tabelle aus dieser entnehme ich per math.random eine zahl von 1 - 3. Dadurch bekomme ich dann den map namen. jede map hat einen eigenen table mit spawn positionen. Ich möchte nun in zeile 26 den mapnamen den ich per mathrandom bekommen habe benutzen um die jeweilige Tabelle anzusteuern. Allerdings funktionert das so nicht bzw ich weiß nichtmal ob das überhaupt so funktionieren kann.


    Ich bedanke mich für jegliche Hilfe!




    Full PvP DayZ [MTA DayZ]
    Server: mtasa://185.249.198.123:22003
    :):):):):):):):):):)

  • Ich sehe hier ein kleines Problem mit der benennung deiner Variablen


    Lua
    local map = crossMaps[rn] -- map ist ein Text
    outputChatBox("map: "..map)
    for playerKey2, playerValue2 in ipairs ( players2 ) do
    local x,y,z,rx,ry,rz = map[playerKey2][1],map[playerKey2][2],map[playerKey2][3],map[playerKey2][4],map[playerKey2][5],map[playerKey2][6] -- du behandelst einen Text wie eine Tabelle



    Weiss nicht wie deine Tabelle "map" aussieht, also schätze ich jetzt einfach mal


    Habs jedoch nicht getestet

  • Moin


    Ich habe dir hier mal ein Beispiel zusammengestellt, um das Zusammenspiel von Indizes und Values ein wenig zu zeigen.
    Prinzipiell kannst du deine Tables beliebig verschachteln, du musst dir einfach über die Zugriffe bewusst sein.
    Leider wusste ich nicht ganz genau, was du meinst, daher habe ich ein paar Sachen meinerseits angenommen.
    Dein Code schien mir ein wenig merkwürdig, da er scheinbar Client-Side ausgeführt wird. Ich kann dir an dieser Stelle nur abraten.
    Spawnpoints etc ist eigentlich Sache des Servers, da das ja an alle Clients gehen soll. Es kann schon Situationen geben, wo man Client-Side Sachen umsetzt, jedoch konnte ich das dem Code nicht entnehmen.
    Hier wäre der Code zum anschauen. Wenn du etwas nicht verstehst - einfach fragen.



    Derzeitiger Output:


    Code
    Map: derby1
    11.11|21.22|31.33|41.44|51.55|61.66
    12.11|22.22|32.33|42.44|52.55|62.66
    13.11|23.22|33.33|43.44|53.55|63.66
    14.11|24.22|34.33|44.44|54.55|64.66
  • Moin,


    Hätte da ein kleines problem :D


    Ich habe eine Tabelle die ich gerne Sortieren möchte.
    Die Tabelle wird wie folgt gefüllt:

    Lua
    local playerData = {}
    function fillTable()
    -- Diverses zeug
    table.insert(playerData, {name=p.Name, value=p.Count})
    end


    Jetzt würde ich gerne die Tabelle "playerData" so sortieren lassen das der Höchste Count an erster stelle steht.
    Habe bereits mit table.sort und verschiedenen Funktionen versucht die Tabelle zu sortieren bekomme aber jedes mal die Meldung: table expected, got nil


    Hier ein teil der Versuche (denke mehr beispiele wird es nicht brauchen da am ende alles mehr oder weniger aufs gleiche rauskommt)

    Lua
    table.sort(playerData.value)
    table.sort(playerData.value, function(a, b) return a > b end )


    Stelle ich mich einfach nur doof dran?!
    Hoffe mir kann da jemand helfen :)


    MfG

  • Hallo Paddy,


    in deinem obigen Versuch hast du versehentlich das Feld "value" des Arrays "playerData" zu sortieren versucht. Natürlich hat playerData kein Feld namens "value". Denn stattdessen hat ja jeder Eintrag von playerData ein Feld names "value".


    Versuch mal folgenden Code:



    Liebe Grüße,
    Martin

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!