227 release notes/v227f

From Oldunreal-Wiki
Jump to navigation Jump to search

Release date

  • May 14, 2009


  • Fixed: Dynamic array accessing bug: Code: local array<string> SomeArr; SomeArr[0] = "Value 0";
  • Fixed: Bugs in banning system and allowing IP-range banning.
  • Fixed: additional crashes from AI navigation on maps with broken path network.
  • Fixed: TeamChat messages to show sender player name aswell as show the message in yellow rather than white.
  • Fixed: Volumetric lighting to not mess up when being "overused" (as example with Aura weapons).
  • Fixed: Script warning that Fly and SinglePlayer(game) would sometimes cause.
  • Changed GameRules to have different flags for different functions to be called on it (in order to save server resources).
  • Upgraded banning/temp banning/client logger to be based on a dynamic array to support unlimited amount rather than some static amount (such as max 1024 log entires).
  • Fixed banning so it's possible to ban older clients by IP address aswell as it supports IP range banning (i.e:
  • Changed music menu musics list and favorites server list in order to be based on dynamic arrays, as well for same reasons as above.
  • Added: Changed music menu file browser; when you double click the music file, it will automatly load the package and search for musics in them.
  • Fixed bug with player skin selection menus, when you have skeletal mesh skins and switch between 2 that have different animation sets, their animation sets could go wrong.
  • Fixed UED2: OpenGL selection problems and S3TC support.
  • Fixed UED2: Select surfaces by group in.
  • Fixed UED2: Red selection brush and movers can't be seen through walls in OpenGL.
  • Fixed UED2: Tooltips not working.
  • Fixed: If ghosting out of a mover (such as nali boat) you were still "bound" to it.
  • Fixed Linux bug: new resolution setting was not saved in ini when using ubrowser console or setres command.
  • Fixed: Some MasterServer issue with "Unknown Error Processing Port".
  • Fixed: Old console causing "out of memory error".
  • Fixed: Squid not attacking correctly.
  • Fixed: UED2: D3D in does not show Zoning or BSPCuts.
  • Fixed: ANIM NOTIFY for skeletal meshes.
  • Fixed: Linux client crashing when disconnecting from server.
  • Fixed: D3D8, D3D9 and OpenGL are not updating mover lighting (f.e. in NaliBoat).
  • Fixed: OccludeBSP in-game crashes in very large maps.
  • Fixed: feature: LightEffect LE_Spotlight and LE_StaticSpot lits up meshes correctly now.
  • Fixed: WarpZones from generating odd errors in offline/online games when walking through them.
  • Fixed Linux: lightmap bug.
  • Fixed Linux: version crashing if wet/ice/scripted textures were made with S3TC textures.
  • Added new option for renderers: FullMeshRendering (True/False) - This solves the problem with disappearing meshes (like Trees if you are very close) - could be a heavy performance drain on low end machines, so it's optional.
  • Dynamic Array support has been improved: Added dynamic array length accessing functions:
    • native(640) static final function int GetArraySize( ArrayProperty ArProp );
    • native(641) static final function bool InsertArrayIdx( ArrayProperty ArProp, int Offset, optional int Count );
    • native(642) static final function bool RemoveArrayIdx( ArrayProperty ArProp, int Offset, optional int Count );
  • Added: server downloader's info is automatically broadcasted to all admins (+ all other players if enabled).
  • Added: for GameRules modifier to desire whatever if client is allowed to download some file off server or not. Can be used like this:
