Personal tools

Changelog

From JC2-MP Documentation

Jump to: navigation, search

0.3 - 2017 May 28

New Features

  • Client
    • Added Roads class, allowing scripters to use global road pathfinding
    • Added ClientActor:FindShortestPath for utilizing NPC point-to-point pathfinding
    • Added Vehicle:SetSeatLocked and Vehicle:GetSeatLocked for (un)locking specific vehicle seats
    • Added GameRenderOpaque event for rendering non-transparent items to benefit from post effects, such as the water ripple effect
    • Added LocalPlayer:GetAimMode and the AimMode enum
    • Added Chat:Get/SetPosition and Chat:ResetPosition
    • Added TraverseType, RoadType and SpeedLimit enums
  • Shared
    • Added ModuleError event for handling errors caused by client/server Lua modules
    • Added Vector2/3:Reflect as an alias for static functions Vector2/3.Reflect

Bug fixes and changes

  • Client
    • Fixed an issue where a player could enter an occupied stunt cling position, resulting in a crash for each streamed-in player
    • Refactored renderer to properly adhere to the Just Cause 2 threading model
    • Text renderer will now re-use buffers whenever possible to improve performance
    • Fixed a bug with first main menu background not being resized to fit on the screen
    • Vehicle:GetDriver and Vehicle:GetOccupants will now return and include ClientActors (Breaking change)
  • Shared
    • Fixed an issue where attempting to steal Tuk-Tuk or an ATV could result in the hijacker getting stuck in a bugged state
    • StaticObjects with the `fixed` flag set to false will now properly simulate rotation

0.2.3 - 2016 October 23

New Features

  • Client
    • Added EntityBulletHit event that triggers when the local player hits a Player or NPC with a bullet
    • LocalPlayerExitVehicle now fires when the player's vehicle is removed while they were in it
    • Added GetOutlineEnabled, SetOutlineEnabled, and SetOutlineColor to Characters and StaticObjects
  • Shared
    • Changed Firestarter achievement to require 1,000 kills instead of 3,000
    • Changed Only Human achievement to spread virally. If you kill a player who has the achievement, you will also be granted it

Bug fixes and changes

  • Client
    • Hopefully fixed the crashes that have plagued AMD users for many months. We have reported a solution and details surrounding the bug to AMD
    • Fixed a bug on AMD cards where SSAO would cause rendering artifacts. It has now been re-enabled in the options window
    • Fixed a bug where vehicle mounted guns rotation could become mirrored
    • Fixed one of the most frequently encountered crashes relating to decals. It should now be safe to enable decals again!
    • Removed unsynced sentry turrets and cannons from the game
    • Fixed a bug where a player would become stuck on a bike if they attempted to steal it while the driver was reversing
    • Fixed a bug where vehicles could become invulnerable if repaired while about to explode
    • Fixed a bug where certain bushes could crash the game when collided with as they lacked a collision mesh
    • Fixed a bug where RakNet was unintentionally creating a listen socket on port 80

0.2.2 - 2016 February 13

New Features

  • Client
    • Added Config:GetValue(string category, string value)
  • Shared
    • Added SharedObject equality operator
    • Added SteamId.IsValid(string)

Bug fixes and changes

  • Client
    • Fixed a bug introduced by ShapeTrigger entities where Checkpoints fired for remote players
    • Vehicles are now unloaded when the player teleports to a location outside their range
    • Fixed client crash from passing an empty string to chat methods like Chat:Print
    • Fixed an issue with the renderer
    • GWEN now blocks main menu inputs where appropriate
  • Shared
    • Fixed Stuntshooter achievement incorrectly increasing stats for all vehicles, rather than just airplanes

0.2.1 - 2015 November 23

New features

  • Shared
    • Added a timeout to player damage so kills aren't incorrectly attributed
  • Server
    • Added World:SetValue and World:GetValue
  • Client
    • Added an optional boolean argument to Player:GetBones to retrieve a detailed list of 80+ bones

Bug fixes and changes

  • Shared
    • Fixed a bug where calling SharedObject.Create with a non-table argument would crash the server
    • Fixed a bug where Vehicle.GetMassByModelId was returning the vehicle name
  • Server
    • Fixed a bug in StaticObject.Create where the 'fixed' argmuent was defaulting to false
    • Fixed a bug where Player:RequestGroupMembership was firing every callback for multiple requests
  • Client
    • Fixed a bug where Player:GetAvatar could return another player's avatar

