2 questions...


(cicero) #1

Hello again!

Have a few questions:

First on, hope you understand this, I will try to describe as easy as possible…

I want a small boat in my map that is possible to enter. Therefore I made a boat hull and tower out of brushes. Now I want to place it in the main big waterbrush in my map but then comes the problem. I don’t want to have water inside the boat…

As I see it, the best way to do this is to place the boat in a smaller brush (with water nodraw texture), select the whole boat, lowering it into the right level of the small waterbrush and subtract the hull. This creates nearly 200 small brushes around the hull but anyway… After this, I delete all small water brushes inside my hull.

Then I make a new brush with exactly the same size as the small waterbrush (that I just hollowed out) and place this in my big waterbrush (the big main brush in my map) and press subtract. This creates just a few brushes as my main big brush gets divied up into 4-5 pieces. Then I remove the small brush I just placed into the main big one. After this, I then select both my small waterbrush (that is now divided into hundred small brushes) and my boat and put that in the place of the recently deleted brush. This way my boat has no water inside. Is this the smartest, easiest way?

Secondly. When I make a new brush and want to turn it into lets say a window there is another problem. When I open up the window where I put in health, sound etc… there is maxscordmins and maxcordmaxs along with all other strange data. Why, and shall these (by automatic) be in ALL my brushes?

Thx!


(MuffinMan) #2
  1. should the boat be movable or static? if movable you have almost no chance to make it look right imho, as static i would make a quite thick hull and then cut the water by hand, csg subtract creates odd brushes that can cause not only bad performance but errors as well… the aproach is good though, do it with a small water brush and then place it into your main water brush, just don’t do it with csg again, cut it by hand it will in this case probably do the same as csg but this way you’re sure (find the clipping tool by pressing ‘x’)

  2. you describe the worldspawn, this is the main entity all brushes are in by default, if you make a door or a script mover or anything else then the brushes that belong to it have to be collected in the appropriate entity first.
    do you want to be able to open the window? in this case you would have to use a door-entity or if this isn’t what you are searching for a script mover. don’t try to set health or something else for worldspawn brushes it will create an error

i’d suggest to read the door tutorial here for better understanding: www.wolfensteinx.com/surface/


(cicero) #3

Thanks first of all.

The boat.

Well it shall be static. would be nice to have it rolling as it would be by waves but that will be to much work for nothing really so it will be static. What is CSG? Yes, I started with a brush and used the clipping tool to cut of mostly triangulary bits here and there from all 3 directions/views (x,y,z). I must say that I’m quite satisfied with the result so it will do. It’s not so important for the gameplay. It’s more important for the overall feeling for the map. The map has a fishing willage and then it would be most natural to find a small fishing boat in the harbour… Errors, well I got everything from a few thousand brushes to less than 180 brushes when subtracted my hull. Of course I selected the one with the least brushes. Everything I need to do then is to add the correct texture on the top brushes.

  1. should the boat be movable or static? if movable you have almost no chance to make it look right imho, as static i would make a quite thick hull and then cut the water by hand, csg subtract creates odd brushes that can cause not only bad performance but errors as well… the aproach is good though, do it with a small water brush and then place it into your main water brush, just don’t do it with csg again, cut it by hand it will in this case probably do the same as csg but this way you’re sure (find the clipping tool by pressing ‘x’)

Worldspan.

Yes, that’s what it is called. (thx) Well, in the beginning everything worked fine but now I by automatic get a lot of info I don’t want in there. For exemple, I get worldmaxs/mins in every brush and I don’t want that… I’m not trying to build a window that was just an example… I get that stuff in the worldspan when just making a wall… Well I have printed some tutorials that I check from time to time but this is something that didn’t occur from the beginning…

Ciao!


(Ifurita) #4

Ask Chavo, he has a moving boat in his Venice map, though I think it’s a solid model. Quite cool though


(chavo_one) #5

With the boat in venice, I just made sure the floorboard of the boat wasn’t below the water level. For what cicero wants to do, I think cutting up the water brush and applying waternodraw to the appropriate sides would be the easiest solution. Of course if the boat is supposed to move like in Venice, this wouldn’t work.


(MuffinMan) #6

ok i guess there is more explanation needed for worldspawn

don’t be scared it will make sense (hopefully)

here is an example .map-file:


