How Do You Do That?
#8090 posted by ijed on 2008/12/02 13:08:22
In the case of cooperative?
Point of fact, how do you do that anyway? (the first part).
I'm new to writing code, but I tend to think in the right way.
Monsters are never z-aware AFAIK. You could make some sort of hacked entity flag for path points, but it wouldn't work so well.
http://www.inside3d.com/showtutorial.php?id=52
Is how I got z-aware working - maybe it can be applied to the goalentity.
#8091 posted by JneeraZ on 2008/12/02 13:19:59
"In Ijeds 256 brush SpaceHulk map, he used Quoth's "spawn aware" thingy to get the hordes of feinds to run towards the player."
I can do that just fine but I don't want them to get aggressive until they actually SEE the player. So I want them casually walking while moving towards the player.
"Monsters are never z-aware AFAIK."
Well, scrags seem to become z-aware when they get aggressive because then they start moving up/down to find the player. When they're just pathing around, they won't.
Fly AI
#8092 posted by ijed on 2008/12/02 15:03:21
Means they'll try and find a higher altitude than their enemy, but that's about it, I think.
#8093 posted by JneeraZ on 2008/12/02 16:45:10
Sure, but they aren't doing that. If I put a scrag into a hole I've cut in the floor and tell him that I'm his goalentity, he'll move towards me just fine but he'll never come out of the hole. He seems to only move along a 2D plane.
Until he gets attacked, that is. Once aggro'd, he'll change elevation all the live long day.
It Can Be Done.
#8094 posted by Lardarse on 2008/12/02 19:47:17
By setting them along a path, and then instead of pointing them around in a loop (like the ogre in e1m2), you leave the last path_corner pointing nowhere, so that then it will start walking towards the player (there's an enforcer by the second floodgate switch that does this, you may need noclip and notarget to observe this). However, to make scrags z-aware would require changes to the flymonster "walk" code. At which point you may as well find a better way to signify that the monster should track the player.
#8095 posted by JneeraZ on 2008/12/02 19:51:31
OK, how about this : is the z-aware combat movement behavior something that is handled in QuakeC or is that an engine thing?
Z-aware Walking
#8096 posted by necros on 2008/12/02 20:53:49
to get around this with the melee mod i'm working on (since a scragg can be made to follow the player without attacking) i had to introduce a sort of hack.
essentially, it uses velocity to push the scragg up or down. this would look out of place unless you are using the flying monster hack (running movetogoal, resetting position, setting velocity to match movetogoal's new position) but works well because you don't have to worry about z-collision since the engine will handle that on it's own with velocity.
unfortunatly, this is the only fast way to do it since using walkmove(0) to check if a bbox is stuck doesn't work with flying monsters.
you need to make a special exception to keep it from getting stuck on floors though, so you'd need to have it clear the onground flag and then set a delay to prevent it from hitting the floor again.
Source Of The Problem
#8097 posted by Preach on 2008/12/02 21:34:20
I had a look in the engine source, and the relevant lines are:
enemy = PROG_TO_EDICT(ent->v.enemy);
if (i == 0 && enemy != sv.edicts)
{
dz = ent->v.origin[2] - PROG_TO_EDICT(ent->v.enemy) ->v.origin[2];
if (dz > 40)
neworg[2] -= 8;
if (dz < 30)
neworg[2] += 8;
}
I know it's horribly out of context and not everyone here who knows QC will know C. But the main things to take away are:
The dz, which is the intended destination, is bumped up or down if the flying monster is more than 40 units or less than 30 units from the ideal.
The ideal level is calculated from the origin of the monster's enemy. Which is what we all guessed anyway.
If you wanted to be able to use this navigation directly, then you'd need to set enemy to the player as well as goalentity. The important thing then is to make sure that other bits of the code stop treating "enemy" as the indicator that the monster should be aggressive. The most vital place for this change is ai_run, and FindTarget would also need changing, along with everything it calls.
You could define a new entity field, "lifelongenemy" or something, which would be substituted for "enemy" almost everywhere. Then you're free to use "enemy" to dictate hovering height. The reason I say almost everywhere is because you'd want to make sure "enemy" matches "lifelongenemy" once the monster is aggravated.
#8098 posted by JneeraZ on 2008/12/02 21:41:28
Hmm, leveraging "enemy" ... that's something I hadn't considered.
I guess my other option is to not have scrags hunt the player since they are the ONLY monster that will have this problem. :P
#8099 posted by JneeraZ on 2008/12/02 21:42:03
Well, and fish, but in a different way ... but fuck them, scaly little bastards.
Stoneless
#8100 posted by JneeraZ on 2008/12/03 19:39:28
Here's a question for the hive mind ... I remember WAY back in the day seeing screen shots for an upcoming editor called Stoneless. Anyone know what became of it or if the web site is archived somewhere?
Willem, Ask Mr.frib
#8101 posted by spy on 2008/12/03 20:06:44
About Stoneless
#8102 posted by spy on 2008/12/03 20:07:25
As I Recall
#8103 posted by lurker on 2008/12/03 20:10:06
The Stoneless website didn't contain much, but the editor itself was released.
ftp://ftp.fu-berlin.de/pc/games/idgames2/utils/level_edit/editors/stls101.zip (1.2 MB)
Willem
#8104 posted by RickyT33 on 2008/12/03 20:14:46
Ahh OK. In ToeTag, if I wanted a hot light with a large fall off I would do something like:
"_light" "250 64 150 300"
A little easier to do and better for control since you can input the exact radii that you want to use. Above, that would be a 250 brightness light for 64 units and then a 150 with fall off for the next 300.
You said this to me a while ago when someone was talking about lights. I would really like to know what the resultant light entity would look like in .map format.
Could you tell me :) ?
You see I dont know how the Toetag lighting system works, but I need to reduce the amount of lights in my map (tyrlite wont work on maps with more than 2048 entities, as far as I can tell, and I have an excessive number of lights in my map, many sourced lights have 2 entities or more next to them)
Now I dont know what
"_light" "250 64 150 300"
means, but I do know what
{
"classname" "light"
"light" "300"
"wait" "1.5"
}
means.
When I start using the "delay" key I get confused. I like the effect that Tyrlite gives from "delay" "2", but it seems to produce a massive radius of minlight, which I dont really want......
So I would like to see what
"_light" "250 64 150 300"
looks like in game, and in .map format.
Please help!
#8105 posted by JneeraZ on 2008/12/03 20:46:37
It's basically saying "give me a 250 strength light for a radius of 64, and a 150 strength light with a radius of 300".
Basically just 2 light entities for the price of one. The only technical difference is that the second light doesn't start falling off until the radius of the first light is exhausted (so it fades starting at 64 and ending at 300).
#8106 posted by JneeraZ on 2008/12/03 20:48:01
And MAP format is fairly obvious:
{
"classname" "light"
"_light" "250 64 150 300"
}
You would need my light utility though to use it and, of course, that's missing stuff like LIT support.
#8107 posted by JneeraZ on 2008/12/03 20:49:43
Fuck, let me start over. That description sucks.
It's NOT like 2 light entities, I forgot.
OK, what happens is that you get a 250 light strength casting within a radius of 64. You then get a 150 strength light falling off between 64 and 300. So you get a very hot center surrounded with a cooler falloff.
I hope that's clearer...
Ahh!
#8108 posted by RickyT33 on 2008/12/03 21:00:51
Damn.
Lord - I have re-lit this map once over already, and I'm not happy. I think I know what Im gonna do. Hmmm...
- A result of surfing so close to the damn standard engine limits. I mean Fuck! How was I supposed to know that Tyrlite only allows 2048 entities in a bloody map?!?!
(sigh) oh well.....
#8109 posted by JneeraZ on 2008/12/03 21:15:08
See, this is one of the many reasons I don't condone huge maps. Who needs the hassle?
Mdl
#8110 posted by madfox on 2008/12/03 23:07:12
I make a new monster and want to give it an attack movement it occurs to me that when I use a mdl object it only uses the first frame.
how do I give the monster a mdl object that poses all the frames in it, and not only the first?
Ricky
#8111 posted by HeadThump on 2008/12/04 03:25:15
I have found this strategy to be a useful tact for a Quoth based map set I have been quietly stitching together. Build a huge hull based on just a few thousand or less brushes, after lighting the basic hull, divide it into four or more portions for individual maps that share a common macro architecture. It is actually kind of neat to see a central facade in one map disappear into the distance for the next map. Quoth has a limited hull system that makes this possible, limited but it is enough for the needs of what I'm doing.
Yeah
#8112 posted by RickyT33 on 2008/12/04 03:57:49
I could split it up, but thats not what I am going to do in this case. I have just ditched a load of lights and re-thought my lighting strategy, and solved the issue! It actually looks better now I think!
The map currently has 32604 marksurfaces. And I keep hitting efrags, but I have used a lot of daft func_illusionaries, and its not to difficult to re-arrange them and fix the problem.
Heh - I'm burning through this one now - could go into alpha in days...
Willem
I used Stoneless to make most of my maps - it wasn't as fully featured as Worldcraft, but I found it to be more stable and nicer to use.
I say "not as fully featured", but I should note that that while it didn't have as many features as WC, it did all the core stuff well and had a few things that were really neat (like templates/instances and WAD editing right there in the editor). Also, it doesn't have any stones.
I believe that the link that lurker posted is the final version, though you'll have a lot of trouble getting it to work properly these days even on windows, presumably because it used D3D back in the v5/6 days. It worked up until Win98/ME but after that I started getting black polys in the 3D view when using texture mode and stuff like that.
I wouldn't recommend trying to actually use it these days (even if you can get it to work), GtkRadiant or Hammer would be much better choices. However, if you're investigating other editors to check out their features and workflow it's definitely well worth a look - again, there's a few features in there that I've not seen in other Quake editors.
#8114 posted by JneeraZ on 2008/12/04 13:16:52
Thanks Fribbles. Are there any screenshots available online? I've never been able to find any.
|