Se connecter

Monopoly Tycoon

Sujet : Tutorial => Créer son scenario de A a Z
1
sylvain1264
Niveau 3
21 juillet 2009 à 02:54:56

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.

sylvain1264
Niveau 3
21 juillet 2009 à 02:59:21

Excusez moi pour l'orthographe, pas fait très gaffe :s.

sylvain1264
Niveau 3
21 juillet 2009 à 03:31:34

-
-
-
-
-
PRECISION IMPORTANTE:
Lorsque vous copier collez le fichier "hub", n'oubliez pas de modifier les fichiez qu'il ordonne d'importez au programme:

-- load the building and business file
C_RunScript("scripts\\maps\\1");
-- load the initialprefs file

C_RunScript("scripts\\custom\\mon_dossier\\mon_sc
enario\\initialpref.lua");

Premierement vous choisissez la map à importez, si vous en voulez une vide mettez "empty" en 1.
Secondo, entrez le bon chemin d'accés qui mene à votre "initialpref".

sylvain1264
Niveau 3
21 juillet 2009 à 03:32:59

Raaa, je suis trop fatiguer.
Si vous voulez une vide il faut mettre "empty.lua".

sylvain1264
Niveau 3
21 juillet 2009 à 13:25:28

Au niveau de la methode, utilisez celle ci elle fonctionne bien mieux:

elseif Game.GetDifficulty() == DIFFICULTY_MEDIUM then
InitialValue.playermoney = 1600;
else
InitialValue.playermoney = 1500;
end;

-- ADULT
--------------------------------------------------
----

-- Low class No Age Class (-1 = random class)

People.Create(200, AGE_ADULT, CLASS_LOW, 0);

-- Medium class

People.Create(300, AGE_ADULT, CLASS_MEDIUM, 1);

-- High class

People.Create(150, AGE_ADULT, CLASS_HIGH, 2);

-- PENSIONER
--------------------------------------------------
----

-- Low class No Age Class (-1 = random class)

People.Create(120, AGE_PENSIONER, CLASS_LOW, 3);

-- Medium class

People.Create(150, AGE_PENSIONER, CLASS_MEDIUM, 4);

-- High class

People.Create(150, AGE_PENSIONER, CLASS_HIGH, 5);

-- CHILD
--------------------------------------------------
----

-- Low class No Age Class (-1 = random class)

People.Create(150, AGE_CHILD, CLASS_LOW, 6);

-- Medium class

People.Create(250, AGE_CHILD, CLASS_MEDIUM, 7);

-- High class

People.Create(100, AGE_CHILD, CLASS_HIGH, 8);

-- TOURIST
--------------------------------------------------
----

-- Low class No Age Class (-1 = random class)

People.Create(30, AGE_TOURIST, CLASS_LOW, 9);

-- Medium class

People.Create(80, AGE_TOURIST, CLASS_MEDIUM, 10);

-- High class

People.Create(125, AGE_TOURIST, CLASS_HIGH, 11);

-- TEENAGER
--------------------------------------------------
----

-- Low class No Age Class (-1 = random class)

People.Create(90, AGE_TEENAGER, CLASS_LOW, 12);

-- Medium class

People.Create(150, AGE_TEENAGER, CLASS_MEDIUM, 13);

-- High class

People.Create(90, AGE_TEENAGER, CLASS_HIGH, 14);

Atomo
Niveau 10
22 août 2009 à 03:32:19

Quelle est la durée de vie du jeu ?
__________________________________________
Viens boire un coup avec nous, on a de l’orangina frais et bien secoué !
http://www.naturellementpulpeuse.fr/pharida

1
Sujet : Tutorial => Créer son scenario de A a Z
   Retour haut de page
Consulter la version web de cette page