// entity 0
{
"_minilight" "20"
"_color" "1.000000 0.974972 0.808173"
"_blocksize" "0"
"classname" "worldspawn"
"_lightmapscale" "2"
// brush 0
{
( 9920 -2696 248 ) ( 9920 -3144 248 ) ( 9920 -3144 240 ) die_eskorte/wp_hull 0 0 0 0.500000 0.500000 0 5 0
( 10824 -2176 256 ) ( 10368 -2176 256 ) ( 10368 -2176 248 ) die_eskorte/wp_hull 0 0 0 0.500000 0.500000 0 5 0
( 9984 -3224 248 ) ( 9984 -2776 248 ) ( 9984 -2776 240 ) die_eskorte/wp_hull 0 0 0 0.500000 0.500000 0 5 0
( 10224 -2304 256 ) ( 10680 -2304 256 ) ( 10680 -2304 248 ) die_eskorte/wp_hull 0 0 0 0.500000 0.500000 0 5 0
( 10304 -3144 256 ) ( 10304 -2696 256 ) ( 10760 -2696 256 ) die_eskorte/wp_hull 0 0 0 0.500000 0.500000 0 5 0
( 10760 -2696 240 ) ( 10304 -2696 240 ) ( 10304 -3144 240 ) die_eskorte/wp_hull 0 0 0 0.500000 0.500000 0 5 0
}
// brush 1
{
( 9600 -2952 248 ) ( 9600 -3400 248 ) ( 9600 -3400 240 ) die_eskorte/wp_hull 0 0 0 0.500000 0.500000 0 5 0
( 10504 -2176 256 ) ( 10048 -2176 256 ) ( 10048 -2176 248 ) die_eskorte/wp_hull 0 0 0 0.500000 0.500000 0 5 0
( 9920 -3480 248 ) ( 9920 -3032 248 ) ( 9920 -3032 240 ) die_eskorte/wp_hull 0 0 0 0.500000 0.500000 0 5 0
( 9904 -2560 256 ) ( 10360 -2560 256 ) ( 10360 -2560 248 ) die_eskorte/wp_hull 0 0 0 0.500000 0.500000 0 5 0
( 9984 -3400 256 ) ( 9984 -2952 256 ) ( 10440 -2952 256 ) die_eskorte/wp_hull 0 0 0 0.500000 0.500000 0 5 0
( 10440 -2952 240 ) ( 9984 -2952 240 ) ( 9984 -3400 240 ) die_eskorte/wp_hull 0 0 0 0.500000 0.500000 0 5 0
}
}
// entity 1
{
"spawnflags" "44"
"classname" "func_explosive"
// brush 0
{
( 4472 -6456 176 ) ( 4472 -6592 176 ) ( 4472 -6592 144 ) castle_window/CASHUDDER_C01 0 0 0 0.500000 0.500000 134217728 0 0
( 4496 -6464 176 ) ( 4456 -6464 176 ) ( 4456 -6464 144 ) common/caulk 0 0 0 0.500000 0.500000 134217728 4 0
( 4488 -6592 176 ) ( 4488 -6456 176 ) ( 4488 -6456 144 ) castle_window/CASHUDDER_C01 0 0 0 0.500000 0.500000 134217728 0 0
( 4456 -6592 176 ) ( 4496 -6592 176 ) ( 4496 -6592 144 ) common/caulk 0 0 0 0.500000 0.500000 134217728 4 0
( 4480 -6496 176 ) ( 4496 -6496 176 ) ( 4496 -6560 176 ) castle_window/CASHUDDER_C01 0 0 0 0.500000 0.500000 134217728 0 0
( 4496 -6456 0 ) ( 4456 -6456 0 ) ( 4456 -6592 0 ) common/caulk 0 0 0 0.500000 0.500000 134217728 4 0
( 4472 -6592 128 ) ( 4472 -6560 176 ) ( 4488 -6592 128 ) castle_window/CASHUDDER_C01 0 0 0 0.500000 0.500000 134217728 0 0
( 4496 -6496 176 ) ( 4480 -6496 176 ) ( 4480 -6464 128 ) castle_window/CASHUDDER_C01 0 0 0 0.500000 0.500000 134217728 0 0
}
// brush 1
{
( 3312 -7192 0 ) ( 3040 -7192 0 ) ( 3040 -7480 0 ) common/trigger 0 16 0 0.500000 0.500000 0 7 0
( 3040 -7480 176 ) ( 3040 -7192 176 ) ( 3312 -7192 176 ) common/trigger 0 16 0 0.500000 0.500000 0 7 0
( 3048 -7496 176 ) ( 3320 -7496 176 ) ( 3320 -7496 0 ) common/trigger 0 0 0 0.500000 0.500000 0 7 0
( 3360 -7488 176 ) ( 3360 -7200 176 ) ( 3360 -7200 0 ) common/trigger -16 0 0 0.500000 0.500000 0 7 0
( 3304 -7256 176 ) ( 3032 -7256 176 ) ( 3032 -7256 0 ) common/trigger 0 0 0 0.500000 0.500000 0 7 0
( 3040 -7192 176 ) ( 3040 -7480 176 ) ( 3040 -7480 0 ) common/trigger -16 0 0 0.500000 0.500000 0 7 0
}
}

note that there are 2 entities in this map, first is worldspawn, second is an explosive. the brushes you create belong by default to the entity worldspawn. when you select a brush and press N you call the entity editor which shows you all the data of the entity which the brush belongs to, in your case your wall or window brushes.
if you want to add special abilities to brushes you have to create a new entity like a func_explosive in my example, therefor you have to select one or more brushes, right click on the grid and select func_explosive - this way you created the entity and the selected brushes are part of it, select it and press N again - you’ll see the properties of this new entity

any setting in this entity is used for all it’s brushes so the behaviour you describe is absolutely normal

did that help?