SLV 2.0.2 Readme

11/25/2006
d.scheerens@gmail.com

Welcome to Strangelove V2.0.2.

Release Notes

After all these years here's finally a new Strangelove version (well apart from a beta version of 2.0.2 a few months ago)! If you have ever played Strangelove 2.0.1 or have hosted a server with this mod you probably have noticed it has some annoying issues. Unfortunately the author of the mod, Al McErath, has disappeared and never officially released version 2.0.1. So everyone was stuck with 2.0.0 except for some beta testers who had been given the instruction never to release 2.0.1. It was known however that 2.0.1 was a must have, since it fixed many issues of the previous version. That's why one of the beta testers did release 2.0.1. But before doing so he obfuscated the source code. He did this since Al McErath had been very clear that he didn't want them to release this version, so he thought it would be ok if he released it with the source code stripped out. As a result the development of Strangelove has been dead for almost 5 years; Al was nowhere to be found and the 2.0.1 source code was lost.

A few months ago I started to host my own Strangelove server and was getting pretty annoyed by all the bugs of 2.0.1, both as being a player and as a server admin. So I thought it was worth a shot to try to extract the 2.0.1 source code, in which I have succeeded. Note that this extracted code isn't the same as the original source code. Well the code itself is the same but all comments were lost making it hard to understand some parts of the system. But luckily the original 2.0.0 source code is still available which is globally the same. Development of 2.0.2 could begin!

Ok enough about source codes and lost developers, down to the question: "What's new in SLV202?" The aim of this version was to fix the many issues of version 2.0.1, new features are reserved for a version beyond this one. Many minor issues have been solved as well as a few major ones. Unfortunately some problems weren't solved, but if all were to be solved, this version would probably never be released. The fixes in Strangelove version 2.0.2 will now be discussed.

First of all many null pointer exceptions have been fixed. These aren't major issues, but since each exception is written to the logs, this increases the size of the logs and decreases the performance a bit (it actually is a rather expensive operation to write a line to the log). In case you have no clue what this means, the thing to remember is that fixing this slightly increases performance.

One of the most annoying things of version 2.0.1 was that server logs were filled with thousands of lines saying "Received unwanted function ServerMove". This happens when someone jumps off a rocket. Especially for players with a high ping this message was written out multiple times when that player jumped off. Sometimes this could even cause a situation in which the only thing the server did was writing tons of this lines per second and thereby forgetting all about the game (so it looked like the server went offline). In Strangelove version 2.0.2 this issue has been solved and you won't find these messages anymore in your log files.

Another bug that annoyed players very much happened if you were switching from pilot to shooting mode and then quickly switching back. When doing this fast enough the weapon wasn't being put down, showing the weapon while in pilot mode. This blocked a part of your view and was confusing, causing a lot of pilots to crash into a wall. But as you may expect by now, this issue has been dealt with.

You may have noticed that in the older versions (2.0.1 and 2.0.0) the yellow jacket sometimes didn't fire any shots, although it looked like you were firing. Especially if you were in a fierce fire fight with an opponent this could make the difference of who won the battle. This bug is no more.

Many complaints have been received by players that had the problem of seeing their rockets explode at a different location then were they saw their rocket hit the wall. This happened when a player was turning the rocket and jumped off. Expecting your opponent to go down in a nuclear blast and then seeing the rocket explode actually somewhere else is very annoying. Therefore version 2.0.2 has introduced two methods which synchronize the location of a rocket between client and server, to ensure this doesn't happen. For more information about these modes see the configuration section.

These aren't all changes, but it would be too much to discuss them all in detail here. For a full list of changes consult the version history. Other changes include (partial) UTPure compatibility, team coloured exhaust fumes and the return of double kills for Strangelove rockets.

Installation

Copy all files from the folders: System, Sounds and Textures in this zip file to their respective folders in your Unreal Tournament installation directory (typically C:\UnrealTournament for Windows users). The Strangelove mutators will now be available in the mutator selection window if you create a new game.

