grebiere a écrit:Tuto pour apprendre à insérer une nouvelle course dans la DB, tutorial crée par grebiere et édité par Mista-Flo
1) D’abord il faut placer les fichiers cds et zces dans C:\Program Files\Cyanide\Pro Cycling Manager - Saison 2012\CM_Stages et je conseille fortement de les noter de la même façon que Cyanide, à savoir : [catégorie]_[nom de la course]_[n° etape]_[année]. Remarque : le n° de l’étape doit contenir deux chiffres.
2) Ensuite ouvrir la db et aller dans la table STA_race, ajouter une ligne et remplir les colonnes de la façon suivante :
- IDrace : noter un ID de course pas encore utilisé et inférieur à 1000.
- les trois colonnes suivantes : nom et abréviation de la course
- gene_sz_filename : noter [catégorie]_[nom de la course] du fichier dans CM_stages (Très important : le nom de cette colonne doit être le nom exact des deux fichiers présent dans CM_Stages)
- Sélectionner ensuite le pays (s'aider du STA_country pour l'ID du pays) et la catégorie de la course (voir STA_UCI_class) : 1_xx pour les classiques et 2_xx pour les courses à étapes
- fkIDfirst_stage & fkIDlast_stage : IDstage = (1000*stage_number) + ID race
- gene_f_popularity : vous pouvez modifier la popularité de votre course
- nombre_étapes : noter le nombre de jours de course
- gene_b_isactive : cocher ou mettre à 1 pour activer la course
- CONSTANT : nom de la course abrégé
- nom_fichier_classification_xml : noter la catégorie de la course, ne pas oublier .xml, vous pouvez créer votre propre fichier classification (c'est à dire règlement d'argent, bonifications etc... pour votre course dans le dossier suivant : C:\Program Files\Cyanide\Pro Cycling Manager - Saison 2012\Xml\Classifications
- fkIDtype_tour : voir STA_type_tour, choisir le type de course
- Remarque : vous pouvez remplir la colonne gene_ilist_fkIDteam (voir DYN_team) pour définir les équipes participants à la course dans les Mode Tour, Etape, Classique.
Les autres colonnes ne sont pas à remplir.]
3) Pour finir aller dans STA_stages pour ajouter les étapes.
- IDstage : il faut respecter la règle suivante IDstage = (1000*stage_number) + ID race
Exemple pour 8è étape du TDF : IDstage = 1000*8 + 25 = 8025- Remplir l'IDrace noté auparavant dans le STA_race
- fkIDregion : pour la région de l’étape (voir STA_region)
- Entrer le jour, le mois et le numéro de l’étape
- fkIDclimat : choisir le climat (voir STA_climat)
Exemple :
Dans CM_stages : c2_gpartois_2012.cds et zces
dans STA_race : - IDrace : 412
- Nom_course et nom_course_sanslicence : GP de l’Artois
- Abbreviation : gpartois
- Gene_sz_filename : gpartois
- fkIDUCI_class : cont12
- nb_etapes : 1
- CONSTANT : gpartois
- Nom_fichier_classification_xml : cont_12.xml
- fkIDtype_tour : CLAS_PLVAL
dans STA_stages : - IDstage : 1412
- IDrace : GP de l’Artois
- jour_etape : 25
- Mois : 3
- Numero_etape : 1
Si vous souhaitez ajouter un variante, lisez ce tuto : http://pcmfrance.com/forum/viewtopic.php?f=96&t=945
table STA_region (Database) :Toute les autres colonnes ne doivent pas être modifiés, contentez vous de copier les données d'une région déjà pré-existante.
- IDregion : adresse de la région = (ID_country du pays * 100) + 1
- CONSTANT : Nom de l'entité de la région
- gene_strID_name : ID faisant référence au nom de la région traduite dans toute les langues, il faut créer une entrée dans le STA_localized_string du Local.cdb avec le même ID.
- fkIDcountry : Pays rattaché à la région, voir STA_country pour les différents ID.
- fkIDclimat : Climat de la région, voir STA_climat pour les différents ID.
- gene_b_europa : localisation de la région en Europe ou non, 0 = non, 1 = oui.
- gene_i_weight : importance de la région, 0 = région inactif, 1 = active.
- gene_i_pos_x : position du point indiquant la région en pixel suivant l'axe x des abscisses (s'aider à l'aide de la région la plus proche de celle qu'on veut créer)
- gene_i_pos_y : position du point indiquant la région en pixel suivant l'axe y des ordonnés (s'aider à l'aide de la région la plus proche de celle qu'on veut créer)
- gene_f_chance_tour gene_f_chance_mountain gene_f_chance_tt gene_f_chance_sprint gene_f_chance_ardennaise gene_f_chance_flandrienne gene_f_chance_flat : 7 variables correspondant aux chances d'avoir un type de coureur plutôt qu'un autre, attention le total des 7 valeurs doit être égal à 100.
Geoffrey a écrit:table DYN_cyclist :
Voici les valeurs à rentrer dans la colonne gene_i_champion_bit:
- Champion du Monde: 128
- Champion du Monde ITT: 64
- Champion national: 32
- Champion national ITT: 16
- Ancien Champion du Monde: 8
- Ancien Champion du Monde ITT: 4
- Ancien Champion National: 2
- Ancien Champion National ITT: 1
Après il y a des cumuls, exemple: un champion national qui est aussi champion du monde, ça donne: 32+128=160). Idem pour les anciens champions, il y a d'autres valeurs...
Il y a également une petite chose à retenir, quand le total dépasse 128 pour un coureur, vous devriez voir apparaître un nombre négatif, dans ce cas, vous devez ajouter 256 au nombre pour retrouver une valeur normal.
jomo023 a écrit:0) Téléchargez le FullEditor.
1) Copiez votre db dans le dossier *******\FullEditor2009\Databases.
2) Lancez le programme en double-cliquant sur PCM2008_CDB_to_XML.exe
3) Importez votre db: choisissez-la dans Folder in (ici, carriere), entrez un nom dans Folder out (ici, quickpatche) et cliquez sur import ******(le nom de votre db).
4) Cherchez votre dossier dans Folder in, choisissez la Table STA_equipment_marques et cliquez sur Load.
5) Ici, soit vous cherchez la marque du matériel que vous voulez insérer si elle existe et vous notez son ID (p.ex. pour insérer un casque Catlike, je retiens l'ID 21),
soit vous créer une marque comme ceci:
- IDequipment_marques, vous suivez l'ordre ou alors vous insérez un ID, comme ici je place l'ID60;
- fkIDtype_equipment, 1 pour les cadres, 2 pour les roues, 3 pour les casques;
- gene_sz_name, le nom de la marque;- gene_tgaID-logo: pour avoir le logo de la marque, vous devez également modifier le fichier Local.cd lié à votre db, la table STA_TGA. Vous insérer les données dedans et retenez l'ID de votre photo.- gene_strID_localized_url: entrez l'ID de l'information que vous voulez voir apparaitre, ID présente dans la table STA_localized_string du Local.cdb.
6) N'oubliez pas de cliquer sur Save, autrement vous perdriez tout vos changements!
7) Chargez maintenant la Table STA_equipment.
Allez tout en bas pour créer un nouvel ID (vous pouvez classer la 1ère colonne en cliquant sur le nom de celle-ci), et c'est parti:- IDequipment: entrez le nombre suivant le dernier;
- fkIDtype_equipment: comme les marques, 1 pour cadre, 2 pour roue et 3 pour casque;
- gene_sz_name: le nom apparaissant en jeu;
- gene_sz_nomenclature: le nom des fichiers nif et dds de votre matériel. Attention aux accents, espaces et symboles, qui sont à éviter;
- gene_b_is_track: 1 si votre matériel est pour la piste, 0 si pas;
- gene_b_is_time_trial: 1 si votre matériel est prévu pour un chrono, 0 si pas;
- gene_b_is_lenticulaire: 1 pour oui, 0 pour non;
- gene_b_is_jante_haute: idem;
- les 3 colonnes suivantes, les fkIDdeltacharac_***(mountain, clm et flat) correspondent au bonus accordé au matériel; entrez un nombre entre 1 et 15 (1 pour un "bonus" de -0,35 et 15 pour 0,35);- les 3 suivantes, fkIDstars_***(mountain, clm et flat) correspondent au nombre d'étoiles lors de la sélection de votre matériel; entrez un nombre de 1 (pour 0 étoile) à 13 (6 étoiles);
- gene_f_unlock_cost: le prix de votre matériel; o pour gratuit;
- gene_b_is_locked: 1 pour qu'il soit bloqué (et donc à acheter), 0 pour non;- fkIDequipment_unlock: la colonne la plus complexe à comprendre!! Ici vous mettez l'ID du matériel qui débloquera le votre. Dans mon exemple, pour que le casque de Chavanel soit disponible, il faut avoir acheté celui de Boonen, donc je met l'ID 5008. S'il s'agit du premier matériel de la marque, mettez 0, sinon rien ne sera disponible.- CONSTANT: ne mettez rien;
- gene_tgaID_photo: comme pour le matériel, L'id correspond à l'ID de la photo présente dans la table STA_TGA du Local.cdb;
- fkIDequipment_marques: mettez l'ID de la marque créée auparavant, ou celle existante;
- les 2 dernières colonnes, je ne sais toujours pas à quoi elles servent, donc mettez 1, ça fonctionne ainsi.
9) Cliquez sur Save, entrez un nom pour votre nouvelle db et cliquez sur export ***** (nom de votre dossier). Votre db se trouve dans le dossier *******\FullEditor2009\Databases.
BONUS: attribuer du matériel spécifique à une équipe non controlée:
1) On va directement ouvrir la table STA_equipment, et créer un nouvel ID.
2) Vous pouvez (devez même!) recopier toute la ligne du matériel existant que vous voulez attribuer; dans mon exemple, les casques QuickStep.
3) les points différents sont pour l'ID de la photo, pas utile donc mettez 5001,
et pour le fkIDequipment_marques: ne mettez pas l'ID de la marque correspondante (dans ce cas, la marque BBB a l'ID 46) mais mettez soit un ID ne correspondant à rien, soit un ID correspondant à un autre type de matériel (l'ID 7 correspond à la marque de cadre Giant!).
4) Cliquez sur Save.
5) Ouvrez le DYN_team, et dans les colonnes fkIDequipment_marques_******(roue, cadre et helmet), mettez l'IDequipment_marques que vous avez mis avant (dans mon exemple, 7 pour les casques).
6) Sauvez et exportez votre db comme précédemment.
S'il y a un problème, vérifier surtout les noms introduits dans gene_sz_nomenclature et la colonne fkIDequipment_unlock; ce sont souvent celles-là qui posent problème.
Bon jeu
Mathieu69 a écrit:J'ai envie de partager ce que je sais (ou suppose savoir) sur la manière dont pcm génère les nouveaux coureurs et sur les différentes parties modifiables qui rentrent en jeu. Je vais rajouter au passage les réfléxions (purement personelle) qu'ont pu m'inspirer les heures passer à essayer de tripatouiller ces composantes du jeu. Petite précision, je n'ai pas pcm2012, et donc tout est basé sur mon expérience de pcm2011 (et des précédants), mais d'après ce que j'ai vu de ci de là, il me semble que le système n'a pas changé pour le 2012.
Je trouve que cet aspect du jeu est souvent sous estimé par les créateurs de base de donnée (et par Cyanide), et il est pour moi essentiel dans le plaisir que je prends à jouer des longues carrières.
Par exemple, une db dans laquelle les tout meilleurs en montagne ont 80 et où 70 est une note moyenne voir assez basse en plaine ne devrait pas pouvoir générer des coureurs atteignant 85 en Mo après quelques années ou des sprinteurs qui même une fois atteint les 83 en Sp ne dépasse pas les 67 en plaine. Et comme les notes max des coureurs du debut sont générées à partir du même mécanisme, des fois il suffit de quelques moi de progression (pour peu qu'on ai mis une progression un peu rapide) pour qu'une notation finement ajustée deviennt bancale ....
(plusieurs fois j'ai joué des carrière où en quelques mois un type avait 84 en Val alors que personne d'autre dépassait 81, que mes jeunes recrus avaient entre 50 et 55 de plaine alors que les plus mauvais coureurs des equipes conti avaient au moins 60 ...)
D'ailleurs, je trouve un peu dommage que même avec les paramètres d'origine, la génération des nouveaux coureurs ne permette pas de garder une certaine stabilité dans les notations (les grimpeurs générés sont très mauvais en plaine, alors qu'initialement, la plus part des très bons grimpeurs ont autour de 70 en plaine, pareil pour les sprinteurs et leur note de plaine et les puncheurs deviennent tous très endurants ...). Il devrait pourtant bien être possible de faire tourner le sytème de génération/progression des coureurs pendant 5 ou 10 ans et de regarder si l'aspect global de la notation est conservée afin d'ajuster les paramtères.
Bon, je vais arrêter de me plaindre pour passer aux choses sérieuse. Il y a deux éléments essentiels lors de la génération de nouveaux coureurs :
- les fichiers GamePlay\YoungRiderCarac\TypeRider_xxx.xml
7 fichiers .xml (+le regen.xml) qui ne sont pas encodé dans le .cdb (et donc modifiable avec seulement le bloc note, ou autre éditeur) mais sauvegardés là où le jeu est installé. Il y a un fichier pour chaque "catégorie" de coureur que l'on peut retrouver dans le jeu (tour, grimpeur, clm, flandrienne, ardennaise, sprint, plat/baroudeur).
-la table STA_region.xml (dans pcm2010, la table correspondate s'appelait STA_newrider_area)
C'est une table du fichier .cdb (et qu'il faut donc extraire, avec le FullEditor par exemple).
A partir de ça, on peut plus ou moins deviner le fonctionnement global de la génération des nouveaux coureurs.
La table STA_region.xml determine le nombre de jeunes coureurs à générer dans une region (qui correspon a une "zone de scoutage") donnée à partir de la valeur de la colone gene_i_weight. Dans pcm2010, deux colonnes (gene_i_min(max)_new_rider) indiquaient explicitement le minimum et le maximum de jeunes coureurs que devait contenir chaque "zone de scoutage".
Un point relativement important à ce stade, c'est que ce n'est pas le nombre de coureurs générés chaque année, mais le nombre de coureurs que doit contenir la zone qui est fixé dans la base de donnée. Ainsi, la nombre de coureurs générés chaque année dans une zone va dépendre plus du nombre de coureurs recrutés dans cette zone que de la taille fixée dans la db. La taille determine grosso modo le nombre de coureurs qui vont partir (et donc être remplacé par des nouveaux) sans être recrutés.
Ensuite, dans chaque region est défini les probabilités pour un nouveau coureur d'avoir un potentiel donné =1,2,3,4,5,6,7,8 (Attention, il y a un décallage : gene_f_chance_potN = chance d'avoir un coureur potentiel N+1) ainsi que les probabilités du type du nouveau coureur (tour, montagne, clm, .... ). En pratique, cela permet par exemple de régler que les zones belges auront plus de chance de générer des des flandriens et les zones espagnoles des grimpeurs (ce qui est fait dans la db de base).
Une fois qu'un nouveu coureur a été généré et que son type et son potentiel ont été défini, il reste à lui attribuer ses notes intiales, ses notes maximales et son nom/prénom. Le fichier regen.xml contient la liste des noms/prénoms possibles pour chaque region.
Pour les notes, c'est le fichiers TypeRider_xxx.xml, où xxx est le type du coureur à généré, qui va rentrer en jeu. Petite détail oublié jusque là, c'est l'age du coureur généré, qui peut être 18,19,20 ou 21 ans (la manière dont est généré l'age n'est pas très claire, sûrement un tirage uniforme sur une plage de dates de naissance possibles).
Ensuite, pour chaque age, il y a 8 plages de valeur (les valeurs que vont pouvoir prendre les caractéristiques) qui sont définies (par exemple : 50-53, 54-57, 58-61, ... 77-79). Puis pour chaque potentiel et chaque caractéristique, les plages de valeurs se voient atribuer différentes probabilités.
Ainsi, avec les paramètres d'origine sur pcm2011, un coureur grimpeur de potentiel 8 et généré à 21 ans aura pour sa note de montagne :
2% de chance d'avoir entre 54 57
8% de chance d'avoir entre 58 61
20% de chance d'avoir entre 62 65
40% de chance d'avoir entre 66 69
20% de chance d'avoir entre 70 73
8% de chance d'avoir entre 74 76
2% de chance d'avoir entre 77 79
Pour les notes maximum le processus est semblable, d'ailleurs tellement semblable que les plages de valeur pour les notes max ne sont pas définies indépendemment de l'age ....
Pour reprendre notre exemple du grimpeur potentiel 8, mais cette fois sur sa note maximal de vallon, on a d'origine :
25% de chance d'avoir entre 75 et 78
65% de chance d'avoir entre 79 et 82
10% de chance d'avoir entre 83 et 85
Petit point les fichiers YoungRiderCarac : 8 potentiels * 7 types * 13 carac * 8 plages de valeur * 2 = 11 648 probabilités ! (sans compter les 560 réglages pour les plages de valeur)
Maintenant qu'on en est là, autant parler aussi de la génération des notes max pour les coureurs initialement présent dans la db. La subtilité supplémentaire vient du fait que le type du coureur n'est pas défini a priori, et le jeu ne sait donc pas quel TypeRider_xxx.xml utiliser. C'est là qu'intervient la table STA_type_rider.xml (présente dans le .cdb). Cette table fixe la manière dont est calculé la moyenne d'un coureur. En pratique, il y a une moyenne pour chaque type, et on a par exemple :
Moyenne tour = 0.3*Rec+0.55*Mo+0.15*clm
Moyenne grimpeur = 0.1*Acc+0.8*Mon+0.1*Res
....
Il me semble qu'à partir de là, quand on lance une carrière, le jeu calcul la moyenne de chaque type pour les coureurs, et leur attribut le type (et le moyenne associée) où la valeur est la plus grande.
Une fois le type défini, le TypeRider_xxx.xml permet de définir les notes max de tous les coureurs. Par contre, j'ai des gros doutes sur ce qui se passe quand la note max tirée est inférieure à la note initiale, puisqu'il arrive que certains coureurs se retrouvent avec 85 en note max quelque part même si l'on a modifié les fichiers YoungRiderCarac de sorte à ce que ça soit impossible ... Ce phènomène est assez embêtant quand on veut modifier les notation de manière globale, en imposant par exemple que les meilleurs grimpeurs ne dépassent pas 83 en Mo.
Bon, je crois que je vais m'arrêter là pour le moment. Si certains veulent se lancer dans les modifs du YoungRiderCarac, je pourrais essayer de donner des conseils plus précis.
Médé33 a écrit:Tutoriel pour PCM - Ajout de palmarès
Vous avez besoin de Fast Editor, nettement plus simple d'utilisation pour le palmarès que tous les autres éditeurs.
Il est disponible ici : http://www.pcmfasteditor.com/pcmfasteditor/wiki/
Après avoir ouvert la base de données, rendez vous dans la table DYN_Palmares.
Le DYN_palmares est composé de huit colonnes !
L'Id_palmares : C'est l'identifiant du palmarès que vous allez rentré, l'ID s'incrémente de un en un, il ne peut y avoir deux ID possédant le même nombre.
fkID_palmares_cyclist : elle fait le lien avec le DYN_palmares_cyclist. Mettez l'ID_palmares_cyclist correspondant au cycliste concerné par la ligne de palmarès. (Attention, je parles bien du DYN_palmares_cyclist et non du DYN_cyclist)
Important : Si vous utilisez Fast Editor, vous devez chercher dans la liste proposée. En tapant le nom du coureur, l'outil recherche de la liste se met en place et vous trouverez le coureur plus facilement.
fkID_palmares_team : Clef étrangère de l'ID stocké dans la table DYN_palmares_team, elle correspond ainsi au nom de l'équipe où était le coureur à l'année de sa performance, sachez toutefois que ce champs est facultatif.
fkID_race : C'est l'ID de la course concernée, disponible dans le STA_race.
Important : Si vous utilisez Fast Editor, il y a là aussi une liste.
value_i_year : Ce champ correspond à l'année où le coureur a effectué cette performance.
value_i_rank : C'est la place du coureur pour cette performance. 1 pour 1er, 2 pour 2ème, 10 pour 10ème...
fkID_palmares_type : C'est le type du palmarès : 1 pour General_temps (le classement général final) ; 5 pour le classement d'une étape ; 4 pour General_jeune (le classement du meilleur jeune final) ; 3 pour General_mountain (le classement du meilleur grimpeur final) ; 2 pour General_points (le classement du meilleur sprinteur final). Pour les courses d'un jour (classiques ou championnat), vous devez mettre "General_Temps"
Important : Si vous utilisez Fast Editor, il y a la aussi une liste
valeur : sert uniquement pour le classement d'une étape : cela sert à indiquer le numéro de l'étape. Il faut mettre 0 pour le reste (classement général, du meilleur jeune...).
Exemple : indiquer que Contador a remporté le Tour de France 2009
ID_palmares : 1 (un nombre pas pris, en l'occurence vous aurez une grille vide au départ, donc mettre 1 et augmenter de 1 à chaque fois)
ID_palmares_cyclist : 121 (l'ID_palmares_cyclist de Contador dans le DYN_palmarès_cyclist)
Id_palmares_team : 0
ID_race : 25 (l'ID_race du Tour de France dans le STA_race)
Année : 2009
value_i_rank : 1 puisque Contador était premier
ID_palmares_type : 1 puisqu'il s'agit du classement général final (au temps)
valeur : 0 puisqu'il ne s'agit pas d'une étape.
Quelques conseils et remarques :
-Je vous conseille d'utiliser CQ Ranking, le site le plus complet et le plus pratique.
-Pour indiquer qu'un coureur était porteur du maillot de leader sur une étape donnée, il faut mettre 5 en ID_palmares_type, remplir la colonne valeur avec le numéro de l'étape concernée et mettre 0 dans la colonne value_i_rank
Comment faire si un coureur n'apparait pas dans le DYN_palmares_cyclist ?
Vous devez pour cela créer cet ancien coureur dans la table DYN_palmares_cyclist en lui donnant un ID non attribué.
Ce tutoriel est voué à se développer au fur et à mesure de vos questions et remarques.
Répartir les équipes sur les courses:
(pas sur) la table dyn_team_race.
IDteam_race -> ID de l'inscription. Une par evennement donc pas de doublon dans cette case
fkIDteam -> Tu mets le numéro correspondant à l'équipe que tu veux inscrire
fkIDrace -> Tu mets le numéro de l'épreuve où tu veux que l'équipe participe
fkIDinvitation state -> j'ai que des numéros de 2 à 10 qui correspondent aux différents statut. Tu trouveras leur signification dans la table STA_invitation_state.
Dans ma db, j'ai
2 = demande de wild card
3 = accépté
4 = rejeté
5 = pas interessé
7 = demande d'invitation
8 = invité
9 = non invité
10 = forcé
"STA_calendar" correspond à :
1 FRANCE
2 ESPAGNE
3 ITALIE-SUISSE
4 BENELUX
5 ALL-AUT
6 PORTUGAL
7 OTHER
8 AMERIQUE_NORD
9 AMERIQUE_SUD
10 SCANDINAVIE
11 UK
12 EUROPE_EST
13 ASIE
14 EUROPE_SUD-EST