quake 1 bsp format classname question

Discuss the construction of maps and the tools to create maps for 3D games.
Post Reply
ingewanduh
Posts: 13
Joined: Mon Nov 14, 2011 9:05 pm

quake 1 bsp format classname question

Post by ingewanduh »

if i open a .map file, i get all these classnames and stuff, is it possible to code in a .map file and create new classnames and have a input and output if and and system, for instance, i want to add like variables in a .map file, which i can change using a trigger, is that possible? and if so, how do you do it?

see, i want to have a door that opens when u destroy all the monsters, (that was easy) then i want to have a trigger in the door area (which is empty because the door opened) that will spawn other monsters, but i want the trigger to be inactive unless you walk onto another trigger, thats why i want a variable.

i am new to quake mapping and stuff, and if someone knows some good sites with tutorials on quake mapping, i would appreciate if u also posted them.
Qrv
Posts: 45
Joined: Thu Oct 20, 2011 7:43 am
Location: Stuck in a Slipgate.

Re: quake 1 bsp format classname question

Post by Qrv »

If I understand you correct, you want a door to open when all monsters killed, then when the player enters the door area, a bunch of monsters spawn?

If so, you dont even need to mess with the .map ( Assuming your creating the map in the first place. )

How I'd go about doing this, is setup my door, trigger it to open when monsters killed, you have this part down I think.
Then add a trigger brush, just the other side of the door ( IE, inside the new area the door opens into, meaning the player only hits this when they walk thru the doorway area ), and this brush would trigger the monsters spawning. Probably use a trigger_relay or two for multiple monster groups.

This way, the player kills all the monsters, your door opens. Because theres an extra trigger brush just the other side of the door, as soon as the player walks thru the doorway into the new area, a trigger_relay is called spawning in multiple monsters.

I might be confused however, as your refering to editing .map to do something similar. Now, far as I know, you could indeed add a new trigger bruse, with trigger_relays to spawn monsters all via editing the .map, but dude, thats gonna be some serious work compared to doing it in a proper map editor...
I'm looking for a Mapper, Modeller/Animator and a Sound effect/Music person, to work on an exciting project. PM Me here, or catch me on IRC for further info.
ingewanduh
Posts: 13
Joined: Mon Nov 14, 2011 9:05 pm

Re: quake 1 bsp format classname question

Post by ingewanduh »

wait wait, what does a trigger relay do, i made 10 little chambers outside my map to let monsters spawn, and 10 teleports.

but besides that, no. i want it to be so if the monsters die, a door opens to a small chamber of items, ammo and a gun. and when u pick it up and go back through the door, the monsters spawn. on the ammo and the gun are triggers_once and a counter so it counts, also there is a trigger_multiple inside the doorway. but the problem is that i want to be able to move through my doorway (the door is gone because it opened) and not pick up anything at all and that the monsters don't spawn, only when i pick up the items, and then move back through the doorway i want them to spawn


but my actual question is if it's possible to make new things and put them into a level like make new objects, and triggers and variables, and others

I also founds out on this site called the forge, you have next to standard entity's Hipnotic's Scourge of Armagon entity's like info_command. can i use these in worldcraft and if so, how do i use them?
Qrv
Posts: 45
Joined: Thu Oct 20, 2011 7:43 am
Location: Stuck in a Slipgate.

Re: quake 1 bsp format classname question

Post by Qrv »

Erm, I'm prob not the best person to explain trigger_relay. But lets say I want to spawn 3 monsters, all at the same time, to different teleport_destinations.
By making 3 trigger_relays with the same "Trigger Name" ( Ie, the name the trigger uses when activated by something else, dunno the correct term. ), if i then use a trigger_once, calling the name of the trigger_relays, all 3 triggers will activate, from one main trigger. Sorry for the bad explanation, I aint no teacher, heh.

I myself would use the trigger_once attached to the gun, to call as many trigger_relay's as needed to spawn the monster in the room, without my earlier idea of an extra trigger brush.

This way, you get all the monsters spawn as needed, when the gun is picked up. An interesting little effect by the way, can be achieved using trigger_relay's,
by giving each one a slightly different "Delay", you can spawn the monsters in gradually, instead of all at once. Can be entertaining sometimes to spawn 3 monster at once, then 10 secs later, spawn an extra monster or two, because within 10 seconds the player should have killed the first 3 and moved on, or died...

... and then the others spawn in behind the player or wahtever, making for some interesting "shock" factor on most players not expecting it.

You could set a "Delay" on the trigger_once used by the gun, to wait a good few seconds before the trigger_relay's are called, but how to have it so you must pick up the gun, and walk back thru a trigger, I'm not entirely sure on that actually. Maybe using some strange trigger system using the counters, but I myself at this point would prob make a new trigger in QC for such a feature. ( I'm strange tho, if I cant find a way to do something already coded, I'l just code it myself. )

You can make whatever you want in a level, if your building the map. If say, you want to add stuff to id's maps or someone elses, (the id maps are released now btw, so you can do whatever you want in your map editor with them, but check the license on em before selling the re-made ones...) I believe DarkPlaces allows extra entities to be added to maps via .ent files. I've never looked into this much, or even used it tho, as I build my own maps.

