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
:( 
I soooo want more engines with Ogg Vorbis support. Ever since I started playing with the soundtrack playing Quake has become so much more atmospheric. And with Quoth and it's *_command you can even change the playing track on-the-fly (well, if the engine supports it). 
OK Guys 
Thanks a lot for the advices.
Some of my sounds (and the faulty one) is 44kHz... so I have to make it 11kHz, as well as I have to check if it not too loud (i.e <0dB)...
hmmm, I know what I have to do now ;) 
Sounds 
if we're talking about a glquake engine or something close (fitzquake) then sounds in higher sample rates like 22 and 44khz, will be automatically downsampled to 11khz. this is actually worse than using an 11khz sound because the automatic downsampling used is bad unlike downsampling in a proper sound editing package.

also, use 16 bit. it's twice as big as 8bit, but 8bit makes for fuzzy sounds unless the sound is very loud like an explosion, but something subtle like wind humming or something will be fuzzy. 
Monster Pathing Question 
I'm trying to set it up so that monsters will seek the player out in the level. They don't care if the player is visible, they will just hunt him regardless.

What I currently do is I set the monsters goalentity to the player and set them to walking. Now, that works but monsters like scrags won't change their elevation in pursuit of the goal. I notice that they WILL fly up and down when attacking so ... what can I do to make them Z aware when simply walking towards a goal? 
Dont Know Willem, Sorry... 
But that made me think of a query:

In Ijeds 256 brush SpaceHulk map, he used Quoth's "spawn aware" thingy to get the hordes of feinds to run towards the player.

Ijed - was this easy, or did it cause problems - I seem to remember trying to use the spawn aware flag and it not working ... (?) 
How Do You Do That? 
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. 
 
"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? 
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.