function TestFunction()
	local array<int> TestArr;
  • Added 2 new commandlets:
    • Editor.StripSource - strips the text buffers from script packages.
    • Editor.DumpInt - generates a *.int file out of some desired package.
  • Added UED2: "OpenGL" into selection menu for rendering devices.
  • Added: new menu "Admin menu" which lets server admins get an easier control over kicking/banning/listing.
  • Added: "Grab", "AdminMenu" and "Toggle Behindview" keys in "configure keys" menus.
  • Added: Servers now report server OS on serverinfo (Windows/Linux).
  • Added: support for ALAudio/FMod to set Ogg music looping points.
  • Added: UWindow menu kick message support (using clientmessage and message type 'Networking').
  • Added: math functions for Coords (for advanced rotation support).
  • Added UScript preprocessor (Details: UE1PreProcessorCommandlet) In order to use preprocessor you have to call ucc with following parameters: ucc uengineppc.parse project=[<project_dir>/<project_file>] [-option...] [-globals...]
  • Added: distance fog support for mappers to use (you can simply define in ZoneInfo distance fog start/end distance and color).
  • Added: new page to the setup wizard which allows to chose the sound device at first start (OpenAL/FMod/Galaxy).
  • Added: "Change audio device" button to Unreal recovery mode (for windows), just in case some audio device causes trouble.
  • Added bSoundAttenuate [True/False]: Attenuate Soundsources which are behind walls etc. for OpenAL.
  • Added Dynamic Corona: a corona which can be spawned/moved/deleted in game aswell as has some additional properties (ideas from UT2004 such as directional corona, close/ranged distance colors, max size).
  • Added Sunlight Corona: another corona but it renders as sunlight corona, the direction of actor defines sun position in sky (only renders when you have direct contact with the sky. As in addition you can add lensflares with it.
  • Added ZoneInfo->ZoneTimeDilation: lets you slow down/speed up the actors locally within 1 zone only.
  • Added: A new query method has been implemented to speed up serverbrowsing when multiple masterservers are used.
  • Added: new admin command uknownnames: prints out known and used names from players currently on server since some string length limitation its not able to use it for ingame admin purposes (except directly on the server console), but for mods.
  • Added DynamicZoneInfo actor, a zoneinfo actor which can be spawned/destroyed/moved in game. It works using simple zone shapes. This will allow mod authors to make some summonable lava/water blocks or mappers to make some rising water effect easy.
  • Added Master of the Woods also known as Woodruff. Small addition to have some alternative for the bandage. It's a small and fast growing plant with +5 healing.
  • Added new UnrealScript native function AppSeconds, usage is as follows:
    • native(643) Final Function AppSeconds(Out Float OutTime);
      Returns how long the application has been running in seconds, ie 1.1 = 1.1 seconds. This can be useful f.e. for server uptime.
    • native(197) static final function float Acos ( float A );
      The missing Acos function, also known as "ArcCos".
    • native(126) static final function int InStr ( coerce string S, coerce string t , optional int Start );
      If Start is not defined, less or equal 0 or greater then number of characters in S, then standard InStr is performed (if the string T is found inside S, the number of characters in S before the first occurance of T is returned). If Start is greater then 0 and less then number of characters in S then function will try to find T in S after first Start characters. If function fails to find T in S, then -1 is returned. It will not break backward compatibility.
    • native(1718) final function bool AddToPackagesMap( optional string PackageName, optional bool bSkipSecurityCheck );
      Adds some package to sandbox (server packages) temporarly for current map only (very much alike UT2004' one).
    • native(1719) final function bool IsInPackageMap( optional string PackageName );
      Check if some package is current available in sandbox (server packages).
    • native(1720) final function vector GetVertexPos( int iVert, bool bAnimatedFrame );
      Return world position of a single vertex on meshed actor.
    • native(1721) final function int GetVertexCount();
      Return the amount of vertexes in single mesh actor.
    • native(1722) final iterator function AllFrameVerts( out vector iVertex, bool bAnimatedFrame );
      Iterate through whole frame of vertexes in a mesh actor.
    • native(1723) final function int GetClosestVertex( vector CheckPos, bool bAnimatedFrame, out vector ResultVert );
      Get the closest vertex to some point in world position.
    • native(1724) final function int GetBestTraceLineVertex( float MinDot, vector CheckPos, vector CheckDir, bool bAnimatedFrame, out vector ResultVert );
      Check for best vertex result in line check.
    • native(1725) final function bool MeshTrace( vector Start, vector End, out vector HitNormal, out vector HitLocation );
      Perform a 3D mesh line check, returns False if did not hit.
    • native(636) static final iterator function AllLinkers( out name PackageName, out string FileName, out string GUID, out int NmCount, out int ImpCount, out int ExpCount, out int FileSize );
      Iterate through all linkers and get some general information about the packages (very much alike ObjLinkers but in a faster method).
    • native(637) static final function Object GetDefaultObject( Class<Object> ObjClass );
      Get the default object of some object/actor.
    • native(635) static final function int Ceil( float f );
      Returns f rounded off to the next higher whole number.
    • native static final function bool Divide( coerce string Src, string Divider, out string LeftPart, out string RightPart );
      Divides a string and returns the two parts.
    • native static final function bool ExtractString(string Src, string LeftDivider, string RightDivider, out string MidString, optional bool bAdvanced);
      Returns a string from between Left and Right Divider:
      • if bAdvanced is false:
Src = string1(string2)string3
LeftDivide = (RightDivider = ) 
result MidString = string2
      • if bAdvanced is true it takes occurance of LeftDivider into account:
Src = string1(string2(string3)string4)string5
LeftDivide = (RightDivider = ) 
result MidString = string2(string3)string4
    • native(257) static final function bool LoadPackageContents( string PackageName, Class<Object> ListType, out array<Object> PckContents );
      Load an enitre package and give out the contents of it (returns false if package failed to load).