Ahem
#13097 posted by ijed on 2013/08/08 02:51:34
Point entity with a model, decorative and usually does nothing, not even collide.
Ok, Pop Quiz
#13098 posted by Preach on 2013/08/09 13:07:35
I'm setting up a future article for the blog here (like so future that I'm still finishing off the article which precedes it...), but it is a bit of a slow day on func_ so I think that's ok.
If you create a zero-wait trigger_multiple whose targetname is the same as its target then you'll get an infinite loop, which will quickly crash the map with a stack overflow. Similarly if you create a chain of trigger_relays which loop back on themsevles, the same thing will happen.
Can you devise a set-up where the same entity gets triggered more than once in the same "action", and the game continues running? (In the same action means before the function which was called to trigger things initially returns).
Not Sure
#13099 posted by ijed on 2013/08/09 15:19:44
If this is what you mean, but I often trigger two relays at the same time, which both point at the same target but with different waits.
To open a door for a fixed period of time for example.
Sharing
#13100 posted by Preach on 2013/08/09 15:32:10
I'll clarify with an example. If you have a trigger_multiple with
"target" "tweedledum"
"targetname "tweedledee"
and his partner
"target" "tweedledee"
"targetname "tweedledum"
If you ever walk into one of these triggers, they'll instantly crash because they just keep using each other with no delay, and the stack overflows. tweedledee targets tweedledum who targets tweedledee...
So in effect tweedledee is targetting himself. This would however be fine if either trigger had a delay - in fact a trigger which targets itself and has a delay is a very useful pattern - it's basically a clock which keeps firing the same event at a fixed time interval.
What I want to know is "can an entity indirectly target itself - cause itself to be used again, with no delay, legitimately?" That is, without crashing the engine...
Noob Questions
#13101 posted by ijed on 2013/08/09 15:32:44
What are the max faces / verticies in a map? Do models count towards these limits? Do brushmodels and external brushmodels?
I've got a Bad Surface extents error and nothing I've done recently seems to have caused it since I've been backing up, deleting stuff and recompiling to try and find the issue but no go.
I've got 50906 faces against the standard 32767 normal limit.
The map doesn't load even in RMQe and I've been testing in fitz up until now.
If it is just too much stuff then the map may well just end up as a load of empty boxes since It's barely halfway complete and I haven't even added the end arena.
Hm
#13102 posted by ijed on 2013/08/09 15:45:25
A delay of 0.1 would equate to next frame - it'd be heavy as fuck on the engine but it shouldn't crash outright?
Shorter Frames
#13103 posted by Preach on 2013/08/09 17:13:50
Frames can be shorter than 0.1 seconds, and it wouldn't be a great strain on the engine to do that. The problem is that the sequence of Tweedledum and Tweedledee never ends. This is fine if there's a delay, because you've got an infinite sequence to get through, but an infinite amount of time to do it in*. If there's no delay, you have an infinite number of triggers to get through this frame, which is too much.
*Disclaimer: the Quake engine cannot in fact run indefinitely due to floating point issues.
Random Guess
#13104 posted by negke on 2013/08/09 18:05:21
Use a different entity than a trigger to relay the firing? A non-moving door perhaps?
Preach:
#13105 posted by metlslime on 2013/08/09 18:19:20
Probably you need to have some sort of flag or variable that cleared when the entity gets "used", and once cleared prevents the loop from repeating. Sort of like breaking out of a while(true) loop.
#13106 posted by czg on 2013/08/09 18:20:27
I'm imagining if you add a trigger_counter to the loop you might be able to terminate it after a certain amount of iterations? I'm not sure if I'm understanding the question right.
trigger_relay: tweedledee targets tweedledum
trigger_relay: tweedledum targets tweedledee
trigger_counter: tweedledum killtargets tweedledee, count 10
That should be activated 10 times in a single frame, at least in theory? Can't remember how killtarget works atm, maybe it doesn't remove the entity until the next frame.
I don't really see any practical purpose to the whole deal though...
Oh and this setup can't be reused of course.
Thinking A Bit More...
#13107 posted by czg on 2013/08/09 18:22:32
That depends on which order tweedledee activates the tweedledum entities. If it goes for the relay first it never reaches the counter obviously, and it most definitely won't work.
Hmm...
#13108 posted by metlslime on 2013/08/09 18:25:32
building on CZG's idea...
trigger_multiple:
"targetname" "a"
"target" "b"
trigger_counter:
"targetname" "b"
"target" "a"
"count" "1"
now the trigger_multiple's use function can trigger its own use function on the same frame, but for a total of only twice, instead of infinite times.
Re: Ijed's Question
#13109 posted by necros on 2013/08/09 20:23:29
the hard limit of faces and verts (regardless of engine extensions outside of new a format (bsp2)) is 65535.
External bsps do not count, but regular bmodels do.
Have you tried the old standby of removing large portions of the map to try to pinpoint the problem area?
Hm
#13110 posted by ijed on 2013/08/09 22:20:03
So its quite possible I just hit the limit with bmodels.
I don't have that many, but I haven't actually vetted the ones I'm using for vertex density. It's possible they've got lots of redundancy.
I tried removing certain lumps of geometry but not yet taking out entire lumps - that's next on the list. I'll give the 'big box' method of elimination a try as well.
In either case I suspect I'll have to either use external bsps or go to bsp2. Possibly both.
Thanks!
Fog Trap
#13111 posted by mechtech on 2013/08/10 03:57:34
Had an idea for a blindness trap for the player.
trigger_command
fog .9 0 0 0
Used Quoth
Map file
http://www.quaketastic.com/upload/files/single_player/maps/flashbang.7z
Another one e1m1 with a speed power up.
http://www.mediafire.com/download/tb0t1vaw3bxhz67/pwrtest.7z
Also uses Quoth mod
#13112 posted by necros on 2013/08/10 04:40:46
v_cshift makes more sense but i wouldn't mind seeing a silent hill darkness fog effect.
Did Something
#13113 posted by ijed on 2013/08/10 14:02:25
Similar but as a spell cast by a monster, using the shambles darkness effect when it casts lightning.
Worked pretty well, but unfortunately didn't really gel with the monster in question.
#13114 posted by necros on 2013/08/10 21:58:48
yeah, i never understood what that was all about. at first, i thought it was just some graphical glitch to do with the lightning.
I Reckon
#13115 posted by ijed on 2013/08/11 01:42:26
it'd work well as a direct attack, say, a special type of voreball that if it hits you leaves you blind for a duration.
Small Q
#13116 posted by qwfter on 2013/08/14 08:52:38
a simple question. how to carve shapes in other brushes? for instance what if I want to create a door port in the wall... do I have to create all the blocks around it just manually?
#13117 posted by Spirit on 2013/08/14 09:34:16
it depends on the editor you use.
better do it manually, carving usually leads to problems at some point. you can use splitting/cutting tools fine however, at least unless you do weird 3D angles.
#13118 posted by qwfter on 2013/08/14 10:08:35
i'm using trenchbroom. so is there anyway to put one shape in another and cut it out of it?
#13119 posted by qwfter on 2013/08/14 10:42:40
oh nevermind, got it. 'c' is for cutting.
Yeah
#13120 posted by ijed on 2013/08/14 14:37:30
'Carve' refers to subtracting one shape from another automatically, and usually means that the resulting geometry is a mess.
By Mess
#13121 posted by ijed on 2013/08/14 14:38:46
I mean it might look ok, but won't compile without leaks or holes.
The 3 point cutter in trenchbroom, combined with shift dragging faces (kind of like extrude) should be enough for you to make most things you want pretty easily.
|