Currently the developers are putting their own money into JC2-MP to keep the servers online.

Please take a few seconds of your time and disable your AdBlock plugin for our website.

Ad revenue is not going to developers, it is used purely for covering our hosting costs.

 

You are also free to donate, which removes all ads from our website!

Patch 0.3 was just released! Full changelog here: https://t.co/4A50m6IKen

2 years ago

Advertisement
October 20, 2019, 02:45:39 am

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - keeri

Pages: [1] 2
1
JC2-MP / Real Life Server redesign
« on: August 05, 2018, 08:57:26 am »
Binoculars
April 3, 2017

- Out of the entire 2017, the binoculars are the only visual change I recall being done. Throughout that year I had little time and determination for any significant changes, and all the focus was on bug fixes, small features and improvements. I added the wingsuit, tweaked captures.. even with changelog in front of me, that year is still blurry.




~ for some reason, 2018 came out slightly different ~


Black Market
July 3, 2018

- It started with this window, and while it's still not looking very good, I'm glad how it turned out. 3 clicks to get both weapons, simple icons for readability. Moving on.




Territory HUD
July 3, 2018

- This HUD honestly should have been improved years ago, the influence and defense used to appear right after the location name and you had to guess what they mean, level info wasn't pretty, and instead of describing what the location does (like healing infantry in this case) it used to say [ H ]. Yeah, [ H ], and you had to learn it means hospital.




Chat Interface
July 4, 2018

- From the amount of "wwwwwwwwwwwwwwwwwddd" in the chat you could tell that the input rectangle was very difficult to notice, and many players weren't even realizing they are typing in the chat. And I thought.. while I'm at it, might as well add explanations to every single chat command there is, because the difficulty curve is just.. bad. But we'll get to it later. Oh, and the visible hotkeys. T to chat, Y to switch chat tab, N to change name, F to use grapple hook, and so on.




Map Legend
July 5, 2018

- While the map is fairly simple, having a legend is nice. If a new player wants to capture a location, and they stumble at the legend, they can find out that to initiate a capture they need to be Rank 2, and the location needs to have a yellow highlight around it. Airports now look different from regular points, and bank/casino now appear on the map. All of these are very important locations, again, no idea why they weren't added earlier.




Player List
July 6, 2018

- Having colorful rectangles is nice, but it is much more intuitive with the faction names/icons here as well, even the online counts in each faction. As you can see, we don't have many online players these days, as the game is years old and all. But there are many people who want it to change, so I don't mind doing any of this. It's fun to see how the server would look if I did all the things right at the start, it's fun to work on it, and it's fun to see old, present and new players enjoying it.




Character Name Change
July 7, 2018 (and the outfit selector on July 27)

- The new name change UI adds an ability to generate unique character names, and tries to explain which names are allowed, and which are not. Weeks later I've added the arrows to switch player model, a fair alternative to typing '/skin' in the chat about 45 times.




Vehicle Purchase
July 7, 2018

