Unnamed Map und func_door_rotating

MacX

Light Guard
Ich habe mir mal deine Map + GUI + Script angeschaut, und das funktioniert doch genauso, wie ich es geschrieben habe.
Ich hätte vllt. ein Unsichtbares GUI, komplett über die Tür, gelegt, sodass man nur auf die Tür klickt, und die Tür aufgeht.
Eventuell könnte man sowas dann auch über Türklinken legen.

Was für ein GUI willst du haben? So ein transparentes GUI, was man nur über die Tür legt?
Deine Variante, eine Konsole neben die Tür zu bauen, wo man draufklickt, fänd ich, bei deiner Map, angebrachter.
Für eine SilentHill Map, wo es sowas wie GUI-Konsolen nicht geben sollte, würde ich meine Variante bevorzugen.
 
ja das ist es ja, ich will so nen transparenten :) weil die GUI die ich verwendet hab, passt net so ganz, weil tür -> shutters? :D
 

MacX

Light Guard
Ok. Dann werd ich mal ein transparentes GUI erstellen, mit dem man eine Script-Funktion aufrufen kann. ( Bau ich dann in deine Map ein )
Vllt. schaff ich das heute noch. Muss noch eine neue D3-dll erstellen :P

Gruß
MacX
 

MacX

Light Guard
Map + GUI HIER

Die Rar datei einfach im base ordner entpacken.
Dateien: doortest.map, doortest.script, doortest.gui

Vorher nochmal kompilieren.

Gui-Funktionen sind im Mapscript integriert. Dies ist aber nicht unbedingt notwendig.
Möchte man Gui-Funktionen in ein extra Script tun, so muss man dieses Script im doom_main.script inkludieren. ( #include ... )

Funktion:
Tür geht auf, wenn man draufklickt. Func_static mit GUI ist an tür gebunden.

Warnung:
Gui script noch nicht optimal, weil Positionsverschiebung, bei zu schnellen draufklicken.

EDIT: sry, wegen doppelpost.

Gruß
MacX
 
cool, vielen dank MacShit, werds dann später mal testen :) aber wo ist derjenige der das wirklich brauch? :??:

aber wegen türverschiebung bei zu schnellem draufklicken, warum nicht einfach die gui verstecken während dem scriptvorgang und dann erst wieder erscheinen lassen wenn das script fertig ist? wäre eine lösung, optimal wärs natürlich wenn man drauf klickt, tür geht auf und kurz darauf wieder drauf klickt und die tür geht wieder zu, meinst du dafür gibts was zum scripten dass der vorgang dann abgebrochen wird und die tür automatisch wieder auf ihre Ursprungsposition zurück geht?
 

PurrLinn

Commander Keen
Da bin ich wieder. Tut mir Leid, dass ich mich so lange nicht gemeldet habe, aber ich war ein paar Tage nicht zu Hause.

Einen herzlichen Dank an alle, die mir schon versucht haben zu helfen. Momentan bin ich noch am rumtesten und habe unter anderem noch eine Datei (pk4-file) eines Freundes bekommen, welche das Entity "func_rotatingdoor" einbaut. Jetzt muss ich nur rausfinden, ob es funktioniert und welche Variante die einfachste ist.

Auch vielen Dank für die Infos zum GUI, werde ich gleich heute noch ausprobieren.

Im Übrigen wäre eine Tür genial, die physikalisch korrekt auf- und zugeht. Also wenn ich dagegen schieße schwingt sie auf und wenn ich von der anderen Seite was dagegen werfe oder dagegen laufe, bleibt sie zu. Wenn man sie also greifen könnte, wie ein bewegliches Objekt, das wäre klasse, aber ich denke das erfordert zu viel Arbeit und wäre nicht wirklich notwendig.

Ich hab auch noch ein Texture-Paket in Form einer pk4 erhalten, weswegen es wohl sehr bald textured-shots geben wird.

Akribator
 

MacX

Light Guard
Ich habe natürlich versucht, das GUI zu verstecken. "func_static.hide();" brachte nicht den gewünschten Erfolg.
Hab ich es anders probiert. Und zwar mit dem Einsatz von onTime im GUI ( wollte für 1-2 sekunden GUI item "noevent" auf 1 stellen). Dies klappte auch nicht so recht. Fehler meinerseits sind natürlich nicht ausgeschlossen. ;)


