====== 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 <[ ...] param 1 : create tree (yes) or no (no)\n"); if output file have .typ extension, generate .typ george file format if output file have .dfn extension, generate .dfn george file format param 3 is sheet2 of SkillCategory.xls exported in csv format Selector is category present in input file, selectors begins by '+' for or operation and by '.' for and operation the first selector must be or operation (begin by '+' character) ==== 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}}