Today (Saturday the 26th of September) marks the 25th anniversary of Command & Conquer. And in the immortal words of GDI Commando Nick "Havoc" Parker "I Got a Present For Ya".
After a long wait, I am finally releasing scripts 4.7 (the latest version of the Tiberian Technologies unofficial patch for C&C Renegade) to the world.
Sever owners be sure to read the information at the bottom as it is important. Also note that in this release we have dropped support for Windows XP/server 2003 and Windows Vista/Server 2008. Windows 7/Server 2008 R2 is now the minumum required version. This will allow us to move to a newer better compiler in the future. (should we get feedback that there are people still stuck on these ancient/long-out-of-support versions of Windows who have no way to upgrade we will re-consider the decision to drop support but no-one should be connecting a Windows XP machine to the internet anyway given all the potential security issues that arise from doing so.)
I would like to thank Jerad2142, Dghelneshi, Moonsense715 , Neijwiert and dblaney for their contributions to 4.7 (If I missed anyone else who contributed to 4.7, sorry)
Changes made since 4.6 update 9:
Various bug fixes.
Added EnableVis TT.ini keyword to enable or disable vis.
Added support for the Korean language (you can select it in the installer and it will switch your Renegade to Korean (or if you already have Korean Renegade installed, it will install on top of it)
New scripts and fixes to existing scripts by Jerad2142.
Fix an issue with one of the files in the Japanese version. If you already have Japanese Renegade installed and select Japanese in the installer, it will install the correct file.
Fix a bug with animations.
Fix to the anti-cheat (details withheld to not aid cheaters)
Fix memory leaks in Log_Killed_Message and Get_Player_Name engine calls.
Added bot logic written by Moonsense715.
New scripts and fixes to existing scripts by Moonsense715.
New scripts and fixes to existing scripts by dblaney.
New scripts and fixes to existing scripts by jonwil.
Add new console command botcount to let you turn on the bot logic and set how many bots you want (and optionally add them all to one team)
Add new engine call Get_Multiplayer_Spawn_Location to obtain a spawn location for a soldier object.
Add new engine call Is_Pathfind_Generated to verify that the current map has valid pathfinding.
Add new engine call Get_Closest_Pathfind_Spot to determine the closest pathfind spot to a position.
Add new engine cal Get_Closest_Pathfind_Spot_Size to determine the closest pathfind spot to a position given a minumum sector size.
Add new engine call Get_Radio_Command_String to obtain the string ID for a radio command given its index.
Add new engine call Is_Sidebar_Enabled to determine if the sidebar logic is enabled (as opposed to the regular stock PT logic)
Add new engine calls Can_Build_Ground, Can_Build_Air and Can_Build_Naval to determine if a given team is able to build a ground unit, an air unit or a naval unit at this point, i.e. is the factory alive and not busy)
Add new engine call Is_Soldier_Busy to determine if a soldier is currently busy (i.e. doing an action of some sort)
Add new engine call Get_Script_Parameters to get information about the parameters to a script.
Add new engine calls Get_Enlisted_Purchase_Items and Get_Purchase_Items to obtain the purchase items from the purchase settings.
Add new engine calls Is_Infantry_Purchaseable and Is_Vehicle_Purchaseable to determine if an infantry/vehicle is currently purchaseable.
Add new engine call Kill_Messages_Disabled to determine if kill messages are disabled via the tt.ini keyword
Add new engine call Is_Extras_Enabled to determine if the extra/secret PT pages are enabled or not.
Add new engine call Set_Emot_Icon to display the emot icon for a radio command over the head of a given soldier.
Fix an issue with the per-map polygon budget settings that could cause crashes in some cases.
Add new engine call Can_Generic_Soldier_Teleport that will test if a soldier is able to teleport to a given position or not.
Add new engine call Find_Closest_Poly_Position that will find the closest polygon for a building given a position.
Add new engine call Find_All_Vehicles_By_Distance that will find all of the vehicles in a level sorted by how far away they are from a given position.
Change various sound creation engine calls so they return an int which can then be passed to Commands->Stop_Sound to stop the sound. Works over the network. There is also Stop_Sound_Player and Stop_Sound_Team.
Add new engine call Enable_Spawners_By_Name to enable/disable all spawners on the map given a preset name.
Add new engine calls Say_Dynamic_Dialogue, Say_Dynamic_Dialogue_Team and Say_Dynamic_Dialogue_Player to allow you to trigger the dialogue system (complete with face movements) over the network.
Commands->Enable_Letterbox now works over the network to enable the black bars at the top and bottom of the screen (as used in some single player missions for in-game cutscenes). There is also Enable_Letterbox_Player for a per-player version.
New engine calls Set_Max_Health_Without_Healing and Set_Max_Shield_Strength_Without_Healing that set the max health/shield but do not change the current health/shield.
Fix a typo preventing the Create_Explosion function in cinematic text scripts from working.
Bots/AI now correctly handle gravity-affected/lobbed projectiles.
Fixed a crash if your GPU has a name longer than 128 characters.
New physics class DynamicProjectorPhysClass which is the same as DynamicAnimPhysClass except its got projector settings like StaticAnimPhysClass.
Fix an issue with the scripts M00_Play_Sound and JFW_Play_Sound that caused them to constantly spam sounds.
Fix so that if the AI code is targeting a soldier and that soldier is in a vehicle, it will use the vehicle as a target instead of the soldier (this was causing issues in cases where the soldier's actual location was outside the pathfind grid)
Fix an issue with tracked vehicle bots driving backwards.
Add new versions of Get_Team_Cost and Get_Cost engine calls that take a preset ID instead of a preset name.
Fix an issue with choosing the sound file to use with a sound preset.
Fix a bug in SysTimeClass::Get
Fix so track movement and track wheels work correctly at any frame rate.
Add new engine call Test_Raycast_Collision that will test if there are any objects between 2 points in space and optionally test if the object you hit is a specific object you passed to Test_Raycast_Collision.
Add new engine call Is_Inside_AABox to determine if a position is inside an aabox.
Add new engine call Does_Beacon_Placement_End_Game to identify if beacon placement ends game is enabled.
Add new engine call Is_On_Enemy_Pedestal to identify if a beacon object is on the enemy pedestal.
Add new engine calls Set_Subobject_Animation and Set_Subobject_Animation_Player to set an animation on a subobject of another object.
Fix a bug in LineSegClass::Set
Add TimeScale console command. Allows you to fast forward and run the game in slow-mo. It automatically syncs to clients. Scripts can also set the time scale with the Set_Time_Scale engine call and there is also a TimeScale tt.ini keyword.
Fixes to animations for text cinematic scripts.
Removed the ability to use weapon scopes on ladders (allowed you to aim and shoot anywhere, even though your character was facing forward with gun up in the air).
Add new engine call Write_File_Async that will write to a file without blocking waiting for the write to complete.
Doors that allow vehicles to open them will open for AI soldiers as they don't have portals generated in pathfind.
Added a 'C EYES' bone which can override the line of sight from the 'C HEAD' bone in case the head bone is not where you need the eyes to be.
Jump landing animations now use unused stock Renegade landing animations, this will reduce the amount of times players shoot the ground at end of jump (which in turn will improve server synchronization).
Fixed a bug that caused soldier bot weapon tilt to go to extreme up, extreme down, or middle; it now smoothly moves between them.
Fixed bugs causing AI that operate vehicles not facing the turret the correct direction on-line.
Improvements to lighting code. To enable new lighting where intensity affects dynamic object put NewLighting=true in your tt.ini under the general section. To enable the new specular lighting feature put AllowSpecular=true in your tt.ini under the general section. Its strongly recommended that NewLighting be enabled when using specular.
Restored the smooth harvester credit dump that was seen in stock Renegade, this was broken if the server was running more than 30 FPS and was removed in 4.x for bandwidth issues. It has now been re-added:
Single player skirmish displays the default (but fixed) dump.
LAN now dumps at a rate of 10 times a second.
Online now dumps at a rate of 5 times a second, but can be configured with the server.ini setting of HarvesterDumpRatePerSecond, this setting has a few alt modes:
If 0 it works as it did 4.x – 4.6 (credits stop flowing until dump finishes)
If -1 it will basically send all the updates possible, making a nice smooth, if not bandwidth intensive update to the player
If > 0 it will update that many times a second.
Per map tt.ini files will now only update data loaded from tt.ini, per map will no longer completely replace server tt.ini settings.
Add LinearImpulseScale and AngularImpulseScale tt.ini entries. This allows you to scale the amount of impulse applied when vehicles collide.
Regenerate pathfinding on all the stock multiplayer maps so the bots created by Moonsense715 can function properly on those maps (fixes issues with doors and with pathfinding around nod turrets)
Fix vis glitches on the single player mission "Evolution of Evil".
Fix glitches with some looping wind sounds so they loop properly.
If you are running 4.6 Update 9 (or any earlier version) you will be automatically updated to 4.7. Due to some changes (mostly the fixes to the maps), the update will run the scripts installer again. Just select the appropriate options and it will install.
People wanting a full installer (to install from scratch or to do a full reinstall), a server download or a tools download can find them on the Tiberian Technologies website (www.tiberiantechnologies.org) in the downloads section. Appropriate source code for 4.7 as well as the source files for the map fixes in 4.7 can also be found on the site.
People who wish to use the excellent AI bots created by Moonsense715 on their server just need to use the botcount console command to set the number of bots they want (and optionally which team they want the bots on). Set to 0 to turn bots off completly.
These tutorials https://w3dhub.com/forum/topic/416719-ai-bots-advanced-1/ and https://w3dhub.com/forum/topic/416724-ai-bots-advanced-2/ give details on how to customize maps and add more fleshed out support for AI bots to those maps beyond the support you get if you just turn bots on.
Server owners will need to make sure they copy over all the updated map mix files, the updated always3.dat and the update anticheat.ini. If you have a modified version of anticheat.ini and want to know what's changed in the one in scripts 4.7, open the 4.7 anticheat.ini and search for the line b3b5a7faa502f747d3bc8ff5c63a99cb=M00_Tutorial.mix in the file. Copy that line and everything down to the end of the file and paste it into your anticheat.ini file. The source lvl files for our fixed maps are available on the Tiberian Technologies web site as mentioned above in case people want to modify them for some reason.
People who need Dragonade will have to wait for a compatible version of Dragonade to be released.