Unna Oertdottir on 26/11/2018 at 17:27
You could add FrobInert to the objects after dropping it, so you can prevent collecting it again (add metaproperty-->FrobInert).
The items are falling through the table in this case. That's why the stim doesn't always work correctly. I recommend making a very thin solid under the table and adjust the dimensions of the table (z offset).
ZylonBane on 27/11/2018 at 02:28
Unna, you're solving a different problem than what he asked. Frobbing an object with an object is a completely different operation from physically dropping an object on an object.
In SS2 there's a pair of scripts named ToolConsumable and ObjConsumeButton. You put the first script on an object that can be "consumed" (a battery, etc), and the second script on the object that will be frobbed with the first, acting like a button when it receives an object of the correct ConsumeType archetype. These scripts could do exactly what Niborius wants, in combination with an NVScript capacitor.
If there any equivalent to these scripts in Thief?
Edit: The statues that receive the talismans in The Haunted Cathedral work somewhat like this. The talismans are actually keys that are taken from the player when used.
Niborius on 4/12/2018 at 14:48
@Zylon
Either way are fine by me, although frobbing would be preferable. It's what got me a little confused though.
I'll see if I can look into the talismans of T1, although I don't have the game installed at the moment.
R Soul on 4/12/2018 at 21:02
The Talisman-Ward setup involves some specialized (
http://www.thiefmissions.com/telliamed/scripts1.html#ward) scripts, so their actions may not be desirable, and they haven't been ported to T2 (not even with PublicScripts). I don't think any key-lock system would be suitable in this case because the lock will be toggled by each 'key', and the locked schema will confuse the player because it will seem like something has been done wrongly.
Here's what you should do:
Make the table frobbable: FrobInfo property, WorldAction: Script (it doesn't matter that the table doesn't have any scripts, it just makes it frobbable).
To each inventory object (the ingredients):
Add an Act/React source. Stimulus: AlchemyStim.
Propagator: Contact.
Edit shape: Contact types: Select Frob in Inv -> World. Collision is selected by default. You can leave it selected if you also want to allow the player to drop the objects, otherwise deselect it.
In this case the intensity number doesn't matter, so go with 7.
Add the FrobInfo property: ToolAction: Move
If you only want frobbing to work and not dropping, also add the property Inventory > Can't Drop This: True, so that the player will very quickly work out how to use the objects.
Each ingredient will send an AlchemyStim to any object it's used on.
Give the table a receptron for this, no min, no max (or min 6.9, max 7.1 if you prefer).
Effect: DestroyObject. Target: 'source' (i.e. the specific ingredient that was used).
Add another receptron for the same stim/intensity: Frob object. Target: Object number/name of the object with the TrapThreshold script.
That script doesn't respond to being frobbed, so give the TrapThreshold object another script: TrigFrobber (also from tnhScript). This converts a frob messages to a TurnOn messages, which TrapThreshold does respond to. You can then give this a CD link to whatever effect you want.
You can customize that setup. E.g. you could add another receptron that causes a small puff of smoke each time an ingredient is use.
Each ingredient sends the same stim, but you could create a custom stim for each one, allowing the table to respond differently, e.g. different ingredients appearing to go in to different bowls (one receptron effect is 'change object model', so you could replace an empty bowl with a full one), but always frobbing the TrapThreshold object.
edit: Alchemy video:
[video=youtube;TkZFuKHXa7w]https://www.youtube.com/watch?v=TkZFuKHXa7w[/video]
Niborius on 6/12/2018 at 16:39
That's a super detailed explanation, and I really appreciate your effort in helping me. Still, I'm stuck somewhere. When I use an ingredient on the table, it disappears correctly, but it doesn't do anything afterwards. I even tried to change the "reaction" of the table to trigger the door directly, and it didn't open.
I have to add that the table has its Receptron on the world object, not in the .gam hierarchy. The ingredients do have their own hierarchy.
Scripts are activated of course. I did everything step-by-step exactly as you told me to
R Soul on 6/12/2018 at 18:48
I'd be happy to have a look at the setup if you upload some screenshots of object properties, or the mission (if it's an FM in progress, rather than a test mission, if you isolate the place with an area brush I promise not to peek).
Niborius on 7/12/2018 at 08:16
Sent you a pm! Thanks!
R Soul on 7/12/2018 at 19:17
Fixed. There 'threshold' object also needs the property FrobInfo: WorldAction: Script so that the TrigFrobber script will respond to being frobbed by the table. In the demo, you set the threshold value to 2, but it should have been 1 because there was only 1 ingredient in place.
Niborius on 8/12/2018 at 11:41
Yes!! That works!! I didn't know about the FrobInfo on the Threshold object, but it makes sense now.
I had set the Threshold value to 2 because I thought "global" meant the value it's on when you load the mission.
Thank you very much :)