Also, im moment ist es so, dass sich die Tür beim ersten mal draufklicken um 90° dreht und beim zweiten mal draufklicken 90° in entgegengesetzter Richtung. Ist ja soweit korrekt. Aber wenn man draufklickt, bevor diese 90° rotation vollständig ausgeführt wurde, kommt die Tür trotzdem 90° zurück...

So, und die Sache mit der Ursprungsposition...hmm. Da würde ich, die Standardposition der Tür speichern.
Eventuell so:

Code:
// global variables
vector dOrigin;
...

void   openDoor()

   dOrigin = func_mover_1.getWorldOrigin();

   func_mover_1.rotateTo( '0 90 0' );

}

void   closeDoor()

   vector tempOrigin;

   tempOrigin = func_mover_1.getOrigin();

   while( dOrigin != tempOrigin ) {
      func_mover_1.rotateTo( '0 -1 0' );
      tempOrigin = func_mover_1.getOrigin();
   }
}

Kann jetzt nicht garantieren, dass dies auch funktioniert und die Beste Methode wäre. Weiß jetzt auch nicht, wie es da mit der Performance aussieht.
Die Variante fiel mir nur gerade ein. Kenne jetzt nicht alle Scriptfunktionen auswendig.

Ach und: Weiteres Problem wäre, dass diese Funktionen ( momentan! ) nur auf eine Tür anwendbar wären, da explizit "func_mover_1" angegeben wurde.
Mit entsprechender Parameterübergabe an die Funktionen könnte man das lösen, aber dies ginge wohl nur über Trigger und nicht über GUI.

Werde ich mir nochmal anschauen, wenn ich wieder @home bin.

EDIT:
Im Übrigen wäre eine Tür genial, die physikalisch korrekt auf- und zugeht. Also wenn ich dagegen schieße schwingt sie auf und wenn ich von der anderen Seite was dagegen werfe oder dagegen laufe, bleibt sie zu. Wenn man sie also greifen könnte, wie ein bewegliches Objekt, das wäre klasse, aber ich denke das erfordert zu viel Arbeit und wäre nicht wirklich notwendig.

Ich glaube nicht, dass dies ohne Verwendung des SDKs möglich ist, wenn doch, wäre ich erfreut, wenn das hier jemand erläutern könnte.

Gruß
MacX
 

Tombery

Sarge
Das sind echt nützliche Tips von euch, Danke. Ich hab da was, was man für die Türen gut gebrauchen kann, benutze ich übrigens auch für meine Q4 Mod.

Tricks für Türen.
Key:locked Val:2 = damit ist eine Tür fürs erste geschlossen. Ich denke mal bei einer selbst gebauten Tür mit einem Gui ist dann noch nichts anwählbar.

Wenn das Gui und die Tür verschiedene Statics sind, dann den wert der Tür geben. Key:buddy Val:Gui/oder das Static
Wenn die Tür getriggert wird, dann ist das Gui anwählbar. Man kann es für andere zwecke auch umgekehrt machen.

Das benutzt man normalerweise für die Tür und den Türrahmen, damit ist der Türrahmen geschlossen Rot beläuschtet, getriggert wird er Grün.

Wenn die Tür geschlossen ist, verbindet man ein Trigger mit der Tür. Der Trigger bekommt den wert: Key:triggerFirst Val:2
Damit ist dieser trigger unsichtbar, und dieser Trigger wird dann zuerst von einem anderen Trigger getriggert. Benutzbar für Türen oder Monster die erst erscheinen sollen wenn vorher was bestimmtes geschehen ist. Oder: ((dagegen schieße schwingt sie auf und wenn ich von der anderen Seite was dagegen werfe oder dagegen laufe, bleibt sie zu. ))

Ich würde an der Tür dann noch einen drehbaren Griff montieren, der klick Sound dazu. Beispiel: einen Griff aus func_rotating, Key:y_axis Val:1 / Key:Speed Val:10
und denn nach 1 secunde über einen Func_remove stoppen lassen. Das kann man vor alle anderen scripte vorschieben.

Ich schaue mir auch mal später die Rar datei an.



Gruss:Basti
 
Top