====== Skills ======
Sur cette page je vais essayer de resumer toute mes recherches sur les skills leur génération a partir de fichiers, ce qu'il faut modifier pour en ajouter, ...
Issue corespondante sur gitlab: https://git.khaganat.net/khaganat/khanat-ressources/issues/2
Scoui
===== Nomentlature =====
Les nom des skill peuvent se décomposer en PLACEHOLDER parties.
La première lettre sera toujours la même signifiant simplement que c'est un skill.
S = Skill
La deuxieme lettre correspond au type de la compétence comme suit.
C = Craft
D = Défense
F = Fight
H = Harvest
M = Magic
===== skill_extractor =====
Pour le moment cette partie n'est qu'une version brute de ce que j’extrais directement du code source et sera à compléter/détailler par la suite, je le met comme ça pour déjà avoir une base en utilisant les nom de variable du code afin de voir un peu mieux ce qui attendu.
skill_extrator.exe génère lui même les fichiers skills.cpp et skills.h contenant l'enumeration des code des skills.
Voila ce que j'ai compris jusque la:
Les leveldesigner font leur popote dans le fichier skillscategory.xls qui sert de fichier de travail.
Ensuite ils exportent les skills qu'il veulent intégrer au jeu dans le fichier skills.csv qui est fournit à skill_extractor.exe qui en sort tous les fichiers nécessaire.
Ne reste plus qu'a recompiler ensuite.
==== Structure des fichiers (xml, txt, ... ) générés par skill_extractor.exe ====
=== Fichiers sources ===
== Fichier de travail pour les designer - skillscategory.xls ==
Ce fichier sert de brouillon où, si j'ai bien compris, les designer font leur popote sur la feuille "skills" ils ajoutent des skills dans tous les sens, préparent leurs branches de compétence puis font un tri et une version au propre de ce qu'ils veulent intégrer au jeu sur la feuille "sheet2" pour l'export au format cvs qu'utilisera ensuite skill_extractor.
= skillscategory.xls =
Il s'agit la d'un document de travail dont il n'est nul besoin de garder la forme la seule chose important c'est la feuille destiné à l'export au format csv(sheet2).
skills, la feuille dans laquelle le travail brut est effectuer, une sorte de brouillon de travail.
sheet2, la version au propre destiné à l'export au format csv.
sheet3, une liste des branches de bases.
= skills.csv =
WIP
La version final de la lsites des compétence au format csv a fournit à skill_extractor.
Elle suit le format suivant:
code_competence_complet;code_competence_sans_parent;code_competence_parent;level_max;stage_value;categorie
prenons par exemple Le combat a une main contondant ( one Hand Melee Blunt ) dont le code est SFM1B
et dont la branche parente est le combat a une main ( one Hand Melee ) avec le code SFM1.
le premier S est pour skill il est present dans toutes les compétences.
Ensuite nous avons F pour "Fight"
Ainsi toutes les compétences de combat commenceront par SF
Ensuite le M pour Mêlée donnant donc SFM pour toutes les compétence de combat de mêlée.
Ensuite le 1 pour une main donc SFM1 pour le combat de mêlée a une main (le skill parent SFM1 ici donc le parent et SFM qui a lui pour parent SF )
Et enfin le B pour blunt, SFM1B correspond donc au combat de mêlée à une main contondant.
Nous avons donc l'arbre suivant (en ajoutant d'autres branches pour que ca soit plus représentatif):
0 20 50 100 (Level)
SF - SFM (mêlée) - SFM1 (une main) - SFM1H (contondant)
| |
- SFR (Tir) - SFM2 (deux main)
Pour reprendre notre skill de combat à une main contondant SFM1H
Son code complet est donc SFM1H le code de son parent est donc SFM1 et le code sans parent H et son level max 100
le fichier csv aura donc la ligne suivante:
(visiblement le dernier paramètre est en français et non en anglais)
SFM1H;H;SFM1;100;0;Combat
Concernant stage_value je ne sais pas à quoi cela correspond pour le moment n'hesiter pas a faire savoir si vous avez une idée, actuellement tout est à 0 sauf le craft à 1.
=== Fichiers générés par skill_extractor ===
== Resultat de la fonction void writeInSheet(COFile &fo) ==
== skill_codes.txt ==
// Liste des skill et code associé sous la forme:
NormalizedSkillName Code
== .typ file ==
== .dfn file ==
== skills.pds ==
// NbSkills in enum : size Report this in database.xml
file "skills.h"
{
enum TSkill
{
BeginSkill
{
NormalizedSkillName
,
NormalizedSkillName
// note du scoui: etc... pour chaque skill
}
} EndSkill
}
==== Man ====
Create a file .typ for george contained a subset of skills
SKILL_EXTRACTOR
==== skill_extractor.cfg ====
// csv file
CsvDir
// path for the generated source files
SrcDir
// path for the generated source files
PdsDir
// path for the generated dfn
DfnDir
// path for the generated skill tree
SkillTreeDir
==== dfn, typ ====
// skill name
skillName
// code
Code
// parent skill
ParentSkill
// max skill value
MaxValue
// stage type
StageType
// main category
MainCategory
// secondary category
SecondaryCategory
===== Matériel de recherche =====
==== Liste des fichiers utiles ====
[[fr::ds:rcdstyp_skill_category|Skills category]]
[[fr:ds:rcdstyp_skillscode|skills code]]
[[fr:ds:rcdstyp_skills|Skills typ]]
[[fr:ds:rcskillcodes| Correspondance entre le code et le nom littérale de la compétence]]
[[fr:ds:rcdstyp_generic_skills|typ_generic_skills]]
[[fr:ajout_activite_peche?s[]=skill#creer_la_competencesbrick|Lien vers la partie création de la compétence de l'activité pêche]]
==== Liste des skills ====
Source: khanat-code\code\ryzom\common\src\game_share\skills.h
enum ESkills
{
SC = 0,
SCA,
SCAH,
SCAHB,
SCAHBE,
SCAHBEM,
SCAHG,
SCAHGE,
SCAHGEM,
SCAHH,
SCAHHE,
SCAHHEM,
SCAHP,
SCAHPE,
SCAHPEM,
SCAHS,
SCAHSE,
SCAHSEM,
SCAHV,
SCAHVE,
SCAHVEM,
SCAL,
SCALB,
SCALBE,
SCALBEM,
SCALG,
SCALGE,
SCALGEM,
SCALP,
SCALPE,
SCALPEM,
SCALS,
SCALSE,
SCALSEM,
SCALV,
SCALVE,
SCALVEM,
SCAM,
SCAMB,
SCAMBE,
SCAMBEM,
SCAMG,
SCAMGE,
SCAMGEM,
SCAMP,
SCAMPE,
SCAMPEM,
SCAMS,
SCAMSE,
SCAMSEM,
SCAMV,
SCAMVE,
SCAMVEM,
SCAS,
SCASB,
SCASBE,
SCASBEM,
SCASS,
SCASSE,
SCASSEM,
SCJ,
SCJA,
SCJAA,
SCJAAE,
SCJAAEM,
SCJB,
SCJBA,
SCJBAE,
SCJBAEM,
SCJD,
SCJDA,
SCJDAE,
SCJDAEM,
SCJE,
SCJEA,
SCJEAE,
SCJEAEM,
SCJP,
SCJPA,
SCJPAE,
SCJPAEM,
SCJR,
SCJRA,
SCJRAE,
SCJRAEM,
SCM,
SCM1,
SCM1A,
SCM1AE,
SCM1AEM,
SCM1D,
SCM1DE,
SCM1DEM,
SCM1M,
SCM1ME,
SCM1MEM,
SCM1P,
SCM1PE,
SCM1PEM,
SCM1S,
SCM1SE,
SCM1SEM,
SCM1T,
SCM1TE,
SCM1TEM,
SCM2,
SCM2A,
SCM2AE,
SCM2AEM,
SCM2M,
SCM2ME,
SCM2MEM,
SCM2P,
SCM2PE,
SCM2PEM,
SCM2S,
SCM2SE,
SCM2SEM,
SCMC,
SCMCA,
SCMCAE,
SCMCAEM,
SCR,
SCR1,
SCR1P,
SCR1PE,
SCR1PEM,
SCR2,
SCR2A,
SCR2AE,
SCR2AEM,
SCR2L,
SCR2LE,
SCR2LEM,
SCR2R,
SCR2RE,
SCR2REM,
SF,
SFM,
SFM1,
SFM1B,
SFM1BM,
SFM1BMM,
SFM1BS,
SFM1BSM,
SFM1P,
SFM1PS,
SFM1PSM,
SFM1S,
SFM1SA,
SFM1SAM,
SFM1SS,
SFM1SSM,
SFM2,
SFM2B,
SFM2BM,
SFM2BMM,
SFM2P,
SFM2PP,
SFM2PPM,
SFM2S,
SFM2SA,
SFM2SAM,
SFM2SS,
SFM2SSM,
SFMC,
SFMCA,
SFMCAD,
SFMCADM,
SFMCAH,
SFMCAHM,
SFR,
SFR1,
SFR1A,
SFR1AP,
SFR1APM,
SFR2,
SFR2A,
SFR2AA,
SFR2AAM,
SFR2AL,
SFR2ALM,
SFR2AR,
SFR2ARM,
SH,
SHF,
SHFD,
SHFDA,
SHFDAE,
SHFDAEM,
SHFF,
SHFFA,
SHFFAE,
SHFFAEM,
SHFJ,
SHFJA,
SHFJAE,
SHFJAEM,
SHFL,
SHFLA,
SHFLAE,
SHFLAEM,
SHFP,
SHFPA,
SHFPAE,
SHFPAEM,
SM,
SMD,
SMDA,
SMDAA,
SMDAAE,
SMDAAEM,
SMDH,
SMDHA,
SMDHAE,
SMDHAEM,
SMO,
SMOA,
SMOAA,
SMOAAE,
SMOAAEM,
SMOE,
SMOEA,
SMOEAE,
SMOEAEM,
NUM_SKILLS,
unknown,
any,
};
===== Traveaux lier aux compétences =====
[[fr:gamedesign:khanat:brick:start?s[]=sbricks|Compétences du lirri'a]]
{{tag>Tag_a_ajouter}}