As for using additional entities in Worldcraft, you'l need the .FGD's ( I think thats what they call em for worldcraft, buts its an entity definition file. ) for the games entities you want. Ie, you'l need one for Scourge's entities.

I dunno if these exist, but I'm sure they do for the misson packs somewhere, Func_Msgboard would be the place to ask that. I myself just add the entities I create/need to the .FGD for Quake entities, it's only a text file afterall.

Also, as a btw, you dont need to actually make 10 mini-rooms for the spawning monsters. I myself just make one large room, and using the grid, position trigger_teleports over each monster in the room. Basically the same as what your doing now, but in 1 room, not 10. No need, I dont think.
I'm looking for a Mapper, Modeller/Animator and a Sound effect/Music person, to work on an exciting project. PM Me here, or catch me on IRC for further info.
frag.machine
Posts: 2126
Joined: Sat Nov 25, 2006 1:49 pm

Re: quake 1 bsp format classname question

Post by frag.machine »

You'll need custom progs.dat (it's a compiled QuakeC file containing game logic) to use non-standard entities in a map.
There are ways to hack non-standard behavior manipulating map entities to create mini-bosses without custom progs.dat.
For example, you can create a really hard to kill hell knight using an alternating skin this way:

Code: Select all

{
 "classname" "monster_hell_knight"
 "origin" "-160 -480 -192"
 "angle" "0"
 "armortype" "1"
 "armorvalue" "1000"
 "skin" "1"
}
I know FrikaC made a cgi-bin version of the quakec interpreter once and wrote part of his website in QuakeC :) (LordHavoc)
ingewanduh
Posts: 13
Joined: Mon Nov 14, 2011 9:05 pm

Re: quake 1 bsp format classname question

Post by ingewanduh »

when i create a monster, it doesn't have armortype and angle and armorvalue and skin listed in the entity editor from worldcraft, is there a place where i can find all the possible keyvalues of all quake entity's and all possible quake entity's? if so, thank u very much.
Qrv
Posts: 45
Joined: Thu Oct 20, 2011 7:43 am
Location: Stuck in a Slipgate.

Re: quake 1 bsp format classname question

Post by Qrv »

If you have the QuakeC files, take a look into defs.qc, theres alot of stuff in there. But I dont think its a good idea to go thru defs.qc and randomly add key/values in worldcraft on entities. I really suggest you take a glance thru the QuakeC files, you dont need to learn to code or anything, but you'l find some interesting things in them.

Really, this is kinda useless, but you might find this an interesting first read: http://www.gamers.org/dEngine/quake/spe ... html#CBSPE
I'm looking for a Mapper, Modeller/Animator and a Sound effect/Music person, to work on an exciting project. PM Me here, or catch me on IRC for further info.
goldenboy
Posts: 924
Joined: Fri Sep 05, 2008 11:04 pm
Location: Kiel
Contact:

Re: quake 1 bsp format classname question

Post by goldenboy »

Most of the fields on an entity don't make sense to set in the map editor. They are used by QuakeC.

What you originally asked, a trigger that waits for another trigger, is also done via QC and the use of a custom progs.dat. Some mods provide code for this, but you can also use an entity hack involving an info_notnull or something. Your best sources of information about these types of hacks are negke and Preach over at func_msgboard.

In principle, when you want an entity to do something it doesn't currently do, you use QuakeC code to add it, usually by adding a spawnflag or key to that entity that enables the desired behaviour. Then you set that flag/key in the map editor.

Hacking stuff in the map editor is bad because it makes it much harder for mods to support your map.

Have you mapped for games like Crysis before? What you are looking for reminds me of things like Flowchart. Unfortunately, in Quake, mapping is mapping and coding is coding, for the most part. There is no graphical flowchart interface to the gamecode accessible from the map editor.

That means if you need a variable, you'll have to use QuakeC.
Qrv
Posts: 45
Joined: Thu Oct 20, 2011 7:43 am
Location: Stuck in a Slipgate.

Re: quake 1 bsp format classname question

Post by Qrv »

Sorry, I dont want to seem like I'm nitpicking, but I dont believe this is true:
a trigger that waits for another trigger, is also done via QC and the use of a custom progs.dat
I fail to see how he needs custom QC to do this. trigger_once -> trigger_relay -> trigger anything else.
As I understand it, trigger_relay in my fail little example a line above, will wait indefinatly till the trigger_once is activated. o.O

http://www.inside3d.com/browse.php?show=triggers.qc

He could easily use a couple of trigger_once's with a trigger_counter that waits till the gun, ammo and that are picked up, before spawning his monsters.
I'm looking for a Mapper, Modeller/Animator and a Sound effect/Music person, to work on an exciting project. PM Me here, or catch me on IRC for further info.
frag.machine
Posts: 2126
Joined: Sat Nov 25, 2006 1:49 pm

Re: quake 1 bsp format classname question

Post by frag.machine »

I must confess I'm having a hard time to grasp exactly what you want to do. If I got it correctly:

