User Tools

Site Tools


dromed:traptimedrelayprob

The TrapTimedRelay Problem

Background

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

There are a number of things you can do to avoid the problem:

Include a copy of gen.osm

This is the best solution if you’ve already set up a lot of timers and you don’t want to have to change them all.

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 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.

NOTEME You should 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.

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 is only applied when they are turned on.

dromed/traptimedrelayprob.txt · Last modified: 2011/01/12 15:38 by r_soul