Inventaire du joueur personnalisé
-
Bonjour ,
Je souhaite ajouter des slots sur l’inventaire du joueur . J’ai lu qu’il fallait donc recréer un inventaire . Le problème c’est que je n’y parviens pas .
J’ai également essayer de suivre ce tutoriel : https://github.com/coolAlias/Forge_Tutorials/blob/master/CustomPlayerInventory.java .Mais ce dernier est rédiger bizarrement . Je comprend difficilement les étapes …
De plus , j’ai tout recopier tout en modifiant pour ça corresponde à mes envies mais rien ne fonctionne …Quelqu’un aurait-il une démarche à suivre pour récréer un inventaire ?
Cordialement ,
JEREMY60800
-
Tout d’abord il te faut créer un inventaire (classe extends IInventory) et ensuite il te faut regarder quand le joueur ouvre son inventaire afin de le modifier (pour ça tout dépend de ce que tu veux faire)
-
Re ,
Le but est de reprendre l’inventaire vanilla mais de rajouter des slots où on met des items qui donne un effet au joueur en fait …
Pour la classe IInventory , je reprend l’inventaire vanilla en gros ?Cordialement ,
JEREMY60800
-
Tu dois tout ré-écrire depuis le début car ça dépend de ce que tu veux faire, complète en fonction de ce que tu veux. Ensuite tu regardes quand le Gui vanilla est ouvert et tu ajoutes tes slots
-
Re ,
Ok donc je reprend la classe avec IIvenory mais extends ou implement ? Car j’ai pas trouver extend …
Cordialement ,
JEREMY60800
-
implements pardon
-
Re ,
Ok bon je copie colle , modifie ce qu’il faut mais les fonctions obusquées c’est pas cool … J’ai essayer le logiciel qui permet de les retrouver mais rien ne fonctionne …
J’ai également un soucie à ce niveau là :public void markDirty() { if (this.field_70480_d != null) { for (int i = 0; i < this.field_70480_d.size(); ++i) { ((IInvBasic)this.field_70480_d.get(i)).onInventoryChanged(this); } } }
Il me dit “The method onInventoryChanged(InventoryBasic) in the type IInvBasic is not applicable for the arguments (InventoryCustom)”
Cordialement ,
JEREMY60800
-
Il faut que ta classe extends InventoryBasic pour appeler cette fonction (tu pourras retirer le implements IInvetory du coup).
-
Re ,
Merci !
Mais un nouveau problème apparaît :
J’ai une erreur me disant “Implicit super constructor InventoryBasic() is undefined. Must explicitly invoke another constructor”public InventoryCustom(String title, boolean customName, int slotCount) { this.inventoryTitle = title; this.hasCustomName = customName; this.slotsCount = slotCount; this.inventoryContents = new ItemStack[slotCount]; }
Cordialement ,
JEREMY60800
-
Tu n’es pas obligé d’utiliser ce code, il est fait pour les chevaux, sauf si tu veux mettre ton inventaire à la place de celui de minecraft (ce que je ne conseille pas)
-
Re ,
Bah justement je veux remplacer celui de Minecraft …
Mais une fois fait ça , quelle est la suite ?Cordialement ,
JEREMY60800
-
Il me semble que tu n’es d’ailleurs pas obligé de créer une classe spéciale, il te suffit de créer une instance d InventoryPlayer en modifiant le nombre de slots, puis, quand le joueur se co, avec un évènement, tu remplaces l’objet player.inventory par le tien (player.inventory = new InventoryPlayer(title, customName, nombreDeSlots); ). Ensuite, tu remplaces l’objet du joueur (je crois qu son nom c’est juste player.container) qui contient le container affiché quand on met son inventaire par un ContainerCustom.
En espérant avoir été clair
-
Re ,
Waow c’est compliqué …
Le truc c’est que j’ai beaucoup de mal avec tout ça … Je sais pas vraiment le faire …Cordialement ,
JEREMY60800
-
Essayes, ce n’est pas si compliqué que ça en a l’air, et dis nous où tu bloques. Essayes déjà de remplacer l’inventory du joueur en changeant sa taille (tu peux le faire dans un évènement de connection par exemple, il y a un tuto sur les évents sur le forum et tu trouveras la liste d’évents ici
-
@'JEREMY60800:
JEREMY60800
Je voulais juste te dire que si tu veux modifier l’inventaire de base de minecraft et qu’un autre mod veux faire la même chose, un des deux inventaires ne sera jamais accessible et ça pourrait être le tien donc si j’étais toi je ferais un qui serait accessible autrement comme plein d’autre mods. Aussinon je m’y connais pas pour le reste donc je serais pas t’aidé
-
Bonne idée, ça pourrait être bien de faire une autre onglet qui apparaît quand on ouvre l’inventaire, comme des mods le font déjà.
-
Le problème de faire ça est qu’il faut inclure une API afin d’être compatible avec les autres mods. Si tu veux ajouter seulement quelques slots personnellement je te conseille de regarder quand le gui du joueur s’ouvre et de rajouter tes slots (c’est une façon assez simple)
-
Re ,
En faite le but est de reproduire l’inventaire de Dofus . Enfin seulement la partit stuff et oeuf …
Le mieux est de tout recoder , mais si quelqu’un peut m’aider ça serai très sympas car j’ai très peu de connaissance sur les GUI …
De plus il faudrais supprimer la table de craft qu’il y a dans l’inventaire … Et ça doit pas être possible de le faire sur celle de Minecraft de base …Cordialement ,
JEREMY60800
-
Si tu veux retirer la table de craft il est mieux de ne pas afficher le Gui vanilla et d’afficher ton propre Gui
-
Re ,
Je pense aussi mais comment faire ?
Cordialement ,
JEREMY60800