Mordenkainen@Posted: Wed Apr 23, 2003 1:26 am :
Edit by Goliath: Here's a working swinging door that is compatible with the retail game. It was created by S@TaNiC and rotates/swings open when you walk up to it.

S@TaNiC wrote:
Well ive seen quite a few people asking about making a swinging door and here seemed like a good place to put this, test it out tell me what you think.
Heres a little example i knocked up for a friend who wanted something more like a standard house door.
http://www.btinternet.com/~tangentizer/swingdoor.pk4

Just place the swingdoor.pk4 in your base directory and type 'map doortest' in the console to run.


=========================================


WARNING: This thread is ancient. Please take note that threads created prior to 08/2004 are probably outdated and the information in them may not translate into a working solution for the retail game.

Since ssj3alan asked...

Rotating Door
The following can be used for a lot of features but here's a way to make a simple door that rotates on the z axis when the player pushes a button. The door will only swing open (and stay opened) but you can make it more complex by adding extra triggers and functions.

What you need:
1 func_mover
1 func_button
1 trigger_once
1 script function

Procedure:
You can start by making a brush (or structure) for your door. Then make it a func_mover entity. You'll notice a small red dot at its centre. This is will
be the point of rotation for the door. Since doors usually rotate from one side and not the centre you'll need to resize the brush (the dot will remain fixed) so that the dot eventually is where you want the door to rotate around. Once you're done, bring up the Entity Inspector (N) and change the value of the "name" Key to:

Code:
name: mydoor


(or choose a more interesting and unique name like "bathroom_door_1")

Now draw the brush that will be the button. Make it a func_button. Since in our example the door will only open and stay open you should add the following Key/Value to ensure the button stays pressed forever:

Code:
wait: -1


Once that's done, create another brush and make it a trigger_once entity (its texture should change to textures/common/trigonce (don't worry, it won't show up in the game). You might want to add the following Keys/Values:

Code:
call: rotate_door
noTouch: 1


The former is to bring up a script function named "rotate_door" which of course you can personalize. The later is in case you're like me and prefer to put triggers next to the stuff they trigger; This ensures the trigger_once will only "fire" when itself is triggered by the button and not when the player touches it.

Now, make sure you're not selecting anything (Esc). Now select your button (func_button) followed by the trigger_once and press Ctrl + K to link them up. Again, make sure you press Esc before doing the next step. Select the trigger_once followed by your door (func_mover) and link these two as above.

With the three objects chained up there's only one thing left: the script. Select a regular brush (not an entity) and bring up the Entity Inspector (N). You should be looking at the worldspawn entity. Add the following Key/Value:

Code:
script: myscript.script


Feel free to change "myscript" to whatever you wish. Now save your map. Open up Notepad (or whatever you use to edit scripts in) and paste the following:

Code:
void rotate_door()
{
   $mydoor.time(4);
   $mydoor.rotateTo('0, 0, -110');
}


Note: If you changed the value of the "call" Key in the trigger_once to something else then match it here too. If you changed the name Key of your door then make sure you change "mydoor" in the script code above to match it as well.

The first command says to your door that it will take 4 seconds to perform any command. The second will tell the door to rotate around the z axis 110 degrees in counter-clockwise. Save the document as "myscript.script" and put it on the /progs directory. Compile the map and try it out.

You will need to experiment with rotation values to make sure the door rotates enough for what you want but doesn't go inside the hallway geometry or something. But since you can change the script without recompiling the level, just keep Alt + Tabing between DOOM and notepad until you get it like you want it.[/b]



BNA!@Posted: Wed Apr 23, 2003 4:54 am :
Nice litte tutorial - thanks!



rich_is_bored@Posted: Wed Apr 23, 2003 5:29 am :
The beginnings of my scripting army has begun! Bwahhh ha ha ha! :twisted:



ssj3alan@Posted: Fri Apr 25, 2003 3:25 am :
Cool Thanks :D It feels awesome to be mentioned first in a post :D and this tutorial willl help me greatly. Good Job



insectattack@Posted: Sat Jun 26, 2004 2:33 pm :
Well, i haven´t looked at the scripting section for a long time, all those tutorials are very useful!
Thanks alot rich_is_bored, BNA!, plasm, Mordenkainen! (did i miss someone? sorry if so)

Anyway here´s my question:
I made this hexa_door consisting of 6 triangular single doors, based on Mordenkainen´s small Rotating Door Tutorial.
i started with this code:

Code:
void rotate_door()
{

////////////
// Door Speed
////////////

   $mydoor1.time(0.8);
   $mydoor2.time(0.8);
   $mydoor3.time(0.8);
   $mydoor4.time(0.8);
   $mydoor5.time(0.8);
   $mydoor6.time(0.8);

////////////
// Open Door
////////////

   $mydoor1.rotateTo('90 0 0');
   $mydoor2.rotateTo('-90 0 0');
   $mydoor3.rotateTo('30 -90 -30');
   $mydoor4.rotateTo('30 90 30');
   $mydoor5.rotateTo('-30 -90 30');
   $mydoor6.rotateTo('-30 90 -30');

   sys.wait(9);

////////////
// close Door
////////////

   $mydoor1.rotateTo('0 0 0');
   $mydoor2.rotateTo('0 0 0');
   $mydoor3.rotateTo('0 0 0');
   $mydoor4.rotateTo('0 0 0');
   $mydoor5.rotateTo('0 0 0');
   $mydoor6.rotateTo('0 0 0');
}


