LaserFix

From Worms Knowledge Base

Revision as of 22:59, 13 September 2010 by Pisto (Talk | contribs)

Jump to: navigation, search
(Up to WormKit)
LaserFix
Developer: Pisto
Latest version: 0.0.2.0 / 13 September 2010
Supported games: W:A
Language: C++
License: closed-source
Download: [1]

This Wormkit module is a complete fix for the bug, affecting only game logic 3.6.29.0, which causes desynchronization in online games and replays if Laser Sight is used in conjunction with a firearm. It's an alternative to the version overriding based method (described here). The advantage is that you keep the undefined crate contents feature (which disarms cheats aiming to show the crate contents locally, and reveal other things which you shouldn't see normally).

It has also a couple of game features: permanently activate or deactivate utilities, and also increase the limit of concurrent flamelets on map. The way these works is very similar to RubberWorm: the settings are stored in some unused bytes of the scheme, and all players of an online game must be running the same version of the module.

Utilities Overriding

All utilities activation, except Crate Shower and Double Turn Time, can be overridden permanently on or off. Some commands are available in the host lobby for an easy setup (look table below). To each command, append 'on' or 'off' to force the utility status to on or off, or just type the plain command to revert any overriding. The scheme bytes used by LaserFix for these features are the crate probability settings of Mike's Carpet Bomb and Ming Vase: both are a bitmask, the first controls the overriding status (bit value 1 if overriding), the second whether it ovverides to on (bit value 1) or off (bit value 0).

Utility Command Bit
Low Gravity /lg 1 (1)
Fast Walk /fastwalk 2 (2)
Laser Sight /laser 3 (4)
Invisibility /invisibility 4 (8)
Double Damage /damageX2 5 (16)
Crate Spy /cratespy 6 (32)
Double Turn Time /doubleturn 7 (64)
Crate Shower /wwpshower 8 (128)


Flames limit variability

The native limit is 200, which is too low and cause the glitch that flames suddenly disappear (for example, flamelets of petrol bombs dropped in precedent turns disappear if a worm uses napalm strike). Increasing this limit solves the problem. However, if the limit is too high, the maximum number of concurrent sprites on screen can be exceeded, causing some flames to exist but be invisible.

Command and scheme setting

The command is /flames: just append the new limit value. Without argument, the command disables this feature. The value divided by 100 is stored in the crate probability of Scale of Justice. Note that due to this division by 100, the argument number that you pass with the /flames command is rounded up to hundreds.

Instant utilities stocking and multiplication

LaserFix enables stockage in armory of those utilities which can have effect only once in a turn. To enable this feature, append 'stock' to the command relative to one of the last four utilities in the precedent table. The stock status of the utility is coded setting the correspondig bit in Carpet Bomb and Ming Vase respectively to 0 and 1.

Another modality for these instant utilities (except for Laser Sight) is the "multi" mode. In this case, every time you collect a crate of the selected instant utility, its effect is strengthened somehow.

Command Effect
/wwpshowermulti Increases the number of crates that the Crate Shower drops by an amount equal to the original limit. By default, W:A set this limit to 5, and is the same value which the RubberWorm command /craterate modifies.
/doubleturnmulti Increases turn time by an amount equal to the current turn time divided by the number of crates of Double Turn Time that you have collected. This way, the effect of such crates decreases (it multiplies the time firstly by 2, then 3/4, 4/5...)
/damageX2multi Increase the damage mutiplier by one step. One crate is Double Damage, two is triple damage, etc.

This mode is coded as a 1 bit in the crate probability of the Girder Starter Pack at the same position described in the precedent table, and has effect only if the corrisponding bits in the Ming Vase and Carpet Bomb are set to 0.

Convenience commands and /tellv

LaserFix inherits from RubberWorm the commands /show, /showme, /clear, /help (or /h), which have the same meaning.

An additional command can be used in online games both by hosts and guests, /tellv. This commands sends a green message (like those starting with /me) announcing what modules the client is running, and their version. LaserFix recognizes by itself RubberWorm and JetFix, but new modules can register themselves so that their description string appears.

Personal tools