If you are using your installation to start a multiplayer server, you need to enter the ServerPackages for SLV. Do this by opening up System/UnrealTournament.ini and look for the GameEngine section. Add the following lines:
ServerPackages=SLV202
ServerPackages=SLV2Models
ServerPackages=SLV2Sounds
ServerPackages=SLV2Textures
ServerPackages=SLV2Fonts

Configuration

[SLV202.SLHUD]

bShowKeys - If checked, the HUD will display the key configuration briefly after you launch.

bRearView - When this option is enabled a rear view mirror while be displayed on screen if you pilot a Strangelove rocket.

[SLV202.StrangeShell]

fuel - The amount of fuel a rocket has expressed in seconds. So setting this to i.e. 60.0 means your rocket has enough fuel to fly for one minute. Note that if you have the afterburner enabled the fuel is consumed much faster.

teamDamage - Multiplier for team damage caused to your Strangelove rocket. A team damage setting of 0.0 means no damage at all, where as a setting of 1.0 means full damage.

bNoContrails - If set to false, contrails (smoke trails) will be appear behind the rockets.

warstat - Your warhead is either armed (WH_Armed) or disarmed (WH_Disarmed). WH_Auto means your warhead is armed after you eject. If your warhead is armed continuously, shots to the front of your rocket may cause a premature detonation. Only recommended for suicide runs. If you're shot off the rocket, it doesn't get armed when in "auto" mode.

bCanOverride - If set to true, pilots can switch the warhead status in-flight. Otherwise, you're stuck with the default setting.

bBotsObeyOrders - If checked, bots will make an attempt to carry out their orders if picked up on a Strangelove. If this is unchecked, they will always stay on the rocket until you eject. Specific examples of them carrying out their orders include dropping off the rocket if their orders are "take the flag" and you fly near the flag, if they have the flag and you fly near your base they'll drop off, or if their orders are to protect you, they won't jump off unless you do.

bRevY - If enabled, the mouse Y axis will be inverted while piloting a Strangelove.

syncMode - This determines the method of synchronization for the movement of rockets. By default this option is set to SN_NoSync, which means there will be no synchronization. Other valid options are SN_ClientSync and SN_ServerSync. The first one indicates that the client should be kept in sync with the server and the second one the other way around. The method of synchronization used has effect on the way your rocket behaves when you jump off. Disabling synchronization will cause your rockets to behave the old way (like version 2.0.1 and below). By enabling synchronization you will ensure clients will always see the right location of their rockets, which prevents the possibility of them seeing their rocket explode at another location. When using synchronization the SN_ServerSync method is recommended.

[SLV202.StrangeMutator]

bReplacePacks - If checked, medboxes (the white boxes with the blue crosses) are replaced with fuel pods. The only works for the non-arena mutators.

bReplaceVials - If checked, health vials are replaced with fuel pods. This option only works for the non-arena mutators.

bRandomPlacement - If true, a random point near each flag base is picked to spawn a Strangelove. This option is useful on CTF maps that have one or zero Redeemer spawns if you're using one of the non-arena mutators. Or, if you just want more Strangelove spawns.

bNoYJ - This option, if checked, removes the Yellow Jacket from the mutators, leaving only Strangeloves as replacements.

bMaxAmmo - This gives the Strangelove and Yellow Jacket the maximum allotment of ammo if enabled, similar to how arena mutators work. It does not affect the ammo allotment for other weapons.

[SLV202.StrangeWave]

shockMult - This is a multiplier which affects the size of the explosion when your Strangelove detonates. Default size is 10.0

[SLV202.SLFuelcore]

configMaxAmmo - Maximum amount of fuel cores that can be carried for your rockets.

[SLV202.StrangeAmmo]

configMaxAmmo - This is the maximum amount of rockets you can carry for your launcher. This setting only takes effect for launchers that are newly spawned.

