Trigger+Collisionmask

  • Hi!


    Bei meinem Mapumbau wollte ich den vorhandenen Trigger austauschen, da dieser den MapDoorTrigger braucht.


    In der Standartmap ist einmal ein Trigger für eine Slidedoor (am Shop) und für eine Barriere (Schranke an der BGA) vorhanden. Slidedoor hat
    "slidedoortrigger.oncreate" und die barriere "barrier.oncreate" .
    Allerdings funktioniert keiner von beiden auf meiner Map für ein Schiebetor wenn ich mit einem Standarttraktor vorbei komm. Trigger ist groß genug.


    Collisionmask hab ich versucht 6291456 (gleiche wie bei allen Tankstellen) , 14680064 (gleiche wie bei der Schranke) , 3145728 (wie bei der Shoptüre) und 81797120 (die Collisionsmask beim Fahrzeugverkaufstrigger) .
    auch mit der alten aus LS2011 133169152 gehts nicht.


    Jemand eine Idee?

  • Slidedoor, scheint so wie ich es bisher getestet habe bzw von anderen gehört die auch getestet haben, nur auf den Player selber zu reagieren.
    Beim Slidedoor musst du auch die Translate angeben, das hast du aber sicher gemacht, oder?


    Wenn nicht sieh dir das Shop SlideDoor nochmal an, da ist ein unterpunkt der bei den Attributes die TranslateX stehen hat und dazu den Wert wie weit es aufgehen soll.


    Das barrier.onCreate ist wie im Ls11 eine Schranke, die auf schlepper reagiert. Da bekommst du keine "schiebe" bewegung hin, da ist höchstens ein drehen möglich, also das deine Tore z.b. nach vorne aufklappen, wie bei alten scheunen Toren.

  • Das Translate hatte ich nicht, da das Tor eine Animation hatte.
    Hab diese jetzt mal gelöscht und dafür wie bei der Shoptür die Translate angegeben.


    Leider tut sich immer noch nix.


    Aus der i3d:
    [expander]

    Code
    <TransformGroup name="BGA_Schiebetor" translation="79.802 83.55 -36.2482" rotation="0 -25 0" nodeId="6074">
    <Shape name="Halterung" static="true" nodeId="6075" materialIds="488" shapeId="321" castsShadows="true" receiveShadows="true"/>
    <Shape name="bgadoorright" static="true" trigger="true" collisionMask="3145728" clipDistance="200" nodeId="6076" materialIds="784" shapeId="322" nonRenderable="true">
    <Shape name="Tor_6" kinematic="true" nodeId="6077" materialIds="79" shapeId="323" castsShadows="true" receiveShadows="true"/>
    </Shape>


    Code
    <UserAttribute nodeId="6077">
    <Attribute name="translateZ" type="float" value="1.32"/>
    </UserAttribute>

    [/expander]

  • Hast du das onCreate auch in deinem Trigger stehen???


    Code
    <Shape name="bgadoorright" static="true" trigger="true" collisionMask="3145728" clipDistance="200" nodeId="6076" materialIds="784" shapeId="322" nonRenderable="true">


    Den trigger anklicken und bei den User Attributen folgendes Eintragen:


    Code
    <Attribute name="onCreate" type="scriptCallback" value="SlideDoorTrigger.onCreate"/>


    dann sollte es gehen.

  • Danke für die Hilfeversuche, ja beim Trigger war schon:


    Code
    <UserAttribute nodeId="6076">
    <Attribute name="onCreate" type="scriptCallback" value="SlideDoorTrigger.onCreate"/>
    </UserAttribute>


    Aber das Tor rührt sich trotzdem nicht. Ich verstehs nicht :/

  • OK.. funktioniert jetzt (warum , keine Ahnung). Allerdings hab ich noch keine Collisionmask rausgefunden die auch mit Fahrzeugen den Trigger auslösen würd. Nur mit der original vom Shop :/


    Das wäre 21 und 20 angehakt. Super, das war in LS2011 noch Traktor und Hänger .... Gott, warum müssen die immer alles über den Haufen schmeißen :/

  • Meinen eigenen RotationDoors und TranslationDoors. Aber eigentlich sollte die CollisionMask nichts mit der LUA zu tun haben. Könnte höchstens sein dass die SlideDoors beim betreten des Triggers überprüfen ob es der Player ist, dann kannst du aber machen was du willst und es hilft nichts.



    LG

  • Deine eigenen TranslationDoors? Kann man die eventuell "ausleihen"? Hab da so schöne Tore, die ich mit nem Fahrzeug öffnen möchte. :D



    Habe bei dem SlideDoorTrigger auch schon ausprobiert. Ich denke mal, da wird überprüft, ob Player oder nicht. Also muss man jedesmal ranfahren, aussteigen und wieder einsteigen. :(

  • Deine eigenen TranslationDoors? Kann man die eventuell "ausleihen"? Hab da so schöne Tore, die ich mit nem Fahrzeug öffnen möchte. :D




    Habe bei dem SlideDoorTrigger auch schon ausprobiert. Ich denke mal, da wird überprüft, ob Player oder nicht. Also muss man jedesmal ranfahren, aussteigen und wieder einsteigen. :(


    Aus/Einsteigen klappt nicht. Dazu bleiben die Tore nicht lang genug offen, da sie ja automatisch schließen wenn man aus dem Trigger geht.
    *sfzt* Also hoffen das Giants da nachbessert, jemand doch noch die Zauberformel für die Collisonmask findet oder doch wieder Mapdoortrigger (wenn er denn mal wieder tut) verwenden. Wobei letzeres ich vermeiden wollte... würde 1 Mod sparen und vorallem die dämliche Sucherei für User ersparen.

  • Deine eigenen TranslationDoors? Kann man die eventuell "ausleihen"? Hab da so schöne Tore, die ich mit nem Fahrzeug öffnen möchte. :D


    Hmm.. Hab die TranslationDoors LUA mal angehängt. Ist kein eigenständiger Mod sondern muss über die Moddesc der Map eingebunden werden.


    XML
    <extraSourceFiles>
    <sourceFile filename="Scripts/translationDoors.lua" />
    </extraSourceFiles>
    <inputBindings>
    <input name="TOGGLE_DOOR" key1="KEY_KP_0" />
    </inputBindings>


    Zum Funktionsprinzip, die Tore öffnen sich wenn man in den Trigger fährt oder läuft. Im Singleplayer kann man zusätzlich wenn man im Trigger steht durch drücken der Taste Numpad 0 das Tor offen halten, sodass es geöffnet bleibt auch wenn man den Trigger wieder verlässt. Erneutes drücken während man im Trigger ist deaktiviert das offen halten. Im Multiplayer ist die Funktion des offen haltens deaktiviert.



    Zu den Trigger Einträgen:
    onCreate --> scriptCallback, das onCreate Attribut des Triggers. Der Eintrag lautet hierbei "modOnCreate.translationDoorsOnCreate"
    doorIndex ---> Integer, gibt den "Index" des Tores an vom Trigger aus gesehen. Nur einstellige Indexwerte sind möglich. (Im Idealfall ist das Tor direkt im Trigger, und der Index damit "0" )
    transDirection --> String, mögliche Werte sind "x", "y" und "z". Gibt die Achse an auf der das Tor sich bewegen soll
    minTrans --> Float, die minimale Translation des Tores auf der bei transDirection angegebenen Achse an. minTrans ist der geschlossene Zustand.
    maxTrans --> Float, die maximale Translation auf der angegebenen Achse, maxTrans ist der geöffnete Zustand
    transSpeed --> Float, Optionaler Wert zur Beeinflussung der Geschwindigkeit beim öffnen und schließen, Standardwert ist 1.



    CollisionMask des Triggers wie schon weiter oben erwähnt verwende ich 102000



    LG

  • Hört sich echt gut an, was du da gemacht hast.


    Hab da aber gleich mal Fragen zu.


    1. Wie sieht es bei Doppeltoren aus? Muß ich da 2 Trigger übereinander setzen? Denn ich bräuchte ja dann 2 Indices.


    2. Funktioniert das ganze auch als Rotation? Oder ist das Script nur auf Translation begrenzt?


    3. Was mich noch am Meisten interessiert, funktioniert das Script für Placeables? Möchte meine Scheunen auch gern als Placeables machen.

  • Moin..


    1. Zwei Trigger nebeneinander bzw. ineinander, da ich nie doppelte Schiebetore hatte brauchte ich das nicht.
    2. Dazu habe ich die RotationDoors LUA, bei bedarf kann ich die hier auch posten.
    3. Nein, Placeables mit LUA funktionieren etwas anders. Die Grundlegenden Features der LUA könnte man aber mit etwas Scriptkenntnissen sicher in eine Placeable LUA rein basteln.. ^^


    LG

  • Danke erstmal für den Trigger.


    Nur bin ich glaub zu blöd den zu verwenden -.-


    [expander]

    XML
    <TransformGroup name="BGA_Schiebetor" translation="79.802 83.55 -36.2482" rotation="0 -25 0" nodeId="5855">
    <Shape name="Halterung" static="true" nodeId="5856" materialIds="622" shapeId="302" castsShadows="true" receiveShadows="true"/>
    <Shape name="bgadoorleft" translation="0 -0 1.08479" rotation="1.33432 0.043854 -0.104254" static="true" trigger="true" collisionMask="102000" clipDistance="200" nodeId="5857" materialIds="686" shapeId="303" nonRenderable="true">
    <Shape name="Tor_6" translation="0.120136 8.69082e-008 -1.11425" rotation="-180 -0 -180" kinematic="true" nodeId="5858" materialIds="110" shapeId="304" castsShadows="true" receiveShadows="true"/>
    </Shape>
    </TransformGroup>


    XML
    <UserAttribute nodeId="5857">
    <Attribute name="doorIndex" type="integer" value="0"/>
    <Attribute name="maxTrans" type="float" value="13"/>
    <Attribute name="minTrans" type="float" value="0"/>
    <Attribute name="onCreate" type="scriptCallback" value="modOnCreate.translationDoorsOnCreate"/>
    <Attribute name="transDirection" type="string" value="x"/>
    <Attribute name="transSpeed" type="float" value="0"/>
    </UserAttribute>

    [/expander]


    Und es passiert, außer das das Tor 2 Meter weiter vorne ist als es im GE ist, nichts....

  • Hab gerade nur Linux aufm Rechner.. Könnte die LUA raus suchen und hoch laden, aber nicht testen ob sie auch Fehlerfrei ist.. Das letzte mal dass ich sie benutzt hab ist schon einige Wochen/Monate her. Darum bin ich mir nicht mehr sicher ob alles im 13er problemlos geklappt hat :D



    LG


    EDIT: Ich hänge sie einfach mal an..


    Moddesc Eintrag der selbe wie für die translationDoors, nur eben für rotationDoors.

    XML
    <extraSourceFiles>
    <sourceFile filename="Scripts/rotationDoors.lua" />
    </extraSourceFiles>


    Der InputBindings Eintrag ist exakt der selbe, ist die translationDoors schon drinne, muss da nix dazu. Ansonsten den Eintrag davon nehmen..




    Das Funktionsprinzip des ganzen ist genau das selbe wie bei den translationDoors, abgesehen von der Tatsache dass damit pro Trigger jeweils 2 Tore angesteuert werden, also typische Flügeltore (So heißen die glaube ich) die eben halbiert sind und jede Hälfte in eine Richtung auf geht.. Was anderes ist mit der LUA so wie sie jetzt ist nicht möglich. Habt ihr also nur ein Tor dann einfach eine leere Transformgroup als Index für das zweite eintragen, ist zwar etwas Pfusch aber funktioniert definitiv ;)




    Triggereinträge:
    onCreate --> scriptCallback, das onCreate Attribut des Triggers. Der Eintrag lautet hierbei "modOnCreate.rotationDoorsOnCreate"
    maxRotRight -> float, Maximale Rotation des rechten Tores (Wert im geöffneten Zustand)
    minRotRight -> float, Minimale Rotation des rechten Tores (Wert im geschlossenen Zustand)
    maxRotLeft -> float, Maximale Rotation des linken Tores (Wert im geöffneten Zustand)
    minRotLeft -> float, Minimale Rotation des linken Tores (Wert im geschlossenen Zustand)




    Mehr Einträge gibt es nicht, die Tore müssen beide direkte Untergruppen des Triggers sein, dabei ist die erste das linke Tor, die zweite das rechte Tor.



    Ich hoffe die LUA funktioniert.. :D Falls es Probleme gibt einfach hier schreiben...




    LG

Jetzt mitmachen!

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