Salut à tous,
Voila je m'ennuiyer et j'avais du temps devant moi, alors j'ai decider de partager un peu mes connaissances pour créer des scenarios, sa servira à ceux qui debute.
Avant de faire quoi que ce soit, créer vous un dossier, nommer le comme vous le voulez, sans espaces ni caractere speciaux, dans le dossier de jeux "custom" qui se trouvent dans "script".
Dans le dossier que vous venez de créer, vous ferez un nouveau dossier pour chaque scenario. Avant de commencez il vous faut les fichiers de bases, que vous trouvez dans script/custom/deepred/jon001. Utilisez ceux de ce dossier de preference, c'est ceux qui sont le plus "par default" et qui sont approprié à la création personnelle. Copiez donc les fichiers "ai", "hub", "initialpref", "players", et "register". Mettez le tout dans le dossier de votre nouveau scenario. Maintenant, je vais vous expliquer à quoi servent PRINCIPALEMENT chacuns de ces fichiers.
Dans le fichier "register":
C'est le fichier qui va présenter le scenario au joueur:
Frontend.RegisterLevel(1, "2", "3", "4");
1: Il faut indiquer le numero du scenario, votre premier scenario sera le 500500, c'est trés important, enfin, je n'ai pas essayer de mettre 1 mais je croie pas que sa marche, l'éditeur à preciser qu'il faut commencer a 500500, donc si vous faite un 2eme scenario ce sera 500501, voila, et ainsi de suite.
2: Le chemin d'accés,
custom\\votre_sous_dossier\\le_dossier_du_scenario
===> Il y a deja le dossier de deepred, créer le votre, pour plus d'organisation, ainsi qu'une meilleur présentation in game.
3: Le titre du scenario.
4: La description du scenario.
Dans le fichier "hub" nous pouvons:
Parametrer l'objectif pour remporter la partie:
Game.SetObjective(1, 2); => En 1 on met la fonction, en 2 la variable.
Les differente fonctions:
OBJECTIVE_PAPERWEALTH_BY_DATE => Valeur de l'empire la plus élever à partir d'une certaine date definie en variable.
OBJECTIVE_PAPERWEALTH_BY_AMOUNT => Premier empire a atteindre une certaine valeur, definie en variable.
OBJECTIVE_PROFIT => Profit journalier à atteindre, definit en variable.
OBJECTIVE_SALES => Nombre de ventes à atteindre.
OBJECTIVE_FIRST_TO_BE_MAYOR => Nombre de fois élue maire.
Definir le nombre de citoyens:
if People.NumberInCity() < 1 then => En 1, on met simplement le nombre que l'on désir. Mais il faudra ensuite allez dans un autre fichier pour finaliser le parametrage. (Maximum = 2000 citoyens)
On peux aussi, définir à quels endroit ils sortiront le matin avec les parametres plus bas, mais je m'en sert pas vraiment.
Definir la date de depart (par default 1930, il faut rajouter cette ligne juste avant de definir l'objectif):
Calendar.era = ERA_1 => En 1 la date (j'ai pas essayer 1920, je sais pas ce que sa donne ^^)
En dessous de cette ligne entrez celles ci (pour 1960 par exemple):
EVENT_BusinessIntro1940(true)
EVENT_BusinessIntro1950(true)
EVENT_BusinessIntro1960(true)
Ces lignes ne sont pas obligatoire, sa marche sans, mais elles sont pas là pour rien je pense.
Dans le fichier "initialpref":
capital de depart des joueurs:
InitialValue.playermoney = 1 => Il suffit de rentrer la valeur en 1. On peut determiner cette valeur pour chaque niveau de difficulter.
Pour le nombre de gens: Défois, les personnages entrant dans le jeu sont definie dans une seconde étape, dans ce fichier, mais la maniere de les definir et assez variable, vous pouvez regardez dans les fichiers des autre scenario, il y a plein de facon, on peut donner un nombre aleatoire, ou alors choisir meticulesement le nombre de touriste, jeune, adulte, vieux, pauvre, riche, etc...
Mais pour pas trop vous lacher, je vais vous montrez la maniere que je trouve, la plus pratique, elle est simple à comprendre, précise, et rapide à régler.
Remplacer tout ce qu'il y a écrit dans le fichier par sa:
--------------------------------------------------
-------------------
-- EASY
--------------------------------------------------
-------------------
if Game.GetDifficulty() == DIFFICULTY_EASY then
InitialValue.playermoney = 8005;
-- ADULT No Age Class Prefs
People.Create(54, AGE_ADULT, CLASS_LOW, -1);
People.Create(80, AGE_ADULT, CLASS_MEDIUM, -1);
People.Create(54, AGE_ADULT, CLASS_HIGH, -1);
-- PENSIONER
--------------------------------------------------
People.Create(60, AGE_PENSIONER, CLASS_LOW, -1);
People.Create(24, AGE_PENSIONER, CLASS_MEDIUM, -1);
People.Create(46, AGE_PENSIONER, CLASS_HIGH, -1);
-- CHILD
--------------------------------------------------
----
People.Create(26, AGE_CHILD, CLASS_LOW, -1);
People.Create(50, AGE_CHILD, CLASS_MEDIUM, -1);
People.Create(20, AGE_CHILD, CLASS_HIGH, -1);
-- TOURIST
--------------------------------------------------
--
People.Create(26, AGE_TOURIST, CLASS_LOW, -1);
People.Create(24, AGE_TOURIST, CLASS_MEDIUM, -1);
People.Create(28, AGE_TOURIST, CLASS_HIGH, -1);
-- TEENAGER
--------------------------------------------------
-
People.Create(40, AGE_TEENAGER, CLASS_LOW, -1);
People.Create(30, AGE_TEENAGER, CLASS_MEDIUM, -1);
People.Create(20, AGE_TEENAGER, CLASS_HIGH, -1);
-- RANDOM
--------------------------------------------------
---
People.Create(100, -1, -1, -1);
--------------------------------------------------
-------------------
-- MEDIUM
--------------------------------------------------
-------------------
elseif Game.GetDifficulty() == DIFFICULTY_MEDIUM then
InitialValue.playermoney = 6505;
-- ADULT No Age Class Prefs
People.Create(22, AGE_ADULT, CLASS_LOW, -1);
People.Create(34, AGE_ADULT, CLASS_MEDIUM, -1);
People.Create(22, AGE_ADULT, CLASS_HIGH, -1);
-- PENSIONER
--------------------------------------------------
People.Create(25, AGE_PENSIONER, CLASS_LOW, -1);
People.Create(7, AGE_PENSIONER, CLASS_MEDIUM, -1);
People.Create(17, AGE_PENSIONER, CLASS_HIGH, -1);
-- CHILD
--------------------------------------------------
----
People.Create(8, AGE_CHILD, CLASS_LOW, -1);
People.Create(20, AGE_CHILD, CLASS_MEDIUM, -1);
People.Create(8, AGE_CHILD, CLASS_HIGH, -1);
-- TOURIST
--------------------------------------------------
--
People.Create(9, AGE_TOURIST, CLASS_LOW, -1);
People.Create(8, AGE_TOURIST, CLASS_MEDIUM, -1);
People.Create(9, AGE_TOURIST, CLASS_HIGH, -1);
-- TEENAGER
--------------------------------------------------
-
People.Create(15, AGE_TEENAGER, CLASS_LOW, -1);
People.Create(10, AGE_TEENAGER, CLASS_MEDIUM, -1);
People.Create(7, AGE_TEENAGER, CLASS_HIGH, -1);
-- RANDOM
--------------------------------------------------
---
People.Create(30, -1, -1, -1);
--------------------------------------------------
-------------------
-- HARD
--------------------------------------------------
-------------------
else
InitialValue.playermoney = 5005;
-- ADULT No Age Class Prefs
People.Create(28, AGE_ADULT, CLASS_LOW, -1);
People.Create(60, AGE_ADULT, CLASS_MEDIUM, -1);
People.Create(30, AGE_ADULT, CLASS_HIGH, -1);
-- PENSIONER
--------------------------------------------------
People.Create(20, AGE_PENSIONER, CLASS_LOW, -1);
People.Create(40, AGE_PENSIONER, CLASS_MEDIUM, -1);
People.Create(25, AGE_PENSIONER, CLASS_HIGH, -1);
-- CHILD
--------------------------------------------------
----
People.Create(10, AGE_CHILD, CLASS_LOW, -1);
People.Create(30, AGE_CHILD, CLASS_MEDIUM, -1);
People.Create(12, AGE_CHILD, CLASS_HIGH, -1);
-- TOURIST
--------------------------------------------------
--
People.Create(8, AGE_TOURIST, CLASS_LOW, -1);
People.Create(30, AGE_TOURIST, CLASS_MEDIUM, -1);
People.Create(30, AGE_TOURIST, CLASS_HIGH, -1);
-- TEENAGER
--------------------------------------------------
-
People.Create(8, AGE_TEENAGER, CLASS_LOW, -1);
People.Create(20, AGE_TEENAGER, CLASS_MEDIUM, -1);
People.Create(10, AGE_TEENAGER, CLASS_HIGH, -1);
-- RANDOM
--------------------------------------------------
---
People.Create(200, -1, -1, -1);
end;
===> Vous comprendrez comment parametrez tout sa je pense, il ne faut pas dépasser le nombre de citoyens indiquer dans le fichier "hub". En "Ramdom", on indique le nombre de citoyen qui seront créer totalement aleatoirement.
Dans le fichier "players":
On peut determiner le nombre de joueur présent dans la partie, ainsi que leur facon de jouer en fonction de la difficulter, rien d'autre a expliqer, facile à comprendre.
Voila, derniere info:
- Il faut bien recopier tout sa a la lettre, par exemple il faut faire la difference entre 1 et "1", défois il faut mettre les "", et défois non.
- Dans tout vos nom, de dossier, de scenario etc, n'utilisez pas d'espace ou de caractere special, nommer tout vos nom le plus simplement possible, du genre "scenario1", et voila, ne pas se prendre la tête avec plein de bug.
Je croie que c'est tout, je vous est dis mes connaissance perso, si vous voulez en savoir plus, cherchez et tatez par vous même, avec ces fichiers on peut faire n'importe quoi, je vous ai donner l'important.
N'ésitez pas a partagez ce que vous savez ;) svp.
Vous pouvez aussi créez vos propres maps, choisir quels tailles maximum peut faire un batiment, ainsi que sont nombre d'étages, etc, allez dans les fichiers des scenario du jeu pour comprendre comment faire certaines choses, les possibiliters sont trés grandre.
A+, j'espere que sa servira à d'autres gens.