0.2 - 2015 November 11

Major features

  • ClientActor class which provides a basic client-side NPC interface
  • Support for previously unavailable civilian models
  • Depth-tested rendering in the game world
  • Basic unicode support
  • Main menu overhaul
  • Steam achievements
  • Major sync improvement to vehicles and on-foot weapons
  • Implementation of following classes, which allow scripts and client/server to communicate better:
    • SharedObject
    • NetworkObject
    • WorldNetworkObject
  • Ability to store values on all entities, not just players
  • Fixed major bug where random models/effects would become invisible

New features

  • Client
    • Added GameRender event for depth-tested rendering in the game world
    • Main menu overhaul
    • Added support for streaming image resources with AssetLocation.Resource
    • Added support for Unicode characters in CharPress
    • Vastly improved the chat window with word wrap and chat history
    • Added LocalPlayer:SetLinearVelocity
    • Added Character class, common to Player and ClientActor
    • Added Character:Get/SetLeftArmState
    • Added Character:GetSeat
    • Added Vehicle:Set(Linear/Angular)Velocity
    • Added VehicleTransmission, with methods Get/SetGear, Get/SetClutchDelayTime and more
    • Added VehicleSuspension, with methods Get/SetChassisDirection, Get/SetStrength and more
    • Added VehicleAerodynamics for land vehicles, with methods Get/SetAirDensity, Get/SetDragCoefficient and more
    • Added Vehicle:GetTransmission, Vehicle:GetSuspension and Vehicle:GetAerodynamics
    • Added Vehicle:GetTorque, Vehicle:GetWheelCount, Vehicle:GetRPM, Vehicle:GetMaxRPM and Vehicle:GetTopSpeed
    • Added GetClimateZone method to streamed and client entities
    • Added ClimateZone enum
    • Added ShapeTrigger with events ShapeTriggerEnter and ShapeTriggerExit
    • Added TriggerType enum
    • Added VehicleTriggerType enum
    • Added Player:GetAvatar
    • Added AvatarSize enum
    • Added Featured tab to the server browser
    • Added description field to the server browser
    • Server browser filters are now consistent between restarts
    • Added Camera functions SetFOV and GetFOV
    • Added LocalPlayerEjectVehicle event
    • Added 'entity' and 'impulse' arguments to VehicleCollide event
    • Added LocalPlayer functions SetOxygen and GetOxygen
    • Added LocalPlayer:IsFriend(steamid/player)
    • Added Client:GetFrameTime
    • Added Game:GetWeatherSeverity
    • Added ClientStreamableObject as a base class to Vehicle/Player
    • Added an optional boolean parameter to Physics:Raycast to disable the raycast filter
    • LocalPlayerBulletHit event now contains a bone argument
    • Added a setting to toggle vehicle camera snap and adjust timeout
    • Added a setting to toggle vehicle stunt camera
    • Added chat key and chat toggle key settings
    • Removed apostrophe keybind opening console, added a setting to configure console keybind
    • Added support for correctly rendering the tab character in text
    • Added Render:GetDepthEnabled
    • Added CursorType enum
    • Added Mouse:SetCursor
    • Added FontAwesome, Archivo and League Gothic fonts to resources
    • Added BaseWindow:Get/SetMouseInputEnabled and BaseWindow:Get/SetKeyboardInputEnabled
    • Added ability to navigate through TextBox history using Up and Down arrow keys
    • Added Ctrl-Left/Ctrl-Right hotkeys to TextBox to facilitate moving the cursor word by word
    • Added Label:SetLineSpacing
    • Added TextBoxNumeric:Get/SetNegativeAllowed
    • Added gui_show_netstat console command
    • Added window position and size launch parameters
  • Server
    • Added module metadata
    • Added Player:Damage
    • Added Vehicle:SetStreamPosition and Vehicle:SetStreamAngle
    • Added Vehicle:Get/SetSpawnPosition and Vehicle:Get/SetSpawnAngle
    • Can now disable collisions between two different types with Player/Server functions EnableCollision/DisableCollision
    • Added ClientModulesLoad event
    • Added Player:RequestGroupMembership(groupId, callback)
    • Added StreamableObject:GetStreamedPlayers
    • Added SLED debugger support
    • Added suppressible PlayerAchievementUnlock event
    • Added Server:GetFrameTime
    • Added SendAutorunWhenEmpty config variable, default as false, to control whether autorun scripts are sent for empty modules
    • Added netstat command
  • Shared
    • Added support for all of the previously unsupported civilian models
    • Added Steam achievements
    • Added SharedObject class
    • Added NetworkObject class
    • Added WorldNetworkObject class
    • Added basic UTF-8 support to Lua strings
    • Added SetUnicode(boolean) global function
    • Added storage to all entities, not just Players
      • Deprecated PlayerValueChange and PlayerNetworkValueChange events
    • Refactored Chat class functions to support multiple colours in a single message
    • Added Vehicle.GetClassByModelId
    • Added Vehicle:GetClass
    • Added VehicleClass enum
    • Improved Lua errors with event argument printout
    • Added delta argument to PreTick/PostTick and Render/PostRender
    • Added Angle.Delta
    • Added Vector2.Reflect and Vector3.Reflect
    • Added ComponentMultiply method to Vector2 and Vector3
    • Added Weapon equality operator