a) player kills a bunch of monsters;
b) after the last monster, a door opens and reveals a room. Inside, the player sees some stuff he wants (weapons, ammo, etc);
c) player enters room, but before reaching the stuff, his way is blocked/stuff disappears/whatever;
d) immediately, another group of monsters spawns behind him.

If I got it right, then I'd go this way:

a) trigger_counter fired by the first monster group, opens door;
b) inside the room, place 2 triggers, setting angles in a way that the first trigger is fired when the player is facing the end of the room, and the second, the exit. The first trigger hides/blocks the bait stuff, the second closes the door and teleports the second monster wave inside the room;
c) finally, a second trigger_counter opens again the door after the last monster in the second wave dies.
I know FrikaC made a cgi-bin version of the quakec interpreter once and wrote part of his website in QuakeC :) (LordHavoc)
ingewanduh
Posts: 13
Joined: Mon Nov 14, 2011 9:05 pm

Re: quake 1 bsp format classname question

Post by ingewanduh »

@goldenboy, i've mapped in source sdk, which is basicly worldcraft but with lots of more entitty's and a input / output system.

@frag.machine sorry if i wasn't clear enough, but this is what i want

A) player kills monsters
B) that triggers a door that opens to a little room where there are ammo and a weapon
C) the player walks in the little room
timeline1
D1) the player walks back to the area where he killed the monsters (the big area) to get some more ammo (which was lying there the entire time)
E1) the player walks in the little room and picks up the ammo and the weapon
F1) the player walks back into the door area (to get to the big area)
G1) the monsters spawn in the big area
timeline2
D2) the player picks up the ammo and the weapon
E2) the player walks back into the door area (to get to the big area)
F2) the monsters spawn in the big area


now i though of a few options, one was with a trigger_hurt (which i placed under the platform that gets deleted using killtarget), where a monster would be spawned on top of a platform, that gets deleted one's you get all the items, then when you walk in the door area (where the trigger is) the trigger_hurt gets activated, and the monster has a trigger that turned a light on. now this doesn't work, i don't know why not, but it doesn't. all i got was the light going on and the monster had died (thats when i even removed the platform) maybe monsters activate a button? is there something that monsters can activate or something?
goldenboy
Posts: 924
Joined: Fri Sep 05, 2008 11:04 pm
Location: Kiel
Contact:

Re: quake 1 bsp format classname question

Post by goldenboy »

qrv: I took it to mean "a trigger that does not work (ie doesn't react to touch etc) until after another trigger has been fired (or some event happened)".

I don't think you can do that with a trigger_relay.
ingewanduh
Posts: 13
Joined: Mon Nov 14, 2011 9:05 pm

Re: quake 1 bsp format classname question

Post by ingewanduh »

I solved my problem, here's how

this is obsolete:
========================================================================================================================================
i created the following things
- 2 chambers, outside my level.
- func_door, called comp1, i made it so when it's triggered, it goes down 200 units, speed 1000, reset of -1
- a monster on top of the func_door, with a trigger called output
- trigger_teleport under the func_door, called comp2 with a target of comp3
- info_teleport_destination in the other chamber called comp3
- trigger_hurt under the info_teleport_destination with a damage of 1000 and reset of 0
================================================================================
stuff the player does
================================================================================
- trigger_multiple with a target of comp2 (trigger_teleport) (this is made in the door area)
- 4 items the player gets with a output of counter1
- a trigger_counter with a number of 4, a name of counter1 and a output of comp1

- a light with a name of output...

what will happen is this, i get through the trigger in the door area, that will teleport something, but teleports nothing now.
then i get the items, will activate the trigger_counter which activates comp1, which is the door that goes down, so the monster on top goes down with it

then i go back to the trigger_multiple, which teleports the monster (because its in the teleport area) ontop of the trigger_hurt,
the monster dies, which will deactivate the light.
=================================================================================================================================================
all above is obsolete..
i found a much, much better and faster way
make a spike shooter and make shure you put the angle aimed towards the button
make a func_wall named wall1 or something
make a button behind the func_wall which has 1 health so it can be shotted

add a killtarget to the trigger or use a trigger_relay and put wall1 on killtarget
the button's target will be output



of course will i change the output to make it spawn monsters, but you get the idea
Qrv
Posts: 45
Joined: Thu Oct 20, 2011 7:43 am
Location: Stuck in a Slipgate.

Re: quake 1 bsp format classname question

Post by Qrv »

Glad you worked out a solution there buddy.

@Goldenboy, ahh, prehaps a misunderstanind on my part about what he meant. But yeah, a trigger_relay cant do such a thing off the top of my head.
I'm looking for a Mapper, Modeller/Animator and a Sound effect/Music person, to work on an exciting project. PM Me here, or catch me on IRC for further info.
frag.machine
Posts: 2126
Joined: Sat Nov 25, 2006 1:49 pm

Re: quake 1 bsp format classname question

Post by frag.machine »

@ingewanduh : Heh, ingenious indeed... :D
I know FrikaC made a cgi-bin version of the quakec interpreter once and wrote part of his website in QuakeC :) (LordHavoc)
Post Reply