Open Vampurica opened 7 years ago
Still awaiting a Dialog for this.
Thought about it today on how to implement this using the DynaMenu instead and I think it can be done. I intend to work on it tomorrow.
Updated to reflect current To-Do List.
Made the required button icons for this task.
Still need some icons. Will work on them. In the meantime created a demo video of the current WIP.
Added the rest of the required key icons to the zip above. Need to have them added to Epoch.
This is a master issue to track the transfer from "lock times" to "virtual" keys.
The goal is to have the players have keys on them that are not inventory items that they use to lock and unlock vehicles much like they did in DayZ: Epoch. This should be designed secure enough to prevent hackers from unlocking vehicles easily.
To do this the server will generate a "secret" when a vehicle becomes keyed for the first time and save it to the database with the vehicle. The "salt" will be a randomly generated string that is generated serverside-only every server restart. Using the classname, secret, and salt, the server will be able to create a hash that then can be compared, and will be unique to that exact vehicle for that server restart.
The MD5 algorithm is as follows:
("classname" + "secret") --> MD5 --> ("first hash" + "salt") --> MD5
The Dynamic Menu will serve to Take and Give keys, listing a maximum amount of keys for the player to choose from. Currently the Dynamic Menu will allow a listing of 20 unique vehicle keys. It allows for an unlimited amount of duplicates to those keys. A player can hold more than 20 unique keys, but the menu will not display them.
Legacy "group" locked vehicle DB entries will be converted on first unlock, giving the key to the unlocker before purging the group lock from the database.
Vehicle Keys will be able to be carried by players, stored in vehicles, or stored in any buildables that have an inventory. If the vehicle is locked then the player will not be able to interact with the keys on the object.
Players "keyring" is stored in a variable on the player that only the server is allowed to adjust. Example Keyring Params:
[ [ ["class_name_Taru","$SECRET$","COLOR"],["class_name_eBike","$SECRET$","COLOR"] ],[ 1,3 ] ]
To Do List:
Will be updated as requirements change and idea is fleshed out into practice.