Aller au contenu
Morceaux d'émeute

Morceaux d'émeute

  • Maison
  • Nouvelles
  • Guides
  • Guides vidéo
  • Notes de mise à jour
  • Signaler un abus
  • Basculer le formulaire de recherche
L'artisan de la planète

L'inventaire de la planète Crafter et d'autres modding (dnspy)

Posté sur 03/25/2022 Par Akarnokd Aucun commentaire sur L'inventaire de la planète Crafter et d'autres modding (dnspy)
  • Titre: L'artisan de la planète
  • Date de sortie:
  • Promoteur: Jeux Miju
  • Éditeur: Jeux Miju
Les informations sur The Planet Crafter sont encore incomplètes. S'il vous plaît, aidez-nous à remplir les détails du jeu en utilisant ceci formulaire de contact.

Dans ce guide, je’Je décrivez quelques modifications dans lesquelles j'ai corrigé pour ajuster quelques comportements d'interface utilisateur et pour tromper un peu après avoir terminé le jeu.

Le jeu est écrit en Unity et C #, ce qui le rend relativement facile à explorer via l'outil DNSPY.

Notez cependant que ces modifications’t mods réels mais correctifs temporaires parce que le moment où le jeu est mis à jour par les développeurs, Les changements locaux sont écrasés. Il existe des cadres de modding, comme Bepinex pour d'autres jeux, mais je n'ai pas examiné ceux.

Préparations

  • Téléchargez le dernier disponible dnspy.
  • Extrairez-le à un emplacement approprié et exécutez dnspy.exe
  • Dans le dossier > Ouvrir, localiser le Assembly-CSharp.dll dans le
    %{vapeur}\common\The Planet Crafter Prologue\Planet Crafter_Data\Managed

    annuaire.

Je recommande d'utiliser « Méthode de modification » au lieu de « Modifier la classe » Pour éviter la recompilation drastique des pièces de code non apparentées qui peuvent casser autre chose. Aussi, DNSPY a des bugs, donc pas besoin de le tenter.

Modifier le tri

Le jeu trie les articles par leur nom par défaut, mais j'aime l'air et la nourriture à l'avant de la liste. Le tri est géré dans le Vaisseau spatial.inventory::Autosorte() méthode. La méthode a actuellement une expression LINQ pour le tri que nous remplacerons par un appel direct à Liste::Trier().

this.worldobjectsininventory.sort(déléguer(WorldObject a, WorldObject B)
{
    String id = a.getgroup().Peut();
    String id2 = b.getgroup().Peut();
    si (id.startswith("Oxygéncapsule") && !id2.startswith("Oxygéncapsule"))
    {
        retour -1;
    }
    si (!id.startswith("Oxygéncapsule") && id2.startswith("Oxygéncapsule"))
    {
        retour 1;
    }
    si (id.startswith("Bouton d'eau") && !id2.startswith("Bouton d'eau"))
    {
        retour -1;
    }
    si (!id.startswith("Bouton d'eau") && id2.startswith("Bouton d'eau"))
    {
        retour 1;
    }
    return id.compareto(id2);
});

Je n'en ai pas’T Connaissez tous les ID des éléments mais pourra être jeté dans un fichier à partir de cette méthode via Streamwriter.

Déplacer les éléments du même type vers / depuis l'inventaire

Par défaut, on peut déplacer les articles un par un, qui peut être fastidieux. Cliquez sur une image d'inventaire est gérée par Spacecraft.inventorydisplayer::OnImageClicked() méthode. Par défaut, il a une action pour les clics de souris gauche et droite. Depuis que je pouvais’T Trouvez un moyen de vérifier les modificateurs tels que les touches Shift ou CTRL, J'ai décidé d'utiliser le bouton de la souris du milieu.

Lorsque l'utilisateur clique sur le bouton de la souris intermédiaire, Nous devons trouver les objets dans l'inventaire actuel ayant le même ID d'élément, Ensuite, obtenez l'autre entité d'inventaire. Ensuite, essayez de l'ajouter à l'autre inventaire et en cas de succès, Retirez-le de l'inventaire actuel, gérer ainsi le cas complet.

si (_EventtriggerCallbackData.pointerEventData.button == PointereventData.inputButton.middle)
{
    Dataconfig.umpype openDui = mijutools.managers.getManager().Denté();
    si (OpenEDUI == Dataconfig.uitype.Container)
    {
        Inventaire autreInventory = ((UiwindowContainer)Mijutools.managers.getManager().Getwindowviauiid(ouvert)).Getotherinventory(this.inventory);
        si (this.inventory != nul && autre inventaire != nul)
        {
            String id = _EventtriggerCallbackData.worldObject.getGroup().Peut();
            Liste de liste = nouvelle liste();
            foretter (WorldObject WorldObject2 dans ce.inventory.getInsideworldObjects())
            {
                si (worldobject2.getgroup().Peut() == ID)
                {
                    list.add(WorldObject2);
                }
            }
            foretter (WorldObject WorldObject3 dans la liste)
            {
                si (autreInventory.additem(WorldObject3))
                {
                    this.inventory.removeitem(WorldObject3, FAUX);
                }
            }
        }
    }
}