Opening the doors is no problem and looks really cool, but when closing them with rotateTo('0 0 0');
those doors that were opened using negative values (mydoor2, 3, 5 & 6) rotate in the wrong direction. I tried to close them with rotateTo('-0 0 0') and also tried some other commands like
rotateDownTo and rotateUpTo but it doesn´t work.

So i changed the Close Door section to:

Code:
void rotate_door()
{


////////////
// close Door
////////////

   $mydoor1.rotateTo('0 0 0');
   $mydoor2.rotate('90 0 0');
   $mydoor3.rotate('-30 90 30');
   $mydoor4.rotateTo('0 0 0');
   $mydoor5.rotate('30 90 -30');
   $mydoor6.rotate('30 -90 30');
   sys.wait(1);
   $mydoor2.setAngles('0 0 0');
   $mydoor3.setAngles('0 0 0');
   $mydoor5.setAngles('0 0 0');
   $mydoor6.setAngles('0 0 0');
}


Since rotate rotates the entity continuously i had to use setAngles to stop the rotation and a sys.wait to stop rotating at the right time.
It´s working as intended this way, but it feels cheesy to script in this manner...

So, is the rotateTo command not working correctly or is that some misunderstanding on my part?
Any help is much appreciated, thanx in advance!



rich_is_bored@Posted: Sat Jun 26, 2004 5:13 pm :
Hmmm... I dunno. That's strange. At least you found a workaround.

I'll have to toy with this later and see exactly why it doesn't work like expected.

EDIT: Do me a favor and post/pm/email the map so I can take a look.



Rayne@Posted: Sat Jun 26, 2004 8:27 pm :
Mordenkainen wrote:
You'll notice a small red dot at its centre. This is will
be the point of rotation for the door. Since doors usually rotate from one side and not the centre you'll need to resize the brush (the dot will remain fixed) so that the dot eventually is where you want the door to rotate around.


Or you can change the origin spot in this way...



rich_is_bored@Posted: Sat Jun 26, 2004 10:14 pm :
Don't worry about sending/posting the map. I made one of my own to test it out.

Here is my test map and script. Give me a heads up because I'm not sure if this is what you were trying to do or not.

HEX.MAP