- The tweaked UI is still not very pretty, but has 4 categories to make it easier to choose a vehicle, even if the player has no idea how it looks like. Also adds a button to switch between currencies (faction's Vehicle Parts for elites, or own spending cash), which could only be done with a hotkey before. Allows to order a vehicle in mid-air again, because why take the fun away?




Player Tags
July 8, 2018

- Tried to make these slightly more slick. Prettier stars for bounty hunting, health shown as text for better readability.




Delivery Contracts
July 9, 2018

- Now shows the map to make it more clear where the delivery destination is, and the influence for each location.




Level HUD
July 12, 2018

- Shows every XP and new Level that you earn. Bars a bit thicker too.




HQ Icons
July 13, 2018

- The old icon used to show where the faction HQ is, but there was nothing to interact with. New icons show the plane hangar, faction shop and garage. The shop will have many more interesting items from now on.




Inventory
July 13, 2018

- Item quality names were clearly underappreciated, and now you can see them all the time, in front of the item name. In fact the entire inventory backend has been rewritten, and now there are many new items. The shop selling oranges will no longer restock on orange crayons!




Mission Marker
July 15, 2018

- I've experimented with mission rays before, but they used to appear only to the new players. New marker is visible to everyone, and has the colors of factions who are currently in control of the objective.




Radar Icons
July 15, 2018

- Radar icons and colors were improved throughout many days, but they did not change as much as the in-game tags. You can see the nearby garages now, though.




Construction Tools
July 28, 2018

- The build tools for faction leaders were rewritten, to be more intuitive and convenient to align objects next to each other.




Tutorial
July 30, 2018 (and the money UI on August 2)

- Sadly the tutorial might be fairly annoying at times, but I put a lot of hope in it to introduce new players to all the features that might look quite complicated. It's flexible, if you are in a plane - it will teach you how to take off, if you are at the bank - it will teach you how to send money to your offshore account, if you are on a shore - it will teach you how to catch fish.




Ally Tags
August 2, 2018

- Panau is frickin huge! But that doesn't mean you should be playing alone, and while the radar used to show the directions for allies, and the map displayed their exact location, there is one more thing I wanted for a long time, and it's showing the player locations directly in the game, even if they are far away.






~ that's all the important stuff. oh, and ~


Most of the code has been rewritten
- To ensure everything runs fast, and the delays are reduced to minimum

Capture mechanics have been updated
- Balancing is now done with increased damage, outnumbering is allowed
- Influence drop stage has been removed

Damage system has been changed
- In old system, if you missed the player model (blue)...
you had 33% chance to hit in the red circle, and 66% in the orange




- In the new system, if you miss the player model (blue)...
you deal from 1% to 100% damage, based on how precise you aim (no RNG)





Trade and convoy missions are back
New hit marker, showing vehicle health
Emoticons are converted into roleplay actions
Improved vertical take off for Pell planes
Fair faction salaries and visible expectations
Slow K22 helicopter replaced with a faster K23
Over 50 minor bug fixes
and many other things...


~ thanks for being around ~



Join our Discord server
https://discord.me/rls


Find us in JC2-MP



See the complete changelog
https://trello.com/b/9DXKI3Kv/rls-four

Support the project on Patreon
https://www.patreon.com/keeri


But most importantly...
Have fun

2
Releases / API Shortcuts
« on: October 24, 2016, 09:50:01 pm »
This's a small collection of API extension snippets that I wrote back in the time, but never got around to make a detailed topic on how to use them.

This wiki page explains where to create these autorun scripts and what's needed to enable them.

lua/autorun/shared/shAPI.lua
Code: [Select]
function NetworkObject.Value(name, key, default)
local data = NetworkObject.GetByName(name)
if not data then return default end
return data:GetValue(key, default)
end

function SharedObject.Value(name, key, default)
local shared = SharedObject.GetByName(name)
if not shared then return default end
return shared:GetValue(key, default)
end

function SharedObject.Values(name)
local shared = SharedObject.GetByName(name)
if not shared then return nil end
return shared:GetValues()
end

function SharedObject.Update(name, key, value)
local shared = SharedObject.GetByName(name) or SharedObject.Create(name)
shared:SetValue(key, value)
end

function SharedObject.Recreate(name)
local shared = SharedObject.GetByName(name)
if shared then shared:Remove() end
return SharedObject.Create(name)
end

function SharedObject.Delete(name)
local shared = SharedObject.GetByName(name)
if not shared then return false end
shared:Remove()
end

lua/autorun/server/sAPI.lua
Code: [Select]
function WorldNetworkObject.Value(objectId, key, default)
local data = WorldNetworkObject.GetById(objectId)
if not data then return default end
return data:GetValue(key, default)
end

function WorldNetworkObject.Update(objectId, key, value)
local data = WorldNetworkObject.GetById(objectId)
if not data then return false end
data:SetValue(key, value)
end

function WorldNetworkObject.Sync(objectId, key, value)
local data = WorldNetworkObject.GetById(objectId)
if not data then return false end
data:SetNetworkValue(key, value)
end

function NetworkObject.Update(name, key, value)
local data = NetworkObject.GetByName(name) or NetworkObject.Create(name)
data:SetValue(key, value)
end

function NetworkObject.Sync(name, key, value)
local data = NetworkObject.GetByName(name) or NetworkObject.Create(name)
data:SetNetworkValue(key, value)
end

Those add the following functions:

client / server
SharedObject.Update(name, key, value)
Set value for given SharedObject name and key.
If the object doesn't exist, it will be created.

client / server
SharedObject.Value(name, key, default)
Get value for given SharedObject name and key.
If the object or value doesn't exist, will return default or nil.

client / server
SharedObject.Values(name)
Get a table of all values for given SharedObject name.
If the object doesn't exist, will return nil.

client / server
SharedObject.Recreate(name)
Re-create the SharedObject with that name, wiping all existing values.
If the object doesn't exist, it will be created.

client / server
SharedObject.Delete(name)
Remove the SharedObject with that name.
If the object doesn't exist, will return false.

--

server
NetworkObject.Update(name, key, value)
Set server value for given NetworkObject name and key.
If the object doesn't exist, it will be created.

server
NetworkObject.Sync(name, key, value)
Set networked value for given NetworkObject name and key.
If the object doesn't exist, it will be created.

client / server
NetworkObject.Value(name, key, default)
Get value for given NetworkObject name and key.
If the object or value doesn't exist, will return default or nil.

--

server
WorldNetworkObject.Update(objectId, key, value)
Set server value for given WorldNetworkObject objectId and key.
If the object doesn't exist, will return false.

server
WorldNetworkObject.Sync(objectId, key, value)
Set networked value for given WorldNetworkObject objectId and key.
If the object doesn't exist, will return false.

server
WorldNetworkObject.Value(objectId, key, default)
Get value for given WorldNetworkObject objectId and key.
If the object or value doesn't exist, will return default or nil.

--

Example 1

When working with more than two fields of a single object, I would recommend using regular API features, but when you only need to store, sync or read a single value or two, you can use these shortcuts.

server
Code: [Select]
NetworkObject.Update("Wind", "Changes In", 60)
NetworkObject.Sync("Wind", "Direction", 180)

client
Code: [Select]
print( NetworkObject.Value("Wind", "Changes In") ) -- returns nil, because it's a server value
print( NetworkObject.Value("Wind", "Direction") ) -- returns 180, if the client had waited enough for value to sync
print( NetworkObject.Value("Wind", "Strength", 15) ) -- returns 15, because the value doesn't exist

--

Example 2

Simple use case of SharedObject shortcuts, with the deletion of the object at the end when it's no longer necessary. The objects and values are available on the same side they have been created on, in this case, the server side.

server
Code: [Select]
print( SharedObject.Value("Lottery", "Winner", "None") ) -- returns None, because the object doesn't exist
SharedObject.Update("Lottery", "Winner", "Rico Rodriguez")
print( SharedObject.Value("Lottery", "Winner", "None") ) -- returns Rico Rodriguez
SharedObject.Delete("Lottery")

--

And a small bonus, two simple functions for working with iterators.

lua/autorun/shared/shIterator.lua
Code: [Select]
iterator = {}

function iterator.populated(self, method)
for _ in method(self) do
return true
end
return false
end

function iterator.count(self, method)
local count = 0
for _ in method(self) do
count = count + 1
end
return count
end

Those add the following functions:

client / server
iterator.populated(self, method)
Returns true if the iterator contains anything.

client / server
iterator.count(self, method)
Returns the amount of items the iterator goes through.

--

Example 1

Check if any other players are streamed in, perform an action based on whether anyone is near or not.

client
Code: [Select]
if iterator.populated(Client, Client.GetStreamedPlayers) then
print("There are other players nearby!")
else
print("Noone else is around, hold G to pick a teleport location.")
end

--

Example 2

Please do mind that Server:GetPlayerCount essentially does the same thing in a better way, counting players is only used here as an example. This function might be more useful for counting items in StreamableObject:GetStreamedPlayers and such.

server
Code: [Select]
local count = iterator.count(Server, Server.GetPlayers)
print("Players online on the server: " .. count)

--

That's all to it, let me know if you spot any mistakes.

3
Latest / 0.2 Announcement
« on: November 08, 2015, 04:50:24 pm »
0.2 Announcement

Public Beta
Now available!


Welcome to our biggest, baddest, most awesome update yet! We've toiled extensively to bring you fantastic new features and much-needed bug fixes. Check out the full list below!

As there's been an extensive number of changes, as well as a great many features, we're giving scripters, server hosters, and curious bystanders early access to the 0.2 client and server, so that your favourite servers can give you the best possible experience on release. For everyone else, don't fret; we'll have the final version out for your enjoyment once we've worked out all the kinks.

You can opt-in to the publicbeta branch in the Betas tab. Do not switch to this branch unless you are willing to actively help find issues and prepare your scripts for the release. If you don't know how to switch to the branch, we advise you wait for the official release.

Note that this will lock you out of all 0.1.4 servers; if you need to regain access, simply switch back to "NONE - Opt out of all beta programs."




Key Information

Scriptable Client Actors
Scripters can now create their own client-side NPCs!


Civilian Model Support
All civilian models can now be used!



Depth-Tested Rendering
Render inside of the game world!



Basic Unicode Support
Allowing use of more languages.



Main Menu Overhaul
Convenient access to your favorite servers.



Steam Achievements
Unlock them by completing tasks with players.



Other Major Features:
  • Major sync improvement to vehicles and on-foot weapons
  • Implementation of following classes, which greatly improve client/server communication:
    • SharedObject
    • NetworkObject
    • WorldNetworkObject
  • Extended ability to store values to all entities
  • Fixed major bug causing random models/effects to become invisible


Example Scripts





0.2 Changelog

New Features

    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

    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

    Client
  • Added ClientActor class which provides a basic client-side NPC interface
  • 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
  • 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 GetClimateZone method to streamed and client entities
  • Added ClimateZone 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
  • Removed apostrophe keybind opening console, added a setting to configure console keybind
  • Added support for correctly rendering the tab character in text
  • Added CursorType enum
  • Added Mouse:SetCursor
  • Added FontAwesome and League Gothic fonts to resources
  • 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

Bug Fixes

    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

    Server
  • Fixed issue with server memory not being freed on entity removal
  • 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

    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
  • 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
  • Fixed PlayerEnterVehicle missing old_driver arg
  • Fixed issue with default player state being PlayerState.None instead of PlayerState.OnFoot
  • Some client entities now inherit from ClientStreamableObject to mirror the server classes
  • Added parameters argument to ClientSound.Create
  • ImagePanel:SetImage now takes an Image instead of a path
  • Fixed HSVColorPicker issues
  • Fixed SortedList header being offset when it has a scrollbar
  • Fixed crash with SortedList:Clear
  • Fixed issue with SortedList sizing

Note: a running changelog for each new version is maintained on the wiki, see here.

4
Latest / 0.2 Released!
« on: November 08, 2015, 04:50:24 pm »
0.2 Released!

Available now on Steam


Welcome to our biggest, baddest, most awesome update yet! We've toiled extensively to bring you fantastic new features and much-needed bug fixes. Check out the full list below!

We've spent several days investigating the rendering issue on AMD graphics cards. Thanks to Jason_Valkyrie, we've been able to narrow it down and create a legacy renderer option that can be used as a workaround for rendering issues. If you experience such issues, you can enable the legacy renderer under Display tab of JC2-MP settings window.



Key Information

Scriptable Client Actors
Scripters can now create their own client-side NPC's!


Civilian Model Support
All civilian models are now available to use!



Depth-Tested Rendering
Render inside of the game world!



Basic Unicode Support
Allowing use of more languages.



Main Menu Overhaul
Convenient access to your favorite servers.



Steam Achievements
Unlock them by completing tasks with players.



Other Major Features:
  • Major sync improvement to vehicles and on-foot weapons
  • Implementation of following classes, which greatly improve client/server communication:
    • SharedObject
    • NetworkObject
    • WorldNetworkObject
  • Extended ability to store values from player-only to all entities
  • Fixed major bug causing random models/effects to become invisible


Example Scripts





0.2 Changelog

New Features

    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

    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

    Client
  • Added ClientActor class which provides a basic client-side NPC interface
  • 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 and League Gothic fonts to resources
  • 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

Bug Fixes

    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

    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

    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
  • 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
  • Fixed issue with default player state being PlayerState.None instead of PlayerState.OnFoot
  • 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 crash with SortedList:Clear
  • Fixed issue with SortedList sizing

Note: a running changelog for each new version is maintained on the wiki, see here.

5
JC2-MP / Color Catch
« on: September 23, 2014, 02:15:16 am »


Color Catch is a small gamemode created in one day.

Objective
Every player is assigned a color. Using sniper rifle, they can tag other players with their current color.
When there is only one color left, the player who had that color at the beginning of the round, wins.


Locations
Every round is held at a random location of Panau.
Area range can increase and decrease depending on player count.


Play
At least 2 players are required to play Color Catch.
To join, search for "Color" in Server Browser or use this link.

6
Releases / [RELEASE] Spinners
« on: June 19, 2014, 12:05:25 pm »
Spinners  v1.0

Example of ClientParticleSystem usage.



Default controls:
Arrow key up - Next spinner
Arrow key down - Previous spinner

Get it on Github:
https://github.com/Fkids/JC2MP-Spinners

Have fun!

7
Bug reports / Crash after SortedList RowSelected event
« on: March 06, 2014, 03:39:30 pm »
I'm not sure what causes the crash, but after you Remove() a row of a SortedList and select another one, the RowSelected callback works fine and after the callback completes, the client crashes.
I've tried commenting everything in the callback so it does nothing, and crash still happens.

8
Releases / [RELEASE] Extra Seats
« on: February 26, 2014, 01:07:40 pm »
Extra Seats  v1.3

Time to get more seats for JC2MP vehicles!
Imagine airliners with hundreds of players!
Press G to enter a vehicle with extra seats.






This script was originally scripted for RLS - Roleplay, but I'm happy to share it.

Get it on Github:
https://github.com/Fkids/JC2MP-ExtraSeats

Have fun!

9
Releases / [RELEASE] Vehicle Cam
« on: February 22, 2014, 04:57:01 pm »
Vehicle Cam

This plugin adds 8 camera modes for vehicles.
Switch them by pressing C in a vehicle.






Feel free to add more modes or remove ones that you don't need.

Available on Github:
https://github.com/Fkids/JC2MP-VehicleCam

Enjoy!

10
Suggestions / Vehicle:SetDeathRemove(true)
« on: January 13, 2014, 01:26:59 pm »
That function needs a delay, I'm using it to disable vehicle respawns, but if you destroy the vehicle with someone in it, it dissapears before blowing up.

-- Update --
Seems to happen only with jets, ground vehicles normally explode but calling SetHealth(1) on every vehicle after that seem to repair them. Not sure since I didn't debug them much.

11
Suggestions / Vehicle:GetSpawnPosition()
« on: January 12, 2014, 12:41:29 pm »
If there's a way to get such thing, it would be pretty useful.
For example, you can measure distance from spawn to current position and remove unoccupied respawn if it's more than 1 km.

12
Bug reports / Respawn on same place
« on: December 25, 2013, 04:47:47 pm »
I've encountered a strange issue, where players respawn where they died, without PlayerDeath or PlayerSpawn events triggering.
Normally the issue stops occurring after a complete restart of the game, although that doesn't solve it for some players.

13
Scripting / Disable Hijack
« on: December 18, 2013, 05:22:06 pm »
How do you disable hijacking?

14
Scripting / Embedding colors in chat message
« on: December 17, 2013, 04:26:34 pm »
{FFFFFF}Is this {FF0000}possible?

15
Scripting / Calling reload from script
« on: December 16, 2013, 11:27:23 pm »
Planning to reload script directly from game.
Maybe even separate module for that with steamid check, so if the module failed to start I still could reload it.
Is there a SendRconCommand or something like that, which I missed?

Pages: [1] 2