EpochModTeam / Epoch

Epoch Survival Game Mode for ARMA 3
http://epochmod.com/
Other
91 stars 82 forks source link

Virtual Keys Tracking #766

Open Vampurica opened 7 years ago

Vampurica commented 7 years ago

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.

Vampurica commented 6 years ago

Still awaiting a Dialog for this.

Vampurica commented 6 years ago

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.

Vampurica commented 6 years ago

Updated to reflect current To-Do List.

Vampurica commented 6 years ago

keyButtons.zip

Made the required button icons for this task.

Vampurica commented 6 years ago

Still need some icons. Will work on them. In the meantime created a demo video of the current WIP.

https://www.youtube.com/watch?v=L7yC_zNwbZY

Vampurica commented 6 years ago

Added the rest of the required key icons to the zip above. Need to have them added to Epoch.