[SLV202.SLKillMsgFix]

bEnableSLVCheck - When this option is set to false the SLV Kill Messages mutator won't check if a kill was made a SLV rocket or not. This might be useful if double kills, etc aren't working for any weapon due to some other mutators or serveractors. However if they do work for other weapons this option should be set to true, else it might mess things up for the other weapons.

Known Issues

* The Strangelove death messages don't show up red in CTF games. That's because they use UT's "special" death message functionality which doesn't work (at least as far as them showing up red) in team games. We'll have to live with it.

* Demo recordings of Strangelove games don't replay accurately.

* Servers seem to crash sometimes when one of the Strangelove mutators is being used. Since it's almost impossible to recreate the events which causes the crashes, it's very hard to locate the source of this issue. In fact all attempts to do so have failed. The logs from crashed servers indicate two different problems and both might be bugs in the unreal engine itself. Two crash logs are included in case someone knows more on these issues (or has access to the unreal engine source code) and may be able to help to solve them. See crashlogs.txt.

* When playing Strangelove on a server that has UTPure enabled some functions do not work properly. For example when you switch from shooting to pilot mode your rotation isn't adjusted to the rotation of the rocket, causing your rocket to turn. The same happens when you bump into a wall; because your rotation can't be adjusted you will almost immediately crash again into that wall. Unfortunately this issue can't be solved without the help of one of the UTPure developers.

* In bombing run games Unreal Tournament crashes when you switch from shooting mode to pilot mode while transporting a player that has the ball.

Version History

2.0.0 - Initial release.

2.0.1 - Latest version by 'yrns' (unofficially released by HogMan).

[ FIXED ] - The SLHUD not working on servers running UTPure protection.
[ FIXED ] - Player view rotation not being reset when going from shooting to pilot mode.
[ CHANGED ] - Damage radius for rockets crashing into a wall.
[ ADDED ] - Client side rear view mirror.

2.0.2 - Latest release (based on the extracted 2.0.1 version).

[ FIXED ] - No more 'Received unwanted function ServerMove' errors.
[ FIXED ] - Null pointer access violation in StrangeShell.tick().
[ FIXED ] - Null pointer access violation in SLHUD.shake().
[ FIXED ] - Null pointer access violation in SLFuelpod.validActor().
[ FIXED ] - Call to playAnim() in SLFuelcore.Pickup.stopHover() when the mesh was set to none.
[ FIXED ] - Switching from pilot mode to shoot mode and then quickly switching back while the weapon raise animation was still playing didn't put the weapon down.
[ FIXED ] - Holding fire while switching to yellowjacket caused the yj to pretend to fire, however it dealt no damage.
[ FIXED ] - Excessive calls to SLHUD.renderHUD() while in disabled state.
[ FIXED ] - Null pointer access violation in StrangeShell.moveRocket().
[ FIXED ] - Null pointer access violation in Engine.GameInfo.Killed() when you blow yourself up and another player goes down in your nuclear blast.
[ FIXED ] - Last rocket being in armed state instead of auto armed state.
[ FIXED ] - Fuel level indicator displayed wrong when the clients default fuel variable differs from the servers default setting.
[ FIXED ] - A rocket with no pilot could still cause the SLHUD to shake.
[ FIXED ] - SLHUD not shaking in netgames.
[ FIXED ] - Shake magnitude in SLHUD wasn't reset for new rockets.
[ FIXED ] - A slight reduction in client/server positional differences for SLV rockets.
[ FIXED ] - Rocket behaving weird and self destructing a few seconds after its pilot has disconnected from the server.
[ FIXED ] - Bug where the player would be in gunner mode riding an SLV, as the player gets on the new SLV (with alt fire) the old SLV doesn't auto arm itself when the warhead mode was set to auto.
[ FIXED ] - UTPure kicking a player when he or she presses alt fire for the SLV launcher.
[ FIXED ] - Weapon status and crosshair not displayed when UTPure is enabled.
[ FIXED ] - Some weapon animation glitches in netgames. (SLV202Beta2-bug)
[ FIXED ] - Rockets owned by a player that leaves the game changed direction and didn't explode when hitting a wall. (SLV202Beta2-bug)
[ ADDED ] - A mutator which enables the kill messages for kills made with a SLV rocket (such as for double kills). (Semi-bug)
[ ADDED ] - Two methods of rocket movement (curving) synchronisation between the client and server. Makes sure your rocket explodes where you see it hit the wall. (Semi-bug)
[ ADDED ] - SLV rocket exhaust fumes for the red, green and yellow teams.

