Comment créer des mods pour Aground Zero

Ce guide expliquera comment créer des mods pour Aground Zero et les télécharger sur le Steam Workshop.. Cela inclut des exemples de mods, conseils et outils pour vous aider à démarrer le modding!

Votre premier module

Pour créer un nouveau mod, trouvez d’abord le répertoire d’installation d’Aground Zero (sur Steam, vous pouvez faire un clic droit sur Aground Zero dans votre bibliothèque, Gérer->Parcourir les fichiers locaux). Dans le données/mods dossier, créer un nouveau dossier. Dans ce nouveau dossier, créez un nouveau fichier texte appelé “mod.xml”, puis édite ce fichier – un éditeur de texte avec coloration syntaxique XML est préférable (bloc-notes++ c'est un bon modèle léger).

À l'intérieur de mod.xml dossier, colle ça:

<?version XML ="1.0" encodage="utf-8" ?>
    <données>
    <nom>Mon premier module</nom>
    <description>Ne fait rien ENCORE.</description>
    <auteur>Moi!</auteur>
    <version>0.1.0</version>
    <initialisation>
    Votre XML et votre code iront ici..
    </initialisation>
</données>

Pour tous les codes que vous collez, assurez-vous que les citations restent droites ‘ et ” – certains éditeurs de texte les courberont en ’ et ”, qui se ressemblent mais ne sont pas compris dans les fichiers XML.

Charger le jeu, ou appuyez sur Ctrl+Shift+M si le jeu est déjà en cours d'exécution pour recharger tous les mods, et si tout fonctionnait, tu devrais voir ton mod dans la liste des mods:

Si le mod n'apparaît pas, ou il apparaît en rouge, Il y avait une erreur – appuyez sur Ctrl+Shift+D pour afficher la console du développeur et recherchez le texte rouge. Des fois ça’c'est évident ce qui ne va pas, mais parfois, ce n'est pas aussi clair et vous devrez peut-être résoudre le problème en supprimant/commentant des sections de votre mod jusqu'à ce qu'il fonctionne à nouveau pour identifier où se situe le problème.. Vous pouvez également rejoindre notre discorde et demandez de l'aide sur notre chaîne #modding!

Bien que ce soit techniquement un mod, ce’ce n'est pas très excitant, alors laisse’essaye de lui faire faire quelque chose!

Ajout d'éléments

L'une des choses les plus simples que vous puissiez faire est d'ajouter des éléments au jeu.. Disons que vous décidez qu'Aground Zero a vraiment besoin de beignets. Vous pouvez les ajouter avec ce simple exemple de module.

Jetez un œil au mod.xml dans le fichier .zip – à l'intérieur de <initialisation> bloc, il y a maintenant des balises avec des lignes de commentaires (à l'intérieur de <!– –>) expliquant ce qu'ils font. Il y a aussi une seule image – beignet.png, quelle est l'icône du beignet.

En général, lors de l'ajout d'éléments, vous avez besoin:

  • Un nom – vous pouvez en ajouter un pour autant de langues que vous souhaitez prendre en charge.
  • Une icône – celui que tu dessines toi-même, ou obtenez à partir d'un site open source comme opengameart.org (comme l'icône du beignet), ou même teinter un existant dans le jeu.
  • La déclaration d'article ça dit ce que ça fait (dans ce cas, tu manges des beignets pour récupérer 150 faim).
  • Façons d'obtenir l'article. Pour ce mod, J'ai ajouté une façon de le cuisiner dans la cuisine, et achète-le dans un distributeur automatique.

Pour un mod aussi petit, tout peut être à l'intérieur du <initialisation> bloc. Mais, pour les mods plus gros, vous souhaiterez peut-être les organiser avec des dossiers et des fichiers XML supplémentaires – vous pouvez le faire en utilisant <inclure l'identifiant =”dossier/fichier.xml” />. Gardez simplement à l'esprit que les chemins sont relatifs au XML qui les appelle.

Actions

