Hm well it could be doable but you might need to design your map in a specific way. My first instinct would be to have the monster set up to where its path comes near several triggers or maybe is even completely bordered by triggers, said triggers would be what aggros the other monsters if one spots you and deviates from its path, now the obvious problem with that is that the player could trigger it too, im not sure if setting the owner to 1 (the entity number of the player in SP games) would help prevent the player from triggering it or not since I haven't tried that before but I guess its worth a try?
Not A New Trick...
#601 posted by Kinn on 2018/12/27 21:29:15
Just noticed in the id QC, if you "use" a func_wall it toggles its animated texture sequence.
I can't recall ever seeing this in action in the original maps - was it ever used?
#602 posted by Spud on 2018/12/27 21:56:41
I don't think so, but it's relatively well-known and is listed in most documentation you can find online. Sort of the opposite scenario of something like directional trigger volumes, which are used in the start map but rarely mentioned anywhere when looking for information.
Yowsers
#603 posted by Kinn on 2018/12/27 21:59:55
directional trigger volumes
Holy shit i'd forgotten about those.
Seems we need some kind of resource of "things quake is designed to do but no-one knows about". Sort of the slightly more straight-edge, but still cool, cousin of this thread.
Twofer
#604 posted by Preach on 2018/12/31 01:23:42
Kinn said:
Just noticed in the id QC, if you "use" a func_wall it toggles its animated texture sequence.
This is actually surprisingly annoying from the point of view of hacks, because it means you can't set the use function on a func_wall in a hack - in fact it's nearly impossible to set a custom use function on any solid brush entity. It is used in the high framerate animation hack though, so not a complete loss.
FODDER said:
...However, I want it so that if 1 monster is aggro'd (by seeing you, you shooting them, etc.) that ALL specified monsters in a group/unit are aggro'd as well immediately...
I've come up with a new hack, that's pretty interesting, but doesn't quite do what you want yet. I think it would suffice for static monsters, but would be nearly impossible to use for patrolling monsters without some false positives (which is of course the worst possible thing imaginable for stealth gameplay).
I'll keep playing with it a while to see if I can work around that somehow. If not, I'll write up what I found and share it anyway. I think the functions which the hack uses are the ones you'd need to modify the QC to get the desired effect - so it might prove useful in a roundabout manner anyway.
New Year, New Hack
#605 posted by Preach on 2019/01/01 21:19:14
Here's the idea I came up with over the weekend - Security Cameras!
https://tomeofpreach.wordpress.com/2019/01/01/security-cameras/
You can train a security camera on a static monster and it'll always notice if that monster has been alerted (with a bit of fiddling you can also ensure that it never sets off by itself, even if the monster is killed under its nose). The problem is that this doesn't generalise to a moving monster, so it doesn't quite do what FODDER was after. Still, I think it's a pretty cool idea in its own right.
Progdefs.h Is Out Of Date
#606 posted by A_COC0NUT on 2019/01/03 04:11:31
I'm trying to change some things about a the swinging hook mod that require it to be recompiled. I can get the code to compile and have no problems when changing the game over to the mod. When I try to load a map or start a new game VkQuake gives the error:
Host_Error: progs.dat system vars have been modified, progdefs.h is out of date
I'm new to Quake C so any help would be nice.
If its helpful this is the progs.src
./progs.dat
defs.qc
subs.qc
combat.qc
items.qc
hook.qc
weapons.qc
world.qc
client.qc
spectate.qc
player.qc
doors.qc
buttons.qc
triggers.qc
plats.qc
misc.qc
server.qc
#606
I am pretty new to this myself but it's very important to not change certain things in defs.qc.
If you change anything above line 220 (give or take) you are asking for trouble. The rule of thumb is don't change anything above
//================================================
void end_sys_fields; // flag for structure dumping
//================================================
Not sure if this is your issue but good info nevertheless.
#608 posted by Spike on 2019/01/03 15:10:40
new to QuakeC, and yet your progs.src is lacking monsters?
Sounds like you're trying to compile a QuakeWorld mod instead of a (Net)Quake one.
The two are similar but mutually incompatible (primarily but not exclusively due to changes above end_sys_fields).
If you truely want to run a QuakeWorld mod then use a QuakeWorld engine (eg: FTE, ezQuake, or MVDSV). (Net)Quake engines like VkQuake, QuakeSpasm, or even DarkPlaces cannot run QuakeWorld gamecode.
Thanks
#609 posted by A_COC0NUT on 2019/01/03 16:48:32
Its probably the quakeworld thing since I have not touched defs.qc. I'll try that, thanks.
That Was The Problem
#610 posted by A_COC0NUT on 2019/01/03 18:33:05
Thanks for the help. It works now.
TY Preach
#611 posted by FODDER on 2019/01/09 18:31:10
I appreciate that new map hack idea a lot Preach <3 even if it isn't exactly/fully what I needed (since I had ideas for patrolling monsters) I still will definitely look into it. I'm putting off my Metal Gear Solid map for now until my 2nd Kaizo Quake episode now since, as you can imagine after making this hack, getting what I want is virtually impossible in vanilla Quake sadly. :[
Controllable Models
#612 posted by Aberrant on 2019/01/31 00:03:12
I'm needing a way to control a mdl with an entity. So when I target it it will start frame group 2 and it's series of animation. I tried using an info_notnull, and I must have gotten close but the server shutdown with non bsp model error.
Custom Model
#613 posted by Preach on 2019/02/03 22:18:18
Hi Aberrant. I think there's little chance of that being possible with a map hack. I'm unaware of any hack in vanilla quake that allows inclusion of a custom model the way that misc_model entities allow in some mods.
Quoth's equivalent does come with the ability to toggle between two framegroups, but you need to set the model up so that those two framegroups are frame 0 and frame 1. See full details at
https://tomeofpreach.wordpress.com/quoth/tutorial/mapobject_custom/
@Preach
#614 posted by Spud on 2019/02/03 22:52:16
If my guess is correct, Aberrant isn't looking to load totally custom models, but to use existing ingame models and animate them when activated; e.g. using an info_notnull to display a monster's model, and then make the 'fake monster' display one of its animations (run, shoot, die, etc) when the notnull is triggered by something else.
#615 posted by mankrip on 2019/02/27 14:29:38
Does QuakeSpasm, QSS, FTEQW or Darkplaces support custom (QC-defined) interpolation timing for MDL frame animations?
Makaqu supports this through self.frame_interval, but I'm not aware of any hardware-accelerated engine that does.
#616 posted by metlslime on 2019/02/27 15:55:18
Fitzquake variants have it in the protocol but it’s not directly controllable from qc — it uses the nextthink field to decide how to set it and caps it at 1 second
#617 posted by mankrip on 2019/02/27 17:13:10
Ok, thanks.
By the way, what are the known engine-independent methods for fixing the problem of the player sliding over the heads of the monsters when he jumps on them?
I've tried setting a .touch function on the player, to detect when the player touches a monster, but it's not working.
#618 posted by metlslime on 2019/02/27 18:22:53
Good question ... I fixed it in-engine in early builds of fitzquake but then removed the fix later once i realized it's a bad idea to make bug fixes that change gameplay. In my readme I said "this bug can be fixed in quakec also" but I have no memory of how. Maybe setting the .solid of monsters to a different value? SOLID_BSP?
#619 posted by c0burn on 2019/02/27 18:26:30
Needs to be a monster touch function
Also works if you set it on exploboxes
void() monster_touch =
{
if (other.classname != "player")
return;
if (other.health <= 0)
return;
if ((!other.flags & FL_ONGROUND) && (other.absmin_z >= self.absmax_z - 2))
other.flags = other.flags + FL_ONGROUND;
};
#620 posted by mankrip on 2019/02/27 20:11:01
That worked, thanks c0burn.
#621 posted by metlslime on 2019/02/27 20:52:47
also this stuff should be in Coding Help thread.
#622 posted by mankrip on 2019/03/04 22:46:18
I had forgotten about Coding Help; can that thread go to the Permanent Threads section?
So What About Animating A Model?
#623 posted by Inky on 2020/02/25 15:23:04
Hello everybody,
Has Aberrant's question (#612 & #614) been eventually answered?
I would be eager to achieve such a thing to put some RPG sequences in my own project (which is actually for Hexen II) the way Heretic II does.
That is:
1. the view switches to a third person view thanks to a camera_remote (a handy thing we have in H2 which does basically the same as the intermission view, but triggerable mid-map)
2. the view represents the player facing a monster and they interact by talking (with centerprints) or doing something (like one killing the other or running away) by triggering the corresponding animations on the models.
3. the view returns to the player and the adventure goes on.
Has everyone ever tried to do that? Succeeded? How?
Thank you in advance for your insights! :-)
#624 posted by kalango on 2020/02/25 20:02:32
Portal of Praevus has an intro scene that it possibly a demo file. Maybe you can look into it and see how it's done? But playing intermission demos would require saving-loading or a way to save state so you can reset back to.
|