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
 
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? 
VIS Errors... Hmmmm 
Got any good tips on fixing vis errors in quake maps? I have not found any real good info online with how best to tackle these type of random issues. I was under the impression that you run it at highest level and it should all be fixed. There is no leaks in the map. Fixed all those so now its getting it to not turn into a image streaking error at random. 
Skiffy 
If there are any warnings when runing qbsp, don�t ignore them.
Especially the new portal cut away ones, inspect those by the help of the given coordinates in the warning message. (if there are such..)

Dont let detail brushes touch the void, box them in with worlbrushes.

Hmm, what else?

Maybe paste the compiler output somewhere, so people can look at it:) 
New Portal Cuts Evil? :) 
Hmm no coordinates.. just one warnings about new portal leaf cuts. I am using tyr tools and trenchbroom btw. 
Hmm 
verbose output with -verbose switch? 
EVIL BRUSHES! 
Hmm I opened the file in the Trenchroom beta now and used the debug tools to see if I had brushes that had wandered off grid. I had 18 in total... grrr hahaha. Well thankfully I was able to fix them. The compilers is no longer making unexpected portal leafs and compiled in half the time! Sleepwalker kicks butt....

I used the stable TB1 for the level so far. But it does tend to make dirty brushes with some of my more elaborate edits. oh well. This looks like a clear case of USER ERROR... derp.

On another topic if I may? Is it a plausible workflow to have a map you run BSP and vis on and then just spend time lighting it without needing to redo the other 2 passes? Of course at that point would only be placing and moving lights around. 
Good, 
Sleepy is a holy man for sure.
-onlyents compileswitch for qbsp just updates the entity lump of the bsp fle, even on vised ones. Run qbsp with that switch when doing lights. Saves a lot of time.
Note that when adding triggers or doors(brush entities..), a full compile is needed again. 
Breakable Objects Quake 1 And Triggers? 
Hmmm I know how to do this in Quake 2.... is it similar in Quake 1? Make a bsp set breakable and switch state to another Brush arrangement? I want to shoot and break an object in my map as an example to progress. 
 
Without QC, you have to fake it.

Make the part that will break a func_button with "health" "1", this means it is shootable. Give it a targetname, and also target it at a trigger_relay. Give the trigger_relay a "killtarget" "func_button's targetname".

This set up will destroy the func_button when it is shot. There are no effects. I suggest you also make an explosion happen which will cover it up. To do this, target an info_notnull with "use" "OgreGrenadeExplode". This will create the same explosion as if an Ogre's grenade exploded. 
I Like It! 
Nice. Yea I will give this a shot thanks! Games are all fakery anyways :) as long as it looks convincing hehe. 
Further 
make sure the button has 'speed' set to something high so it disappears.

optionally, you can create a broken version of the breakable, and make that a func_door. you can then set it to 'start open' and, if you have a fast 'speed' on it as well, the button and door will appear to switch instantly (you can hide that with explosions). 
BSP Cutup Size? 
Is it possible to increase the size of the cutting that is done to the BSP by the compilers?

Right now it breaks up large simple areas into tons of smaller chunks... but I know with for example KMquake2's BSP tool he added the option to increase chunk sizes to much larger pieces so outside BSP did not turn into a crazy mess. 
The Only Way 
is to increase the size of the texture itself. A lot of mappers increase the size of monster spawn room textures. 
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.