Les actions déterminent ce que font les éléments lorsqu'ils sont sélectionnés dans votre barre d'outils. Certains articles ne’pas besoin N'IMPORTE LEQUEL action – comme des matières premières que vous pouvez utiliser pour l'artisanat mais qui ne vous sont d'aucune utilité. Pour l'exemple de beignet ci-dessus, il a utilisé l'action manger, qui était déjà défini dans les fichiers de base du jeu (tu maintiens le clic droit pour le manger). Il existe de nombreuses actions existantes:

  • le mien – Blocs de mines comme le Laser Drill.
  • place_ground / place_ladder – Définit les drapeaux au sol comme des câbles, ceintures, échelles.
  • manger – Mange des aliments pour gagner en faim et en santé.
  • place_object – Place un objet spécifique, consommer éventuellement l'article une fois placé si consommer=”vrai”.
  • construire – Comme place_object, mais un clic droit vous permet de choisir le plan que vous souhaitez placer.
  • artisanat – Fabrique un objet à partir de votre inventaire – comme l'assembleur.
  • place_block – Place un bloc spécifique, consommer éventuellement l'article une fois placé si consommer=”vrai”.
  • pelle – Comme place_block, mais un clic droit vous permet de choisir quel bloc vous souhaitez placer.
  • tirer – Tire des projectiles comme le pistolet laser.
  • mise à niveau – Éléments de mise à niveau, c'est ce qu'utilisent les puces de mise à niveau.
  • plan – Des objets qui, lorsque vous les récupérez, peuvent débloquer des plans et des recettes.
  • peinture – Peint des blocs comme l'outil Painter.
  • seau – Peut se remplir d'eau, et placez de l'eau une fois rempli.

Ces actions sont en données/core/items/actions.xml, et vous pouvez voir leur code complet et ce qu'ils font là-bas. Cependant, si rien de tout cela ne fonctionne pour ce que vous voulez faire, vous pouvez ajouter vos propres actions!

Ici’est un exemple simple qui ajoute un élément de télécommande avec un action personnalisée. Lorsqu'il est sélectionné dans la barre d'outils, l'action vous permet de faire un clic droit pour vous associer à une structure s'il y en a’s une structure sélectionnée, sinon faites un clic droit pour accéder à la structure appariée depuis n'importe où. C'est joli OP, car vous pouvez désormais accéder à une batterie de n'importe où pour une puissance infinie ou à des entrepôts pour récupérer/déposer des objets. Mais, théoriquement, vous pouvez modifier ce qu'une télécommande peut faire lors de l'accès à une structure (ou modifier les structures auxquelles il peut accéder), vous permettant de gérer votre base à distance sans rien de trop révolutionnaire.

Cet exemple utilise également le stockage des éléments pour déterminer à quelle structure ils sont actuellement associés.. Le stockage vous permet de définir toutes sortes de données sur des éléments et des objets enregistrés. La seule chose à garder à l'esprit est qu'un élément’Le stockage affecte toute la pile, et deux articles avec un stockage différent ne peuvent pas être empilés. Si vous souhaitez modifier le stockage d'un seul élément dans une pile, vous devez le retirer de la pile et le placer dans le curseur ou dans un autre emplacement d'inventaire (ou, pire cas, jette-le par terre). J'évite ce problème en réglant les télécommandes pour qu'elles soient inempilables.

Partage de modules

