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
Editing Existing Map Features 
How can I change a map's:
ambient light,
gravity,
and add door unlocking sounds 
You Need The Source .map 
TO change the ambient light and add door sounds.

To change the gravity, you need a mod, or you can rename it to e1m8 in standard Quake. 
Map 
I can't open a bsp with quark to change ambient light and add door sounds?

Also where in the qc is the area where e1m8's gravity is changed? 
 
I don't think it's in the QC ... unfortunately. 
You Need The Source .map 
I don't even need to retype it; my browser autofills the answer if you need it again...

Once you have the .map you'll need to set all the door sounds in editor and the worldspawn light key and then recompile it.

The QC for gravity is in world.qc:

// custom map attributes
if (self.model == "maps/e1m8.bsp")
cvar_set ("sv_gravity", "100");
else
cvar_set ("sv_gravity", "800");


I think a trigger was introduced for this in Dissolution of Eternity. Or maybe it was Scourge of Armagon.

But you could just add it as a key to worldspawn going on what it says there, it seems pretty rudimentary. 
Changing Ambient Light 
I'm pretty sure you can just do another lighting pass on the bsp and don't NEED the .map to do that (no comment on whether it would be easy). Use adquedit to extract the entities from the bsp into a text file. Modify that text file to change the ambient light (perhaps modify the worldspawn keys...) then use adquedit again to put the modified entities back into the bsp. Finally run your favourite light.exe on the modified bsp. 
Or 
Just run light.exe -light # on the bsp directly, no other files needed. 
Invisible Wall 
made some whacky architecture and it moves pretty choppy,wanted to add an invisible wall just over it to smoothen movement i tought i remember something like a func_invisible or a flag to do so I'm using worldcraft), any other solution is appreciated to 
Orbs 
use clip textured brushes or skip textured brushes or even fence textured brushes with no actual texture on them.

just name the textures clip or skip on the brush you want to disappear. 
Smooth As A Baby's Bottom 
thx! 
 
just use clip brushes, mfx's other two ideas are silly. 
Custom Map Models? 
So I have a question... I saw Warren making custom map objects for his new level... But I have to ask how exactly does one go about actually placing these in the editor? He did mention Preach helped out with something?

https://dl.dropboxusercontent.com/u/161473/SeptQuake/CustomBanners.jpg


I can make custom MDL files easy enough but it there some hidden entity that allows me to pick specific models to display in engine? I was under the impression that quake 1 only has a set if precoded map deco objects like torch flames and zombies stuck to walls.

I am using Quakespasm btw. So I might be missing a feature for that engine maybe?

I would love to know how if it is at all possible. I cant seam to find info online about the specifics. :(

Be nice to add some more custom organic deco meshes like dead trees or mushrooms in caves. For the more gore focused side some new corps types impaled on rocks and strewn about the map would give that extra uniqueness as well.

Forgive me if I missed this gem of info somewhere on this forum.

Cheers and keep making those epic maps everyone! 
 
To do it in a straightforward way, you need a modified progs.DAT (the quakec game code). One way is use the Quoth mod and the mapobject_custom entity: http://tomeofpreach.wordpress.com/quoth/tutorial/mapobject_custom/

It'll work on all engines back to the original, BTW. 
Custom Mapobjects 
Be nice to add some more custom organic deco meshes like dead trees or mushrooms in caves

Ahead of you there: http://tomeofpreach.wordpress.com/2013/07/01/mushroom/

Or was that you looking at it earlier, Skiffy? 
 
badger badger badger badger... 
Thanks For The Info! 
Thanks for the links everyone, Yea I did spot the mushrooms but missed his article on how to actually do it using Quoth!... haha. Hmm now for the fun to begin. Am I correct in assuming that Rubicon2 supports a similar feature? I see them using map deco objects a lot too. 
Some Other Questions If You Dont Mind... 
Apologies again if this has been covered but I was wondering if Vanilla quake 1 allowed for custom audio files to be added into levels with a generic entity? Or was it also premade ones like the deco objects but Ambient entities?

And then secondly... is there a Light compiler that can do phong shading on BSP like ARGRAD for quake2? Or some interesting lighting tricks to get a sort of AO / Skylight base lighting pass?

Cheers! 
Skiffy 
SEXY. Yea That Looks The Part 
Thx MFX! that does look pretty sweet indeed! 
Skiffy 
re: sounds, same as for map objects, you need to use a mod to get a general-purpose sound entity. check the entities under the "Sounds" section of Quoth:
http://tomeofpreach.wordpress.com/quoth/tutorial/

Another mod option if you want source code is Rubicon Rumble Pack, see the devkit in the first post: http://www.celephais.net/board/view_thread.php?id=61077 , it has both ambient_general (sound entity) and misc_model (mdl decoration entity).

Most of the stock quake sounds are 8-bit, 11025Hz. Also most engines (including the originals) mix everything at 11025Hz. You can use CD-quality 16/44 for custom sounds and ask the player to launch the engine with "-sndspeed 44100", but note that most engines use a bad resampling algorithm so the stock sounds will sound bad in that case.

The last, annoying, bit is to make ambient sounds you have to add some unusual metadata in the WAV file to make it loop ingame. I can't find a tutorial off hand but try searching func for "loop wav" or something in google. Basically, you insert loop markers in an editor like CoolEdit or Goldwave, but it can be fiddly to get working. 
Thanks ERICW! :) 
Nice. Ok I think this has got me going in the right direction. Thanks again everyone! 
Multi Map Objectives? 
Is it possible in quake1 to go back and forth between maps with a hub world? I am wondering because in the Honey Map you could go to one of 2 levels for the poison or water and once completed it affected the starting map.