Capacité d'inventaire (Tricherie)

Par défaut, L'inventaire est assez petit et j'ai passé la plupart du temps à faire des allers-retours entre les dépôts, sites de stockage et de construction. J'aime aussi collecter tous les dépôts qui devenaient du temps et de la consommation d'air.

L'inventaire est géré par le Vaisseau spatial.inventory la classe et sa capacité sont gérées dans le inventaire terrain privé. Malheureusement, Tout ce que je pouvais faire, c'est écraser ce champ dans 3 emplacements: le constructeur, Le Getter et le Setter ne cassent pas la structure d'assemblage à beaucoup:

inventaire public(int _inventoryid, int _inventorySize, Liste _WorldObjectSinInventory = null)
{
    this.inventoryid = _inventoryid;
    this.inventorysize = _inventorysize;
    this.inventorysize = 250; // <----------------------------------
    this.worldObjectSinInventory = ((_worldobjectsininventory != nul) ? _worldobjectsininventory : nouvelle liste());
    this.authorizedGroups = nouvelle liste();
}
public Int GetSize()
{
    this.inventorysize = 250; // <----------------------------------
    Renvoyez ceci.inventorySize;
}


SetSize de vide public(int _inventorySize)
{
    si (_inventorySize == this.inventorysize)
    {
        retour;
    }
    this.inventorysize = _inventorysize;
    this.inventorysize = 250; // <----------------------------------
    this.refreshdisplayercontent();
}

toutefois, Cela a des conséquences sur l'interface utilisateur:

  • L'écran d'inventaire du joueur dépassera l'écran et vous avez gagné’Pour pouvoir interagir avec quoi que ce soit au-delà.
  • Il affecte l'équipement « inventaire »
  • Il affecte tous les conteneurs, y compris le mineur de base.
  • Les articles ramassés sont ajoutés à la fin de l'inventaire et peuvent ne pas être visibles, y compris l'air, eau et aliments.
  • Trop de clics lors du dépôt de l'inventaire dans les conteneurs.
  • Déclassement de l'écran lors de la visualisation et du déplacement des éléments dans des conteneurs.

Heureusement, ce dernier peut être corrigé par le trieur et les mods de déplacement de groupe au-dessus. Stockez les articles par type dans des conteneurs séparés.

Emplacement des astéroïdes (Tricherie)

Par défaut, Le jeu cible un rayon relativement important autour du joueur lorsque les astéroïdes (naturel et ressource appelé via les roquettes) atterrir. Ma base est au Lambda Rock et la structure de lancement est également là. Par conséquent, De nombreux rochers se retrouvent dans le lac de la zone de départ.

Les astéroïdes sont manipulés dans le Vaisseau spatial. et la sélection cible est dans le Spawnasteroid() méthode. Trouvez la boucle et dedans, un vecteur calculé via une unité aléatoire et un rayon. Changez-le en quelque chose comme ça:

Vector2 vector = UnityEngine.Random.InsideUnitCircle * Math.min((flotter)_asteroidevent.Distancefromplayer, 20f);

La raison pour laquelle j'utilise Math.Min est d'éviter la réoptimisation indésirable de la méthode lorsqu'il est recompilé. 20F est assez serré, donc je recommande de sortir dans un champ ouvert ou une position élevée. Cette concentration présente l'inconvénient que l'emplacement du joueur est inondé de débris qui peuvent enterrer le joueur et ces rochers restent quelques minutes avant de mépris.

Avertissement. Dans les versions d'accès anticipées, Les astéroïdes peuvent faire du mal au joueur, alors donnez au mod un rayon plus grand ou allez à l'intérieur et attendez que les débris disparaissent.

C'est tout ce que nous partageons aujourd'hui pour cela L'artisan de la planète guide. Ce guide a été initialement créé et rédigé par Akarnokd. Si nous ne parvenons pas à mettre à jour ce guide, vous pouvez trouver la dernière mise à jour en suivant ceci lien.

Si vous pensez que le contenu de ce site viole vos droits, y compris vos droits de propriété intellectuelle, veuillez nous contacter immédiatement en utilisant notre formulaire de contact.
Guides Mots clés:L'artisan de la planète

Navigation de l’article

Post précédent: Souhait perdu: Dans le Guide des réalisations du monde désespéré
Prochain article: Un guide de procédure de réalisation bleu mémoire

Laisser un commentaire Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

  • Titre: L'artisan de la planète
  • Date de sortie:
  • Promoteur: Jeux Miju
  • Éditeur: Jeux Miju
Les informations sur The Planet Crafter sont encore incomplètes. S'il vous plaît, aidez-nous à remplir les détails du jeu en utilisant ceci formulaire de contact.

Clause de non-responsabilité

Tout le contenu cité est dérivé de leurs sources respectives. Si vous pensez que nous avons utilisé votre contenu sans autorisation, assurez-vous de nous joindre et nous le prendrons au sérieux.
  • À propos de nous
  • Contactez-nous
  • politique de confidentialité
  • Conditions d'utilisation

droits d'auteur © 2025 Morceaux d'émeute.

Alimenté par Actualité PressBook Thème WordPress