Doom3world

The world is yours! Doom 3 - Quake 4 - ET:QW - Prey - Rage
It is currently Tue May 21, 2013 8:33 am

All times are UTC [ DST ]




Post new topic Reply to topic  [ 20 posts ] 
Author Message
 Post subject: Tutorial: How To Repeatedly Activate And Deactivate Vacuums
PostPosted: Thu Sep 02, 2004 4:10 am 
Offline
Captured the Flag
User avatar

Joined: Sun Aug 29, 2004 11:39 pm
Posts: 1830
I spent a lot of time (about 2 days) researching how in the world to activate and deactivate a vacuum within a map. I finally gave up and posted a request for help on this thread: http://www.doom3world.org/phpbb2/viewtopic.php?t=5315 but was able to actually solve it myself before it was up for too long (thanks Scribblehead for helping out).

I finally found the solution but before I get into that I'm going to give a quick description of why this method is required in order to activate and deactivate a vacuum.

There are two specifically vacuum related entities in Doom 3:

info_vacuum
info_vacuumseperator

You can target the info_vacuumseperator to disable it and flood a map with a vacuum but unfortunately doing this provides you no way of reactivating the info_vacuumseperator leaving the level to be in a vacuum until it's reloaded. The reason for this is when you trigger an info_vacuumseperator the game actually removes the entity from the map completely leaving nothing there for the trigger to turn back on.

What that means is, info_vacuumsperator is intended to be used with things like windows or other func_fracture type uses where you shatter a window and the vacuum floods the building. Because of this, it is not the entity we'll be using to seperate a room in a vacuum from another room.

For those that wish to create airlocks or (as in my situation) "other ideas", this tutorial is your best method of creating a vacuum and then disabling the vacuum.

This is where a third, not specifically vacuum related, entity comes into play:

func_portal

A func_portal entity assigns whatever brush it's targeted at as a boundary as solid as a world brush (i.e. not like a func_static or other entity that doesn't block vis or other world events) until it's triggered. This entity adds loads of power to level design in many aspects other than just for vacuums, but in this tutorial we're only going to cover them as used in a repeatedably triggered vacuum (on and off).

First of all I apologize for a lack of pictures, I do not have a dedicated host but this is so simple that hopefully pictures won't be necessary.

Ok, here we go.

1. First you'll need to make a small 64x64x64 hollowed out cube in the middle of your test box (large hollowed out box with 1 info_player_start and a light used for testing things), place it near the floor so you can activate the door that we'll be making later by walking up to it. (Simply create a 64x64x64 cube that's on the floor of the map and hit "hollow" on the toolbar)

2. Select 1 brush in that small hollowed out cube and make it a func_door. Leave all the settings to their default but set the angle so that it slides away from the cube and not into the cube.

3. create a func_portal in front of the door.

4. Starting with everything deselected, select func_portal first, then select the func_door and press ctrl+k to set the target from the func_portal to the func_door

5. Place 1 info_vacuum inside the cube.

6. Save it as vacuumtest and compile it.

7. Press F2, hit ~ key and type map vacuumtest and hit enter.

8. If all things are done correctly as I've stated, you should be in a normal map and not in a vacuum. If so, exit and recheck each step to find the problem (most likely a leak in the small hollowed out cube)

9. Walk up to the cube to the brush you made a func_door, when the door is triggered it will release the func_portal and flood the test box with the vacuum.

10. Step away from the door and let it close and the door will activate the func_portal and the vacuum will be contained again inside the small cube.

There you have a 10 step method to creating a repeatedly triggered vacuum in a map. You can use doors or scripts or platforms and even gui's or a host of other triggers to activate and deactivate it at will.

***EDIT***

This is to add some new information to get this to work properly.

The test map I pasted later in this thread shows the exact method I laid out in this tutorial, but upon putting this "set up" into the map I'm currently working on I found that even if I copy and pasted that exact box into the map it would for unknown reasons leak the vaccum without opening the door.

What I discovered is that it works somewhat erratically, perhaps based on some hidden function in the engine that gets called due to some event in the level or who knows, maybe it's buggy, I really don't know. But what I did to solve it was actually quite simple, just place a vis portal in the door and make sure that the func_portal is touching the vis portal just like you would with the info_vacuumseperator. I've tested this in three different instances so far and it seems to have solved it in all three cases.


Last edited by Bittoman on Thu Sep 02, 2004 6:52 am, edited 1 time in total.

Top
 Profile  
 
 Post subject:
PostPosted: Thu Sep 02, 2004 4:23 am 
Offline
The first 10 posts have been the best...

Joined: Thu Aug 26, 2004 12:35 am
Posts: 12
Excellent Tutorial, I'm sure this will be fun to use !
Thank you =)