So I would want to go into a level. Do some objective and when I come back to the hub map another door has opened or something changes to give me access to another part that was blocked off.

I know the rune keys do something like this in Vanilla quake and once you have them all the last gate opens up. But those are very specifically hard coded from what I understand.

Curious to do some multimap mission with consequences :) 
Two Alternatives 
If you want to try and write some custom QC, there's a bit of a snag trying to do it exactly the way that stock Quake does it. The tracking uses a variable called serverflags which is updated when you collect a rune, and carries from level to level. The func_episodegate reads this value when it spawns and deletes itself if the right value has not yet been set. The problem is that the same global also causes the runes to be drawn on the HUD.

So you're better off creating your own global to track what's been done in your maps. The trick now is figuring how to transfer the value between maps. To my mind the best way to do it is to use the parm values in SetChangeParms to smuggle a value from map to map. Look at the functions in SetChangeParms and DecodeLevelParms in client.qc to see how they work now. Currently they send information about the items and health each player has; by storing it more efficiently you can free up space for your global.

This actually seems like it would make for a good blog post, and I've been looking for something shorter to write while other stuff comes together, so I won't go into more detail on that option at this time...

The other option is to use the built-in features of Quoth to do the same: the Session Mapindex. Unfortunately the documentation of this feature is badly organised as it's spread amongst three entity entries. I need to write a linking topic.

The feature starts with modification of
http://tomeofpreach.wordpress.com/quoth/tutorial/trigger_changelevel/
In Quoth the "Session Mapindex" is a counter that is preserved across level transitions. If you set a "mapindex" key on the changelevel trigger, when the player exits through that trigger, the value is added to the counter.

To use the counter, you need to be able to detect it. The following entities are conditional triggers which may or may not fire according to the value the counter holds at the start of the map.

http://tomeofpreach.wordpress.com/quoth/tutorial/info_mapgate/

To understand the difference, it's worth getting into how bitflags work. The best values to use are the powers of 2:
1, 2, 4, 8, 16, 32...
The reason these values work so well is that if you take one of each value, the sum of any subset can never equal any other member of the set. We can use this in reverse: give each map a different value from the set, and we can work out which individual maps have been completed, given only the sum of them. (The other reason that bitflags are a nice set of value to use is that EVERY number can be created as a combination of them)

The info_mapgate needs a mapindex key, which we should think of as a sum of bitflags. If any of the bitflags it includes are also in the "Session Mapindex" counter then the trigger fires. The easiest way to use this is to just set mapindex to a single bitflag, which gives you a trigger which fires when a particular map is completed. You can also set the first spawnflag on this info_mapgate; then it only fire when the map is NOT completed, which makes it easy to killtarget a door entity.

Lastly, you might want to detect when ALL of the maps are completed. For this you need an info_endgate:
http://tomeofpreach.wordpress.com/quoth/tutorial/info_endgate/
This works in a similar way, but rather than setting which bitflag you want, you only specify how many bitflags it covers, for example if you set "mapindex" "4" it detects if all the flags 1 + 2 + 4 + 8 = 15 are present in the counter. It's a bit of a weird interface, but for making a basic hub it works well. 
Preacher! You Live Up To Your Name Good Sir! 
Seriously DANG! thanks

You rock. I've saved this for future use.

It be interesting to combine this option with custom models so you could make things like shops that spawn items for you upon your return to the hub.

Thanks again. 
Somewhat Related... 
would it be possible to hack true hub functionality by abusing the save/load console commands and smuggling player stats through console variables like temp1 or developer? 
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.