Une fois que tu as un mod, il existe deux façons de les partager avec d'autres. La première consiste à compresser le dossier mod (avec mod.xml à la racine du fichier zip, pas dossier/mod.xml), et donnez manuellement ce fichier zip à d'autres et demandez-leur de le glisser-déposer dans leur fenêtre de jeu (sans l'extraire au préalable). Cela installera le mod.

L'autre façon est de télécharger le mod sur le Atelier Steam – permettre à tout le monde de voir et de s'abonner à votre mod! Si votre mod est dans le données/mods dossier et n'a pas d'erreur, vous pouvez le sélectionner dans la liste des mods et vous’je trouverai un Télécharger sur Steam option.

Le téléchargement sur Steam nécessite une image d'aperçu – cette image doit être nommée aperçu.png ou aperçu.jpg à côté du fichier mod.xml, et faire moins de 1 Mo. Steam les affiche sous forme d'icônes carrées dans l'atelier, donc tout autre rapport hauteur/largeur se retrouvera avec des bordures noires.

Vous pouvez ensuite rédiger des notes pour la mise à jour, entrez l'identifiant de l'élément d'atelier que vous souhaitez modifier (ou créer nouveau pour créer un nouvel élément d'atelier), et sélectionnez toutes les balises applicables pour le mod. Vous devez ensuite accepter les conditions générales d'utilisation de l'atelier. (Cela a seulement besoin d'être fait une fois), et cliquez sur OK pour télécharger le mod.

En supposant qu'il n'y ait pas d'erreurs, vous obtiendrez cette fenêtre contextuelle et vous pourrez sélectionner Afficher l'élément pour afficher l'élément dans l'atelier. A droite de l'article, vous verrez les contrôles du propriétaire où vous pourrez modifier le nom, description, et changez la visibilité en public pour que les autres puissent le voir:

Lorsque vous appuyez à nouveau sur Télécharger sur Steam sur le même mod, l'identifiant de l'atelier doit être pré-rempli, mais si ce n'est pas le cas, vous pouvez le trouver dans l'url de la page de l'article de l'atelier après détails du fichier/?identifiant=<identifiant> (vous pouvez le faire pour tout élément de l'atelier pour lequel vous êtes répertorié en tant que contributeur). Un nouveau téléchargement modifiera les fichiers mod, tags et image d'aperçu, mais pas le nom, description et autres données. Vous pouvez également afficher les notes de modification que vous avez saisies lors du téléchargement pour chaque modification sur la page des éléments de l'atelier., et revenir aux modifications précédentes. Une fois le mod public, les gens pourront voir et s'abonner à votre mod!

Ouvrages

Les structures et les objets vous permettent de mettre des éléments interactifs dans le monde. Chaque objet a des formes, qui déterminent ses limites physiques et ses limites d'interaction. Les objets ont également leurs propres actions qui sont exécutées tout comme les actions des éléments lorsqu'un objet’La forme est sélectionnée – toutefois, vous pouvez désactiver l'interaction avec les objets pour certaines actions en cas de besoin (comme le pistolet laser). Pour déboguer des formes, vous pouvez utiliser le code de développement: conteneur.showPhysique(vrai) pour afficher un contour rouge de toutes les cases, formes de sphères et de cylindres. Gardez à l'esprit si modèleBottom=”vrai”, la transformation du modèle principal sera repositionnée pour que l'origine soit au bas de toutes les formes, donc déplacer les formes de haut en bas ne les déplacera pas par rapport au modèle si cela est vrai.

Ici’c'est un exemple simple qui ajoute un élément de commutateur qui utilise une action place_object pour placer un commutateur interactif dans le monde. La plupart de ces éléments vous seront familiers grâce aux exemples d'articles., sauf que maintenant nous avons besoin d'un objet switch qui peut être placé, et enlevé (pour le récupérer).

Comme avec l'action personnalisée, les commutateurs ont un événement getSelection pour définir les info-bulles et une action onAlternate qui supprime le commutateur. Cependant, ils ont également un événement onSelect qui active et désactive l'interrupteur – cela utilise les indicateurs de sol POWSTRUC et SWITCH (POWSTRUC est sous des structures motorisées, et ressemble à un câble, transmettre le pouvoir à travers, SWITCH ressemble aussi à un câble, mais ne transmet pas le pouvoir).

3Modèles D

Une grande chose dont les objets ont besoin et dont les objets n'ont pas besoin’c'est un modèle – quelque chose à afficher dans le monde. Vous pouvez réutiliser des modèles existants dans le jeu, les teinter et les repositionner comme je l'ai fait dans le mod switch. En général, il’Il est probablement plus facile d'animer des modèles dans un programme de modélisation 3D., mais tu peux voir que j'ai fait une chose très simple 2 Animation d'images clés pour l'activation/la désactivation du commutateur.

Si vous souhaitez ajouter de nouveaux modèles 3D, que vous les modélisiez vous-même ou que vous les trouviez sur un site comme opengameart.org, vous devez les convertir en fichiers wobj. Vous pouvez le faire en utilisant l'application en ligne de commande CréerWOBJ ici.

CréerWOBJ s'attend à ce que le premier argument de ligne de commande soit le modèle d'entrée, et le deuxième argument est la sortie wobj. Il utilise assimp qui prend en charge une vaste gamme de formats que vous pouvez visualiser iciCréerWOBJ prend en charge les animations d'os et de nœuds, mais pas les animations de maillage (animations basées sur les sommets, c'est assez rare de nos jours). CréerWOBJ fusionne tous les maillages, matériaux et animations dans un seul fichier – tu’je spécifierai les textures en XML. Aground Zero ne prend pas en charge plusieurs textures par wobj – soit regrouper les textures dans une méga-texture, ou (si nécessaire) diviser l'objet en plusieurs fichiers wobj.

Alors que tous les maillages sont fusionnés, vous pouvez ajouter -écrire des maillages comme troisième argument de ligne de commande qui écrira les noms et le sous-ensemble de sommets pour chaque maillage de l'objet – c'est utile pour créer des sous-ensembles – que l'on peut voir dans les métros et pour les coiffures des joueurs (ils sont tous regroupés dans un seul wobj).

Une fois que tu as un wobj, ce’il est temps de le définir dans le jeu. Vous pouvez le faire avec:

<identifiant du modèle ="nom" chemin="chemin vers wobj" texture="diffuser" normal="normale" émission="émission" />

Vous pouvez utiliser le même modèle plusieurs fois, changer les textures. Aground Zero ne prend en charge que 4 types de textures – diffuser, normale, émission et spéculaire. Il existe de nombreux guides sur ce que c'est, mais vous avez peut-être remarqué que le spéculaire n'est pas défini sur la ligne du modèle. C'est parce que le spéculaire est intégré dans le canal alpha autrement inutilisé de la carte normale.. Pour modifier le canal alpha d'une texture normale (après que la carte normale a été chargée pour au moins un modèle), vous pouvez utiliser cette commande:

<setSpecular normal="carte_normale" spéculaire="spéculaire" échelle="échelle" />

Alors que le canal spéculaire doit être en niveaux de gris (ce’c'est un seul canal alpha), 0 est noir, 0.5 est égale à la couleur diffuse, et 1 est d'un blanc pur, interpoler en douceur entre. L'échelle est facultative pour éclaircir ou assombrir la carte spéculaire, et par défaut 0.5. Si le paramètre spéculaire n'est pas une texture primitive (comme le blanc ou le noir), alors il sera déchargé après cette commande et ne pourra plus être utilisé sauf si vous ajoutez décharger=”FAUX” à la commande (comme d'habitude tu le fais’Je n'ai pas besoin de la carte spéculaire une fois’a été emballé dans une carte normale). Si vous ne’Je ne veux pas traiter avec des cartes normales ou des cartes spéculaires, il existe trois textures primitives que vous pouvez utiliser: ce n'est pas normal (le défaut, normales inchangées et 0.5 spéculaire), non_spéculaire (comme no_normal, mais noir spéculaire) et verre (spéculaire blanc).

Pour les coordonnées, x/y est le plan de masse, et z est en haut (pensez à la profondeur de l'exploitation minière). La plupart des programmes de modélisation ont x/z comme plan de sol, et oui, mais CreateWOBJ fait automatiquement pivoter les modèles pour en tenir compte.

Panneaux d'affichage

Si vous ne le faites absolument pas’je ne veux pas utiliser de modèles 3D, vous pouvez placer des panneaux d'affichage ou des primitives. Les primitives sont des formes simples (quads, cubes, sphères) qui peut être défini comme les modèles ci-dessus, mais tu utilises primitive=”…” au lieu de référencer un wobj. Les panneaux d'affichage sont des sprites 2D toujours face à la caméra. Ça a l'air bien pour les petits, objets sphériques ou cylindriques, mais ça y ressemble souvent’bouge lorsque la caméra tourne. Vous pouvez ajouter des panneaux d'affichage avec ce code à l'intérieur d'un objet:

<tuile de panneau d'affichage ="tuile" animation="animation si désiré" tapez="taper" échelle="taille en mètres/blocs" décalageX="position x par rapport au centre, vous pouvez aussi avoir un offsetY et Z" />

Le type peut être normal (pas de mélange, les valeurs alpha faibles sont ignorées), transparent (permet de mélanger, si vous avez besoin de semi-transparence), émissif (brille dans le noir/n'est pas affecté par l'éclairage), indicateur (visible à travers les murs/autres objets).

Des panneaux d'affichage peuvent également être ajoutés aux objets avec des modèles 3D (avec la balise XML, ou objet.addBillboard), et c'est ainsi que des avertissements comme une panne de courant sont ajoutés dans le jeu.

Plans

Le changer l'exemple est un article, mais la plupart des structures du jeu sont placées sous forme de plans auprès du fabricant, puis construites ou démontées.. Vous pouvez le faire en créant une structure qui étend la structure du modèle, puis définissez un type (pouvoir, produire, base, véhicule, décor), Info (la structure qu'il construira) et une recette qui fixe les matériaux, coût de l'énergie et temps nécessaire pour construire le plan. Le plan_usine en est un bon exemple. Vous pouvez également définir un animerIcône fonction pour le plan, cela animera la structure dans la liste Fabricator lorsqu'elle sera survolée (mais c'est facultatif). Il existe de nombreux types de structures que vous pouvez étendre – Comme artisanat pour les usines, grandir pour les producteurs d'articles, manned_craft/manned_grow s'ils ont besoin d'un PNJ pour les faire fonctionner, et plus. Une fois que vous avez un plan, vous pouvez les ajouter au Fabricator en utilisant cette commande:

déverrouiller les plans(État, joueur, ["plan_id"]);

Matériaux

Pour ajouter de nouveaux blocs ou minerais au jeu, vous devez ajouter du matériel. Les matériaux ont un nom, une texture (peut être réglé sur tous 6 côtés), une puissance minière et éventuellement un annuler la fouille un événement.

Les textures sont 256×256 images, ce qui fait en fait 2×2 blocs (chacun 128×128 le quart de l'image est un bloc). Ça devrait être en boucle, et doit avoir une carte normale. plus léger est un bon outil pour générer des cartes normales à partir d'images (Je mettrais le bump sur 0, et améliorer la hauteur entre 60-100 et de la douceur à 2-3). Vous pouvez utiliser la visualisation pour voir comment il réagira aux sources de lumière dans le jeu.. Les textures sont définies comme ceci:

<identifiant de texture ="cave_floor" couleur="cave_floor.png" normal="cave_floor_n.png" />

Toutes les textures doivent être de la même taille (ils sont placés dans un seul tableau de textures), mais pour les packs de textures, vous pouvez le changer à partir de 256×256 à condition de s'assurer que toutes les textures ont la nouvelle taille. Ça fera quand même 2×2 blocs – si vous voulez que tous les blocs soient identiques, vous pouvez simplement dupliquer le quart supérieur gauche quatre fois.

Après avoir défini une texture, vous pouvez définir la valeur spéculaire de la carte normale tout comme les modèles:

<setSpecular normal="cave_floor_n.png" spéculaire="noir" />

Les matériaux ne prennent pas en charge les textures d'émission – leur émission est réglée sur la texture de la grille lors du placement des structures.

Le matériau peut alors être défini comme ceci:

<identifiant du matériau ="grotte" côtés ="mur_grotte" en bas ="cave_plafond" haut="cave_floor" mine_power="1" />

Vous pouvez définir les textures en utilisant texture=”” pour tous 6 côtés, côtés =”” pour tous les côtés sauf le haut et le bas, et haut, bas, gauche, droit, dos, devant pour définir des côtés spécifiques (et cela écrase les textures définies avec texture=”” ou côtés =””).

Paramètres de matériau supplémentaires que vous pouvez utiliser:

  • mine_power définit la force dont votre perceuse laser doit être pour la casser (enfiler’ne l'ajoute pas pour les blocs incassables).
  • nom définit le nom affiché dans le matérialiseur (pelle), et par défaut matériel>identifiant.
  • blocage – si les objets peuvent traverser le bloc.
  • rampe – si le bloc est une rampe.
  • bloc_eau – si le bloc empêche l'eau de passer à travers.
  • bloc_lumière – si le bloc empêche la lumière de passer à travers.
  • article – quel objet laisser tomber lorsque le bloc est miné.
  • opaque – une liste séparée par des virgules des côtés du bloc qui sont complètement opaques. Si vous utilisez des textures semi-transparentes, vous devez vous assurer que ces côtés ne sont PAS opaques.
  • étape – quel devrait être le bruit de pas pour le bloc.
  • visible – pour désactiver le rendu (il peut toujours bloquer les objets/l'eau).
  • peinture / pouvant être peint – pour l'outil peintre.

Chaque bloc peut en réalité avoir deux matériaux – le matériau de base, et un matériau de recouvrement. Les matériaux de recouvrement sont utilisés pour les minerais, et éléments décoratifs (comme l'outil peintre). Le matériau de base et le matériau de recouvrement peuvent utiliser article déposer un objet, et avoir un séparé annuler la fouille un événement. Les matériaux de superposition n'affectent PAS la puissance minière du bloc..

Le annuler la fouille l'événement s'exécute chaque fois que la tuile est extraite par une action. Il passe un objet de fouille qui inclut la zone, objet qui a effectué l'action, position x/y/z du bloc, et du matériel. Cela pourrait être utilisé pour blesser un joueur (ou ennemi) s'ils exploitent un bloc, ou pour accorder un succès lorsque vous en exploitez un certain nombre (comme des diamants).

Domaines

Une fois que vous avez du matériel avec lequel travailler, créer de nouvelles zones consiste à placer des blocs et des objets. Les zones doivent avoir un largeurhauteur et profondeur ensemble. Tous les blocs placés en dehors de ces limites seront rendus, mais pas enregistré ni interagi avec (c'est ainsi que la ville au loin se fait à la surface – il est en fait régénéré à partir d'une graine à chaque fois que la zone est chargée). Les zones ont également besoin d'un ensemble de terrain, qui détermine la façon dont les câbles, les ceintures et les échelles sont affichées. Vous pouvez probablement utiliser la valeur par défaut pour la plupart des domaines. Créer des zones peut demander un peu de travail, bien qu'il existe des fonctions utilitaires dans la classe Generate qui peuvent faciliter les choses.

Paramètres de zone supplémentaires que vous pouvez utiliser:

  • la gravité – si vous voulez une faible gravité (ou gravité inversée) mondes, vous pouvez changer cela par défaut (1).
  • ceinture_puissance – combien d'énergie chaque courroie consomme par seconde (par défaut 0.05).
  • vagues – une carte normale pour la surface de l'eau.
  • bulles – une image pour des bulles dans l'eau.
  • poussière – une image de la poussière flottant autour des lumières.
  • has_oxygen – si faux, alors vous ne récupérerez l'oxygène qu'à l'intérieur des véhicules ou des objets qui produisent de l'oxygène (Par ailleurs, partout où ce n'est pas sous l'eau).
  • break_tile – la tuile à utiliser pour casser des blocs.
  • break_anim – l'animation (image par image) pour casser des blocs.
  • break_emit – à quel point l'animation du bloc de rupture doit briller dans le noir – 000000 pour pas du tout, ffffff pour complètement (c'est une couleur, vous pouvez donc modifier la quantité émise par chaque canal séparément).

Vous pouvez également utiliser la balise atmosphère pour ajouter une skybox, lever/coucher du soleil sur le monde, mais garde à l'esprit que cela va probablement changer (et devenir plus flexible) une fois que j'aurai ajouté la lune.

Dans <infoInit> vous pouvez également définir les paramètres suivants:

  • ombre_z – si la caméra est au-dessus de cette profondeur, puis la carte directionnelle de la lumière et des ombres du soleil est activée (autrement désactivé).
  • infinite_water_z – toute l'eau à cette profondeur et au-dessus aux confins du monde s'étend à l'infini. Ceci a été ajouté pour empêcher la rivière souterraine de s'étendre à l'infini., ce qui a causé des problèmes de rendu (l'eau infinie doit être simple/convexe).
  • aquarelle – la couleur de l'eau. Le canal alpha définit la densité de l'eau/son épaisseur et son trouble.
  • échelle d'onde – l'échelle x/y de la texture des vagues sur la surface. z/w est pour une deuxième copie de la texture d'onde ajoutée en haut.
  • vitesse d'onde – la vitesse la texture de la vague. Encore une fois, x/y est pour la texture principale, et z/w est le mouvement de la copie ajoutée (brise une boucle évidente).
  • surface de l'eau – comme l'eau, mais pour la surface de l'eau, qui devrait être beaucoup plus sombre (principalement réfléchissant) et une densité plus élevée (je ne peux pas voir facilement les choses sous la surface).
  • taille_bulle – L'échelle de la texture de la bulle.
  • force_bulle – Dans quelle mesure la texture des bulles est-elle visible.

La grotte du minerai est un bon exemple de la façon de créer une nouvelle zone – vérifier data/core/world/ore_cave.xml dans le dossier d'installation du jeu. Il a un <générer> bloc pour créer la grotte à minerai, et définit également un minerai_cave_portal et minerai_cave_exit objet qui permet d'entrer et de sortir, la grotte du minerai (Par ailleurs, tu’Je ne pourrai jamais atteindre la nouvelle zone). La grotte à minerai est également vidée lorsque tous les joueurs en sortent., et rechargé dans le minerai_cave_portal, ce qui en fait une zone temporaire qui contient de nouveaux minerais et une nouvelle disposition à chaque fois que vous entrez.

Vous avez droit à une zone par identifiant dans l'état du jeu (même si, comme la grotte du minerai, vous pouvez effacer et régénérer des zones temporaires). Les zones ne seront générées qu'au premier appel état.createArea(identifiant), ou si vous appelez manuellement zone.générer.

Véhicules

Les véhicules sont des objets comme des structures dans lesquels le joueur peut monter et se déplacer.. Une grande partie de la logique derrière les véhicules est déjà gérée par les structures montable et véhicule tu peux prolonger (défini dans données/mods/full/objects/vehicles.xml).

Véhicule est un objet montable qui a un inventaire, localisateur et peut être téléporté vers (comme le sous-marin et l'aléseuse). Les chaises sont le seul objet montable.

Là’il se passe beaucoup de choses avec les véhicules et je’je ne vais pas tout expliquer ici, mais je’Je recommande de jeter un oeil aux définitions des sous-machines et des aléseuses. Vous pouvez remplacer la plupart de l'interface graphique et des commandes si nécessaire lorsque vous conduisez un véhicule.

Ennemis

Comme des véhicules, les ennemis sont compliqués. La clé est que vous voulez un événement onFrame (qui exécute littéralement chaque image pour chaque instance de cet ennemi), et effectuez une logique pour vous déplacer et attaquer là-bas. Bien que vous souhaitiez garder cela relativement simple pour des raisons de performances, là’il n'y a pas vraiment de limite à ce que vous pouvez faire ici. Ajouter un temps de réaction aux ennemis est généralement une bonne idée – comme la façon dont les robots chasseurs rechercheront uniquement les joueurs à proximité pour tirer tous les 10 cadres (réduisant la charge par cadre), et recherchera uniquement les structures à proximité pour tirer à chaque fois 60 cadres. je’je jetterais un oeil aux ennemis existants dans le jeu, peut-être les étendre si cela répond à vos besoins.

Traductions

Des traductions peuvent également être ajoutées au jeu. C'est la même chose que dans l'Aground original, alors jetez un oeil à Guide de traduction échoué.

La seule différence est que vous devez ajouter le langage XML à votre dossier mod et le inclure marquez votre mod initialisation bloquer au lieu de modifier directement le dossier de langue principal. En outre, dans le <langue> étiqueter, vous pouvez ajouter version=”0.2.2″, qui doit être défini sur la version du jeu que vous avez traduite (affiché sur l'écran titre). Si version=”” est manquant, ou est une version autre que la version actuelle du jeu, la langue apparaîtra en rouge dans le menu des options, ce qui signifie qu'il est potentiellement obsolète.

Ce guide sur Échoué zéro a été écrit par David Maletz. Vous pouvez visiter la publication originale à partir de ce lien. Si vous avez des inquiétudes concernant ce guide, n'hésitez pas à nous joindre ici.

A propos de l'auteur