Bug fixes and changes

  • Client
    • Fixed bones returning the wrong position for smaller models (Breaking change)
    • Fixed very long-standing issue with on-foot weapons often not firing for other clients
    • Vastly improved vehicle sync, also allows players to stand on vehicles as in singleplayer
    • Hopefully fixed archive bug that caused models/effects to fail to load
    • Fixed static objects not responding to the biome (snow / dust)
    • Fixed an extremely prevalent crash during entity collision listener removal
    • General renderer improvements
    • Refactored Mounted Gun sync, resulting in better aim accuracy
    • Reduced memory usage by preventing entire archives from being loaded at once
    • Fixed issue where requested models could sometimes be wiped out by the loading screen process
    • Fixed a bug where vehicle colors were darker than the requested colors
    • Fixed issue with vehicle colors not being applied to some turret parts
    • Fixed input sometimes going crazy when in a menu
    • Fixed settings window not preserving game resolution upon resize
    • Improved precision of Input:GetValue return value
    • Fixed being stuck in the air when EnterVehicle is called while grappling
    • Fixed issue with default player state being PlayerState.None instead of PlayerState.OnFoot
    • Things drawn in 3D (and Render:WorldToScreen) no longer appear to be ahead by one frame
    • Fixed character model not changing if gui hidden or in a menu
    • Removed highlighted servers from the server browser
    • Character models are now reset on disconnect
    • Hopefully fixed issue with Rico model being invisible
    • Fixed the sound pop issue on Windows 10, courtesy of emoose from ElDewrito
    • Fixed PlayerEnterVehicle missing old_driver arg
    • Some client entities now inherit from ClientStreamableObject to mirror the server classes
    • Added parameters argument to ClientSound.Create
    • Removed palaver, as its implementation burden outweighed the value it provided
    • ImagePanel:SetImage now takes an Image instead of a path
    • ReturnPressed event of a TextBox is now triggered on key down, instead of key up
    • Disabled Tab behaviour of the Enter key in TextBox as it moves to next control in the entire scene
    • Fixed HSVColorPicker issues
    • Fixed SortedList header being offset when it has a scrollbar
    • Fixed ComboBox:ClearItems and renamed to ComboBox:Clear
    • Fixed crash with SortedList:Clear
    • Fixed issue with SortedList sizing
    • Fixed Textboxes having misaligned text until clicked on
  • Server
    • Fixed issue with server memory not being freed on entity removal
    • Cleaned up streamer code, hopefully reducing amount of server crashes
    • Fixed issue with world iterators not working correctly
    • Fixed a bug where scripts would still be run even if the server failed to start
    • Fixed SteamId outputting the community id when printed on Windows
  • Shared
    • General sync improvement
    • Luabind now checks parent classes when looking up class members (class("MyDerived")(MyBase) in _init.lua works now)
    • Scripts are now loaded in alphabetical order on all platforms
    • Fixed script profiler not counting network events
    • The marshaller now accepts table keys of any type
    • Angles sent over the network no longer lose precision from compression
    • Vector2/Vector3/Color statics can no longer be edited
    • Comparing any API class with '==' should now work
    • Fixed random number generator not being seeded at startup
    • Improved Timer precision
    • Fixed issue where IsValid would raise an exception for non-table/userdata types

0.1.4b - 2014 August 30

New features

