mxleader on 26/10/2007 at 16:17
I am trying to find a tutorial or help here for a goal. It's the usual goal of picking up something and moving it to a specific place and have a goal check off, much like in shipping and receiving.
Fidcal on 26/10/2007 at 21:39
Is the item to be dropped just anywhere in a room or at a particular spot like on a table?
If it's just to drop it anywhere in a room...
First create a concrete room type...
. Menus at top >
Editors >
Object Hierarchy
In little field at top marked 'show tree'
Select Rooms
. Select Base Room
. Select Add button
. Enter new object name, eg, Trap Room
. OK or enter
. Concrete Room? OK
. Should now look like this...
Base Room
Default Room
[any other room types you might have]
Trap Room
Save your FM (no need to save the gamesys) and the new room type will be saved with it.
Select the actual room brush in your mission where you want the object to be dropped. It's type is probably called default room. Change it to the concrete room type you just created. To do this you click on the create button at the bottom centre of Dromed while the brush is selected then select the concrete room name and click the create button in that dialog. On exit you should now see that name at the bottom centre instead of default. Note that ANY room of this type will trigger the objective when you set it up so only make this one room that concrete type.
Add the script TrigRoomDeposit to the object
Control device link it to a questvartrap (under fnord) which has to be set to complete your objective. To do this you add the property Trap > questvar and give it the value =1:goal_state_N where N is your objective number.
Route link the object to the concrete room you just created. (note that's 'Route' NOT 'Control Device'.
Sorry if there's any error in the above but I've done it in haste from odds and ends. Post again if any problems or you want clarification.
If instead you want to place the object precisely somewhere then ask again and I'll post details. Basically you use a stim and response set up.
mxleader on 27/10/2007 at 03:08
I need to drop the object in a particular spot within a room. Could I create the concrete room within an existing room, like maybe a really small 2x2x2 room?
Yandros on 27/10/2007 at 03:18
Nope, the engine will barf if you have one roombrush whose centre is inside another one. Your best bet is to put a source (using a custom Stim) on the object, and a receptron on the desk or a marker or whatever where you want them to drop it.
Fidcal on 27/10/2007 at 04:52
I found putting the stim or receptron directly on the desk or table didn't work too well in practice because the player might drop the object next to or under the table and it could trigger. Try it first depending on the situation. If not, what I did was create a marker and resize it over the top of the table and put the stim on that. I found it reliable. You can also adjust that so it locates more specifically say over a plate. The downside is the marker would use a radius - a sphere where the table could be a contact. See what works for you.
First create a new stim, say nameStim:
Object Hierarchy
Show tree box at top : Act/React Stimuli
Add > nameStim. (any name you like not yet used.) This should then appear at the bottom of the list
Save the gamesys (search elsewhere) and mission. I'm not certain I think you might also need to reload the mission
Create a lever and put it temporarily near where the object is to go while testing, call it say nameLVR
Add Script > Trap Control Flags > Once, NoOff (might work with a button instead of a lever)
Control Device link it to a questvarTrap as with the roombrush.
On the object Add Act/React Receptrons
Add :
Select the stimulus name first nameStim from the drop down list else it wipes the other fields as I recall and you have to enter them again.
Object - object name or number
Effect : Frob Object
Target Object : nameLVR
No min & No max
On the table or on a marker resized over it...
Add Act/React Sources
Select nameStim as before
object - obvious
Propogator : Contact if stim direct on table else radius if on marker
Intensity 1
Edit - Shape - Radius 1
Life cycle - Flags No Max Firings, Period 2000, Max Firings 0, intensity slope 0
(if you use the table direct instead then Edit Shape - Contact Type - collision)
When you test if the lever flips over you know it works up to there. If error then likely in the questvarTrap.
If OK then drag the lever into nearby solid else into a blue room.
mxleader on 28/10/2007 at 07:16
Sooo...I tried your method Fidcal (second method), and it did not work. I will try with a button rather than a lever next. I think I have gotten confused a little.
Here is exactly what I am doing:
I have an object (a scroll with a different texture to look like a "gift") and it will need to be stolen from one area and put in a specific spot, i.e. on the ground in front of a tree. How do I know if it works if I don't have the objectives set up yet?
Fidcal on 28/10/2007 at 07:46
You can tell it works if the lever moves over. I recommend the lever. I know for certain the lever works. The button possibly works but I cannot guarantee it without trying.
I'll check the details I've posted. I know the method works for certain but maybe I missed something. You check too you didn't do it exactly the same. If it doesn't throw the lever then it is not set up right. That's why I put the lever nearby to begin with then move it out of sight later. Keep it there until you set up your objectives. Then when you get your objective checking off as well you can move the lever away.
R Soul on 28/10/2007 at 10:26
I suggest adding the source to the scroll (propagator: contact).
Create any cuboid object, e.g. a table. Resize it (both via the numbers in the Dromed window and the Physics > Misc > Dimensions property. Depth and With (X & Y) can be used to determine how close to the tree the scroll must be dropped. Height (Z) should be very small, like 0.1 so that the player won't notice it if they walk up to it.
Change the Schema > Material Tags property to match that of whatever texture surrounds the tree (probably Material Vegetation) (again so that the player doesn't notice it).
Then add Renderer > Render Type. Select 'Not Rendered' (or maybe Editor Only if you want).
To this object add a receptron for the stim. Make the min/max intensities a little below/above the intensity of the source. The effect can be: Frob Object (the button or lever). It may be the case that this object must be frobable, so don't add FrobInert.
Once you've set up your objectives, you'll be happy to know that another receptron effect is 'Set Quest Variable'.
In the first field, type goal_state_X (X = goal number)
Put 1 in the third field.
You can then remove the frob object effect, and delete the lever/button.
-------------
Now presumably, you don't want the player to be able to pick up the scroll after it's been dropped?
Put a source on the table (or whatever cuboid you used). To be on the safe side, use a different stim than was used for the above effect.
Put a receptron for that on the scroll. Effect: Add metaproperty: FrobInert.
Fidcal on 28/10/2007 at 10:56
What is the advantage of putting the receptron on the table? I wondered which when I set mine up as I recall and decided it didn't matter in this case. And of having a second stim/receptron to make frobinert? I put the stim on the table and two receptrons on the object to that same stim - one to frob the lever (I was doing other stuff with that lever I think) and the other receptron to make frobinert.
Also, what is the advantage of setting min/max intensities? I would think it then has to test for no reason. I thought you only used that if you want to set a different response to a different intensity?
Anyway, let me not confuse the issue - it will work fine I'm sure. :)
By coincidence I've very recently set up this same stim/response for a placement objective in my Dark Mod mission and it's very similar the way it's done. :thumb:
R Soul on 28/10/2007 at 12:25
Quote Posted by Fidcal
What is the advantage of putting the receptron on the table?
If you mean Source-scroll and Receptron-table instead of the other way round, I don't think it matters. I just prefer, if using a movable object and stationary object, to put the source on the movable object.
Quote:
I put the stim on the table and two receptrons on the object to that same stim - one to frob the lever
Whichever way round you have the Source/Receptrons, yes that is better. 1 source, two receptrons.