Top
 Profile  
 
 Post subject:
PostPosted: Thu Sep 02, 2004 5:06 am 
Offline
a gun & a nice word
User avatar

Joined: Sat Jan 11, 2003 9:30 pm
Posts: 8713
Location: Orlando, FL
Glad to see you worked the issue out.

Thanks for sharing. :)

_________________
Image Staff
Learn something today? Why not write an article about it on modwiki.net?


Top
 Profile  
 
 Post subject:
PostPosted: Thu Sep 02, 2004 5:54 am 
Offline
The first 10 posts have been the best...

Joined: Thu Aug 26, 2004 12:35 am
Posts: 12
I seem to be doing something wrong, not sure what...
if I have the info_vaccum inside the 64^3 hollow box no door yet (but sealed, all 6 sides )
the outer test room has no vaccum, its normal

if I make one side of the cube a door it will let the vaccum out
is seems that by making it a door it becomes non-solid
have tried with/ without the func_portal, still the room is in a vaccum when the map starts, even set start_on to 1 on the func_portal
also have the F_P targeting the door

I must be missing something ?
thanks


Top
 Profile  
 
 Post subject:
PostPosted: Thu Sep 02, 2004 5:58 am 
Offline
picked up 75 health

Joined: Sun Aug 15, 2004 9:41 am
Posts: 84
Location: Spokane, WA
i think you need to place an info_vacumeseperator in the door to stop the vacume from leaking though it.

_________________
Hell ain't a bad place to be


Top
 Profile  
 
 Post subject:
PostPosted: Thu Sep 02, 2004 6:38 am 
Offline
picked up the chaingun

Joined: Sat Aug 07, 2004 4:26 am
Posts: 150
Location: Chicago IL
Same here - I have a hollowed cube in the center of my test map witha vaccum inside it.

When I run the map Its all sealed up inside.

If I make a brush a Func_door the vaccum leaks out. I assume The Func_portal is there to take care fo that - maybe im not setting it up right.

The target for the func_portal is func_door though as directed in the above instructions...

hehe its late and im confused! :P

Quote:
func_portal

A func_portal entity assigns whatever brush it's targeted at as a boundary as solid as a world brush (i.e. not like a func_static or other entity that doesn't block vis or other world events) until it's triggered. This entity adds loads of power to level design in many aspects other than just for vacuums, but in this tutorial we're only going to cover them as used in a repeatedably triggered vacuum (on and off).

_________________
There are 10 types of people in this world... those that understand Binary and those that don't :)


Top
 Profile  
 
 Post subject:
PostPosted: Thu Sep 02, 2004 6:45 am 
Offline
Captured the Flag
User avatar

