Hmm.
#11003 posted by Preach on 2011/04/13 19:44:36
You've got yourself a tough one there, but the question that I'd want to investigate first is not why it's breaking in berserker mode, but how you're getting away with it in the other modes. There is no way that you can run door_fire if owner is anything but self. Have you assigned door_fire to a particular field yourself?
#11004 posted by negke on 2011/04/13 19:57:49
I didn't use door_fire anywhere. However, could it be related to the other (now only) door hack in the map: the water from the bucket puzzle? For the warning message does not appear on Easy (where said entity is flagged out). When the maps starts in bezerk mode, a script is run that activates and removes a whole bunch of entities including the water door.
Not that it would be any less strange.
#11005 posted by negke on 2011/04/13 20:04:08
Yes, it's indeed related. If the door isn't triggered, everything works as it should. But why?
Fire In The Hole
#11006 posted by Preach on 2011/04/13 20:58:51
door_fire expects to be called from the master door in a set of doors. Just make sure that the hacked door entity has owner set to itself - you may need to include a copy for each skill configuration which includes the door if the entity number changes in different configurations.
Two comments on setting that field right. Firstly, the higher up the list of entities you can put the hacky door the better, since there's less chance the entity number will change that way.
Secondly, there's a good chance you'll be screwed over for coop by this. Single player reserves only 1 entity for players, but coop has to reserve up to "maxplayers" entities even if that many have not connected yet.
Best thing to do might be to create two version of the door, one for a server with maxplayers 1 (the single player version) and one for maxplayers 16 (the maximal coop version). One door would have an owner 15 greater than the other. Then killtarget off whichever one will crash the game using the coop detection trick as soon as you can. People who want to play coop would have to set maxplayers 16 for it to work - I don't think there's a way to detect server capacity through qc.
Good luck!
Yeah
#11007 posted by negke on 2011/04/13 21:13:01
I'll just remove the entire puzzle on coop. Let's see how I can squeeze the additional entities in... on skill 2 the map is practically on the edge of maxedicts.
A reminder that I shouldn't forget to coop test my maps in the future.
Ah Crap
#11008 posted by negke on 2011/04/13 21:46:10
As neat as the coop detection hack is, I can't afford it. In fact, I'll have to solve it the cheapest way possible with a simple killtarget trigger. Is there by any chance a way to make a trigger that removes itself after a while if it isn't touched?
This Message Will Self Destruct In Five...four...
#11009 posted by Preach on 2011/04/14 11:16:45
Yeah, turns out that's pretty simple. Just add
"think" "SUB_Remove"
"nextthink" "60"
to a regular trigger_multiple to get it removed after 60 seconds. The counter will go away if someone triggers it.
Nice, Thanks
#11010 posted by negke on 2011/04/14 12:10:19
I actually tried that but with an into_notnull and the trigger touch/use fields which didn't work. I thought the trigger_ entities' think field was locked to InitTrigger.
#11011 posted by necros on 2011/04/17 04:41:01
does scaling up textures on triggers and other invisible things (clip even?) reduce lightmaps?
what about skybrushes?
i do this out of habit, but i don't remember if it actually does anything or not. my gut tells me yes but i've been wrong about stuff like this before.
#11012 posted by Zwiffle on 2011/04/17 05:14:28
Hmm I think invisible things are ... immune? ... to lightmaps. At least, that would make sense to me. Not sure about skybrushes, but being fullbright I would assume it too wouldn't matter.
#11013 posted by metlslime on 2011/04/17 10:32:41
triggers: yes
clips: no
skies: no
#11014 posted by necros on 2011/04/18 01:04:44
thanks!
yeah, in retrospect, it makes sense that clips wouldn't as they are only part of hull1 and 2. and skies are treated as liquid i guess?
but yeah, thanks for clearing that up. :)
?
#11015 posted by madfox on 2011/04/19 03:13:18
I just gathered my wits and lost them again...
Did recheque my last map and saw I scaled up all skymaps an clips to reduce lightmaps as I was on the 32768 brush limit.
Must I use a toppicname now again?
Brushes?
#11016 posted by Mike Woodham on 2011/04/19 12:59:10
32,000 brushes? That's one mighty big map; mighty f'kin' big.
I Think He Meant Marksurfaces
#11017 posted by negke on 2011/04/19 13:05:00
Doh!
#11018 posted by Mike Woodham on 2011/04/19 20:01:12
Oh well.
Out Of Orbit
#11019 posted by madfox on 2011/04/19 21:06:14
Yes, the map had 2954 brushes and marksurfaces were at the limit. (about 32768 I think)
But again, does it reduce the lightmap count scaling up clips and skytexture?
Triggers I understand, but after a half year I don't know why I took that much care.
Skip
#11020 posted by necros on 2011/04/21 05:03:33
skip doesn't work when it's external bsps loaded from an entity? shit made me very very sad. :'(
Skip It First?
#11021 posted by jt_ on 2011/04/21 06:05:52
#11022 posted by necros on 2011/04/21 06:52:37
...
Necros:
#11023 posted by metlslime on 2011/04/21 09:01:24
Ah, i see why that fails.
The world model is rendered differently from bsp entities. So, to make skip work on both types, a different trick is used on model 0 versus models 1 and higher.
The problem with external bsp models is, they are model 0 in the bsp file, so newskip applies the trick that makes worldmodel skip work, but the game renders them as entities, not worldmodels, so the trick doesn't have any effect.
It is fixable, but i'm not sure how easy it would be. Worst case is we would need a special command line option to tell the skip tool that it's dealing with an external bsp model rather than a level, and process it accordingly.
#11024 posted by necros on 2011/04/21 19:06:48
aw that's too bad. mostly it would have been great in helping to light the bmodels but you can still do it fairly well by making all the shadow casting walls 1 unit behind the world geometry in the actual map.
#11025 posted by metlslime on 2011/04/21 19:37:53
hmm... what were you trying to do exactly?
#11026 posted by necros on 2011/04/21 20:03:16
well, i've been replacing some brushwork in my map with external bsps.
at first, i was just replacing 'object' type brushwork, like a pillar or coffin type of thing.
but my map has a lot of high roofs as well, and while they may have fancy precompiled light cast on them, dynamic light should never touch them, so i was planning on replacing all the ceiling zones with external bmodels. unfortunately, recreating the lighting in external bsps means creating the brushwork to cast the shadows. having the ability to make invisible walls would have been awesome for that.
but like i said, i've made do with pushing shadow casters 1 unit behind the map geometry. it's still there, but you just don't see it.
Train Trouble On Glquake (sv_maxvelocity?)
#11027 posted by negke on 2011/04/22 10:45:13
I have a set of very fast-moving func_trains to fake an animation (flag in the wind). Their speed is set to 4000 and they stay on their target position for 0.1 seconds. Despite sv_maxvelocity being 2000, the high value does the trick; setting speed to 2000 would make the movement visible.
This setup works suitably well in many engine ports, but not so much in Glquake and direct derivates. In those, there's a visible delay, the trains move out of sync - it looks like sometimes two 'frames' are shown (wait at the target path_corner) at once, then one remains empty. Each of the three 'frames' start at a remote spot, then move to a delayed path_corner (wait 0, 0.1, 0.2 respectively), then to the flag pole one (wait 0.1), then loop with another remote one (wait 0.3) and the pole.
What could be the reason for this different behavior?
|