Système TeamSpeak du Réseau Jeux-Strategie.com Abonnez-vous à nos flux RSS Mur du Réseau Jeux-Strategie.com
 

      

Premiers pas dans la création des events

Créé le : 20 September 2004

Edition du : 26 October 2004

Auteur : Namspopof

 

 

Petite leçon pour tout comprendre sur les évents dans les jeux paradox par Franchil créateur du mod pour Victoria du même nom.


Cet article à pour but principal de vous aider à comprendre le fonctionnement des events dans Victoria, il précède une serie bien plus complete qui vous donnera à terme toutes les astuces pour créer vos scénarios ou mods.


-1- Tout d’abord, qu’est-ce qu’un évent ?

Un évent est une accumulation de codes permettant de simuler un évènement plus ou moins historique.

Pour être plus clair, cela signifie qu’avec un évent si telle ou telle condition se réalise alors telle ou telle conséquence se produira.

Mais comme la meilleure façon d’expliquer est de donner un exemple, voici comment un évent (pris au hasard) se présente :



# The Development of the Zollverein

event = {
id = 3907
random = no
country = HAN

trigger = {
event = 4622 # PRU
exists = NGF
NOT = { war = { country = NGF country = HAN } }
}

name = "EVT_3307_NAME"
desc = "EVT_3307_DESC"
style = 0

date = { day = 16 month = january year = 1862 }
offset = 30
deathdate = { day = 30 month = december year = 1920 }

action_a = {
name = "ACTIONNAME3307B" # Join the Union (Game Over)
command = { type = trigger which = 3115 } # NGF
}
action_b = {
name = "DECLINE" # Decline
command = { type = relation which = AUS value = 100 }
command = { type = relation which = PRU value = -100 }
command = { type = relation which = NGF value = -100 }
}
}



-2-Où se trouvent les évents ?

Les fichiers contenant les évents de chaque pays se trouvent dans le répertoire suivant : « Victoria/db/events ». Ensuite, en ouvrant un des fichiers évents (en utilisant le bloc-note) vous aurez la liste des évents qu’il contient.


-3-Comment se compose un évent ?

Comme vous avez pu le voir avec l’exemple ci-dessus, un évent se compose de différentes parties bien distinctes :

- un titre : intérêt purement pratique car il permet seulement de distinguer les différents évents en un clin d’œil. En effet, ses 3 lignes sont totalement inactives car elles sont précédés du symbole « # » qui permet de désactiver tous les caractères placés derrière lui (utile pour des commentaires ou des pense-bête).
Le titre d’un évent se présente de la manière suivante :

# The Development of the Zollverein


- un numéro d’id (identification) et un code de 3 lettres désignant le pays concerné par l’évent : attention l’id de chaque évent doit être unique (sinon vous aurez un bug), et le code de 3 lettres qui est (en général) l’abréviation du nom du pays (exemple la France sera FRA, l’Allemagne GER, etc) correspond au pays affecté par l’évent. Vous pouvez trouver une liste de ces codes-pays dans le fichier « country » se trouvant dans le répertoire « victoria/db ».
Ces deux éléments se présentent de la manière suivante :

