Any Way To Compile The Func_etc? Like The Fields...
#519 posted by Terminal on 2018/01/02 21:51:36
For doors... The "effects" field... I would do this. I don't want a flame war... I have a sever impediment... It is not laziness...
It would be awesome to be incorperated in the Entity def's and qrk. files etc
Ric... Mapper since 99
New Post: Five Statues Challenge
#520 posted by Preach on 2018/02/23 00:56:25
Got a challenge from a reader of the old blog and I can't resist a challenge. The basic premise is to have five statues in the map, where the most recently touched one is selected, causing it to be lit up.
It's a real multimedia extravaganza as well today, with a full write-up, an example map and even a video, so come on down!
https://tomeofpreach.wordpress.com/2018/02/22/five-statues-challenge/
Weapon View Angle/Pitch Fix?
#521 posted by StroggVorbis on 2018/02/23 10:34:16
While I know of talisa's/seven's nail-position fix which offsets the NG's & SNG's nails to come out of the barrel instead of your face when aiming upwards, I miss such a fix for every other weapon, especially the GL, which makes shooting upwards a PITA. I'm no coder and wouldn't even try to mess with the source code/progs.dat. So by request, is anyone else up to the task to do it? Thx in advance.
Nice Preach
#522 posted by bal on 2018/02/23 11:28:45
I'm doing exactly the same thing in my current map, except with the AD entity state system, wouldn't have bothered ever trying in vanilla hah.
Follow Up: The Alternator
#523 posted by Preach on 2018/03/06 23:08:56
Hot on the heels, the promised hack that lets us ignore the order the entities are placed in the map, but still dictate the order that triggers fire.
https://tomeofpreach.wordpress.com/2018/03/06/the-alternator/
The article also includes how to make an "alternator" - a setup where a single input trigger switches between activating two different targets.
Brain Teaser For Preach
#524 posted by negke on 2018/04/04 10:06:15
Imagine you have several shootable triggers or buttons and want to fire an event once a certain total amount of health has been depleted. The damage done to the triggers transfered to an independent source, so to speak. So you can shoot each a random number of trigger a random number of times and once the overall health depletion reaches n, the event fires. Basically like a counter based on "health" instead of "count".
#525 posted by Qmaster on 2018/04/04 13:23:48
func_button.target > W_FireAxe notnull hack
W_FireAxe hits a func_door.
Func_door.health = 1000 or 2000 etc.
And voila, just add func_buttons.
#526 posted by metlslime on 2018/04/04 18:58:16
but, don't you want the player's actual weapon damage to matter? E.g. shooting it with 10 nails should cause less total damage than 10 rockets.
#527 posted by Qmaster on 2018/04/04 19:17:32
Make as many "shootable buttons" that you need. Select all of them, turn them all into one func_door with a health value, give it a target, set lip equal to bounding box so it doesn't move.
^Exactly
#528 posted by negke on 2018/04/04 19:26:08
The sum of all damage done combined. No idea if it's possible, and the applications would certainly be limited. For the lack of a better example: a machine needs to be damaged by a certain amount in order to be charged or explode and there are several exposed shootable parts. You can focus on a single one, or shoot each of them equally - the event fires once its global health is depleted.
#529 posted by negke on 2018/04/04 19:31:38
Exactly was @ metlslime.
But yeah, turning them all into a single door or button should work. Though what happens if they are supposed to be spread all over the map
#530 posted by metlslime on 2018/04/04 19:43:16
yeah, will you exceed max efrags and it disappears? I think in modern engines the efrag issue is solved and it is always drawn maybe...
Spread All Over
#531 posted by Qmaster on 2018/04/04 19:43:31
Nothing as far as I know, so long as the lip is set right for whichever movedir is set. I can't recall if func_button has an option to be silent in vanilla, so a func_door probably would work better.
One Doesn't Tease Preach's Brain With Trivial Matters!
#532 posted by negke on 2018/04/07 10:24:01
And yet, I have another possibly simple or already-answered-but-I'm-too-dumb-to-find question: how to spawn fully functional movers like trains, doors and plats half-way through the map? Basically invisible until triggered and then working like normal entities. Think "use" "func_wall" but without being thwarted by precache functions.
#533 posted by negke on 2018/04/07 10:47:23
I'm indeed stupid. It should work just fine that way as long as you override the sounds. Or is there anything more to it? If not, please delete me.
#532
#534 posted by Spike on 2018/04/07 12:22:45
inline models are implicitly precached, so those are not an issue for doors/plats/trains/etc.
while they'll have a model string set, their starting modelindex will be 0, which means they'll remain invisible until they're properly spawned.
regarding sounds, you can just have a second door/plat anywhere else in the map, its sole purpose being to precache the required sounds.
a bigger issue is that if you're using use+targetname, you'll have no way to clear said targetname before the use is called.
this means that plats will need to be triggered twice (one to spawn, once to activate them so that they can be used).
doors are more problematic - you'll need to manually create a trigger field around the missing door to allow it to open, and you'll need to spawn that trigger field the same way as the door otherwise they'll spawn the door when you walk through them the first time.
@Preach
Reaching back to this post from 2009 and trying to understand something.
Would this allow for a silent trigger_push? My set up is:
classname info_notnull
use InitTrigger
touch trigger_push_touch
speed 500
angle 90
spawnflags 2
targetname test
Mark V and Quakespasm are still complaining about not caching the ambience/windfly.wav sound file. I thought this was the whole point of this hack.
Thanks!
@dumptruck_ds
#536 posted by c0burn on 2018/06/14 09:04:10
Just put a trigger_push out in the void and it will ensure that sound is precached and avoid the warnings.
@c0burn
Yep, that's in the map off in a tiny room but the hack'd entity plays the sound in that case.
@c0burn
Yep, that's in the map off in a tiny room but the hack'd entity plays the sound in that case.
Different Intent
#539 posted by Preach on 2018/06/14 09:19:25
The intent is to make a delayed spawn trigger_push. The sound precache is the reason we have to do something a bit different to the standard "classname as use function" hack, it's what we're trying to work around. But the lack of sound is not intended - I would pair this with a regular trigger_push hidden somewhere in the map to perform the precache and remove the warnings.
You'd have to be pretty creative to get rid of the flying sound, only thing I can think might work is finding an entity hack that sets fly_sound on the player to an impossibly high value using ltime shenanigans on a doctored movetype_push entity. Haven't quite cracked that yet.
On a related note, this has reminded me of an undocumented Quoth 2.2 feature: you can specify the sound a trigger_push makes using the "noise" key. You can create a boiing! noise for jumppads, or using "misc/null.wav" will prevent any sound being made. Will write that one up when I get back...
@Preach
Alright. I was afraid of that, but luckily it's for academic purposes not a real project. Great news about the noise keys in Quoth 2.2 That does open up some possibilities. Thanks for the response.
I hope you get a chance to play my 100b4 entry. Lot's of sound work went into it.
Cool Beans
#541 posted by Preach on 2018/06/15 00:29:29
The pack is next on my list, so I'll watch out for it!
Func_breakable In Id1
#542 posted by Therektafire on 2018/07/10 03:34:20
Hey everyone :) So earlier someone on the TB discord asked if it was possible to make a brush that acts like a HL style func_breakable so I did some fooling around and figured out how to do it! Now this is pretty easy stuff that probably isn't really worthy of going here but I'll post about it anyway lol. So here is how you do it, you make a func_wall as you would normally do, then after you've made it you add a few keyvalues to it. First add a takedamage key and set it to 2, that allows it to take damage, obviously. Then you add a health field and set it to however much health you want the breakable to have. Then when it's health reaches 0 it will try to call the function in the th_die field, if there isn't one the map will crash as I found out :D So add th_die and set it to SUB_Remove or any other function that calls SUB_Remove at some point, depending on what your needs are. Optionally you can add an armortype and armorvalue to give the breakable damage resistance so it can be broken with some weapons but not others. I haven't exactly figured out how to customize the sound it makes when you hit it or break it yet but I will keep trying and see if you can do it without needing a mod
Previous Post Continued
#543 posted by Therektafire on 2018/07/10 04:53:21
So after a little more discussion I've figured out how to add sound playback to the breakable, so the full setup looks like this:
Func_wall
takedamage = 2
health (whatever you want it to be)
armortype/armorvalue (whatever you want it to be
noise (whatever sound you want the brush to make when you hit it but don't break it)
th_pain = train_wait (plays sound in noise field whenever you hit it)
th_die = SUB_UseTargets (targets 2 separate info_notnull's that play the sound you want to play when the object is broken and removes it, respectively)
target = the name of the 2 notnulls
Notnull 1
targetname = whatever you put in the target field of the breakable
noise = the sound you want to play when the breakable breaks
use = train_wait (play the sound when triggered by the breakable dying)
Notnull 2
targetname = same as the first one
killtarget = name of the breakable
use = SUB_UseTargets (remove the breakable when this gets triggered by it dying)
Please feel free to correct me if something I put is incorrect, I'm still pretty new to q1 mapping and map hacks especially. But map hacks are really fun and I've almost become more interested in them than actual mapping at this point (but not completely though) :P I'm also trying to think of how to add rotation to a turret hack I made last week but I haven't really checked any of the quake c sources related to rotating functions to see which ones I might be able to use
|