mirror of
https://github.com/1dot13/gamedir.git
synced 2026-07-22 13:40:25 +02:00
- Added new Files and Folders which are used for VFS and Multiplayer
- Updated XML files in Data\TableData - Moved Document files to new folder named "Docs" git-svn-id: https://ja2svn.mooo.com/source/ja2_v1.13_data@1134 4f8fa57e-7814-0410-bad4-adc449f26b7c
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
Changes in 1.12:
|
||||
- fixed the history record added when you give Carmen one of the terrorist's heads
|
||||
- Shank will no longer automatically be added to your party if you talk to him long enough
|
||||
- fixed problems with MERCs not being hireable if you withheld money so long that they quit, then
|
||||
you paid your balance
|
||||
- fixed problem if at the last stage of IMP character creation (confirming payment) you hit 'cancel'
|
||||
(which resulted in no custom character being created, but at the same time preventing you from
|
||||
creating another)
|
||||
- prevented player from switching to the map screen if a list of items to pick up is being displayed
|
||||
- fixed problem with the code to handle mercs surrendering to the enemy that would occur if you had
|
||||
already played through the first surrender situation (Alma prison) and then had more mercs
|
||||
surrender (which is supposed to trigger the interrogation scene with Deidranna, Eliot, and Joe)
|
||||
- fixed history record for when characters die
|
||||
- fixed the infamous "burst bug" which prevented some bullets from hitting a character if they
|
||||
were standing when hit
|
||||
|
||||
Changes in 1.11:
|
||||
- fixed bug in which breath damage could cause values to wrap from very low to high values. (Typically
|
||||
seen with stun grenades – the player throws a stun grenade at an enemy who is knocked down, but gets
|
||||
up the next turn raring to go.)
|
||||
- fixed a bug that would temporarily disable interrupts
|
||||
- fixed two bugs related to stealing a weapon from an enemy, that would cause the hourglass cursor to appear
|
||||
and not go away
|
||||
- fixed a bug in which the chance to hit someone was incorrectly calculated when aiming at a specific
|
||||
body part. A character that had partial cover behind the edge of a roof (e.g. only their head visible)
|
||||
might have been impossible to hit due to a bullet-path check which was incorrectly
|
||||
targeted at their chest.
|
||||
@@ -0,0 +1,60 @@
|
||||
*****************************************************
|
||||
** JA2 1.13 Multiplayer - Version 1.1 - 01/06/2009 **
|
||||
*****************************************************
|
||||
|
||||
Bugs Fixed
|
||||
==========
|
||||
Fixed saving of ja2_mp.ini which leads to wrong initializing of HOST values. Now there is only ONE ja2_mp.ini inside the "Profiles/UserProfile" folder
|
||||
Name Corruption in the turn bar
|
||||
Turn bar was not updated on the clients, if Enemy got back its turn after interrupt
|
||||
The file "transfer_rules.txt" did not allow "Umlaute"
|
||||
CTD in Tactical when "Enforce Maximum AI" was selected in CO-OP after first enemy was killed
|
||||
Possible CTD when client disconnects from game
|
||||
When server is running in 640x480 and select NIV in host screen, it did not check if NIV is allowed and it was initialized with NIV even NIV is not allowed in 640x480
|
||||
If you quit a MP game and start another one at night time it was still daytime in tactical placement GUI
|
||||
Valid starting times (eg: 12:00, 00:30) was outputted as invalid times in the HOST screen
|
||||
Added KIT_BAG to ja2_mp.ini when saving
|
||||
Fixed teams not initialised properly when starting a new MP game
|
||||
|
||||
Changes / Improvements
|
||||
======================
|
||||
Some VFS improvements
|
||||
Player Name can now only have 11 characters
|
||||
Changed client colors in radarmap. Now they can be seen more easily and are more different
|
||||
Disabled special features (merc capturing, ...) that could occur in a CO-OP game in tactical for multiplayer
|
||||
Removed adding messages to the file log
|
||||
Changed some MP message colors
|
||||
Renamed "Client #n - 'PLAYER NAME'" from the turn bar to "#n - 'PLAYER NAME'"
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
|
||||
*****************************************************
|
||||
** JA2 1.13 Multiplayer - Version 1.0 - 19/05/2009 **
|
||||
*****************************************************
|
||||
|
||||
Bugs Fixed
|
||||
==========
|
||||
Crash bug when shooting out windows or certain types of a missed shot
|
||||
Fixed some tactical resources and buttons not being deallocated properly when disconnected from in-game to the main menu
|
||||
Sometimes losing port settings from the JA2_mp.ini
|
||||
Chat : Send to allies did sometimes not work for the second team in Team Deathmatch
|
||||
Chat : Crash when entering a long uninteruptted string into chat
|
||||
|
||||
Changes / Improvements
|
||||
======================
|
||||
Chat : Changed chatlog text colour
|
||||
Chat : Added PGUP - PGDN - END - HOME to chat log
|
||||
Chat : Added Copy / Paste between Windows and the Game's text boxes (useful for copy/pase of Server IP and/or Port)
|
||||
Chat : Added scrolling left and right of text to textboxes
|
||||
Extra translation and Other language MP Buttons Graphics
|
||||
TEMPORARY : Max mercs has been limited to 5 until the bugs with 6 are resolved
|
||||
|
||||
New Features
|
||||
============
|
||||
New Option for CO-Op : Maximum Enemy AIs ( always spawn 32 enemies on a map )
|
||||
Version Checking : Clients and Server must be the same version to play
|
||||
File Transfer : This great new feature means that servers are able to host mods ( modified gamedata for balance or maps ). For more on this feature see File_Transfer.txt
|
||||
New Connecting screen : Incorporates file downloading progress and version checking as well as timeouts
|
||||
Virtual File System : This powerful system makes it much easier to install mods, and a great way for us to store seperate settings per server
|
||||
@@ -0,0 +1,68 @@
|
||||
File Transfer
|
||||
=============
|
||||
|
||||
This document explains how to set up and use the new File Transfer feature in JA2MP.
|
||||
|
||||
First off let it be clear that downloading files from a server will NOT overwrite any of your game files
|
||||
or data. Files downloaded from any server are stored in a VFS profile (a folder) that is unique for that server.
|
||||
This means that you can play on many different servers that have different settings and never have to worry
|
||||
about your game data getting messed up.
|
||||
|
||||
|
||||
1. Security
|
||||
-----------
|
||||
|
||||
File transfer has two levels of built in security:
|
||||
1) As a client connects to a server that wants to send files, they will be asked if they want
|
||||
to proceed or disconnect without downloading anything.
|
||||
2) Both the client and the server use the new VFS system by Birdflu. Clients can configure this
|
||||
to filter out files / folders / filetypes they do not wish to recieve (transfer_rules.txt). If the server sends any of
|
||||
these files they are ignored.
|
||||
|
||||
2. Setting up Files to send as a Server
|
||||
---------------------------------------
|
||||
|
||||
To send files to a client, you need to set up a mod folder in your GAME DIRECTORY (in short: GAMEDIR) ( this is where your ja2.exe's
|
||||
are stored ). You can call this mod folder whatever you like, "My Server" for example.
|
||||
Per default, this folder is in your "GAMEDIR\MULTIPLAYER\Servers\My Server", but can also be in another location inside your GAMEDIR folder.
|
||||
|
||||
Once you have created a folder (the folder "GAMEDIR\MULTIPLAYER\Servers\My Server" should already be created), you can add the modified game files to it in the
|
||||
relative places they would be stored under GAMEDIR\Data\ or GAMEDIR\Data-1.13\. For example put modified TABLEDATA xml files
|
||||
into "GAMEDIR\MULTIPLAYER\Servers\My Server\TABLEDATA\" and the "ja2_Options.ini" inside the "GAMEDIR\MULTIPLAYER\Servers\My Server\" folder.
|
||||
|
||||
Once this is done you can host a game. Run the game and do the following on the HOST options screen:
|
||||
1) Check the Sync MP Clients Directory option.
|
||||
2) Enter 'MULTIPLAYER/Servers/My Server' or the name of your mod folder (do not start with the GAMEDIR folder), without the quotes (''). If your path is nested,
|
||||
seperate the folder names with a forwardslash /. Eg 'MULTIPLAYER/Servers/My Server'
|
||||
3) Host the game!
|
||||
4) NOTE: Even if you do not want to send files to the client ("Sync. MP Clients Directory" option is unchecked)
|
||||
the folder entered in "MP Sync directory" has to exist on the server, because this folder will be used in the first place for initializing files.
|
||||
If the specificed files are not found in this folder it will look in the "Data-1.13" folder and then in the "Data" folder.
|
||||
|
||||
You will host the game as normal, now when clients connect you will see a blue progress bar behind their
|
||||
name in the player list (in the Strategy Screen) so you can see how long they have left on thier downloads.
|
||||
|
||||
NOTE: you cannot START GAME until all players have finished downloading
|
||||
|
||||
3. Using File Transfer as a client
|
||||
----------------------------------
|
||||
|
||||
Before you connect to the server you can set up the file "transfer_rules.txt" inside your GAMEDIR. There you can set any files to the "ignore list" which you would not receive from the server. Normally you do not need to change this file for the client. (The server is responsible for sending only valid files to the clients).
|
||||
|
||||
When you connect to a server that wishes to send you files, you will be asked if you wish to continue:
|
||||
1) If you click YES, you will start downloading files from the server.
|
||||
2) If you click NO, you will leave the game and go back to the Join screen.
|
||||
|
||||
When you are downloading files from the server you will see a progress bar so you can estimate remaining
|
||||
time, you will also see the names of the files you are downloading. During this time you can also chat
|
||||
with other players using the "Y" key.
|
||||
|
||||
Once all files are downloaded you will progress to the Strategy Screen where you can see if other players are
|
||||
still downloading and how long they have left.
|
||||
|
||||
NOTE: The downloaded files are automatically stored on the client in the "GAMEDIR\MULTIPLAYER\Servers\Unique_Server_Id" folder.
|
||||
Unique_Server_id will be a unique string (e.g: 4MWZX-5WUKF-BXJSQ-MWFCW-FDM5E) which identifies each different server.
|
||||
The folder "GAMEDIR\MULTIPLAYER\Servers\Unique_Server_Id" will always be created (if not exists) even if the server does not send any files.
|
||||
This folder "GAMEDIR\MULTIPLAYER\Servers\Unique_Server_Id" will be used in the first place for initializing GameDir files.
|
||||
If the specificed files are not found in this folder it will look in the "Data-1.13" folder and then in the "Data" folder.
|
||||
|
||||
@@ -0,0 +1,98 @@
|
||||
Jagged Alliance 2 Multiplayer w/ UI patch
|
||||
=========================================
|
||||
|
||||
Credits
|
||||
-------
|
||||
JA2MP by:
|
||||
Haydent
|
||||
RoWa21
|
||||
|
||||
UI Patch by:
|
||||
Zathras
|
||||
|
||||
About the UI patch
|
||||
------------------
|
||||
The UI patch is designed to improve the process of creating and joining games in JA2MP.
|
||||
Instead of each player needing to manipulate thier .ini file, these options can now be set
|
||||
from in-game hosting and joining screens. In Addition the process of finishing a game and restarting
|
||||
has been streamlined.
|
||||
|
||||
|
||||
|
||||
|
||||
How to Use
|
||||
----------
|
||||
1. Hosting the game
|
||||
a. Click "Multiplayer Game" on the main menu.
|
||||
b. Click "Host" on the Join screen.
|
||||
c. Configure Game Type and game options, click "Start".
|
||||
d. The game will switch to the map screen.
|
||||
e. Before the game is "Started" (laptop unlocked) :
|
||||
- you can change the starting sector by moving the dropzone in the airspace view
|
||||
- new players can connect to the game
|
||||
- players can change thier starting edge ( click the Button with the Compass ICON )
|
||||
- players can change thier team in the same manner ( click the Team Button )
|
||||
f. Host clicks "Start Game" to Unlock the laptop. At this point:
|
||||
- the game settings are locked
|
||||
- players can hire mercs (unless random mercs is selected in which case they are automatically hired for the players)
|
||||
- players can click "Ready"
|
||||
g. When all players are ready, the game will commence.
|
||||
|
||||
2. Joining the Game
|
||||
a. Click "Multiplayer Game" on the main menu.
|
||||
b. Type in your player name.
|
||||
c. Type in the server ip address and port.
|
||||
d. Click "Join".
|
||||
e. The Game will switch to the map screen.
|
||||
f. While the game has not yet "Started" (laptop unlocked) :
|
||||
- players can change thier starting edge ( drop down by clicking IN the column next to thier name )
|
||||
- players can change thier team in the same manner ( IF TDM or CO-OP )
|
||||
g. Host clicks "Start Game" to Unlock the laptop. At this point:
|
||||
- players can hire mercs (unless random mercs is selected in which case they are automatically hired for the players)
|
||||
- players can click "Ready"
|
||||
h. When all players are ready, the game will commence.
|
||||
|
||||
3. Ending the Game
|
||||
When the battle is over in a sector, after a few seconds the Scoreboard will be displayed.
|
||||
If you wish to play another game, press "Continue" to re-join (or re-host) the server. Otherwise
|
||||
you can press "Cancel" to return to the main menu.
|
||||
|
||||
4. In-game chat
|
||||
Press the 'y' key to open ingame chat.
|
||||
|
||||
Changelog
|
||||
---------
|
||||
Build 20090319
|
||||
- Added hits, misses, accuracy to scoreboard
|
||||
- Added in-game chat with history
|
||||
- Added more options from the ini to the host screen, Use NIV and Enable civillians
|
||||
- Fixed Clients connecting at the same time controlling the wrong client
|
||||
- Fixed Team Deathmatch
|
||||
- Fixed Refreshing the player list after a player changes team / edge
|
||||
- AI is always on for Co-op now
|
||||
- There is now always a scoreboard in Co-op even when you lose.
|
||||
- scores on the Co-op scoreboard have been fixed for all deaths including bleeding
|
||||
- Start Game button now only appears for server
|
||||
- Fixed cleaning up game resources on disconnection
|
||||
- Disabled the old 1,2,3,4 keys for connecting / disconnecting
|
||||
- Fixed victory conditions for all game modes
|
||||
- Fixed players names getting copied into TeamTurnString each game resulting in multiple names
|
||||
- Fixed Assertion bug caused by the game sometimes calling SetCurrentWorldSector more than once before placement of mercs
|
||||
- Fixed a bug that was possible when merging items such as M14 and EBR stock on mapscreen.
|
||||
- Fixed bug with game starting while a player was in chat, closes chat window when game is starting
|
||||
- Fixed bug with game starting while a player was in the options screen, if the player leaves the mapscreen while ready, they are set to unready
|
||||
- Team and Spawn direction popups changed to use buttons to open/close them
|
||||
- Disabled players joining after the laptop has been unlocked, as they would be out of state with any hires
|
||||
|
||||
Build 20081224
|
||||
- Fixed players disconnecting mid-game
|
||||
- Added Host Options screen to allow in-game editing of the ini file options
|
||||
- Added Join screen for in-game entry of the server details
|
||||
- Added player list / server settings and ready / start button to the map screen
|
||||
- Added ability to change starting sector, starting edge and team once connected to the server,
|
||||
but before the laptop is unlocked.
|
||||
- Added ability to randomise starting edge and/or mercs of all players
|
||||
- Fix : Allow the game to "start" if less than the max number of players connected
|
||||
- Added Scoreboard at the end of a match to tidy up end of game and restarting.
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,342 @@
|
||||
|
||||
------------- Howto setup the Virtual File System (VFS) -------------
|
||||
|
||||
v 1.0 by BirdFlu
|
||||
|
||||
***********************************
|
||||
I. Introduction
|
||||
***********************************
|
||||
The Virtual File System (VFS) manages file handling and offers a unified
|
||||
view on the file system at game runtime. All files are accessible through
|
||||
a path inside the VFS. During the setup, files and directories can be mapped
|
||||
to a specified location in the VFS independent of its real location on the
|
||||
hard disc. Additionally to the mapping of real files and directories, also
|
||||
file archives can be mapped. Only SLF and uncompressed 7z archives are
|
||||
supported right now.
|
||||
|
||||
The current layout of the VFS is based on the original Ja2 game data directory,
|
||||
i.e. the data directory is the root directory of the VFS. Further, there are
|
||||
directories that are defined by the original SLF archives (Anims, BigItems,
|
||||
Sounds etc.). These archives build the basic layer and on top of that come the
|
||||
files from the Data directory. So, whenever a file is accessed (with path/filename
|
||||
e.g. Tilesets/0/smguns.sti), the game looks in the Data directory first, and when
|
||||
the file cannot be found there, it looks in the according archive (tilesets.slf
|
||||
in this case).
|
||||
|
||||
The 1.13 Mod adds another layer on top, which is the Data-1.13 directory that
|
||||
behaves in the same way as the Data directory. That is, when a file is accessed,
|
||||
the game looks in the Data-1.13 directory first and only then continues with the
|
||||
previously described steps.
|
||||
|
||||
The VFS extends this system even further. It externalizes the definition and
|
||||
configuration of these layers or profiles (as they are called in the VFS jargon)
|
||||
and allows for an unlimited number of them. Additionally the 7z file (uncompressed)
|
||||
archive format is supported. Now the order of inclusion of the profiles and the
|
||||
actual files and directories lie in the hands of the user. Thus a proper
|
||||
configuration of the VFS is required.
|
||||
|
||||
***********************************
|
||||
II. Configuration
|
||||
***********************************
|
||||
The configuration of the VFS is done in an ini file (vfs_config.ini). You can
|
||||
specify the filename in ja2.ini in key VFS_CONFIG_INI (section : Ja2 Settings).
|
||||
If you don't do it, it defaults to vfs_config.ini.
|
||||
|
||||
But lets define some basic terms(bottom to top), first.
|
||||
|
||||
II.1 Glossary
|
||||
===================================
|
||||
Location : A location can either be a real directory or a file archive. All files
|
||||
inside these loactions are mapped into the VFS (recursively, i.e. contents of
|
||||
subdirectories are also mapped). The user can specify the path inside the VFS
|
||||
into which the external files are mapped.
|
||||
|
||||
Profile : A profile is a named collection of locations. It is encouraged to define
|
||||
a new profile for every mod and it is also encouraged to keep the data of this
|
||||
mod "together". That is, the profile can define a profile root directory to
|
||||
which the location directories are appended during initialization. (Keeping the
|
||||
profile root empty gives you the possibility to stick together directories from
|
||||
very different places on your hard disc. A better solution is to define a new
|
||||
profile for non-related directories).
|
||||
|
||||
Profile List (Stack) : Finally, the VFS is build from a list of profiles, where
|
||||
the list is proccessed from left to right, i.e. the leftmost will be included
|
||||
first and the rightmost profile will be included last (on the top of the stack).
|
||||
During file access, the profiles are processed in reverse inclusion order. A
|
||||
file search will start in the rightmost profile and will continue to the left.
|
||||
|
||||
Profile mode : a profile can be defined as read-only (default) or as read-write.
|
||||
You cannot write to a read-only profile. As there are some files that have to
|
||||
be written (temporary file, savegames, logs, etc.) you have to define at least
|
||||
one profile as read-write. Usually this should be the top (rightmost) profile.
|
||||
Otherwise you could end up blocking a writable file with a read-only file.
|
||||
|
||||
II.2 Basic configuration
|
||||
===================================
|
||||
Lets start with a basic configuration.
|
||||
|
||||
II.2.1 main section
|
||||
-----------------------------------
|
||||
The ini file start with
|
||||
[vfs_config]
|
||||
PROFILES = profile1, profile2, profile3, ...
|
||||
|
||||
The value of the key PROFILES is a list of profile names. For every element
|
||||
(profile) in this list another section must exist that has the format
|
||||
[PROFILE_$name], where $name is a value from the profile list
|
||||
(e.g. [PROFILE_profile1].
|
||||
|
||||
II.2.2 profiles
|
||||
-----------------------------------
|
||||
[PROFILE_profile1]
|
||||
NAME = Some Arbitrary Name (probably a mod's Name)
|
||||
LOCATIONS = location1, location2, loaction 3
|
||||
PROFILE_ROOT = Profiles\mod1
|
||||
WRITE = TRUE
|
||||
|
||||
Each profile definition must have a NAME key and also a LOCATIONS key. The value
|
||||
of NAME can be used inside the game to access the data of the specified profile.
|
||||
The value of LOCATIONS is again a list of location names. Additionally a
|
||||
PROFILE_ROOT path can be specified that will be prepended to all paths defined
|
||||
in the location sections. A profile can have the WRITE property (default is FALSE).
|
||||
At least one such profile must exist, as this is the place where temporary files
|
||||
will be saved. Usually the top profile will have the WRITE property.
|
||||
|
||||
Obviously a file must be saved in a real directory, so one of the locations is
|
||||
supposed to have the TYPE = DIRECTORY. This directory should be mapped as root
|
||||
(MOUNT_POINT = ). The most simple case is to define only one location with the
|
||||
described properties. Thus the written temporary files will be saved in one place,
|
||||
instead of being scattered over multiple unrelated directories.
|
||||
|
||||
II.2.2 locations
|
||||
-----------------------------------
|
||||
[LOC_location1]
|
||||
TYPE = DIRECTORY
|
||||
PATH =
|
||||
MOUNT_POINT =
|
||||
|
||||
[LOC_location2]
|
||||
TYPE = LIBRARY
|
||||
PATH = profiles/libs/archive.slf
|
||||
VFS_PATH = archive.slf
|
||||
MOUNT_POINT =
|
||||
|
||||
A location section name is build from an element from the LOCATIONS list of the
|
||||
profile that is prepended with LOC_, e.g. [LOC_location1]. For every location the
|
||||
TYPE has to be specified and can either be DIRECTORY or LIBRARY.
|
||||
|
||||
For a DIRECTORY you can specify the PATH (directory) and the MOUNT_POINT. The
|
||||
PATH value is appended to the PROFILE_ROOT path and decided where your files will
|
||||
be located in the real file system. With the MOUNT_POINT value you can influence
|
||||
the location of your files in the virtual file system. So, real path
|
||||
PROFILE_ROOT/PATH/local_dir/file.name
|
||||
will be mapped to
|
||||
/MOUNT_POINT/local_dir/file.name
|
||||
(accessible by just MOUNT_POINT/local_dir/file.name)
|
||||
|
||||
A library is similar to a directory from the initialization point of view. But,
|
||||
additionally, it has another key, VFS_PATH, which is similar to the PATH (file)
|
||||
value. If the PATH value is not defined (= empty) or the specified file cannot
|
||||
be opened, then the VFS_PATH value is evaluated. In order for this to work, you
|
||||
have to have processed a location that contains the specified files. While this
|
||||
is a more complex configuration process, it gives you the possibility to integrate
|
||||
archives that are located in another archive themselves.
|
||||
|
||||
II.3 Use Cases
|
||||
===================================
|
||||
|
||||
II.3.1 main game files
|
||||
-----------------------------------
|
||||
The main use case is the setup of the main files for the game.
|
||||
|
||||
##############
|
||||
[vfs_config]
|
||||
PROFILES = Libs, Data
|
||||
##############
|
||||
[PROFILE_Libs]
|
||||
NAME = Ja2 game libraries
|
||||
LOCATIONS = Anims, ..., Faces, ..., Tilesets, ...
|
||||
PROFILE_ROOT = Data
|
||||
|
||||
[PROFILE_Data]
|
||||
NAME = Ja2 game files
|
||||
LOCATIONS = Files
|
||||
PROFILE_ROOT = Data
|
||||
##############
|
||||
[LOC_Files]
|
||||
TYPE = DIRECTORY
|
||||
PATH =
|
||||
MOUNT_POINT =
|
||||
##############
|
||||
[LOC_Anims]
|
||||
TYPE = LIBRARY
|
||||
PATH = anims.slf
|
||||
MOUNT_POINT =
|
||||
|
||||
[...]
|
||||
|
||||
[LOC_Tilesets]
|
||||
TYPE = LIBRARY
|
||||
PATH = tilesets.slf
|
||||
MOUNT_POINT =
|
||||
|
||||
##############
|
||||
|
||||
So, basically, you have the profile that specifies the game libraries as described
|
||||
in (I.). Following is the profile with the Data directory. Since you need to have
|
||||
a writable profile, we define a user profile that will contain only user data (the
|
||||
other profiles contain only game data).
|
||||
|
||||
[vfs_config]
|
||||
PROFILES = Libs, Data, UserProfile
|
||||
|
||||
[Libs and Data as before]
|
||||
|
||||
[PROFILE_UserProfile]
|
||||
NAME = User files
|
||||
LOCATIONS =
|
||||
PROFILE_ROOT = Profiles\UserProfile
|
||||
WRITE = true
|
||||
|
||||
If LOCATIONS is empty and WRITE is set to TRUE, then a writable directory in
|
||||
PROFILE_ROOT will be initialized automatically.
|
||||
|
||||
II.3.2 "1.13 Mod"
|
||||
-----------------------------------
|
||||
Adding a mod is simple. We take the 1.13 Mod as an example.
|
||||
|
||||
[vfs_config]
|
||||
PROFILES = Libs, Data, v113, UserProfile
|
||||
|
||||
[Libs, Data and UserProfile as before]
|
||||
|
||||
[PROFILE_v113]
|
||||
NAME = v1.13
|
||||
LOCATIONS = datav113_dir
|
||||
PROFILE_ROOT =
|
||||
|
||||
[LOC_datav113_dir]
|
||||
TYPE = DIRECTORY
|
||||
PATH = Data-1.13
|
||||
MOUNT_POINT =
|
||||
|
||||
The new profile for the Mod 1.13 is inserted into the profile list after the
|
||||
Data profile, but before UserProfile. So, whenever a file is accessed, it
|
||||
will be taken from the "Data-1.13" directory (when it exists there of course).
|
||||
If not, the game will search in the following profiles ("Data", then "Libs").
|
||||
|
||||
II.3.3 User Mods
|
||||
-----------------------------------
|
||||
Instead of adding game data, the user can also add or replace the writable
|
||||
profile (user profile). Thus, he can try out a new mod (that uses the VFS system)
|
||||
without risking to overwite his savegames (and other temporary files).
|
||||
|
||||
#################
|
||||
[vfs_config]
|
||||
PROFILE = Libs, Data, v113, ExperimentalMod, UserProfile_exp
|
||||
|
||||
#################
|
||||
[Libs, Data, v113 as before]
|
||||
|
||||
#################
|
||||
[ExperimentalMod as in II.3.2]
|
||||
[PROFILE_ExperimentalMod]
|
||||
NAME = Files for experimental Mod
|
||||
LOCATIONS = ExpMod_Libs, ExpMod_Files
|
||||
PROFILE_ROOT = Profiles/ExpMod
|
||||
|
||||
[LOC_ExpMod_Libs]
|
||||
TYPE = LIBRARY
|
||||
PATH = exp_mod.7z
|
||||
MOUNT_POINT = Tabledata
|
||||
|
||||
[LOC_ExpMod_Files]
|
||||
TYPE = DIRECTORY
|
||||
PATH = ModFiles
|
||||
MOUNT_POINT = Interface
|
||||
|
||||
#################
|
||||
[PROFILE_UserProfile_exp]
|
||||
NAME = User file for ExpMod
|
||||
LOCATIONS =
|
||||
PROFILE_ROOT = Profiles\User_ExpMod
|
||||
WRITE = true
|
||||
|
||||
(NOTE: the user directories have to exist, even if they are empty)
|
||||
|
||||
Since you can define the filenames for you VFS configuration file in ja2.ini,
|
||||
you can create a couple of vfs config file and switch between then fairly
|
||||
easy
|
||||
|
||||
############# ja2.ini
|
||||
[Ja2 Settings]
|
||||
;VFS_CONFIG_INI = vfs_config.main.ini
|
||||
;VFS_CONFIG_INI = vfs_config.my_mod.ini
|
||||
VFS_CONFIG_INI = vfs_config.ExpMod.ini
|
||||
|
||||
-----------------------------------------------
|
||||
|
||||
//**********************************
|
||||
Combine INIs:
|
||||
//**********************************
|
||||
|
||||
It is possible now to use += in an ini file, which appends a value to a previously set entry, making it a essentially list. Additionally,
|
||||
in ja2.ini you can specify a list of ini files instead of only one file. Of course only one value works too, so everything is optional.
|
||||
|
||||
This gives us the possibility to define an ini file for every mod (or to combine inis as we like, as long as the ordering is the same.) I'll give you an example.
|
||||
|
||||
--------- vfs_config.vanilla.ini ---------
|
||||
[vfs_config]
|
||||
PROFILES = SlfLibs, Vanilla, UserProf
|
||||
|
||||
[PROFILE_SlfLibs]
|
||||
....
|
||||
|
||||
[PROFILE_Vanilla]
|
||||
....
|
||||
|
||||
[LOC_...]
|
||||
....
|
||||
....
|
||||
--------- ---------
|
||||
|
||||
--------- vfs_config.v113.ini ---------
|
||||
[vfs_config]
|
||||
PROFILES += v113
|
||||
|
||||
[PROFILE_v113]
|
||||
NAME = v1.13
|
||||
LOCATIONS = datav113_dir
|
||||
PROFILE_ROOT =
|
||||
|
||||
[LOC_datav113_dir]
|
||||
TYPE = DIRECTORY
|
||||
PATH = Data-1.13
|
||||
MOUNT_POINT =
|
||||
--------- ---------
|
||||
|
||||
--------- vfs_config.user.ini ---------
|
||||
[vfs_config]
|
||||
PROFILES += UserProf
|
||||
|
||||
[PROFILE_UserProf]
|
||||
NAME = Player Profile
|
||||
LOCATIONS =
|
||||
PROFILE_ROOT = Profiles\UserProfile
|
||||
WRITE = true
|
||||
--------- ---------
|
||||
|
||||
So, in ja2.ini we would have the following entry for Vanille
|
||||
|
||||
VFS_CONFIG_INI = vfs_config.vanilla.ini, vfs_config.user.ini
|
||||
|
||||
and for v1.13
|
||||
|
||||
VFS_CONFIG_INI = vfs_config.vanilla.ini, vfs_config.v113.ini, vfs_config.user.ini
|
||||
|
||||
and for any other mod
|
||||
|
||||
VFS_CONFIG_INI = vfs_config.vanilla.ini, vfs_config.v113.ini, mod1.ini, mod2.ini, vfs_config.user.ini
|
||||
|
||||
Of course, the user.ini can be adjusted to every mod, so that savegames are not mixed. So, if you (=inexperienced user) want to add a small mod, you don't have to struggle with a big incomprehensible ini, but instead just take the provided mod ini (which will work if all files are in default directories) and add it to the ini list in ja2.ini.
|
||||
|
||||
Reference in New Issue
Block a user