event = {
id = 3907
random = no
country = HAN

- le trigger : il détermine les conditions devant être réalisées pour que l’évent se déclenche (si ce n’est pas le cas, alors l’évent ne se déclenchera pas). C’est un élément essentiel des évents dans la pratique, même si en principe il n’est pas indispensable puisqu’il est en effet possible de ne faire dépendre le déclenchement d’un évent que d’une simple date (sans trigger donc), mais dans ce cas l’évent se déclenchera systématiquement à la date voulue et ce quelle que soit la situation du pays (ce qui conduit à des aberrations historiques ou logiques).
Il existe de nombreux triggers, mais ceux-ci sont totalement combinables (donc l’évent peut exiger que plusieurs conditions pour que le trigger soit rempli.
Le trigger se présente de la manière suivante :

trigger = {
event = 4622 # PRU
exists = NGF
NOT = { war = { country = NGF country = HAN } }
}


- le nom et la description de l’évent : là c’est tout simple, vous avez le titre, puis la description de l’évent. Notez que dans les évents originaux des jeux Paradox vous trouverez toujours quelque chose du genre : EVT_3307_NAME , c’est à cause des traductions (ce code permet le renvoi à la traduction en français du texte). En dessous, vous trouverez toujours une ligne désignant juste le style graphique du cadre annonçant l’évent.
Ces éléments se présentent de la manière suivante :

name = "EVT_3307_NAME"
desc = "EVT_3307_DESC"
style = 0

- les dates : en premier il y a la date à partir de laquelle l’évent peut se déclencher, et en deuxième il y a la date limite à laquelle l’évent peut se produire. Les dates sont extrêmement importantes pour les évents, elles sont mêmes obligatoires pour que l’évent fonctionne (sauf dans un certain cas dont je vous parlerais plus bas).
Par contre, entre les dates de début et de fin, il y a presque toujours une ligne offset suivie d’un nombre, elle détermine la périodicité à laquelle les triggers de l’évent sont vérifiés. Ainsi si le nombre suivant l’offset est 1 cela signifie que la vérification des conditions de déclenchement de l’évent se fera tous les jours ; si c’était 15 ce serait tous les 15 jours, et si c’était 30 ce serait tous les 30 jours.
Les dates se présentent de la manière suivante :

date = { day = 16 month = january year = 1862 }
offset = 30
deathdate = { day = 30 month = december year = 1920 }

- les commands: il peut exister différentes conséquences pour chaque évent, ainsi le pays concerné par un évent peut avoir à choisir entre 1 choix A, ou 1 choix B (voir un choix C, etc). Quand le pays concerné est géré par l’ordinateur alors le choix A a beaucoup plus de chance de se réaliser que le choix B (ou même que le B et le C réunis), cependant les probabilités exactes pour le choix A restent discutées (la majorité penche pour 75 % ou 80 % de probabilité pour le choix A, et le reste à partager entre les autres probabilités, toutefois il semble que dans Victoria l’ia ait plus de marge de manœuvre dans ce choix en matière d’évents).
Toutefois, il n’est pas rare de trouver des évents n’offrant aucun choix, dans ce cas le pays concerné par l’évent est obligé d’accepter le choix A.
Pour chaque choix, il existe une ligne « name » après laquelle figure le texte correspondant au choix.
En dessous de la ligne « name » se trouve les fameuses lignes command à proprement parler ; en fait ce sont la ou les conséquences de l’évent.

La partie des commands se présente de la manière suivante (notez que dans le cas présent deux choix sont possibles):

action_a = {
name = "ACTIONNAME3307B" # Join the Union (Game Over)
command = { type = trigger which = 3115 } # NGF
}
action_b = {
name = "DECLINE" # Decline
command = { type = relation which = AUS value = 100 }
command = { type = relation which = PRU value = -100 }
command = { type = relation which = NGF value = -100 }
}
}


-4-Quels sont les principaux triggers ?

Il existe de nombreux triggers, mais en voici quelques’un que vous rencontrerez régulièrement :

- event = x x étant ici l’id de l’évent devant s’être produit pour que ce trigger soit rempli
- exists = y y étant ici le code à 3 lettres du pays concerné, ce trigger exige que ce pays existe pour que l’évent puisse se déclencher.
- owned = { province = z data = y } ou control = { province = z data = y } exigeant respectivement que la province (dont l’id est désigné par z) soit possédée ou soit contrôlée par le pays y pour que le trigger soit rempli.
- alliance = { country =y country = y’ } dans ce cas l’évent se déclenche si les deux pays y et y’ sont alliés.
- war = { country =y country = y’ } dans ce cas l’évent se déclenche si les deux pays y et y’ sont en guerre.
- random = w il s’agit d’un trigger très spécial car le nombre w qui le suit fixe la probabilité que le trigger soit rempli à chaque fois que les conditions de l’évent sont revérifiées grâce aux cycle de l’offset se trouvant entre les dates de début et de fin de l’évent.

NB : il existe trois trigger un peu spéciaux qui servent en fait à combiner les autres triggers entre eux. Ce sont « AND » (qui permet de regrouper deux conditions en une seule ) «OR » (qui permet à l’évent de se déclencher si une des conditions encadrées par le OR se réalise) et « NOT » (qui permet au trigger d’être rempli quand le trigger encadré par ce not ne se réalise pas)
Attention, ces triggers très spéciaux doivent toujours encadrer un trigger normal (avec des « {« et « } » ), et donc ils doivent se présenter de la manière suivante :

NOT = {
war = { country = NGF country = HAN }
}


-5-Quels sont les principales commands ?

Il existe de nombreux triggers, mais en voici quelques’une que vous rencontrerez régulièrement :

- command = { type = relation which = y value = v } cette command permet d’améliorer de tant de points (v correspond au nombre de point, mais pour détériorer les relations diplomatiques il suffit de mettre - devant v) les relations du pays concerné par l’évent avec le pays désigné par y.
- command = { type = treasury value = u } elle augmente le trésor du pays concerné par l’évent de tant de livres (montant déterminé par la valeur u), mais peut être négatif si u est précédé de –
- command = { type = war which = y } dans ce cas le pays concerné par l’évent déclare la guerre au pays y.
- command = { type = peace which = y } dans ce cas le pays concerné par l’évent conclut la paix avec le pays y.
- command = { type = secedeprovince which = y value = z } avec cette command le pays concerné par l’évent cède la province dont z est l’id au pays y

NB : la command « command = { type = trigger which = x } » est un peu spécial, elle fait référence à un autre event dont l’id est x, mais dans ce cas et uniquement dans ce cas le deuxième évent (celui dont l’id est x) peut fonctionner sans date et sans trigger.
Ce deuxième évent peut donc se présenter ainsi :


# réaction russe aux représailles turques contre les orthodoxes
event = {
id = 359854
random = no
country = RUS

name = "Réaction russe aux représailles turques contre les orthodoxes dans les balkans."
desc = "Pour répondre à l'agitation orthodoxe dans les balkans, les turques décide de lancer des représailles à leur encontre. "
style = 0

action_a = {
name = "C'est la guerre!" #
command = {}
}
}


-6-Existe-t-il un liste de tous les triggers et commandes existant ?


Oui, il existe une liste quasi-complète des triggers et commands pour Victoria, et elle se trouve dans le fichier « event commands » se trouvant lui-même dans le répertoire « victoria/db ».


-7-Comment ajouter un nouvel event ?

Vous avez créé un nouvel évent et vous voulez l’intégrer à votre jeu victoria, pour cela il vous suffit de le rajouter dans un fichier évent déjà existant (que vous trouverez dans le répertoire « victoria/db/event ».
Par contre, pour ajouter un nouveau fichier évent il va falloir créer un nouveau fichier de type texte dans le répertoire « event » (se trouvant dans le répertoire « Victoria/db » et dans ce nouveau fichier vous mettez vos évents, mais il faudra alors ajouter le nom de ce nouveau fichier évent en créant une nouvelle ligne à son nom dans le fichier de type text « events » se trouvant dans le répertoire « Victoria/db » (attention ne pas confondre avec le répertoire « events » se trouvant lui aussi dans le répertoire « db »).
Toutefois, dans ce cas ce nouveau fichier évent ne fonctionnera que pour les nouvelles parties crées (donc pas pour les anciennes parties sauvegardées).

-8-Conseils pour la création d’évent :

- Avant toute chose, pour vous familiariser avec les évents, leur structure et leur fonctionnement , je ne saurais trop vous conseiller de bien examiner les évents que vous avez bien appris à connaître au cours de vos parties.

- Surtout, quand vous créez des évents, utilisez le copier/coller en reprennant les éléments vous intéressant dans d’autres évents déjà existant. C’est beaucoup plus simple et rapide, et cela vous évitera de commettre trop d’erreur à vos début.

- Assurez-vous que les id que vous donnez à vos évents ne sont pas déjà utilisés pour un autre évent (sinon il va y avoir des bugs…)

- Pensez bien à définir le pays que vous souhaitez viser avec votre évent.

- Faites des titres courts pour vos évents (sinon ça déborde) et ne faites pas des descriptions à rallonge (car la place est aussi limitée).

- Songez bien à toutes les situations possibles quand vous définissez les triggers, car les triggers sont selon moi les éléments les plus importants d’un évent, mais malheureusement c’est souvent la partie la moins soignée par beaucoup de créateurs d’évents…

- En cas de bug lors du lancement d’une partie après que vous ayez ajouté des évents, pensez à noter l’id de l’évent défectueux, puis dans cet évent vérifiez le numéro d’id de l’évent ainsi que vos dates, et assurez-vous que vous n’avez pas oublié de bien fermer vos « } ».




Voilà, je pense qu’avec ces explications vous comprenez enfin ce qu’est un évent, et surtout comment il fonctionne.
Cependant, créer des évents est un art qui s’acquiert avec l’expérience, alors ne vous découragez pas si vos premiers évents sont mal fichus ou carrément bugués, c’est arrivé à tout le monde au début .

Bonne chance !


Suite de l'apprentissage des events ( prochainement...)

Retour au sommaire des articles

 

Réseau Gamers et Stratégie. Association Loi 1901 à capacité juridique.
©1998-2017 Réseau Gamers et Stratégie - Tous droits réservés - Mentions légales