Code:
Version 2
// entity 0
{
"classname" "worldspawn"
"name" "world"
"model" "world"
"script" "hex.script"
// primitive 0
{
brushDef3
{
  ( 0 0 -1 8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 1 -64 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -1 0 -120 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 -8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0.8944271803 0.4472135901 21.4662513733 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 1
{
brushDef3
{
  ( 0 0 -1 64 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 1 -120 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -1 0 -120 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 -8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0.8944271803 -0.4472135901 78.7095947266 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 2
{
brushDef3
{
  ( 0 0 -1 64 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 1 -120 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 -8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 1 0 -120 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -0.8944271803 -0.4472135901 78.7095947266 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 3
{
brushDef3
{
  ( 0 0 -1 8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 1 -64 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 -8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 1 0 -120 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -0.8944271803 0.4472135901 21.4662513733 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 4
{
brushDef3
{
  ( 0 0 -1 0 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -1 0 -128 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 -192 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 1 0 -128 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -200 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 1 -8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 5
{
brushDef3
{
  ( 0 0 1 -128 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -1 0 -128 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 -192 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 1 0 -128 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -200 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 -1 120 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 6
{
brushDef3
{
  ( 0 0 -1 0 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 1 -128 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -1 0 -128 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 -192 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -200 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 1 0 120 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 7
{
brushDef3
{
  ( 0 0 -1 0 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 1 -128 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -1 0 -128 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 -192 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 1 0 -128 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 184 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 8
{
brushDef3
{
  ( 0 0 -1 0 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 1 -128 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 -192 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 1 0 -128 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -200 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -1 0 120 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 9
{
brushDef3
{
  ( 0 0 -1 0 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 1 -128 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -1 0 -128 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 1 0 -128 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -200 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 192 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
}
// entity 1
{
"classname" "info_player_start"
"name" "info_player_start_1"
"origin" "-152 0 8"
"angle" "360"
"script" "hex.script"
}
// entity 2
{
"classname" "light"
"name" "light_1"
"origin" "96 0 104"
"noshadows" "0"
"nospecular" "0"
"nodiffuse" "0"
"falloff" "0.000000"
"_color" "1.00 1.00 1.00"
"light_radius" "200.000000 200.000000 200.000000"
}
// entity 3
{
"classname" "func_mover"
"name" "door_panel_1"
"model" "door_panel_1"
"origin" "0 -56 64"
// primitive 0
{
brushDef3
{
  ( 0 0.8944270015 0.4472140074 -50.0879249573 ) ( ( 0.015625 0 0.5 ) ( 0 0.015625 0.8994677663 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -0.8944270015 0.4472140074 -0.0000016228 ) ( ( 0.015625 0 0.375 ) ( 0 0.015625 0.5081555247 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -4 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0.75 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 -4 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0.75 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 -1 0 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0.0625 ) ) textures/ktest/concretetest 0 0 0
}
}
}
// entity 4
{
"classname" "func_mover"
"name" "door_panel_6"
"model" "door_panel_6"
"origin" "0 -28 8"
// primitive 0
{
brushDef3
{
  ( 0 0 1 -56 ) ( ( 0.015625 0 0 ) ( 0 0.015625 -0.0625 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 -4 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -4 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0.8944271803 -0.4472135901 0 ) ( ( 0.015625 0 0.0625 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -0.8944271803 -0.4472135901 0 ) ( ( 0.015625 0 -0.0625 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
}
// entity 5
{
"classname" "func_mover"
"name" "door_panel_5"
"model" "door_panel_5"
"origin" "0 28 8"
// primitive 0
{
brushDef3
{
  ( 0 0 -1 0 ) ( ( 0.015625 0 -0.4375 ) ( 0 0.015625 0.0625 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 -4 ) ( ( 0.015625 0 -0.4375 ) ( 0 0.015625 -0.125 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -4 ) ( ( 0.015625 0 0.4375 ) ( 0 0.015625 -0.125 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -0.8944271803 0.4472135901 -50.0879211426 ) ( ( 0.015625 0 0.375 ) ( 0 0.015625 -0.0788118988 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0.8944271803 0.4472135901 0 ) ( ( 0.015625 0 0.5 ) ( 0 0.015625 -0.0788118988 ) ) textures/ktest/concretetest 0 0 0
}
}
}
// entity 6
{
"classname" "func_mover"
"name" "door_panel_4"
"model" "door_panel_4"
"origin" "0 56 64"
// primitive 0
{
brushDef3
{
  ( 0 0 1 0 ) ( ( 0.015625 0 -0.875 ) ( 0 0.015625 -0.0625 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 -4 ) ( ( 0.015625 0 -0.875 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -4 ) ( ( 0.015625 0 0.875 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0.8944270015 -0.4472140074 -0.0000020266 ) ( ( 0.015625 0 0.0625 ) ( 0 0.015625 0.3913122416 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -0.8944270015 -0.4472140074 -50.0879249573 ) ( ( 0.015625 0 -0.0625 ) ( 0 0.015625 -0.3913122118 ) ) textures/ktest/concretetest 0 0 0
}
}
}
// entity 7
{
"classname" "func_mover"
"name" "door_panel_3"
"model" "door_panel_3"
"origin" "0 28 120"
// primitive 0
{
brushDef3
{
  ( 0 0 -1 -56 ) ( ( 0.015625 0 -0.875 ) ( 0 0.015625 0.0625 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 -4 ) ( ( 0.015625 0 -0.875 ) ( 0 0.015625 0.75 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -4 ) ( ( 0.015625 0 0.875 ) ( 0 0.015625 0.75 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -0.8944270015 0.4472140074 0.0000020266 ) ( ( 0.015625 0 0.375 ) ( 0 0.015625 0.8994683623 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0.8944270015 0.4472140074 0.0000020266 ) ( ( 0.015625 0 0.5 ) ( 0 0.015625 0.5081557631 ) ) textures/ktest/concretetest 0 0 0
}
}
}
// entity 8
{
"classname" "func_mover"
"name" "door_panel_2"
"model" "door_panel_2"
"origin" "0 -28 120"
// primitive 0
{
brushDef3
{
  ( 0 0 1 0 ) ( ( 0.015625 0 -0.4375 ) ( 0 0.015625 -0.0625 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 -4 ) ( ( 0.015625 0 -0.4375 ) ( 0 0.015625 0.875 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -4 ) ( ( 0.015625 0 0.4375 ) ( 0 0.015625 0.875 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0.8944270015 -0.4472140074 -50.0879249573 ) ( ( 0.015625 0 0.0625 ) ( 0 0.015625 0.9782794118 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -0.8944270015 -0.4472140074 -0.0000016228 ) ( ( 0.015625 0 -0.0625 ) ( 0 0.015625 0.5869677067 ) ) textures/ktest/concretetest 0 0 0
}
}
}
// entity 9
{
"classname" "light"
"name" "light_2"
"origin" "-96 0 104"
"noshadows" "0"
"nospecular" "0"
"nodiffuse" "0"
"falloff" "0.000000"
"_color" "1.00 1.00 1.00"
"light_radius" "200.000000 200.000000 200.000000"
}


HEX.SCRIPT

Code:
void setup_objects()
{

////////////
// Door Speed
////////////

   $door_panel_1.time(0.2);
   $door_panel_2.time(0.2);
   $door_panel_3.time(0.2);
   $door_panel_4.time(0.2);
   $door_panel_5.time(0.2);
   $door_panel_6.time(0.2);
}

void open_door()
{

////////////
// Open Door
////////////

   $door_panel_1.rotateTo('0 0 60');
   $door_panel_2.rotateTo('0 0 60');
   $door_panel_3.rotateTo('0 0 60');
   $door_panel_4.rotateTo('0 0 60');
   $door_panel_5.rotateTo('0 0 60');
   $door_panel_6.rotateTo('0 0 60');
}

void close_door()
{

////////////
// close Door
////////////

   $door_panel_1.rotateTo('0 0 0');
   $door_panel_2.rotateTo('0 0 0');
   $door_panel_3.rotateTo('0 0 0');
   $door_panel_4.rotateTo('0 0 0');
   $door_panel_5.rotateTo('0 0 0');
   $door_panel_6.rotateTo('0 0 0');
}

void main ()
{
   setup_objects();
   sys.wait(3);
   while (1) {
   open_door();
   sys.wait(1);
   close_door();
   sys.wait(1);
   }
}


Anyway, this works fine and I'm not doing anything special. I'm guessing your door was on an angle or something and that's why you were rotating it on two axis?



insectattack@Posted: Sun Jun 27, 2004 1:51 am :
hey, that looks pretty cool! Almost like a camera aperture
But i was going for sth different:

HEX2.MAP
Code:
Version 2
// entity 0
{
"classname" "worldspawn"
"script" "hex2.script"
// primitive 0
{
brushDef3
{
  ( -1 0 0 -30 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 1 0 112 ) ( ( 0.015625 0 1.375 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 22 ) ( ( 0.25 0 0 ) ( 0 0.25 0 ) ) black 0 0 0
  ( 0 -1 0 -124 ) ( ( 0.015625 0 -1.375 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 1 -82 ) ( ( 0.015625 0 0 ) ( 0 0.015625 -1.375 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 -1 38 ) ( ( 0.015625 0 0 ) ( 0 0.015625 1.375 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 1
{
brushDef3
{
  ( 0 0 -1 38 ) ( ( 0.015625 0 0 ) ( 0 0.015625 1.375 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 1 -82 ) ( ( 0.015625 0 0 ) ( 0 0.015625 -1.375 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -1 0 48 ) ( ( 0.015625 0 -1.375 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 22 ) ( ( 0.25 0 0 ) ( 0 0.25 0 ) ) black 0 0 0
  ( 0 1 0 -60 ) ( ( 0.015625 0 1.375 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -30 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 2
{
brushDef3
{
  ( -0.499428153 0.51981318 0.6930841804 -47.5814476013 ) ( ( 0.015625 0 0.0000000008 ) ( 0 0.015625 -0.0000000073 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -0.6000000238 -0.8000000119 -1.5968750715 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0.0000000007 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 30 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -0.861934185 0.5070201159 10.9468812943 ) ( ( 0.015625 0 0 ) ( 0 0.015625 -0.0000000008 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0.861934185 -0.5070201159 -15.9204311371 ) ( ( 0.015625 0 0 ) ( 0 0.015625 -0.0000000008 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 3
{
brushDef3
{
  ( 0 0 1 8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 -1 -12 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 30 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 1 0 -8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -0.5070201159 -0.8619342446 0 -42.7924957275 ) ( ( 0.015625 0 -0.0000000008 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 4
{
brushDef3
{
  ( -0.5070201159 0.8619342446 0 12.3712921143 ) ( ( 0.015625 0 0.0000000008 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -1 0 -72 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 30 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 1 8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 -1 -12 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 5
{
brushDef3
{
  ( 0 0.861934185 0.5070201159 66.10987854 ) ( ( 0.015625 0 0 ) ( 0 0.015625 -0.0000000008 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -0.861934185 -0.5070201159 -70.5716552734 ) ( ( 0.015625 0 0 ) ( 0 0.015625 -0.0000000008 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 30 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0.4472140074 -0.8944270015 25.0439624786 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0.0000000037 ) ) textures/ktest/concretetest 0 0 0
  ( -0.5009060502 -0.3870640695 0.7741282582 -70.7566146851 ) ( ( 0.015625 0 0.0000000003 ) ( 0 0.015625 0.0000000042 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 6
{
brushDef3
{
  ( 0 0 -1 -16 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 1 8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -1 0 -84 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 -140 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 1 0 -20 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -30 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 7
{
brushDef3
{
  ( -0.5070201159 -0.8619342446 0 -42.7924957275 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 1 0 -8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 30 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 -1 128 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 1 -132 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 8
{
brushDef3
{
  ( -0.5009060502 0.3870640695 -0.7741281986 46.9215049744 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -0.4472140074 0.8944270015 -110.9089736938 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 30 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0.861934185 0.5070201159 -76.2447357178 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -0.861934185 -0.5070201159 71.7829589844 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 9
{
brushDef3
{
  ( 0 0.861934185 0.5070201159 -76.2447357178 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -0.861934185 -0.5070201159 71.7829589844 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 30 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0.4472140074 -0.8944270015 32.1993789673 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -0.5009060502 -0.3870640695 0.7741281986 -76.9566802979 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 10
{
brushDef3
{
  ( 0 -0.861934185 0.5070201159 10.9468812943 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0.861934185 -0.5070201159 -15.9204311371 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 30 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0.6000000238 0.8000000119 -76.796875 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -0.4994281828 -0.51981318 -0.6930841804 17.6053104401 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 11
{
brushDef3
{
  ( 0 -0.861934185 -0.5070201159 -70.5716552734 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0.861934185 0.5070201159 66.10987854 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 30 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -0.4472140074 0.8944270015 -103.7535552979 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -0.5009060502 0.3870640993 -0.7741281986 40.7170181274 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 12
{
brushDef3
{
  ( 0 0.861934185 -0.5070201159 126.9459533691 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -0.861934185 0.5070201159 -131.9329681396 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 30 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -0.6000000238 -0.8000000119 -19.1968746185 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -0.4994281232 0.5198131204 0.6930842996 -32.2834434509 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 13
{
brushDef3
{
  ( -0.4994281232 -0.5198132396 -0.69308424 2.3424844742 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0.6000000238 0.8000000119 -59.1968765259 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 30 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0.861934185 -0.5070201159 126.9459533691 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -0.861934185 0.5070201159 -131.9329681396 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 14
{
brushDef3
{
  ( -0.5070201159 0.8619342446 0 12.3712921143 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -1 0 -72 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 30 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 1 -132 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 -1 128 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 15
{
brushDef3
{
  ( 0 -0.8654263616 -0.5010361671 -82.70728302 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0.8703491688 0.4924351275 75.7762298584 ) ( ( 0.25 0 0 ) ( 0 0.25 0 ) ) black 0 0 0
  ( 0 -0.4961390495 0.8682430983 -112.1225585938 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 30 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0.5547001958 -0.8320503235 29.9494781494 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -110 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 16
{
brushDef3
{
  ( 0 0 -1 -8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 1 -128 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -1 0 -200 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 -148 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 1 0 -136 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 140 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 17
{
brushDef3
{
  ( -1 0 0 -280 ) ( ( 0.015625 0 0 ) ( 0 0.015625 3.3125 ) ) textures/ktest/concretetest 0 0 0
  ( 0 1 0 -136 ) ( ( 0.015625 0 0 ) ( 0 0.015625 3.3125 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 144 ) ( ( 0.015625 0 0 ) ( 0 0.015625 3.3125 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -1 0 -200 ) ( ( 0.015625 0 0 ) ( 0 0.015625 3.3125 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 1 -204 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 -1 196 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 18
{
brushDef3
{
  ( 0 0 -1 -8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 1 -196 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -1 0 -192 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0.125 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 280 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0.125 ) ) textures/ktest/concretetest 0 0 0
  ( 0 1 0 -128 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0.125 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -288 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0.125 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 19
{
brushDef3
{
  ( -1 0 0 -280 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 1 0 -136 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 144 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -1 0 -200 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 1 8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 -1 -16 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 20
{
brushDef3
{
  ( 0.4856431186 0.8741571903 0 17.0938720703 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0.7071067691 -0.7071067691 0 135.7644958496 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -0.5070201159 -0.861934185 0 -31.6507301331 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -280 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 1 -196 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 -1 -8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 21
{
brushDef3
{
  ( 0.4856431186 -0.8741571903 0 -38.8537101746 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -280 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -0.5070201159 0.861934185 0 23.5122661591 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0.7071067691 0.7071067691 0 181.0193328857 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 1 -196 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 -1 -8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 22
{
brushDef3
{
  ( -0.8356027603 0.4735078812 0.2784928679 -83.9959182739 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 144 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0.5070201159 -0.861934185 0 -23.5257339478 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -0.8355929852 0.4735027254 -0.2785310149 -69.5213317871 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}

// primitive 23
{
brushDef3
{
  ( -0.8355929852 -0.4735027254 -0.2785310149 -99.8255081177 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 144 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0.5070201159 0.861934185 0 31.6372623444 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -0.8355929852 -0.4735027254 0.2785310149 -114.3091201782 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 24
{
brushDef3
{
  ( 0 0 -1 -16 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 1 8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -1 0 -84 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 110 ) ( ( 0.25 0 0 ) ( 0 0.25 0 ) ) black 0 0 0
  ( 0 1 0 -20 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -144 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 25
{
brushDef3
{
  ( 0 -0.8619526625 0.5069887638 10.94053936 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -144 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 1 0 -48 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 110 ) ( ( 0.25 0 0 ) ( 0 0.25 0 ) ) black 0 0 0
  ( 0 0 -1 -8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 26
{
brushDef3
{
  ( 0 0 1 -128 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 110 ) ( ( 0.25 0 0 ) ( 0 0.25 0 ) ) black 0 0 0
  ( 0 1 0 -48 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -144 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -0.8619342446 -0.5070201159 71.794052124 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 27
{
brushDef3
{
  ( -1 0 0 -144 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 1 0 -48 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 110 ) ( ( 0.25 0 0 ) ( 0 0.25 0 ) ) black 0 0 0
  ( 0 -1 0 -112 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 1 -196 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 -1 128 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 28
{
brushDef3
{
  ( 0 0 1 -128 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -1 0 -112 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 110 ) ( ( 0.25 0 0 ) ( 0 0.25 0 ) ) black 0 0 0
  ( -1 0 0 -144 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0.8619342446 -0.5070201159 126.9578399658 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 29
{
brushDef3
{
  ( 0 0.861934185 0.5070201159 66.1130447388 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -144 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 110 ) ( ( 0.25 0 0 ) ( 0 0.25 0 ) ) black 0 0 0
  ( 0 -1 0 -112 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 -1 -8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 30
{
brushDef3
{
  ( 0 0 -1 -24 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 1 16 ) ( ( 0.25 0 0 ) ( 0 0.25 0 ) ) black 0 0 0
  ( 0 -1 0 -78 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 30 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 1 0 -14 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -110 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 31
{
brushDef3
{
  ( 0 -0.8682430387 0.4961390495 -141.5187835693 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0.8604753017 -0.5094921589 134.684387207 ) ( ( 0.25 0 0 ) ( 0 0.25 0 ) ) black 0 0 0
  ( 0 0.4961390495 0.8682430983 -80.3686981201 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 30 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -0.4472140074 -0.8944270015 -0.4472135901 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -110 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 32
{
brushDef3
{
  ( 0 0 -1 136 ) ( ( 0.25 0 0 ) ( 0 0.25 0 ) ) black 0 0 0
  ( 0 0 1 -144 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -1 0 -76 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 30 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 1 0 -16 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -110 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 33
{
brushDef3
{
  ( -1 0 0 -110 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0.4472140074 0.8944270015 -80.0512313843 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 30 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -0.4961390495 -0.8682430983 -6.9517593384 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -0.8604753017 0.5094921589 20.1974658966 ) ( ( 0.25 0 0 ) ( 0 0.25 0 ) ) black 0 0 0
  ( 0 0.8682430387 -0.4961390495 -28.1597595215 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 34
{
brushDef3
{
  ( 0 0.865426302 0.5010361671 -89.1887207031 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -0.8703491688 -0.4924351275 80.8943710327 ) ( ( 0.25 0 0 ) ( 0 0.25 0 ) ) black 0 0 0
  ( 0 0.4961390495 -0.8682430983 22.8204536438 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 30 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -0.5547001958 0.8320503235 -104.2749710083 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -110 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 35
{
brushDef3
{
  ( 0 0 -1 38 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 1 -82 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -1 0 48 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 110 ) ( ( 0.25 0 0 ) ( 0 0.25 0 ) ) black 0 0 0
  ( 0 1 0 -60 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -118 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 36
{
brushDef3
{
  ( -1 0 0 -118 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 1 0 112 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 110 ) ( ( 0.25 0 0 ) ( 0 0.25 0 ) ) black 0 0 0
  ( 0 -1 0 -124 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 1 -82 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 -1 38 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 37
{
brushDef3
{
  ( 0 0 1 -128 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -1 0 -112 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 -140 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -30 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0.861934185 -0.5070201159 126.9427871704 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 38
{
brushDef3
{
  ( -1 0 0 -30 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 1 0 -48 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 -140 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -1 0 -112 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 1 -162 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 -1 128 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 39
{
brushDef3
{
  ( 0 0 1 -128 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 -140 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 1 0 -48 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -30 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -0.861934185 -0.5070201159 71.7797851563 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 40
{
brushDef3
{
  ( 0 -0.8619526625 0.5069887638 10.94053936 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -30 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 1 0 -48 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 -140 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 -1 -8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
// primitive 41
{
brushDef3
{
  ( 0 0.861934185 0.5070201159 66.1130447388 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -30 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 1 0 0 -140 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -1 0 -112 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 -1 -8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
}
// entity 1
{
"classname" "func_mover"
"name" "doortri2"
"model" "doortri2"
"origin" "-68.000000 -32.000000 94.000000"
"rotation" "1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000"
// primitive 0
{
brushDef3
{
  ( 0.3078202903 0 0.9514445066 -21.88322258 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0.3244318664 -0.8153114319 -0.4795949459 -5.2755455971 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -34 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0.3244318664 0.8153114319 -0.4795949459 -5.2755441666 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
}
// entity 2
{
"classname" "func_mover"
"name" "doortri6"
"model" "doortri6"
"origin" "-68.000000 8.000000 94.000000"
// primitive 0
{
brushDef3
{
  ( 0.3244318664 -0.8153114319 0.4795949459 -5.2755446434 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -34 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0.3244318664 0.8153114319 0.4795949459 -5.2755446434 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0.3078202903 0 -0.9514445066 -21.88322258 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
}
// entity 3
{
"classname" "func_mover"
"name" "doortri4"
"model" "doortri4"
"origin" "-68.000000 8.000000 26.000000"
"rotation" "1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000"
// primitive 0
{
brushDef3
{
  ( 0.3078202903 0 0.9514445066 -21.88322258 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0.3244318664 -0.8153114319 -0.4795949459 -5.2755455971 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -34 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0.3244318664 0.8153114319 -0.4795949459 -5.2755441666 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
}
// entity 4
{
"classname" "func_mover"
"name" "doortri1"
"model" "doortri1"
"origin" "-68.000000 -32.000000 26.000000"
// primitive 0
{
brushDef3
{
  ( 0.3244318664 -0.8153114319 0.4795949459 -5.2755446434 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -34 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0.3244318664 0.8153114319 0.4795949459 -5.2755446434 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0.3078202903 0 -0.9514445066 -21.88322258 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
}
// entity 5
{
"classname" "func_mover"
"name" "doortri3"
"model" "doortri3"
"origin" "-68.000000 -72.000000 26.000000"
"rotation" "1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000"
// primitive 0
{
brushDef3
{
  ( 0.3078202903 0 0.9514445066 -21.88322258 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0.3244318664 -0.8153114319 -0.4795949459 -5.2755455971 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -34 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0.3244318664 0.8153114319 -0.4795949459 -5.2755441666 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
}
// entity 6
{
"classname" "func_mover"
"name" "doortri5"
"model" "doortri5"
"origin" "-68.000000 -72.000000 94.000000"
// primitive 0
{
brushDef3
{
  ( 0.3244318664 -0.8153114319 0.4795949459 -5.2755446434 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 -34 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0.3244318664 0.8153114319 0.4795949459 -5.2755446434 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0.3078202903 0 -0.9514445066 -21.88322258 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
}
// entity 7
{
"classname" "info_player_start"
"name" "info_player_start_1"
"origin" "-248 72 -8"
}
// entity 8
{
"classname" "light"
"name" "light_2"
"origin" "92 -32 108"
}
// entity 9
{
"classname" "light"
"name" "light_1"
"origin" "-228 -32 124"
}
// entity 10
{
"classname" "func_mover"
"name" "mydoor1"
"model" "mydoor1"
"origin" "-110.000000 -32.000000 -8.000000"
// primitive 0
{
brushDef3
{
  ( 1 0 0 -8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 0 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 -1 0 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0.8619342446 0.5070201159 -34.4773674011 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -0.8619342446 0.5070201159 -34.4773674011 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
}
// entity 11
{
"classname" "func_mover"
"name" "mydoor5"
"model" "mydoor5"
"origin" "-110.000000 -92.000000 94.000000"
// primitive 0
{
brushDef3
{
  ( 1 0 0 -8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 0 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 -1 -34 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0.8619342446 0.5070201159 -34.4773674011 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -0.8619342446 0.5070201159 0.0000009537 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
}
// entity 12
{
"classname" "func_mover"
"name" "mydoor2"
"model" "mydoor2"
"origin" "-110.000000 -32.000000 128.000000"
// primitive 0
{
brushDef3
{
  ( 1 0 0 -8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 0 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 1 0 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -0.8619342446 -0.5070201159 -34.4773712158 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0.8619342446 -0.5070201159 -34.4773712158 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
}
// entity 13
{
"classname" "func_mover"
"name" "mydoor6"
"model" "mydoor6"
"origin" "-110.000000 28.000000 94.000000"
// primitive 0
{
brushDef3
{
  ( 1 0 0 -8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 0 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -0.8619342446 0.5070201159 -34.4773674011 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 -1 -34 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0.8619342446 0.5070201159 0.0000009537 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
}
// entity 14
{
"classname" "func_mover"
"name" "mydoor4"
"model" "mydoor4"
"origin" "-110.000000 28.000000 26.000000"
// primitive 0
{
brushDef3
{
  ( 1 0 0 -8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 0 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 1 -34 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -0.8619342446 -0.5070201159 -34.4773712158 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0.8619342446 -0.5070201159 -0.0000009537 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
}
// entity 15
{
"classname" "func_mover"
"name" "mydoor3"
"model" "mydoor3"
"origin" "-110.000000 -92.000000 26.000000"
// primitive 0
{
brushDef3
{
  ( 1 0 0 -8 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( -1 0 0 0 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0 1 -34 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 -0.8619342446 -0.5070201159 -0.0000009537 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
  ( 0 0.8619342446 -0.5070201159 -34.4773712158 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) textures/ktest/concretetest 0 0 0
}
}
}
// entity 16
{
"classname" "trigger_multiple"
"name" "trigger_multiple_1"
"model" "trigger_multiple_1"
"origin" "-154 -32 -4"
"call" "rotate_door"
"target" "mydoor1"
"wait" "12"
// primitive 0
{
brushDef3
{
  ( -1 0 0 -54 ) ( ( 0.125 0 -0 ) ( 0 0.125 -1 ) ) textures/common/trigmulti 0 0 0
  ( 0 1 0 -40 ) ( ( 0.125 0 2.25 ) ( 0 0.125 -1 ) ) textures/common/trigmulti 0 0 0
  ( 1 0 0 -258 ) ( ( 0.125 0 0 ) ( 0 0.125 -1 ) ) textures/common/trigmulti 0 0 0
  ( 0 -1 0 -40 ) ( ( 0.125 0 -2.25 ) ( 0 0.125 -1 ) ) textures/common/trigmulti 0 0 0
  ( 0 0 1 0 ) ( ( 0.125 0 0 ) ( 0 0.125 -3.25 ) ) textures/common/trigmulti 0 0 0
  ( 0 0 -1 -8 ) ( ( 0.125 0 0 ) ( 0 0.125 2.25 ) ) textures/common/trigmulti 0 0 0
}
}
}


HEX2.SCRIPT

Code:
void setup_objects ()
{
   $doortri1.bind ($mydoor1);
   $doortri2.bind ($mydoor2);
   $doortri3.bind ($mydoor3);
   $doortri4.bind ($mydoor4);
   $doortri5.bind ($mydoor5);
   $doortri6.bind ($mydoor6);
}

void rotate_door()
{

////////////
// Door Speed
////////////

   $mydoor1.time(0.8);
   $mydoor2.time(0.8);
   $mydoor3.time(0.8);
   $mydoor4.time(0.8);
   $mydoor5.time(0.8);
   $mydoor6.time(0.8);

////////////
// Open Door
////////////

   $mydoor1.rotateTo('90 0 0');
   $mydoor2.rotateTo('-90 0 0');
   $mydoor3.rotateTo('30 -90 -30');
   $mydoor4.rotateTo('30 90 30');
   $mydoor5.rotateTo('-30 -90 30');
   $mydoor6.rotateTo('-30 90 -30');

   sys.wait(9);

////////////
// close Door
////////////

   $mydoor1.rotateTo('0 0 0');
   $mydoor2.rotate('90 0 0');
   $mydoor3.rotate('-30 90 30');
   $mydoor4.rotateTo('0 0 0');
   $mydoor5.rotate('30 90 -30');
   $mydoor6.rotate('30 -90 30');
   sys.wait(1);
   $mydoor2.setAngles('0 0 0');
   $mydoor3.setAngles('0 0 0');
   $mydoor5.setAngles('0 0 0');
   $mydoor6.setAngles('0 0 0');

//   $mydoor1.rotateTo('0 0 0');
//   $mydoor2.rotateTo('0 0 0');
//   $mydoor3.rotateTo('0 0 0');
//   $mydoor4.rotateTo('0 0 0');
//   $mydoor5.rotateTo('0 0 0');
//   $mydoor6.rotateTo('0 0 0');

}



// function that executes when the script is loaded

void main ()
{
   setup_objects();
}


i just noticed my doors intersect during the rotation and i don´t think i can get rid of that :(
Rotating on three axis simultaneously is a bit too complex maybe?



rich_is_bored@Posted: Sun Jun 27, 2004 5:43 am :
Okay. I see what's going on. This was a problem I ran into when I was writing up my scripting tutorials.

I really have yet to figure this out completely but I think brushes inherit the game world axis when a map is compiled. This means that even if you rotate a func_mover in the editor the X, Y, and Z axis do not rotate with it. Perhaps they are fixed in place?

If they were not fixed, scripting movements like the one you're interested in would be ridiculously easy. All you'd have to do is set up the initial position and orientation in the editor and in the script you could give each panel the same instruction.

One really strange quirk is if you were to replace the brush for each func_mover in your door with a model from an external application, you wouldn't have to do strange things like this. For some reason in this case the axis of each func_mover is not fixed to the game world.

I can only hope that Id either resolves this issue in the retail game or they provide thorough documentation that explains why things work in this fashion. At the moment It's really weird and I just can't seem to make sense of it.

At any rate, this post probably confuses the hell out of you. Sorry if it does; I'm just not sure how to explain this.



insectattack@Posted: Sun Jun 27, 2004 3:55 pm :
rich_is_bored wrote:
At any rate, this post probably confuses the hell out of you.

Yeah, that is a little confusing indeed!
But i think i know what you mean:
Image

I could use an imported model, make it a func_mover and use that as the first door (the one that drops to the floor, wich only requires a simple 90 degree rotation in the script), make a copy of that and rotate it 60 degrees and then in the script it would still be just a 90 degree rotation for the second door.

If external models can have their own independent axis, it should be possible for radiant brushes too, right?
Maybe there´s a special command for that? (or there will be)

EDIT:
i wrote:
i just noticed my doors intersect during the rotation and i don´t think i can get rid of that :(
Rotating on three axis simultaneously is a bit too complex maybe?


I think i figured the intersecting issue, it´s not that rotating on three axis simultaneously is too complex, its just that the rotation angles are exact, while the geometry is not. The triangle-doors and the hexagonal hallway are not exactly equilateral, because i "snapped them to grid".

now i want to add a sound to it, how is that done?

For func_movers you can add these values:
'accelsound' sound to play when acceleration starts
'movesound' sound to play when movement starts
'decelsound' sound to play when deceleration starts

but i can´t hear nothing...
do i have to set up a seperate sound entity that is triggered on "open door"/"close door"?

And another unrelated question: is there a way to construct a single triangle in radiant? Or is it possible to delete single faces of a brush?



Linihv@Posted: Mon Aug 09, 2004 12:28 am :
Where is the /progs directory? (Me=newb)



rich_is_bored@Posted: Mon Aug 09, 2004 12:54 am :
That was the old directory for scripts way back in the days of the alpha leak. The equivalant directory for scripts with the retail would be in the same directory as your map.

Please take note that threads created prior to 08/2004 are probably outdated and the information in them may not translate into a working solution for the retail game.



gtmattz@Posted: Fri Sep 03, 2004 6:17 am :
Quote:
Opening the doors is no problem and looks really cool, but when closing them with rotateTo('0 0 0');
those doors that were opened using negative values (mydoor2, 3, 5 & 6) rotate in the wrong direction. I tried to close them with rotateTo('-0 0 0') and also tried some other commands like
rotateDownTo and rotateUpTo but it doesn´t work.


try using 360 instead of 0 in all the places where you rotated in the negative.


kind of unrelated, but i dont know if anyone has tried this yet, but i noticed some people having trouble with the rotation center on their doors etc when the model center is not in the center(such as if you combine a bunch of burshes into a func_mover etc...) I found this little trick that works well:

create a small func_mover with the nodraw texture applied to it, and bind your door to it, move its center to your desired point of rotation... then perform all your rotation commands on the invisible pivot, you can get some very interesing movements out of this method as well. i adapted this from my 3dsmax animation knowledge, where you use 'helper objects' all over the place.



theneb@Posted: Tue Sep 07, 2004 9:09 pm :
I seem to have a small problem, I cannot see any entity class called func_button.



rich_is_bored@Posted: Tue Sep 07, 2004 10:09 pm :
That's because in the retail game there is no func_button. Like I mentioned above...

Please take note that threads created prior to 08/2004 are probably outdated and the information in them may not translate into a working solution for the retail game.



S@TaNiC@Posted: Thu Sep 09, 2004 4:28 pm :
Well ive seen quite a few people asking about making a swinging door and here seemed like a good place to put this, test it out tell me what you think.
Heres a little example i knocked up for a friend who wanted something more like a standard house door.
http://www.btinternet.com/~tangentizer/swingdoor.pk4

Just place the swingdoor.pk4 in your base directory and type 'map doortest' in the console to run.



goliathvt@Posted: Thu Sep 30, 2004 7:42 pm :
Thanks for the contirbution S@TanNiC. Welcome to the boards! I've updated the first post in this thread with a link to your pk4 so folks won't miss your work after seeing the warnings placed in this thread.

Goliath



Immortal@Posted: Mon Oct 11, 2004 11:56 pm :
I'm trying to get this thing to work too using insectattack's method.
I got an additionnal problem. When the door is closing, it doesn't stop. It rotates on and on.

Code:
   void door1open ()
      {
      $door1.time(2);
      $door1.rotateTo('0 0 -70');
      }

   void door1close ()
      {
      $door1.time(2);
      $door1.rotate('0 0 70');
      sys.wait(1);
      $door1.setAngles('0 0 0');
      }



Immortal@Posted: Tue Oct 12, 2004 12:05 am :
I just changed my script and it works fine now.
Here is what I done

Code:
void door1open ()
      {
      $door1.time(2);
      $door1.rotateTo('0 0 -70');
       }

   void door1close ()
      {
      $door1.time(2);
      $door1.rotate('0 0 70');
      sys.wait(1);
      $door1.rotateTo('0 0 0');
      }