Bug fixes

  • Server
    • Fixed a rare crash caused by GameSpy4 queries
    • Fixed SQL sometimes writing garbage data if an SQLCommand were stored and used later (the values could be garbage collected)
    • Fixed Worlds being removed when they were sent through events
    • Fixed being able to load duplicate modules with commands such as "load nametags/"
    • Made Player:HasVehicleDLC and Player:HasWeaponDLC return true if the id is a non-DLC item
  • Client
    • Fixed crash where two players could occupy the same cling position at the same time
    • Fixed crash on exit caused by static objects
    • Fixed player model 20 (invisibledoll) not working
    • GWEN: Fixed TextBoxes (and other controls) accepting focus when disabled
    • GWEN: Fixed Labels with word wrap not using the text color

0.1.4a - 2014 June 21

New features

  • Shared
    • Overhauled the logging system to support unicode (the first of many unicode additions to come)
    • Added console command for profiling Lua modules; usage: profiler_sample number_of_seconds
    • Added Color == Color operator
    • Added IsNaN methods to Vector2/Vector3/Angle and a general purpose IsNaN function

Bug fixes

  • Server
    • Reverted changes to SQL which were causing massive memory leaks
      • Note: This change was made before release to prevent server crashes related to SQL errors. If you encounter an SQL error which then crashes the server some time later, please report it.
    • Fixed Vector2() and Vector3() returning uninitialized data on linux
  • Client
    • Fixed StaticObject related crash
    • Fixed Vehicle:SetColors to properly support mounted guns and ailerons
    • Fixed Game:GetState returning 0 for menu and loading screen
    • Fixed ClientEntity:GetId not being exposed
    • Fixed Action enum name capitalization (added GuiPDAZoomOut and HeliAIAutoRoll)
    • GWEN: Fixed crash when unsubscribing from current event
    • GWEN: Removing the active TabButton will now select another available tab
    • GWEN: Fixed BaseWindow's Blur event not always being called
    • GWEN: Fixed crash when using GroupBox:RemoveAllChildren
    • GWEN: BaseWindow functions GetNumChildren, GetChildren, and RemoveAllChildren now only act on user-created controls

0.1.4 patch - 2014 March 14

Bug fixes

  • Client
    • Fixed a very prevalent crash caused by other players having DLC weapons which you don't own
    • Fixed Explosion deaths being incorrectly attributed to the player with the ID of 0
    • Fixed TabButton crash when using TabControl:RemovePage at certain times

0.1.4 - 2014 March 12

New features

Bug fixes

  • Shared
    • The hard limit of 65536 entities was increased to ~4 billion
    • Improved player color generation algorithm; the saturation range is now between 0.5 and 0.75
    • Removed Vector3 compression when using Network:Send due to horrible precision loss
  • Server
    • Fixed crash when a Lua event was broadcasted during unloadall
  • Client
    • Fixed crash when calling GetPosition/GetAngle on a partially-spawned StaticObject
    • Fixed StaticObject crash when updating position of a non-existent model
    • Fixed occasional crash when removing GWEN controls, such as removing a control and its parent at the same time
    • Fixed TabControl related crashes when removing a TabButton or its page, as well as pages sometimes staying around
    • Vehicle:SetColors will now update the vehicle's colors immediately
    • Fixed 'connect ip:port' console command not working when a port is provided
    • Added client-side protection against the edge case of spawning invalid weapon models
    • Fixed 'reconnect' not working if server is passworded
    • Aliased 'force_connect' to 'connect'
    • Fixed some GWEN events not working
    • Edited the GWEN skin to give a dark theme to Trees and PropertyTrees
    • Improved TextBox cursor behaviour
    • Fixed mouse cursor not being updated immediately after Mouse:SetVisible
    • Moved AssetLocation to shared
    • GroupBox:SetPadding no longer affects the title text
    • ListBox and SortedList are now affected by SetBackgroundVisible.
    • Fixed SortedList:Sort crash with bad column

0.1.3 - 2014 January 30

New features

  • Shared
    • Added a __type property to JC2-MP classes that returns the type of the value as a string

Bug fixes

  • Shared
    • Fixed IsValid(StaticObject) not working
  • Client
    • Fixed a major crash related to looking at StaticObjects
    • Fixed crash when removing a GWEN object in its own event.
    • Fixed crash when an invalid index was provided to PageControl functions ShowPage and GetPage
    • Fixed TextBox and chat window cursors being offset
    • Main menu buttons are now correctly sized

0.1.2 - 2014 January 23

