Jump to content

Home

spawning and elevaters


yoda-the-wise

Recommended Posts

The NPC_target is what an NPC fires when he dies. If you point this to another NPC, that other NPC will not spawn until the first dies.

 

If what you really want is for _none_ of NPC group B to spawn until _all_ of NPC group A is dead, one way to do it is this:

 

Create a target_count and set its count to the number of NPCs in group A. Let's say you give it a targetname of "group_a_deathcount" and give every NPC in group A an NPC_target of group_a_deathcount. Then set the target_count's target to "group_b" and give every NPC a targetname (that's targetname, not NPC_targetname) of group_b.

 

What will happen is that, because they all have a targetname, none of the NPCs in group B will spawn until something triggers them. Every time an NPC in group A dies, he'll fire his NPC_target, which is the counter. When the last NPC in group A dies--remember we set the target_counter's count to the number of NPCs in group A--the target_counter will reach its count and fire its target: group B. Then group B will spawn. Ta da!

 

Elevators seem to be a hotly debated topic. I favor an ICARUS script because no matter how simple an elevator you think you want, it will never do _exactly_ what you want it to do unless you script it and explicitly tell it what to do. You can always use a func_plat or a func_door that "opens" up or down, but you'll never be 100% satisfied--you'll always wish it did one thing or another that those entities don't do.

Link to comment
Share on other sites

awesome just did it; works way khewl; if ya don't mind i'll chime in and see if i can eloborate . . .

 

k i threw 3 npc's in my test map. this would be group A.

 

key:NPC_target

value: deathcount

(for all 3 of them)

 

now i put in a target_counter

key:count

value:3

 

and

 

key:targetname

value:deathcount

 

and

 

key:target

value:spawnme

 

and you'll see the lines connect the npc's to the counter

 

then from here its different but will explain at end

 

i put in a scriptrunner

 

key:usescript

value:spawngroupb

 

and

 

key:targetname

valuespawnme

 

now you'll see the counter connect a line to the script runner.

 

i did it this way to test if it could run a script which it did. so . . .

 

i put in 3 more npc's. this is group B.

 

key:NPC_targetname

value:groupb

 

i did this for all 3 npc's in group B. also make sure its "NPC_targetname" and not just "targetname". or it won't work.

 

and my script did simply this(for now)

//Generated by BehavEd

 

rem ( "spawngroupb" );

use ( "groupb" );

 

so then i ran the map and when i killed the 3rd of the 3 npc's in no particular order the next three appeared. khewl huh!

Link to comment
Share on other sites

The target_counter is the entity that does the counting. Its name, i.e. its targetname key, is deathcount.

 

There are probably as many different ways to make locked doors as there are stars in the sky. How exactly do you want the locked door to work?

Link to comment
Share on other sites

yes known as the HOM (hall of mirrors) effect. In radiant before you draw your first brush on a new map the 3d window is all grey. This is known as "the void". Your maps have to be like a space ship in space; completely sealed from the void. If there is the slightest leak or gap in the "hull" of your map then the leak occurs and the hom at the leak itself. Also if you have a brush that is against the void that is detail you could get the hom too. All brushes against the void have to be structural. Select the brush and choose selection/make structural. And they can also occur in strange circumstances if the above isn't the case.

 

A word on level design

Take heed, plan technique, throwing a bunch of brushes together and trying to fix all the bugs after is a pain in the @ss.

hints;

I usally start by blocking out the major rooms; i use the caulk texture on everything and place art textures on just the faces that will be seen by the player.

Use ctrl+D often; it toggles detail brushes on and off. As you build your level you can see if the basic structure is sealed from the void. Then I go back and add the fancy schmancy stuff.

I do my damnedest to make sure no brushes are occupying the same space, so if you make a giant cube and hollow it out to make a room, then drag the walls, floor and ceiling out a tad so the corners are touching and not overlapping.

Don't use csg subtract; it can cause bad poly's-not good. Its better to build brushes around eachother or use the clipping tool which is nifty.

Save your map in stages; mymapv1.map, mymapv2.map etc. And also do a bsp no light no vis, just to check that it will compile and has no major problems. Its easier to debug smaller maps rather than big ones. And i do my maps in sections, and slap them all together in one big one at the end. It saves time in many respects.

and also check these out

http://www.planetquake.com/spog/stuff/technical.html

http://www.qeradiant.com/faq/fom-serve/cache/17.html

http://lunaran.fragland.net/lsite.php?content=architecture

http://www.telefragged.com/teamtk/learning/teovgld-b1.htm

Link to comment
Share on other sites

I second everything Bell said.

 

Blocking out the major portions first like he said will prevent a lot of headache and heartache. In software engineering we call this top-down design--build the skeleton of the whole system first, then fill in the details to make each part work.

Link to comment
Share on other sites

lol khewl lemme know i'll take a look at it.

actually i'm on a mod team already and we are just weeks away of releasing chapter one; i'm way busy but thanks!!! maybe in the near future:cool: i can help on a limited basis though

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...