News | Forum | People | FAQ | Links | Search | Register | Log in
Mapping Help
This is the place to ask about mapping problems, techniques, and bug fixing, and pretty much anything else you want to do in the level editor.

For questions about coding, check out the Coding Help thread: https://www.celephais.net/board/view_thread.php?id=60097
First | Previous | Next | Last
 
"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 
Means they'll try and find a higher altitude than their enemy, but that's about it, I think. 
 
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. 
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. 
 
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 
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 
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. 
 
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 
 
Well, and fish, but in a different way ... but fuck them, scaly little bastards. 
Stoneless 
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 
 
About Stoneless 
 
As I Recall 
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 
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! 
 
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). 
 
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. 
 
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! 
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..... 
 
See, this is one of the many reasons I don't condone huge maps. Who needs the hassle? 
Mdl 
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 
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 
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. 
 
Thanks Fribbles. Are there any screenshots available online? I've never been able to find any. 
A Gift For Willem 
First | Previous | Next | Last
You must be logged in to post in this thread.
Website copyright © 2002-2024 John Fitzgibbons. All posts are copyright their respective authors.