Search the Community
Showing results for tags 'char'.
Found 2 results
-
My new mod may change the way you play DayZ, simply put this mod enables all players on the server to get the choice of using multiple characters (without having to buy multiple copies of ArmA2:CO :P). I've set up a prototype on my test server with a 3 character selection dialog (see picture below), this may be improved but the base mechanics itself are working great so far. So when you join a server after the loading screen you see a dialog like this: you have to chose one of 3 character slots every time you log into the server, each character slot is completely independent (different humanity and other stats, like different players). the slot count isn't static but I though 3 is a good start, admins can change the character selection dialog to a different number of slots, if you want you can have 100 slots for each player. :D This mod can't be archived with a little script, but I've tried to made the installation as easy as possible. For an overview this is what I've done to get this mod working: Database schema: added one extra column "Slot" to the "character_data" table (the database stays fully compatible to the default HiveExt.dll) Custom HiveExt.dll to add a new method for loading all character data of a player (CHILD:100), also a small change to the current load player method to support multiple characters (CHILD:101). I could have made completely new methods for the login process, but this way only a very few modifications are necessary in the Hive code and the script files, but this also means my modified HiveExt.dll is not compatible with servers who don't have the "Slot" column in the "character_data" table one new script for the server and a small change in the server_playerLogin.sqf (to send the slot id to the hive) for the client files I've changed the player monitor to inject the character selection before the login process (see player_monitor.fsm changes below) To visualize the changes made to the login process, take a look at this state machine diagram of the player_monitor.fsm (changes are highlighted in green): Download latest version for Epoch 1.0.5 and 1.0.5.1: http://dl.bintray.com/vos/dayz/multichar1.3.3.zip Older versions are available here (for other Epoch version since 1.0.3.1). Installation instructions I've tried to make the installation as easy as possible and still do it the proper way and change the files like the Epoch devs would do it. Some steps could be changed and the code simply be put in the init.sqf instead of changing the Epoch files, if you have some experience with ArmA script you can do that but if you follow my instructions it is the best way to do it like this in my opinion. Pre-requirements: a PBO manager and basic knowledge of ArmA script editing. Note: I've added all changed files to the download package, so you can see how they should look like with the changes applied. If you didn't make any custom changes to those files you can also just use them instead of following my instructions to change the files below. run the SQL query to add the "Slot" column to the "Character_DATA" table in your Epoch database: ALTER TABLE `Character_DATA` ADD COLUMN `Slot` TINYINT UNSIGNED NOT NULL DEFAULT 1 AFTER `PlayerUID`; copy the file HiveExt.dll to the @DayZ_Epoch_Server folder (overwrite the Epoch file) Note: the source code of the HiveExt with my changes can be found here. unpack your dayz_server.pbo and copy the file server_playerCharacters.sqf to the compile sub-folder open the file compile\server_playerLogin.sqf, around line 47 replace _key = format["CHILD:101:%1:%2:%3:",_playerID,dayZ_instance,_playerName]; with _key = format["CHILD:101:%1:%2:%3:%4:",_playerID,dayZ_instance,_playerName,_this select 2]; open the file init\server_functions.sqf and add the line server_playerCharacters = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerCharacters.sqf"; after the line 9 BIS_Effects_Burn = {}; repack your dayz_server.pbo unpack your mission.pbo (e.g. DayZ_Epoch_11.Chernarus.pbo) if necessary and copy the file RscDisplayCharacterSelect.hpp into the mission folder, open the file description.ext and add this line at the very bottom: #include "RscDisplayCharacterSelect.hpp" unpack your dayz_code.pbo (on your PC @DayZ_Epoch\addons\dayz_code.pbo) and copy the files init\publicEH.sqf and system\player_monitor.sqf to a "custom" folder in your mission folder (if you don't already have custom versions of those files), change the references to those files in your init.sqf to something like "custom\publicEH.sqf" and "custom\player_monitor.sqf" copy my custom file player_monitor.fsm to your "custom" folder (the changes in this file are not easy to reproduce, so it may be best you use my custom file instead of adding the changes yourself) open the file publicEH.sqf and add this line above the line starting with "PVDZE_plr_Login" (around line 54): "PVDZE_plr_Characters" addPublicVariableEventHandler {_id = (_this select 1) spawn server_playerCharacters}; open the file player_monitor.sqf and change the path to my custom player_monitor.fsm so that the line looks something like this: _id = [] execFSM "custom\player_monitor.fsm"; repack your mission.pbo if necessary That's it! Yeah I know not the easiest mod to install, but that is DayZ/Epoch.. I Hope I didn't forget anything, but I think that is all. :P Restrictions (since version 1.1) I've added two restrictions to minimize the possibilities for players to abuse quick character switching: character switch timeout - how often a player can switch to another living character (in minutes), the last used slot is always available and the player can also spawn fresh if he has a dead character or never used slot minimum distance to dead bodies of the same player - calculates the distance to previously died characters of the player (in meters), this will prevent the player from "stacking" two or more characters at the same place (like a base) and switch to another character if one dies There are global config variables for changing the default settings for the restrictions: DZE_CharacterSwitchTimeout = 30; // default 30 minutes timeout (0 to disable) DZE_CharacterMinDistance = 1000; // default 1000 meters min distance (0 to disable) You can add those variables to the config section in the init.sqf. Here a screenshot how it may look like with active restrictions: Disabled character slots are displayed with a red disabled button (cannot be pressed) with info text on the button. If one or more restrictions apply there is also be an info text displayed at the bottom of the screen. Note: at the moment there is no automatic timer or anything to count the timeout down, you have to manually press the refresh button to refresh the character data and last login time. Suggestions and ideas welcome. Also for the character selection dialog what do you like to see on there?
- 377 replies
-
- character selection
- char selection
-
(and 7 more)
Tagged with:
-
Is there any way to perform full backup of the database file copying? My server is Vilayer Host, and want to make a local backup because I'm having trouble on the host. Downloading the file '' dump.rdb '' could only recover player character. Unable to recover buildings on the map. How to back up the constructions on the map?