Joined: Sun Aug 29, 2004 11:39 pm
Posts: 1830
Version 2
// entity 0
{
"classname" "worldspawn"
// primitive 0
{
brushDef3
{
( 0 0 -1 128 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 0 0 1 -136 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 0 -1 0 128 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 1 0 0 56 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 0 1 0 -256 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( -1 0 0 -184 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
}
}
// primitive 1
{
brushDef3
{
( 0 0 -1 0 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 0 0 1 -128 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 0 -1 0 128 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 1 0 0 56 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 0 1 0 -256 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( -1 0 0 -64 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
}
}
// primitive 2
{
brushDef3
{
( 0 0 -1 8 ) ( ( 0.0625 0 3.5 ) ( 0 0.0625 -10 ) ) "textures/common/nodraw" 0 0 0
( 0 0 1 -128 ) ( ( 0.0625 0 3.5 ) ( 0 0.0625 10 ) ) "textures/common/nodraw" 0 0 0
( 0 -1 0 128 ) ( ( 0.125 0 20 ) ( 0 0.125 0 ) ) "textures/editor/visportal" 0 0 0
( 1 0 0 64 ) ( ( 0.0625 0 3.5 ) ( 0 0.0625 0 ) ) "textures/common/nodraw" 0 0 0
( 0 1 0 -144 ) ( ( 0.0625 0 -10 ) ( 0 0.0625 0 ) ) "textures/common/nodraw" 0 0 0
( -1 0 0 -184 ) ( ( 0.0625 0 -3.5 ) ( 0 0.0625 0 ) ) "textures/common/nodraw" 0 0 0
}
}
// primitive 3
{
brushDef3
{
( 0 0 -1 0 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 0 0 1 -384 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 0 -1 0 -256 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 0 1 0 -264 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( -1 0 0 -192 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 1 0 0 184 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
}
}
// primitive 4
{
brushDef3
{
( 0 0 -1 0 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 0 0 1 -384 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 1 0 0 -256 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 0 1 0 -264 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( -1 0 0 -192 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 0 -1 0 256 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
}
}
// primitive 5
{
brushDef3
{
( 0 0 -1 0 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 0 0 1 -384 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 0 -1 0 -256 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 1 0 0 -256 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 0 1 0 -264 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( -1 0 0 248 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
}
}
// primitive 6
{
brushDef3
{
( 0 0 -1 0 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 0 0 1 -384 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 0 -1 0 -256 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 1 0 0 -256 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( -1 0 0 -192 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 0 1 0 248 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
}
}
// primitive 7
{
brushDef3
{
( 0 0 1 -384 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 0 -1 0 -256 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 1 0 0 -256 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 0 1 0 -264 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( -1 0 0 -192 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 0 0 -1 376 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
}
}
// primitive 8
{
brushDef3
{
( 0 0 -1 0 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 0 -1 0 -256 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 1 0 0 -256 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 0 1 0 -264 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( -1 0 0 -192 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 0 0 1 -8 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
}
}
}
// entity 1
{
"classname" "func_portal"
"name" "func_portal_1"
"origin" "-88 128 64"
"target" "func_door_1"
}
// entity 2
{
"classname" "func_door"
"name" "func_door_1"
"model" "func_door_1"
"origin" "-128 128 64"
"movedir" "0"
// primitive 0
{
brushDef3
{
( 0 0 -1 -64 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 0 0 1 -64 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 0 -1 0 -8 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 1 0 0 -64 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( 0 1 0 -16 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
( -1 0 0 -56 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/minwall8blu" 0 0 0
}
}
}
// entity 3
{
"classname" "info_vacuum"
"name" "info_vacuum_1"
"origin" "-128 224 56"
}
// entity 4
{
"classname" "light"
"name" "light_1"
"origin" "32 0 192"
"light_radius" "288 320 256"
}
// entity 5
{
"classname" "info_player_start"
"name" "info_player_start_1"
"origin" "32 -168 16"
"angle" "90"
}


Top
 Profile  
 
 Post subject:
PostPosted: Thu Sep 02, 2004 6:47 am 
Offline
Captured the Flag
User avatar

Joined: Sun Aug 29, 2004 11:39 pm
Posts: 1830
^--that is the test map I made. This one works fine but with further study I've found that in some cases, which I can't seem to figure out the difference between, you also need to add a vis portal in the door and move the func_portal to touch the vis portal.

Copy and paste this to a txt file (notepad preferred to prevent formatting the text by mistake) and load it into radiant and you'll see how I set this one up.


Top
 Profile  
 
 Post subject:
PostPosted: Thu Sep 02, 2004 6:56 am 
Offline
The first 10 posts have been the best...

Joined: Thu Aug 26, 2004 12:35 am
Posts: 12
Thanks bittoman
yea, that was it, worked fine once I placed the vis portal brush in

:D


Top
 Profile  
 
 Post subject:
PostPosted: Thu Sep 02, 2004 6:56 am 
Offline
picked up the chaingun

Joined: Sat Aug 07, 2004 4:26 am
Posts: 150
Location: Chicago IL
yup - that was it.

Vis portal worked.

<edit> Could it be related to the texture you use in your maps and/or the texture you use on the cube that effects things?

Maybe some textures are goofy.

If the func_portal targets X texture and that is the same texture your using everywhere maybe it gets mad?

_________________
There are 10 types of people in this world... those that understand Binary and those that don't :)


Top
 Profile  
 
 Post subject:
PostPosted: Thu Sep 02, 2004 9:59 am 
Offline
picked up 200 ammo

Joined: Wed Aug 11, 2004 11:23 am
Posts: 200
very nice work mate, even though my post was'nt exactly the most helpfull i'm glad it nudged you in the right direction :)

Cool tut. btw, might actually need that one :P


Top
 Profile  
 
 Post subject:
PostPosted: Wed Sep 08, 2004 12:14 pm 
Offline
is connecting to Doom3world.org

Joined: Wed Sep 08, 2004 12:11 pm
Posts: 7
Uhm, what's a Vis Portal???


Top
 Profile  
 
 Post subject:
PostPosted: Wed Sep 08, 2004 3:19 pm 
Offline
Captured the Flag
User avatar

Joined: Sun Aug 29, 2004 11:39 pm
Posts: 1830
Hellcat187 wrote:
Uhm, what's a Vis Portal???


"Vis portals" are id's modern incarnation of what a "hint" brush was in Quake 2. It's a brush that is resizable and made of 5 "no draw" sides and one "vis" side. To use it properly you must do at least 2 things:

1. The brush must completely seal off the opening it's in. Example: If you place one in a hallway, it must touch the ceiling, floor and both walls.
2. A vis brush must completely seperate 2 areas from each other. I like to call them internal leaks when they don't comply with this although you can still run the map.

What a vis brush does is tell the engine that you want it to not draw the area behind this until the player is almost in direct view. When used properly they can significantly increase frame rates in heavily detailed maps.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Sep 08, 2004 7:16 pm 
Offline
The first 10 posts have been the best...

Joined: Thu Aug 19, 2004 10:18 am
Posts: 10
Hi guyz,

I read this tutorial and this one Tutorials: Vacuum Zones (3 tutorials)
http://www.doom3world.org/phpbb2/viewtopic.php?t=3627

seperate they work fine, but this is what I would like to do (tried and failed for the past 3hrz)

I have a room with a window and behind that window a skybox witch is vacuum space. If the window is shot, vacuum fillz the room.
This part works already.
Now to make thingz a little bit nicer:

When the window is shot and the vacuum fills the room, I would like to have a vacuumdoor (sorta like a blastdoor or whatever) that comes down and shuts the window so the vacuum stops flooding the room, either automatic (couple of seconds after the glass is broken) or manually (using a gui)

Can't get it to work, any help would be nice,

thx in advance


Top
 Profile  
 
 Post subject:
PostPosted: Wed Sep 08, 2004 10:52 pm 
Offline
is connecting to Doom3world.org

Joined: Wed Sep 08, 2004 12:11 pm
Posts: 7
coolidge thx for the info, I'm a total noob in this stuff only started makin maps like 3 days ago :D


Top
 Profile  
 
 Post subject: Re: Tutorial: How To Repeatedly Activate And Deactivate Vac
PostPosted: Sat Nov 13, 2004 7:48 am 
Offline
picked up 200 ammo

Joined: Sat Aug 21, 2004 5:14 pm
Posts: 242
Location: Worldspawn
Bittoman wrote:
The reason for this is when you trigger an info_vacuumseperator the game actually removes the entity from the map completely leaving nothing there for the trigger to turn back on.


Actually, this is not quite accurate. The info_vacuumseperator doesn't get removed from the game, it's still there. The problem with this entity is that it's not "toggle-able". You can only trigger it off, once you've done that, you can't toggle it back on (which is kind of a shame because it complicates things a bit).

There's a very easy way to verify if an entity is still present or not in the game: by using the console command 'listEntities'.

Bittoman wrote:
Starting with everything deselected, select func_portal first, then select the func_door and press ctrl+k to set the target from the func_portal to the func_door


The only thing a func_portal can do is force the visportal brush it touches to open or close when triggered. This entity does not have the ability to trigger other entities. Therefore targeting a func_door with it will do exactly nothing at all.

A func_door OTOH has the ability to open and close a visportal brush automatically as long as that brush is completely enclosed inside the func_door's volume. In this specific case, a func_portal is not required at all to open and close the visportal. The func_door does it for you.

Now if you want a func_portal to open and close a visportal at will, you must trigger the func_portal.

Trigger entity -----> func_portal (which touches the visportal textured brush)

That's how a func_portal REALLY works. It's useful mainly in situations where you don't have the opportunity to enclose it inside a func_door to operate it automatically.

One typical example is the airlocks in the Id maps. Those have curved doors which are func_mover's controlled by a script. You can't use func_door's in that situation because the airlock doors need to operate in a rotating movement and func_door's can only slide in a linear motion.

You absolutely need visportals to isolate vaccum from non-vacuum areas in those airlocks but since your func_mover doors can't open/close a visportal automatically, you need something else to control the visportals. Thus the toggle-able func_portal was invented. 8)

_________________
Red by nature, black by art


Top
 Profile  
 
 Post subject:
PostPosted: Sat Nov 13, 2004 8:03 am 
Offline
picked up 200 ammo

Joined: Sat Aug 21, 2004 5:14 pm
Posts: 242
Location: Worldspawn
Th0r4z1n3 wrote:
When the window is shot and the vacuum fills the room, I would like to have a vacuumdoor (sorta like a blastdoor or whatever) that comes down and shuts the window so the vacuum stops flooding the room, either automatic (couple of seconds after the glass is broken) or manually (using a gui)


If you read my post above this one and apply what I described to what you want to do, it simply becomes a matter of whether you want rotating shutters or sliding shutters.

If you want sliding shutters, piece of cake. Just use func_door's and place visportals inside them. Set the 'start_open' key to 1 on the doors. Also, put an info_vaccumseparator on the visportal so it blocks vaccum (but not vis) while the shutters are open.

Make sure the info_vaccumseparator get triggered at the same time the glass is smashed. Vaccum floods the room. When you close the shutters, the func_doors will close the visportals and vaccum is once again isolated.

If you want rotating shutters, that's more complicated because you'll need to use func_mover's and that means you'd have no choice but to write a script to control them. And you would need func_portals also (which in this case, you might as well trigger through the script since you'd have to write one anyway).

_________________
Red by nature, black by art


Top
 Profile  
 
 Post subject: Vis Portals
PostPosted: Sat Dec 04, 2004 4:00 pm 
Offline
is connecting to Doom3world.org

Joined: Sat Dec 04, 2004 3:53 pm
Posts: 1
I am kinda lost with Vis Portals. How do you make one? Where is it located in the editor? Is it in the Entity list, or is it somewhere else? Any help would be appreciated.

* Just figured it out. :D

How can I use/make a vis portal on a window looking outisde (Mars landscape ) and not lose any air? I can do it with a door, but not a window or brekable window. :?


Top
 Profile  
 
 Post subject:
PostPosted: Mon Aug 01, 2005 5:00 pm 
Offline
is connecting to Doom3world.org

Joined: Sat Aug 07, 2004 4:25 am
Posts: 8
best tutorial ever. Clear, conceise, and to the point. thanks for solving 90% of my maps errors :D


Top
 Profile  
 
 Post subject:
PostPosted: Fri Aug 05, 2005 9:03 pm 
Offline
Orginal Programmer Wannabe
User avatar

Joined: Thu Jul 07, 2005 11:57 pm
Posts: 1234
Location: U.S & A
That was cool I never thot you could do that.

_________________
My Programming Blog


Top
 Profile E-mail  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 20 posts ] 

All times are UTC [ DST ]


Who is online

Users browsing this forum: Google [Bot] and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group