New features

  • Server
    • Replaced OGP with GameSpy4 query protocol, making it possible to connect to a server when Announce = false, as well as improving server stability
    • Added Player:GetIP
    • Unhandled packet warnings now print the source IP address
    • Added Console:Run allowing scripts to run console commands (requires IKnowWhatImDoing config enabled)
    • Added the PlayerWorldChange Lua event
    • Removed CellSize in config.lua; merged PlayerStreamDistance, VehicleStreamDistance and CheckpointStreamDistance into one StreamDistance variable
  • Client
    • Added highlighted servers to server browser (request thread)
    • Added BaseWindow functions SetWidth, SetHeight, GetWidth, GetHeight, RelativeToAbsolute and AbsoluteToRelative
    • Added Label functions GetTextSize and SetTextSize
    • Added TableRow functions (Get/Set) BackgroundEvenColor, BackgroundOddColor, BackgroundHoverColor, BackgroundEvenSelectedColor, BackgroundOddSelectedColor
    • Added the LocalPlayerWorldChange Lua event
    • Added BaseWindow:Subscribe with the events HoverEnter, HoverLeave, Focus, Blur, PreRender, Render, and PostRender
    • Added Render:SetClip
    • Added the MouseUp Lua event
    • Added Game:GetTime to get the time of the current world

Bug fixes

  • Shared
    • Attempting to access invalid static Lua class variables now returns nil instead of erroring
    • Changed static gettable for Lua classes to also return instance methods; i.e. you can get Player.SendChatMessage without requiring an actual player
    • Fixed Vector2 and Vector3 default constructors having uninitialised components
    • Time is now properly synced across all worlds, not just DefaultWorld; clients also receive the time every 30 seconds to prevent drift
    • Fixed negative timestep from halting at midnight
  • Server
    • IKnowWhatImDoing now unlocks more, including os and io functions
  • Client
    • Fixed a very prevalent crash related to invalid data being passed into JC2's landscape code
    • Fixed crash when unloading a module with a modal window
    • More crash fixes
    • Player is now made vulnerable after disconnecting from a server
    • Fixed passing LocalPlayer through Events:Fire not working
    • Fixed (parent, name) GWEN constructors not applying the name
    • Changed default server browser sort to lowest ping
    • Fixed vehicles sometimes becoming invulnerable when being repaired
    • Fixed sometimes dying inside terrain after CalcView reenables the local player
    • Fixed Window:DisableResizing not working
    • Clamped font size from 0 to 512
    • Increased font size on main menu
    • Menu/console windows are now resized on resolution change
    • Changed GWEN Slider background line to white to improve visibility
    • Fixed ProgressBar:SetCycleSpeed not updating the auto label
    • Fixed BaseWindow:__eq being undefined
    • Fixed scrollbar being invisible in a GWEN Tree
    • Fixed infinite loop in GWEN when labels with word wrap are too small
    • Fixed labels with word wrap not being docked correctly
    • Fixed cursor not showing up for all corners of a window

0.1.1 - 2013 December 21

New features

  • Shared
    • Removed registration requirement from events firing; Events:FireRegisteredEvent is now Events:Fire and Events:Register/Unregister are deprecated
    • Added argument-less version of Events:Fire
    • Prevented 'load' Lua function from loading bytecode, increasing security
  • Server
    • Added support for loading C packages in Lua, allowing for the use of LuaSocket, LuaSQL, etc
    • Added IKnowWhatImDoing configuration variable to selectively enable the use of unsafe Lua functionality

Bug fixes

  • Client
    • Fixed client deadlocking on exit
    • Fixed evenness in GWEN ListBox backgrounds not being preserved in a sort
    • Fixed ListBox:Clear and SortedList:Clear not working
    • Fixed TableRow:SetTextColor not working
    • Fixed broken world on respawn; collisions with world objects should now work
    • Fixed non-ideal performance for GetTextWidth; now optimized
    • Fixed server browser query continuing even after the server browser was closed
    • Fixed bug where the player would be entered into a vehicle before they finished teleporting
    • Fixed crash when attempting to get non-existent userdata on a GWEN object
    • Fixed crash when attempting to get/set non-existent cell contents on TableRow
    • Fixed DirectX Error Code 4 upon launching; unsupported code for certain graphics cards
  • Server
    • Fixed banned players being unable to reconnect upon being unbanned
    • Fixed UDPSocket crashing upon destruction
  • Shared
    • Fixed Player.Match only returning results where the query could be found at the start of the name

0.1.0 - 2013 December 16

  • JC2-MP released on Steam.