User Tools

Site Tools


This is an old revision of the document!

The TrapTimedRelay Problem


TrapTimedRelay is a script in gen.osm. In Thief 2 version 1.07 this script does not function correctly. When you update Thief 2 to version 1.18, the script will work properly.

The Problem

There’s a “Premier” version of Thief 2, which also needs to be updated to version 1.18. Even after this update, TrapTimedRelay will not work. This could seriously break your mission if you use TrapTimedRelay and some players are using the Premier version of Thief 2.

The Solutions

Don’t Use Timed Events

You can avoid anything that involves timers, but this limits what you can do.

Include a Copy of gen.osm

If the script works for you, you can include your own gen.osm in your FM zip file. The “Premier” version of gen.osm has a later file date, so FM managers probably won’t extract your own copy when your mission is installed. There is an easy way to get around this problem:

  • Make a copy of gen.osm and rename it, e.g. YourFMname.osm
  • In Dromed, type script_drop and select gen (or gen.osm) from the list.
  • Type script_load YourFMname
  • Don’t forget to save your mission.

FM managers will extract this .osm because it’s name will be unique.

Use a Custom Script

Some custom scripts can be timed:

  • TrapRandomTimer from tnhScript. You can use the same values for the min_time and max_time parameters to ensure the same delay each time.
  • NVRelayTrap from NVScript can be delayed using the NVRelayTrapDelay parameter.

Both of those scripts take the time in milliseconds.

Use a Lever

The humble lever (e.g. Up/Down Switch) can be used as a timer. The Tweq → Joints property can be used to set the speed of the joint, and the distance it travels, which determines the time taken. The lever only activates things when the joint has finished moving.

NOTEME Levers deactivate things as soon as they begin their “reverse” direction. In other words, the delay only applied when they are turned on.

Use TrapDelayer from miss16.osm

This script works a little differently to TrapTimedRelay, so it would only be a suitable replacement in certain circumstances:

  • The delay can only be whole seconds
  • It handles interruptions (e.g. a subsequent TurnOff message) in a different way.

If you decide to use this, do the following:

  • Type script_load miss16
  • Find your TrapTimedRelay objects:
    • Change the script to TrapDelayer
    • Convert the Script → Timing property to seconds.

It is then recommended that you test the new timers thoroughly, e.g. activate them then deactivate them before the delay has passed, and make sure their behaviour is still appropriate.

dromed/traptimedrelayprob.1237334784.txt.gz · Last modified: 2009/03/18 00:06 by r_soul