Date: Thu, 28 Mar 2024 14:13:39 +0000 (UTC) Message-ID: <782579924.7.1711635219710@f76d3ca67338> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_6_1136606713.1711635219709" ------=_Part_6_1136606713.1711635219709 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
Adding in-game titles to Ryzom Core is a pretty simple process. In the c= ourse of this article we'll ignore the translation pipeline and modify the = language files directly.
Titles are comprised of two primary components:
The first step is to determine the unique string that will identify your= title. For example perhaps you want to be able to grant key members of you= r community a special title that lets new players know they can ask that pe= rson for help. Lets call this new title pc_master_helper. The= translation language files for titles are pretty simple. They have three c= olumns:
The third column, women_name, is optional. This is used fo= r titles in which the gender of the title-bearer affects the title content.= These files are tab-delimited files with the co= lumn names at the top. They can be edited in a piece of software such as&nb= sp;Microsoft Excel or LibreOffice Calc. You can= also use the Ryzom Translation Manager plugin.
The text may contain unicode characters, such as in the foreign langauge= files like ru, and the editor must be capable of saving UTF-8 files.
To continue with our example we would add a new title to the end of the = file like this:
title_id name women_name pc_master_helper Master Helper
If you are not using the full translation pipeline (Translation Manager,= Translation Tool and/or WebTT) then you will want to edit the wk<= /em> file and the enfile plus any other languages you ar= e presently supporting (e.g. fr, ru, de, etc.)
In addition to defining the title string(s) you will also need to create= an entry in the unblock sheet to define how these titles are unlocked and = made available to players. The primary sheet is called unblock.tit= les and is typically located incode/ryzom/common/data_levelde= sign/leveldesign/game_element/xp_table. It is not required that this s= heet exists here, just that it is somewhere in thegame_element&nbs= p;tree.
There is a huge variety of ways that a title can be unblocked:
Unlock Keyword | Description |
SkillsNeeded | Limits to skill level specified. List of skill f= amily and level combinations |
BricksNeeded | Limits to the list of bricks. Space delimited li= st of brick sheet names. |
ItemsNeeded | Limits to the items listed. Items are listed in = pairs of sheet name and quality. |
MinFames | Limits to minimum fame levels. Faction and fame = level combinations. |
MaxFames | Limits to maximum fame levels. Faction and fame = level combinations. |
CivNeeded | Limits to civ allegiances. |
CultNeeded | Limits to cult allegiances. |
CharOldness | Limits based on character age. Time in seconds s= ince 1970 (epoch.) |
CharPlayedTime | Limits based on character time played. Time in s= econds since 1970 (epoch.) |
AccountOldness | Limits based on account age. Time in seconds sin= ce 1970 (epoch.) |
AuthorRating | Limits based on Ring author ratings. |
AMRating | Limits based on Ring AM ratings. |
OrganizerRating | Limits based on Ring organizaer ratings. |
Reserved | Limits use entirely. |
Lets say that we'll going to assign a brick to allow a player to use the= new title, "Master Helper." Creating the sbrick, which shoul= d be located in code/ryzom/common/data_leveldesign/leveldesign/gam= e_element/sbrick/title is a pretty trivial matter. In the EGS con= sole you can use the learnBrickcommand to 'teach' an entity t= he brick. Assuming we made pc_master_helper.sbrick here'= s what the entry in unblock.titles would look like:
<= ;STRUCT> <!-- This value references the title_id in the translation worksheet= . --> <ATOM Name=3D"Title" Value=3D"pc_master_helper"/> <!-- This value references the sbrick sheet. --> <ATOM Name=3D"BricksNeeded" Value=3D"pc_master_helper"/> </STRUCT>
You can use pre-generated title strings like Title00066&nb=
sp;but failing that you will have to add an entry into ECharacterT=
itle in thecode/ryzom/common/src/game_share/character_title.h=
file. The title must be added to the end of the enum and the enum name must match the=
title_id.
We have opened an issue with the goal of eliminating this hard-code= d requirement.