Future Development

So what's going to be next? I'm almost certain there is going to be a version 2.0.3 of Strangelove (as long as time won't become an issue). The aim of version 2.0.2 was to fix the bugs and problems version 2.0.1 had. And indeed a lot of issues have been fixed, however some remain. This means there are probably going to be more bug fixes in version 2.0.3. New features can also be expected in a new release, such as (no promises):

* A configuration utility for the Strangelove settings, as seen in version 2.0.0. This utility can be opened in the mods menu of Unreal Tournament.

* New rocket models for team games with more then two teams. The current version only has two models, which are reused for the green and yellow teams.

* Enhancements to the graphics and special effects.

* Direct fuel core injection to give your rocket an extra boost.

* More realistic physics.

* Optimizations to increase performance in multiplayer games.

* Pilot takeovers (already attempted by yrns).

To encourage others to contribute to the development of Strangelove, I will soon release the source code (hopefully yrns doesn't get pissed, but I doubt he will even know about it, since he hasn't shown himself for years). Again if you have any idea what might be causing the server crashes (see crashlogs.txt) or how to fix them please contact me A.S.A.P! Your help would be greatly appreciated and that's an understatement!

Credits

0FUS - The original Strangelove team

3D Art and Animation
Sam "samdragon" Crowe

Game Design, Programming, 2D and Additional 3D Art
Al "yrns" McElrath

Audio Design and Original Concept
Alex "BitChausen" Morse

Verbiage
Drew "Drewbacca" Prochaska

Quality Assurance
Childboy
Chris "Jack Pott" Austin
Alex "RaptoR" Dobie
Joonas "Striker" Konki
Paul "TheGreyWolfe" Long
Andrew "NTricks!" Moore
Simon "L.B." Murdock
Phil "Spite" Nuzzi
Jens "TheRealKiller" Oltmanns
Alex "BadGuy" Ries
Jason "DarkReaper" Rodzik
Mitchell "Red Falcon" Sessions
Brad "Bionic" Sheiness
John "JoFSh" Shorter
Matthew "Death_coil" Squire

The Strangelove maintenance team

Programming
Daan "Defrost" Scheerens

Support
Matthew "MSuLL" Sullivan
GF-Rex
Kvbev

Strangelove Online

For support or feedback contact d.scheerens@gmail.com, or visit one of the following SLV communities:
www.atomicunreal.com
www.ut-slv.com

If you want to play Strangelove online visit one of the following servers:
[SLV] IG StrangeLove Arena Server [EU-NL-100MBit]
[SLV] KOA StrangeLove Arena 202 [AToMIC UNReAL] [ASC]
[SLV] «PsK» #1 StrangeLove Arena [USA] [ASC]
[SLV] <))fk((> [SLV202 CTF/BR ARENA + SLV/Insta]
[SLV] SuLLy's Friendly StrangeLove Server [Server 1 - NY] [ASC]
[SLV] Strangelove Euro [SLV202 CTF, BR Arena] [EU-NL]
Adies© II CTF-Strangelove [EUT]

You can also install the included Strangelove server tab, which displays all Strangelove servers in the server browser window. See ServerListSLV.zip.