Rechercher dans la communauté

Affichage des résultats pour les étiquettes 'forge'.

  • Rechercher par étiquettes

    Saisir les étiquettes en les séparant par une virgule.
  • Rechercher par auteur

Type du contenu


Forums

  • Communauté
    • Avant Tout
    • Annonces
    • Présentation des Membres
    • Vos Projets
    • Recrutements
  • Tutoriels
    • La base
    • Vanilla
    • Forge
    • Bukkit
    • Astuces
    • Autre
    • En attente de validation
    • En cours de rédaction
  • Créations
    • Minecraft
    • Jeux & Logiciels
    • Web
    • Suggestions
  • Le Coin Graphique
    • Galeries Personnelles
    • Galeries Publiques
    • Demandes Graphiques
  • Taverne
    • Général
    • Jeux Vidéos
    • Programmation

51 résultats trouvés

  1. Presentation Bonjour et bienvenue à toi ! Laisses moi te présenter l'API officielle de CraftStudio pour Minecraft ! La question que tu dois te poser c'est à quoi sert-elle au final ? Comme tu l'aura peut-être vu sur la très sympathique bannière qu'a fait l'ami elias54, c'est une api permettant l'ajout des modèles et animations de CraftStudio dans Minecraft ! Je vais te compter l'histoire de cette "API".... CraftStudio est avant tout un outil permettant la réalisation de jeux-vidéos, il y a peu il est devenu gratuit d'ailleurs, fonces le télécharger ! Mais il comprend aussi un simple et puissant système de modélisation 3D ainsi que d'animations de vos créations, c'est alors que j'en ai discuté avec Elisée, papa de CraftStudio, pour savoir si une sorte d'api verrait le jour pour pouvoir ajouter les modèles et animations dans Minecraft, Elisée m'a alors dit que beaucoup de personnes avaient essayé de créer un tel système auparavant, mais avaient vite abandonné l'idée. Qu'a cela ne tienne ! Je me suis jeté à l'eau et Elisée m'aura beaucoup aidé pour comprendre comment fonctionnait CraftStudio ! Encore Merci ! Je rappelle que nous sommes en 2016, et je suis tombé sur un outil qui était complètement dépassé MCAnimator, certains d'entre vous le connaissent, dernière mise à jour datant de 2014 et supportant la version 1.7.10 de Minecraft. J'ai alors entrepris la réécriture de l'api de MCAnimator pour l'adapter au système de CraftStudio, et surtout pour les dernières version de Minecraft. Nous avons officiellement commencé le projet en août 2016, je travaillais alors avec Timmypote aidé d'IncubeSupreme, où nous avons réécrit la quasi totalité de l'api de MCAnimator, puis nous avons par la suite release, une ébauche de ce qu'est maintenant l'API, avec un convertisseur externe, pour au final avoir un rendu des modèles ainsi que des animations pas si génial qu'a l'heure actuelle. Suite à cette piètre release, Timmy et moi nous sommes lancé à l'aventure pour réécrire entièrement l'API et permettre son utilisation par le public de la manière la plus simple et intuitive qui soit, le convertisseur à disparu (R.I.P 2016-2017) pour laisser place à une lecture interne des fichiers json générés par CraftStudio (à la manière des blocs et items m'voyez?) Et nous voilà maintenant sur le point de sortir une version correcte de l'API en bêta ! Liens utiles Projet Curse (Téléchargements, Wiki, etc) Un Discord et désormais disponible au public, par ici, vous pourrez venir discuter avec nous, ou si vous avez un problème avec l'api, nous pourrons vous aider à la résoudre ! Quelques images ! Que serait une présentation sans quelques images concrètes ? Voilà une petite galerie pour vos yeux ! (Toutes versions de l'api confondues) PS: les gifs donnent une impression de lags, mais ce n'est pas le cas Crédits Elisée Maurer (SparklinLabs) L'homme derrière CraftStudio, ainsi que les membres de l'équipe de SparklinLabs. Merci de son aide précieuse ! Merci à vous pour CraftStudio ! DD-Studios Nous avons basé notre travail sur le leur (MCAnimator). Merci à eux ! Timmypote L'homme derrière 99% du code de l'API. Le Dieu. Point. elias54 L'homme derrière ce très sympathique logo et cette bannière ! Merci l'ami ! IncubeSupreme L'homme qui a travaillé avec moi (Ama') et qui à créer la première version de l'api et son convertisseur, gros merci à toi ! Phénix246 Sys-admin du projet et CodeCleaner-Man ! ZeAmateis L'homme qui voulais des animations cool dans Minecraft. Et le créateur du projet.
  2. Pour vous faire patienter avant l'arrivée prochaine de la version 1.0 du Phonecraft voici un petit screenshot qui en dit long. Vos avis et commentaires sont les bienvenus.
  3. Version : Mcpc+ 1.5.2 ( forge + bukkit ) Recherche(s) effectuée(s) : Google, Bukkit, Ironcraft, Youtube Explication détaillé du problème : Donc voila sa fait un bon moment que je creer un serveur minecraft Moddé, donc c'est pas pour faire de la pub, j'ai effectuées plusieurs recherches pour trouver une reponse a mon problème, alors j'ai creer un serveur sous Mcpc+ ( bukkit et forge ) je veut metre en place une boutique pour les joueurs, après plusieurs recherches j'ai trouver des CMS, je precise que je ne veut pas de ceci car effectivement ils permetent une boutique mais ils génère un site entier hors j'ai creer mon propre site et je ne veut pas le remplacer par un site generer, donc en pourssuivant j'ai trouver JSON Api, ceci permettant de relier son serveur a son site, ceci se rapproche plus de ce que je souhaite, mais à l'heure actuelle je cherche une librairie php et une doc pour pouvoir utiliser ceci afin de pouvoir y faire ma boutique. Donc voici ce que je recherche : - soit une librairie utilisant JSON Api pour creer sa boutique sur son propre site web - soit autre connaissance de librairie ou autre pour pouvoir faire sa boutique je precise que je ne veut pas un site generer mais bien des class php permetant son utilisation. Merci a tous pour vos futur reponse. Cordialement, Hideman Mon site web : Factionacraft ps : Je ferais un prochain topic pour expliciter en details mon projet.
  4. forge

    Bonjour à tous, me revoilà pour une petite présentation d'un mod sur lequel je travaille depuis un petit moment Un mod spécialement conçu pour ceux qui font des lives sur la plateforme Hitbox.tv ! Résumé du mod: Le mod vous permettra via vos identifiant de vous connecter à une quelconque chaîne Hitbox.tv et ainsi d'avoir le tchat de cette dernière dans votre jeu. Si vous possédez des droit de modérations ou d'administrations vous pourrez aussi exécuter les commandes de base de hitbox: timout, ban, ban-ip, unban, add-modo, remove-modo, pm, slowmode et submode Ces commandes sont disponible en tapant /hitbox (ou ses raccourcis /h ou /hb) suivi de la commande. Vous pouvez tout aussi bien interagir avec le tchat de la chaîne sur laquelle vous êtes en tapant /hitbox msg suivi de votre message ! Screens du Mod: Update Screens: Caractéristiques détaillés du mod: Comment se connecter à votre compte Hitbox.tv et à une chaîne ? Il existe une touche à cet effet de base c'est la touche H pressez là et vous arriverez dans un menu vous demandant vos identifiants ainsi que le nom de la chaîne sur laquelle vous voulez vous connecter, cliquez sur le bouton de connexion et vous voilà prêt a recevoir les message du tchat et ou en envoyer ! NB: Vos identifiants ne sont sauvegardés dans aucuns fichiers et votre mot de passe n’apparaîtra pas en clair ! C'est l'une des sécurités du mod que je tiens a garder ! Listes des commandes disponibles: Bugs connus: • Il n'y a pas de support pour les émoticones pour le moment. • Les liens envoyés dans le tchat Hitbox sont buggé dans le tchat de Minecraft Changelogs: 0.3 0.0.2 Téléchargements & Liens: Repository Github (Source Code) Minecraft 1.7.10 (0.3 Dernière Version) Forge 1.7.10-10.13.4.1614-1.7.10: LIEN Minecraft 1.8 (0.3 Dernière Version) Forge 1.8-11.14.4.1577: LIEN Minecraft 1.8.9 (0.3 Dernière Version) Forge 1.8.9-11.15.1.1764: LIEN Minecraft 1.9 (0.3 Dernière Version)Forge 1.9-12.16.0.1767-1.9 : LIEN NEW ! Minecraft 1.9.4 (0.3 Dernière Version) Forge 1.9.4-12.17.0.1976: LIEN Minecraft 1.10 (0.3 Dernière Version) Forge 1.10-12.18.0.2000: LIEN Voilà j'espère que ce mod vous sera utile et plaira ! N'hésitez pas à me remonter les bugs que vous rencontrerez !
  5. Bonsoir/bonjour a tous je suis ici pour rechercher des développeurs permettant de me faire un mod , ce mod serai sous forge , il consisterai a e que l'on puisse faire entièrement notre personne depuis un gui exemple couleur de peau couleur de cheveux , couleur de vêtements . Ainsi que un développeur de plugin qui fonctionne en 1.7.10 avec cauldron les rémunérations sont possibles cependant je paye ce que je vois et je veux qu'il soit fini je ne veux pas des gens qui se nomme développeur qui demande de l'argent en avance puis qui te donne un truc a 5 % fait puis qui te supprime . ( je dis cela car c'est du vécu ) ... Bref merci de me laisser vos skypes cordialement Nicolas
  6. forge

    Lorsque l'on code, il y a un moment où l'on a un problème avec une fonction du jeu, par exemple le fait qu'il puisse neiger dans les biomes chaud comme le désert ou le nether (biome Hell)... Heureusement, forge a une fonctionnalité pour remédier a ce problème : les CoreMods. Attention : ce tutoriel nécessite un niveau convenable en java, il n'est en aucun cas pour les débutants ! A cause du fonctionnement de la librairie ASM, écrire un CoreMod peut être extrêmement dangereux pour la compatibilité de votre mod, si vous pouvais vous en passer, je vous conseille fortement de le faire. Je ne suis pas responsable si vous faites n'importe quoi avec les CoreMods. Prérequis : -Avoir lu ce tutoriel : Lien -Avoir un niveau convenable en java 1] Les CoreMods : c'est quoi ? Les CoreMods sont des mods qui vont être activé avant le lancement de minecraft, il vont vous permettre de changer des fonction dans certaines class pour les faire fonctionner comme vous le voulais. 2] Ecrire un CoreMod Un CoreMod est composé d'au minimum 2 classes pour la lisibilité, une classe qui va définir le mod, et une autre qui vas être le transformer 2.A] La classe du Mod La classe du mod sera défini de cette façon : public class NomDuCoreMod extends DummyModContainer implements IFMLLoadingPlugin DummyModContainer est ce qui dit a Forge que votre classe est un mod et IFMLLoadingPlugin est l'interface qui sert pour faire des transformation au code de minecraft. Dans les méthodes générées de cette façon, une seule nous intéresse dans ce tutoriel : public String[] getASMTransformerClass() Cette méthode vas nous permettre de donner le chemin a notre transformer. pour cela mettez y ce code : return new String[] {"package.NomDuTransformer"}; 2.B] La classe du transformer La classe du transformer est défini de cette façon : public class NomDuTransformer implements IClassTransformer Lorsque vous faite ainsi une méthode va apparaître : public byte[] transform(String name, String transformedName, byte[] basicClass) La première chose a faire pour éviter d’empêcher le jeu de marcher est d'ajouter a la fin du code : return basicClass; 3] ASM L'ASM est une libraire de manipulation du bytecode des classes pendant l’exécution de l'application (Site Officiel) Pour commencer, nous allons devoir importer certains packages : import static org.objectweb.asm.Opcodes.*; import org.objectweb.asm.*; import org.objectweb.asm.tree.*; Ces trois package vous permettrons d'avoir toutes les classes dont vous avez besoin. 3.A] Accéder a une classe Accéder a une classe est la première chose a faire (pour des question de lisibilité, je vous conseille de faire une méthode par classe transformée) pour cela, nous allons ajouter ce code a la méthode transform : if (transformedName.equals("package.Class")) { return transformClass(basicClass); } Nous allons donc utiliser une méthode transformClass définie de cette façon : private byte[] transformClass(byte[] basicClass) 3.B] Lecture et écriture d'une classe Pour lire le code d'une classe, nous allons utiliser ClassReader (org.objectweb.asm.ClassReader) : ClassReader cr = new ClassReader(basicClass); ClassNode cn = new ClassNode(); cr.accept(cn, 0); Ce code vas stocker la classe dans la variable cn (ClassNode) et vas nous permettre de l'utiliser. Lorsque vous aurez fini, ajouter ce code a la fin : ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS); cn.accept(cw); return cw.toByteArray(); Celui-ci va réécrire la classe pour avec les modification que vous lui aurez apporté. 3.C] Accéder a une méthode Attention, si vous trouviez que ce tutoriel était dur jusqu’à présent vous n'avez surement pas le niveau nécessaire pour ce tutoriel, car la ça devient vraiment le bazar. Alors les methodes... le gros probleme c'est qu'elles ont 2 noms : un nom donné par MCP pour que vous puissiez comprendre a quoi elle sert et un nom donné par Mojang sous la forme a, b, c, d, e ou autre. Pour connaitre ces noms vous allez devoir ouvrir un fichier situé dans ou <mapping> est soit stable, soit snapshot et <version> est la version du mapping (voir build.gradle) Maintenant, pour acceder a la methode, nous allons devoir faire ceci : //Exemple de getFloatTemperature dans BiomeGenBase en 1.9 for (MethodNode mn : cn.methods) { if ((mn.name.equals("a") || mn.name.equals("getFloatTemperature")) && (mn.desc.equals("(Lcj;)F") || mn.desc.equals("(Lnet/minecraft/util/math/BlockPos;)F"))) { } } mn.name est le nom de la méthode et mn.desc représente ses paramètres. 3.D] Instructions (ou la partie avec le nom le moins recherché mais en fait c'est la plus importante) Une instruction permet de dire au code ce qu'il doit faire, ce sont ces instruction qui vont être exécutées par la JVM. 3.D.1] Variables Bon... je pense que tout le monde sait ce qu'est une variable... //Pour charger une variable utiliser ce code new VarInsnNode(<TYPE>LOAD, <ID>) //Pour enregister une variable utiliser ce code new VarInsnNode(<TYPE>STORE, <ID>) 3.D.2] Return Pour faire l’équivalent de return, il vous faudra utiliser : new InsnNode(<TYPE>RETURN) 3.D.3] Methodes Bon pareil les méthodes c'est le bazar : insn.add(new MethodInsnNode(<TypeDInvoke>, "<package/Class>", <name>, <desc>, <classEstUneInterface>)); <TypeDInvoke> peut être : INVOKEVIRTUAL, pour les methodes d'un objet INVOKEINTERFACE, pour les methodes d'une interface INVOKESTATIC, pour les methode statics 3.D.4] Fields Les fields sont les variables de classe, pour les appeler il faut faire ceci : new FieldInsnNode(<GETFIELD ou GETSTATIC>, <package/Class>, <name>, <desc>) 3.E] Utiliser des instructions C'est bien de savoir définir des instructions mais c'est mieux si on peut les utiliser, pour cela il y a 2 solution, soit les insérer une par une, soit créer une InsnList et insérer cette dernière. Une InsnList fonctionne exactement comme une list, donc je ne vais pas l'expliquer. Pour insérer les instruction vous pouvais soit en ajouter soit les replacer. La seconde solution est plus simple mais moins plus incompatible. 3.E.1] Insertion L'insertion nécessite une position, que l'on peut obtenir en allant a travers le instructions (mn.instructions) de la méthode, je vous conseille d'allez voir le code de minecraft pour ce système, lorsque vous avez votre position vous n'avez plus qu'a faire ceci : mn.instructions.insert(position, instruction); ou mn.instructions.insertBefore(position, instruction); le premier insert après et le second avant la position. 3.E.2] Remplacement C'est tout de suite plus simple, faite juste mn.instructions = <InsnList> 4] Charger le CoreMod Pour que Forge sache qu'il faut loader ce CoreMod ajouter dans les arguments JVM ceci : -Dfml.coreMods.load=package.ClassDuMod et ajouter : jar { manifest { attributes 'FMLCorePlugin': 'package.ClassDuMod', 'FMLCorePluginContainsFMLMod': 'true' } } et voila, vous avez un CoreMod fonctionel !
  7. Bonjour à tous! Je viens vous présenter mon projet java, ModCreatorFX. Présentation ModCreatorFX est un logiciel qui permet de créer des mods pour forge (testé en version 1.8.9). Avant tout de chose pourquoi FX, et bien c'est assez simple c'est que cette application a été réalisée avec JavaFX (on aurait pu deviner ). Le principe est que l'application possède un certains nombres de modèles de code Java permettant de créer des items, blocks, entity, etc... A partir de ces modèles prédéfinis, l'utilisateur paramètre le modèle, comme mettre la texture de l'item que l'on veut créer, puis l'application génère alors le code Java et les ressources correspondantes. Par la suite l'utilisateur peut transférer les sources du mod généré vers le dossier de développement forge, et compiler (Peut-être que par la suite l'application générera aussi le code sous forme compilé). Fonctionnement L'application peut se diviser en deux parties: De un l'interface graphique avec laquelle l'utilisateur peut créer/ajouter des mods, puis les éditer, et la partie génération de code Java. Le générateur de code Java permet d'ouvrir un fichier et d'y ajouter des class, méthodes avec le code nécessaire à l'intérieur. Comme il faut qu'il soit possible que l'utilisateur puisse ajouter plusieurs items, donc écrire dans le même fichier, mais aussi le faire en plusieurs fois, chaque fichier est sérialiser et contient un certain nombres d'informations permettant d'ajouter de nouvelle class et méthodes tout en gardant ce qui était présent auparavant. Le tout dans le but de pouvoir créer un mod à partir d'un mélange de plusieurs modèles prédéfinis. Exemple Un petit exemple en images, pour égayer un peu la présentation: Tout d'abord on créer le mod. Puis on édite le mod pour ajouter une pelle, pour cela on décrit le nom de l'item, on choisit un fichier pour la texture et on choisit le type d'item, ici une pelle (shovel). Puis une fois les sources transférer vers forge et compiler. On peut admirer le résultat. Et maintenant ... ? Comme on peut le voir sur les images ci-dessus, pour l'instant l'application ne permet seulement que d'ajouter un item. Beaucoup de choses restent encore a implémenter comme par exemple un créateur de modèle reconnaissable par l'application pour qu'il n'y est pas besoin d'écrire en "dur" dans le code de l'application tous les modèles prédéfinis, et bien d'autre choses. Mais ce projet est assez coûteux en temps, c'est aussi pour cela que je présente ce projet, car s'il intéresse des personnes pour m'aider ou juste apporter une contribution, je serais ouvert a mettre le code source sur github ou autre site de partage de code. Je propose aussi ce projet comme idée en lien avec le topic Projet communautaire, même si cela n'a peut-être aucun rapport. Merci d'avoir regarder ma présentation, je suis heureux d'avoir pu présenter mon premier projet sur IronCraft et même si ModCreatorFX est pour l'instant qu'une petite application, elle m'a permit d'en apprendre beaucoup sur le java. Si vous voulez me contacter vous pouvez m'envoyer un mail à cette adresse : gengendai389@gmail.com . Changelog: le lien vers le repo contenant les sources: https://github.com/gendai/ModCreatorFX .
  8. Bonjour, je suis entrain de créer mon serveur minecraft et il me faudrait un launcher forge en 1.7.10 Classique sans design je ne peut pas payer plus de 5 a 6 € désolé je sais c'est très peu mais bon je demande pas plus que un launcher tous simple :/ pour me contacter : email: contact@xdoh.fr Skype : xdoh59 ou ici ^^ Cordialement.
  9. forge

    Introduction Dans Minecraft, les mods qui ajoutes des block ou des items sont bien mais... Ils sont surtout très limités. Dans ce tutoriel, je vais tenter de vous expliquer les Inventaire (IInventory) et les Containers et GUIs Prerequis : 1- Avoir une installation de forge 1.7.10 2-Avoir suivi ce tutoriel 3- Savoir faire un block 4- Savoir faire un TileEntity Sommaire 1] Block et Tile Entity 2] Sauvegarde 3] Ticking du block 4] Enregistrement 5] Container 6] GUI 7]Finalisation 1] Block et TileEntity Voila, on est au bases de l’inventaire. Pour commencer faites un block simple. Pas trop de travail hein… Votre block doit avoir extends BlockContainer Changez return null; dans createNewTileEntity par return new TileInventoryTuto(); et creer TileInventoryTuto en precisant : public class TileInventoryTuto extends TileEntity implements IInventory Lorsque vous corrigerais l'erreur, vous verrez beaucoup de méthodes apparaître. Ne vous en faite pas elle ne sont pas compliquées a complétées A] getSizeInventory() Bon… là pas grand-chose à expliqué : mettez le nombre de stack que votre block peut stocker. B] getStackInSlot(int slot) Ah, c’est un tout petit peu plus compliqué là… Pour cette méthode : introduction d’une nouvelle variable : stack, c'est cette variable qui vas contenir l'inventaire de votre block, c'est une liste d'ItemStack public ItemStack[] stack = new ItemStack[X]; Avec X = getSizeInventory() Après, c’est juste return stack[slot]; Ce code va juste prendre le stack a la position slot. C] devrStackSize(int slot, int num) public ItemStack decrStackSize(int slot, int num) { if (this.stack[slot] != null) { ItemStack itemstack; if (this.stack[slot].stackSize <= num) { itemstack = this.stack[slot]; this.stack[slot] = null; } else { itemstack = this.stack[slot].splitStack(num); if (this.stack[slot].stackSize == 0) { this.stack[slot] = null; } } return itemstack; } else { return null; } } Voilà le code, c’est le même dans 90 % des inventaires et c'est celui que l'on va utiliser. Il vérifie d'abord que l'item dans le slot existe, ensuite il regarde si le nombre à enlever est supérieur ou égal à la taille du stack. Si oui alors il vas enlever l'item du slot après en avoir fait un copies et va le return. Sinon, il vas couper le stack en 2 et il vas garder une des deux parties qu'il vas return. D] getItemStackOnSlotClosing(int slot) @Override public ItemStack getStackInSlotOnClosing(int slot) { if (this.stack[slot] != null) { ItemStack itemstack = this.stack[slot]; this.stack[slot] = null; return itemstack; } else { return null; } } Meme chose qu'au dessus, le meme code est utilisé dans tout les inventaires, il verifie d'abord que le stack dans le slot "slot" n'est pas null et dans ce cas, il return ce stack après l'avoir supprimer de l'inventaire. E] setInventorySlotContents(int slot, ItemStack input) public void setInventorySlotContents(int slot, ItemStack input) { this.stack[slot] = input; if (input != null && input.stackSize > this.getInventoryStackLimit()) { input.stackSize = this.getInventoryStackLimit(); } this.markDirty(); } Comme les deux precedents, celui si met un stack dans un slot et verifie que le stack en entre n'est pas trop grand. F] getInventoryName() et hasCustomInventoryName() @Override public String getInventoryName() { return "tileInventoryTuto"; } @Override public boolean hasCustomInventoryName() { return false; } Pour cette partie, changer "tileInventoryTuto" par le nom de votre block, c'est le nom de votre inventaire G]Les autres @Override public int getInventoryStackLimit() { return 64; } @Override public boolean isUseableByPlayer(EntityPlayer player) { return true; } @Override public void openInventory() { } @Override public void closeInventory() { } @Override public boolean isItemValidForSlot(int slot, ItemStack stack) { return true; } Pour l'instant laisser ce code tout seul, vous en avez pas vraiment besoin 2] La sauvegarde La sauvegarde des TileEntity s'appelle writeToNBT, vous allez devoir y mettre ce code @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); NBTTagList nbttaglist = new NBTTagList(); for (int i = 0; i < this.stack.length; ++i) { if (this.stack[i] != null) { NBTTagCompound tmp = new NBTTagCompound(); tmp.setByte("Slot", (byte)i); this.stack[i].writeToNBT(tmp); nbttaglist.appendTag(tmp); } } nbt.setTag("Inventory", nbttaglist); this.markDirty(); } Pour faire simple, ce code passe a travers la totalités des items stockés dans stack, si cet item n'est pas vide, les donnés de cet item sont stocké dans tmp puis mis dans la list. Finalement le la list est placée dans le nbt. Bon maintenant que on peut sauvegarder, il faudrait pouvoir relire les données. Pour cette fonctionnalité , minecraft nous offre readFromNBT: public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); NBTTagList nbttaglist = nbt.getTagList("Inventory", 10); this.stack = new ItemStack[this.getSizeInventory()]; for (int i = 0; i < nbttaglist.tagCount(); ++i) { NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); int j = nbttagcompound1.getByte("Slot") & 255; if (j >= 0 && j < this.stack.length) { this.stack[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1); } } } Ici, on s'occupe de passer a travers la liste et de remettre les items dans stack. La chose qui peut être difficile a comprendre est le "& 255" : il permet de passer d'un unsigned byte a un byte et donc à ne pas avoir un nombre aberrant dans "Slot". 3] Ticking du block Un inventaire c'est bien mais si il ne tick pas, il ne marche pas. pour cela nous avons 2 methodes @Override public Packet getDescriptionPacket() { NBTTagCompound nbt = new NBTTagCompound(); writeToNBT(nbt); return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 0, nbt); } @Override public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { readFromNBT(pkt.func_148857_g()); worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); super.onDataPacket(net, pkt); } getDescriptionPacket est le code qui s’exécute avant l'update d'un block, on lui dit ici d’écrire l'inventaire dans le NBT et d'envoyer ce NBT, qui est ensuite reçu par onDataPacket qui s'occupe de le lire est de dire que le block doit s'update. 4]Enregistrement Bien, nous avons un block et un inventaire mais vous ne les trouverais jamais en jeu... Vous allez donc devoir les enregistrer dans forge. public static final Block inventoryTuto = new BlockInventoryTuto().setBlockName("tuto").setCreativeTab(CreativeTabs.tabDecorations); Ce code permet de créer le block et de le mettre dans la tab Decorations du menu creatif. Dans preInit GameRegistry.registerBlock(inventoryTuto, "tuto"); GameRegistry.registerTileEntity(TileInventoryTuto.class, "TileEntityInventoryTuto"); Ce code est la base de la base, registerBlock dit a forge "ce block existe et il a l'ID tuto" et registerTileEntity fait la meme chose avec les tileEntities Nous avons donc un inventaire mais... il n'est accessible que par des hopper... donc il ne marcheras pas pour les personnes qui adoooooooore le vanilla... 5]Le Container J'en vois déjà certain "On s'en fiche du container puis ça sert a quoi d'abord ton truc ?"... Pour faire simple, le container est le lien entre le GUI est la Tile Entity, c'est lui qui défini les positions des Slots dans votre Objet. Vous comprendrez donc que c'est le plus important dans l'histoire... Bien pour commencer, un Container extends la class Container. Jusque là tout le monde suit... Lors de l'ajout des méthodes, vous verrez apparaître canInteractWith qui ne sert que lorsque vous avez un inventaire comme un coffre (ne s'ouvre pas s'il y a un bloc solide au dessus). Par défaut laisser la donc a true Pour le constructeur, je vous conseille ce format : public ContainerTuto(InventoryPlayer player, TileInventoryTuto tile) { } Il permet d'avoir accès à la TileEntity et donc de faciliter certaines interactions. A]Les slots Les slots sont les endroits où vous pouvez ranger vous items, pour en ajouter, allez dans le constructeur Pour commencer, il y a 2 type de slot : Les slots du block Les slots du joueur On vas commencer par le joueur : int decalage = 84; for (int j = 0; j < 3; ++j) { for (int k = 0; k < 9; ++k) { this.addSlotToContainer(new Slot(player, k + j * 9 + 9, 8 + k * 18, j * 18 + decalage)); } } for (int j = 0; j < 9; ++j) { this.addSlotToContainer(new Slot(player, j, 8 + j * 18, 58 + decalage)); } Le décalage servira plus tard pour cadrer l'inventaire dans le GUI comme vous pouvez le voir, on ajoute d'abord les slot inventaire puis hotbar. Pour les slot du block voici le code basique, vous n'aurez qu'a le répéter autant de fois que vous avez de slot dans votre inventaire this.addSlotToContainer(new Slot(tile, id, x, y)); avec id qui vas de 0 a votre nombre de slot -1 x la position en X y la position en Y NB : pour placer vous slot vous pourrez utiliser le Debug Mode d'clipse qui vous permet de faire des modification en temps réel. B] Shift Click Eh oui vous avez bien compris, car pour l'instant Shift-Click = Crash pour remedier a ce probleme il faut override la methode transferStackInSlot @Override public ItemStack transferStackInSlot(EntityPlayer player, int slot) { ItemStack itemstack = null; Slot slotItem = (Slot) this.inventorySlots.get(slot); if (slotItem != null && slotItem.getHasStack()) { ItemStack itemstack1 = slotItem.getStack(); itemstack = itemstack1.copy(); if (slot < <NBSlotInventaire>) { if (!this.mergeItemStack(itemstack1, <NBSlotInventaire+1>, this.inventorySlots.size(), true)) { return null; } } else if (!this.mergeItemStack(itemstack1, 0, <NBSlotInventaire>, false)) { return null; } if (itemstack1.stackSize == 0) { slotItem.putStack((ItemStack) null); } else { slotItem.onSlotChanged(); } slotItem.onPickupFromSlot(player, itemstack1); } return itemstack; } Voila le code, c'est barbare, il regarde d'abord si le slot est un slot de l'inventaire du block, si oui il tente d'abord de placer les items dans la hotbar, puis si ça échoue, il le tente de le placer dans l'inventaire en lui meme. Dans le cas ou le joueur a shift-click un object dans l'inventaire, il tente de le mettre dans l'inventaire du block. C'est quasiment du copier coller a chaque fois donc... n’oublier juste pas de remplacer les <NBSlotInventaire> par le nombre de slot total de votre inventaire. Bon.. On en a fini pour le container maintenant le GUI. 6]GUI J'ai garder le plus simple pour la fin : le GUI votre classe devra juste extends GUIContainer pour le constructeur faite ceci : public GUITuto(InventoryPlayer player, TileInventoryTuto tile) { super(new ContainerTuto(player, tile)); } Cette méthode vous permettra d’accéder au tileEntity sans trop de problème et d'obtenir les informations des progress bars par exemple (Feu dans le four, les bulles du stand d'alchimie...) puis dans drawBackgroundImage Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(Tutorial.MODID, "<CheminDeLaTexture(textures/X.png)>")); int k = (this.width - this.xSize) / 2; int l = (this.height - ySize) / 2; drawTexturedModalRect(k, l, 0, 0, xSize, ySize); pour faire simple : On dit a minecraft met la texture dans la mémoire, calcule le coin X et le coin Y de la texture, affiche la texture en k, l en commençant par le pixel 0x et 0y de la taille xSize et ySize. Et voila vous avez un Gui presque fonctionnel. 7] Finalisation Pour cette dernière étape, il va falloir ajouter quelque choses dans le block , dans le mod et dans les proxies. A]Mod NetworkRegistry.INSTANCE.registerGuiHandler(this, proxy); Ce code vas dire à minecraft que votre proxy vas gérer les GUI de votre mod. B]Common Proxy implements IGuiHandler ajouter ceci, cela vas vous donner accès a 2 nouvelles methodes, getServerGuiElement et getClientGuiElement. Le serveur est toujours le container et le client le GUIContainer dans la methode getServerGuiElement ajoutez if (ID == <IDDuGUI>) return new ContainerTuto(player.inventory, (TileInventoryTuto)world.getTileEntity(x, y, z)); où <IDDuGUI> est une valeur différent a chaque GUI. Ce code vas associer a l'id <IDDuGUI> le container correspondant. C]Client Proxy ajouter un override de la méthode getClientGuiElement et ajoutez if (ID == <IDDuGUI>) return new GUITuto(player.inventory, (TileInventoryTuto)world.getTileEntity(x, y, z)); Ce code vas associer a l'id <IDDuGUI> le gui correspondant, dans les deux cas, <IDDuGUI> est la même D]Le Block Dans le block, dans la méthode onBlockActivated, ajoutez TileEntity tileEntity = world.getTileEntity(x, y, z); if (tileEntity == null || player.isSneaking()) { return false; } player.openGui(Tutorial.instance, <IDDuGUI>, world, x, y, z); return true; Cette partie de code va vérifier si le joueur n'est pas accroupi, si ce n'est pas le cas, il va ouvrir le GUI avec l'id <IDDuGUI> pour le joueur. et voila, vous avez un inventaire qui stocke des items. J’espère que ce tutoriel vous aura aidé
  10. Salut tout le monde je m'appelle SkylleHD, je suis actuellement entrain de faire mon serveur avec des mods, il me faudrait de l'aide pour pouvoir apporter des nouveautés à mon serveur. J'aimerai biens avoir de l'aide sûre c'est deux mods : - le 1er mod serait d'afficher un message sur l'écran (tout en faisant un "/broadcast") : - Mon 2 ème mod serait d'utiliser le plugin AuthMe avec un Gui Spécialement crée pour sa : Version de mon serveur : 1.7.10 Merci pour vos réponses !
  11. Yo tout le monde ! c'est Iron' Et aujourd'hui (comme prévu Moiserien), je vous propose le modBetter Than Slimes. le mod à été réalisé par moi-même, avec quelques idées deMoiserien. Premièrement, le mod rajoute unminerais de slime, qui permet de rendre les slimeballs moins rares (y'en a besoin pour le reste :x ) bref, pour récolter ce minerais, vous aurez besoin d'uncouteau, craftable comme ceci : En faisant clic droit sur un minerai de Slime avec ce couteau en main, vous dropperez une slimeball, et le bloc sera transformé en stone. Le couteau peut aussi servir d'arme, il a les mêmes caractéristiques qu'une épée en stone. /!\ Possibilité d'enchanter le couteau avec des Blocking Enchants /!\ /!\ récolter une slimeball consomme 1 point de durabilité, mais taper un mob en consomme 3 /!\ Le mod ajoute aussi plusieurs items à base de slime : Le seau de slime : sert uniquement à crafter Le slime fondu : Le slime fondu est plaçable en tant que liquide : Il agit comme de l'eau. si vous placez une source de ce liquide sur un bloc de glace, il se tranformera encrystal de Slime: Le crystal peut-être récupéré avec un outil enchanté Silk Touch, sinon il drop des Crystal Shards. ces Shards servent à créer l'armure Slime, suivant le schéma classique de craft. L'armure Slime : Si elle est entiièrement équipée, le joueur bénéficie d'un effet deJump Boostet lesdégâts de chutes sont annulés. Cependant l'armure n'est pas très solide (entre le cuir et le fer), et elle ne dure pas très longtemps (idem). Outils : Vous ne pouvez pas crafter les outils classiques, genre pelle/pioche... Mais il existe 2 outils inédits : Le Slime Placer : le placer sert à poser du slime sur des pistons, simplement via un clic droit sur un piston. Vous pouvez aussi reprendre du slime sur un piston collant. L'item peut être utilisé 64 fois avant de se casser, poser une slimeball consume 1 point de durabilité, récupérer une slimeball en ajoute 1. /!\ vous devez avor des slimeballs dans votre inventaire /!\ Le Slime Gun : Le slime gun sert à tirer des slimeballs (you don't say ?!) Le slimeballs tirées ne font pas de dégâts au mob, mais leur donne un effet de slowness. Durabilité : 200 coups. Rendu 3D du gun : Blocs : Le mod ne rajoute qu'un seul bloc (pour l'instant) Le Stinger : ce bloc ralenti fortement les mobs qui marchent dessus, y compris vous ToDo List : - les bottes Slime annule l'effet du stinger - la chestplate Slime donne un effet knockback au mob qui vous attaque au corps à corps - le slime gun nécéssite, pour marcher, que le joueur ait des slimeballs dans son inventaire Voila, c'est tout pour le moment, n'hésitez pas à dire ce que vous en pensez ! (soyez indulgents, le mod à été réalisé en 3 jours :3 ) Le mod requiert Forge Téléchargement Enjoy !
  12. Changer le curseur de la souris Cette uvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas dUtilisation Commerciale - Pas de Modification 3.0 non transposé . Tout partage implique que vous citiez l'auteur original. -[iNTRODUCTION]- Nous allons voir comment changer le curseur de la souris -[PRES-REQUIS]- 1]La base d'un mod Forge ou un MCP Vanilla -[sOMMAIRE]- 1]La fonction 2] Appeler la fonction 3]Pourquoi une rotation ? 4] La classe complète et le rendu final 1]La fonction 1.1] Creation La première chose à faire est d'ajouter une fonction qui s'occupera de contenir notre code private void setCursor(String modid, String path, int width, int height, double rotation) { } Hormis le premier, tous les paramètres concerne l'image à appliquer, les nom sembles explicites, je ne pense pas qu'il soit utile de détailler. 1.2]Remplissage Commencez par instancier un transform que vous utiliserez plus tard pour la rotation de l'image. AffineTransform transform = new AffineTransform(); Comme à chaque fois qu'on accède à un fichier ou qu'on affiche quelque chose, il y a des chances que ça plante, ajoutez donc un bloc try-catch pour éviter que le jeu crash si cela arrive. try{ } catch (LWJGLException e) { // Catch les exceptions liées aux changements appliqués à l'image e.printStackTrace(); } catch (IOException e) { // Catch les exceptions liées à la lecture du fichier e.printStackTrace(); } A l'intérieur de celui-ci, récupérez l'image est stockez la dans une variable BufferedImage cursorTexture = ImageIO.read(getClass().getResource("/assets/" + modid + path)); Ajoutez également un traitement pour changer les sens de l'image et préparer l'affichage de la texture //Change la valeur de rotation du transform que vous appliquerez plus tard, le paramètre 'rotation' est un radian. transform.rotate(rotation, cursorTexture.getWidth()/2, cursorTexture.getHeight()/2); AffineTransformOp op = new AffineTransformOp(transform, AffineTransformOp.TYPE_BILINEAR); cursorTexture = op.filter(cursorTexture, null); //Creation d'un tableau d'int de la taille de la texture, il est utilisé pour créer un buffer. int[] rgbs = new int[cursorTexture.getWidth() * cursorTexture.getHeight()]; //Creation d'un buffer, il sera utilisé plus tard lors de la création du curseur. IntBuffer buffer = IntBuffer.wrap(cursorTexture.getRGB(0, 0, cursorTexture.getWidth(), cursorTexture.getHeight(), rgbs, 0, cursorTexture.getHeight())); //Permet la lecture et l'application du curseur. buffer.rewind(); Finissez par créer le curseur et changer celui par défaut //Enregistre les informations créées précédemment dans une variable de type 'Cursor' Cursor newCursor = new Cursor(cursorWidth, cursorHeight, xHotspot, yHotspot, 1, buffer, null); //32x32 semble correct //xHotspot doit être compris entre 0 (inclus) et la largeur du curseur (exclue), par défaut : 1 //yHotspot doit être compris entre 0 (inclus) et la hauteur du curseur (exclue), par défaut : cursorTexture.getHeight() - 1 //Change le curseur par défaut. Mouse.setNativeCursor(newCursor); 2]Appeler la fonction Dans l'exemple qui va suivre j'ai fait en sorte d'afficher l'épée en diamants comme nouveau curseur (en loccurrence la texture est en 16x) Vous pouvez appeler la fonction dans la fonction init() du ClientProxy si vous utilisez Forge ou après l'init du Display de la fonction startGame dans la classe principale de Minecraft. this.setCursor("minecraft", "/textures/items/diamond_sword.png", 16, 16, 3.1415926536); 3] Mais pourquoi une rotation ? 1 est la texture de base de l'itemmais le curseur devrait être dans le sens de 2, or, si on applique l'image sans modification, le curseur ressemblera à 3 Il faut donc ajouter un angle de180° converti enradian, soit3.1415926536, je vous conseil le siterapidtables.com(en anglais)pour la convertion. Libre à vous de jouer avec les point de clic X/Y (x et yHotspot) ainsi que la rotation de la texture pour avoir un curseur dans le sens que vous voulez ! 4]La classe complète et le rendu en jeu 4.1] La classe import java.awt.geom.AffineTransform; import java.awt.image.AffineTransformOp; import java.awt.image.BufferedImage; import java.io.IOException; import java.nio.IntBuffer; import javax.imageio.ImageIO; import org.lwjgl.LWJGLException; import org.lwjgl.input.Cursor; import org.lwjgl.input.Mouse; import fr.zeamateis.tuto_ic.common.proxy.CommonProxy; public class ClientProxy extends CommonProxy { @Override public void init() { registerRender(); } private void registerRender() { this.setCursor("minecraft", "/textures/items/diamond_sword.png", 16, 16, 3.1415926536); } private void setCursor(String modid, String path, int width, int height, double rotation) { AffineTransform transform = new AffineTransform(); try { BufferedImage cursorTexture = ImageIO.read(getClass().getResource("/assets/" + modid + path)); transform.rotate(rotation, cursorTexture.getWidth()/2, cursorTexture.getHeight()/2); AffineTransformOp op = new AffineTransformOp(transform, AffineTransformOp.TYPE_BILINEAR); cursorTexture = op.filter(cursorTexture, null); int[] rgbs = new int[cursorTexture.getWidth() * cursorTexture.getHeight()]; IntBuffer buffer = IntBuffer.wrap(cursorTexture.getRGB(0, 0, cursorTexture.getWidth(), cursorTexture.getHeight(), rgbs, 0, cursorTexture.getHeight())); buffer.rewind(); Cursor newCursor = new Cursor(width, height, 1, cursorTexture.getHeight() - 1, 1, buffer, null); Mouse.setNativeCursor(newCursor); } catch (LWJGLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } 4.2]Le rendu Tutoriel inspiré de MinecraftForgeFrance et réédité par Dren
  13. Sommaire Par quoi je commence ? Dossier : Tout savoir sur l'installation. Premier mod Les meilleurs mods commencent comme ça. Allo ? Est-ce que ça marche ? Premier build et distribution. Vous pouvez proposer des améliorations sur le topic de discussion.
  14. Installation des outils nécessaires au développement Cette uvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas dUtilisation Commerciale - Pas de Modification 3.0 non transposé . Tout partage implique que vous citiez l'auteur original. -[iNTRODUCTION]- Bonjour les gens, si vous êtes ici c'est sûrement que vous débutez dans le modding Forge, c'est pourquoi je vous fais ce tutoriel en espérant vous donnez tous les outils nécessaires afin de bien débuter vos futures créations. Ce qui va suivre est essentiellement vrai pour des systèmes Windows, toutefois certains points peuvent être vrais pour plusieurs systèmes d'exploitation, il n'est pas non plus bien difficile de transposer ce que je dit dans un autre OS si vous maîtriser un minimum celui-ci. -[sOMMAIRE]- 1] Logiciels 2] Installation de Forge 2] Configuration de l'espace de travail 1] Logiciels Java Developpment Kit : Avant de coder, il faut bien évidemment installer des logiciels vous le permettant tout d'abord vous devez télécharger la "base" pour le modding, je parle bien sur du Java Developpment Kit une fois sur le site il vous faut choisir la version correspondant à votre système d'exploitation et à l'architecture de celui-ci. Le JDK ainsi installé il faut désormais définir les variables d'environnement. Reperez tout d'abord le répertoire où JDK est installé ( C:\Program Files\Java\jre1.8.0_60 pour ma part) Puis rendez-vous dans : Ordinateur --> Propriétés systèmes --> Paramètres systèmes avancés --> Variables d'environnement Vous devriez alors être ici : Ensuite, vous devez créer une nouvelle variable système que vous appelerez JAVA_HOME, sa valeur sera (comme vous pouvez le voir) le repertoire où est installé votre JDK, cherchez après la variable "path", placez vous après un point-virgule et inserez le repertoire où vous avez installé le JDK suivi de \bin et bien sur, d'un point-virgule ( C:\Program Files\Java\jre1.8.0_60\bin; chez moi). Une fois ceci fait votre JDK est opérationnel, pour le vérifier ouvrez donc votre invité de commande et tapez : javac Si la commande vous indique la manière dont il faut utiliser cette commande (et non pas une erreur), votre ordinateur est prêt à coder ! Environnement de developpement: Seulement à moins d'être en parfaite symbiose avec votre ordinateur ainsi que JDK vous n'êtes pas apte à modder ce magnifique jeu qu'est Minecraft, c'est pourquoi vous devez installez un IDE, logiciel qui vous permettra de coder effectivement et de tester les fonctionnalités de votre mod en direct je vous conseille personellement Eclipse car c'est sans doute le plus simple d'utilisation et c'est celui avec lequel j'effectuerai les autres tutoriels; Il faut vous rendre sur le page de téléchargement du site web d'Eclipse (en plus ils viennent juste de sortir une installation automatique, profitez-en ) et de procéder à l'installation, une fois ceci fait restez-en là, nous en reparlerons un peu plus tard. Toutefois sachez qu'il existe d'autres IDE parfois plus complet mais bien souvent plus complexe parmi ceux-ci je vous recommande IntelliJ IDEA, qui intègre directement gradle et Git, cependant il est un petit plus complexe d'utilisation (attention à bien choisir la version community, l'autre version étant payante, ne vous inquietez pas cette dernière contient tout ce dont vous avez besoin). Editeur de texte avancé : Depuis quelques temps déjà Minecraft utilise pas mal de fichier .json c'est pourquoi je vous recommande fortement d'acquérir un editeur de texte un peu plus complexe que le bloc-notes. Je vous recommande encore une fois celui que j'utilise Notepad ++, clair, simple d'utilisation et un simple clic droit vous permet d'éditer tout ce qui est éditable ainsi que PSPad ! Sachez toutefois qu'il en existe bien d'autre et que vous avez l'embarras du choix en matière d'éditeur de texte. (Si vous optez pour N++ vérifiez bien que votre logiciel encode en UTF-8 sans BOM, via l'onglet Encodage). Si vous êtes sur OS X je vous recommande le logiciel Fraise. Logiciels de manipulation graphique : Votre futur mod aura sans doute besoin de textures et de je ne sais quels autres modèles, c'est pourquoi je vous conseille (si ce n'est pas déjà le cas) d'installer des logiciels d'édition/manipulation graphique, je vous propose une liste de logiciels gratuits que je vous conseille : GIMP : http://www.gimp.org/downloads/ Paint.net : http://www.getpaint.net/download.html PhotoFiltre 7 (freeware) : http://www.photofiltre-studio.com/pf7.htm Les adeptes de Photoshop peuvent aussi utiliser ce logiciel, le principal problème avec celui-ci étant son prix. Vous serez aussi peut-être amenés à concevoir des modèles 3D, il vous faudra donc télécharger Techne un outil de modélisation adapté à Minecraft. Il existe aussi CraftStudio qui est lui par contre un outil payant de modélisation 3D (ainsi qu'un moteur de jeu) 2] Installation de Forge Sources de Forge : En effet, il faut d'abord acquérir les sources de forge (et de minecraft) c'est pourquoi vous allez les téléchargez sur le site officiel de Forge, choissisez la version que vous désirez (les versions recommandées sont comme cela le laisse supposer, recommandées, surtout dans le cadre de la création d'un mod), puis faites bien attention à télécharger la version SRC, extrayez ensuite ce dossier là où cela vous arrange. Installation de Forge : Rendez-vous dans le dossier préalablement choisi, vous cliquez dans l'adresse du repertoire, effacez celle-ci et tapez " cmd" une fois l'invité de commande dans le repertoire des sources tapez (uniquement si vous utilisez eclipse) : gradlew setupDecompWorkspace eclipse --info En revanche si vous utilisez IntelliJ IDEA tapez : gradlew setupDecompWorkspace idea --info Si vous êtes sur Mac OS X ou sur une distrib' Linux il vous suffit de rajouter "./" pour executer gradlew (vérifier toutefois que vous avez les permissions de l'executer) 3] Configuration de l'espace de travail Eclipse : Il faut désormais proceder à une rapide configuration d'éclipse, tout d'abord lancez le logiciel : Selectionnez le dossier "eclipse" du repertoire des sources de Forge, lancez le logiciel, puis une fois ceci fait rendez-vous dans : Windows --> Preferences --> General --> Editor Et choissisez autre puis UTF-8, cela permettra d'éviter certains problèmes. IntelliJ IDEA (WIP): Une fois le logiciel installé, lancez-le et accedez aux sources en créant un nouveau projet via : File --> New --> Project from Existing Sources... Une fois ceci fait selectionnez l'endroit ou les sources de minecraft et de forge sont installés, suivez les instructions d'installation et vous êtes prêt à coder ! Merci d'avoir lu, si jamais il y a des erreurs (dans le fond comme dans la forme), merci de me les signaler, Bonne continuation, Cordialement
  15. https://www.youtube.com/watch?v=_-Up2eSjrSA Bonjour, bonsoir ! Aujourd'hui je suis ici pour vous présenter le projet Kerroth. Pour faire court, Kerroth est un serveur PvP/Faction, et contrairement à 100% des serveurs de ce genre possèdent une trame scénaristique ! Pour une fois vous ne serrez pas simplement sur un serveur minecraft, mais dans un univers à savoir le monde d'Aldaaris et plus précisément dans le pays prospère qu'est Kerroth. I/Présentation Kerroth est un serveur né de mon envie de créer un réel serveur duquel je serais fière et qui j'éspères pourrait marcher. Etant aussi fondateur de la Team Enoviah, j'en ai parlé aux différents membres lesquels ont tout de suite accepté, nous avons dès lors commencé à créer notre modpack, coder notre launcher, installer les machines dédiés, teamspeak, forum... Pour ce qui est du jeu, notre ville principale est prête, elle se nomme Erangar. Pour ce qui est de la présentation du RP ce sera plus bas dans ce message. Alors concrètement Kerroth ce sera quoi ? Ce sera un serveur PvPFaction, qui comme dit plus haut, aura une histoir RP. Le serveur sera moddé et tournera sous KCauldron, avec un client Forge, la majorité des mods seront d'auteurs externes et quelques uns de nous. II/Background (WIP) Le Royaume de Kerroth est sans aucun doute le plus paisible dAldaaris. En effet, ce dernier est géré par un illustre roi, sans doute le meilleur qui nest jamais foulé les terres de notre vaste monde. Le nom de ce roi ? Je ne peux vous le dire Ce roi reste inconnu par son peuple dont il sest occupé avec bienveillance et clémence. La seule chose dont on sait de lui, cest son lieu de résidence qui fut nommé le Royaume Saint, cest aussi là-bas quil soccupe des affaires concernant le Royaume. Depuis que celui-ci gouverne le Royaume, la populace na jamais crié famine. Il a fait preuve dingéniosité en profitant des terres du royaume qui en effet sont très fertiles, en exploitant celles-ci de la bonne manière, le Royaume a pu acquérir de très grande ressource en nourriture et par la même occasion se permettre de marchander avec les autres Royaumes dAldaaris. En plus de cela, le Royaume de Kerroth a une très bonne position stratégique, ce dernier se trouve au centre ce qui lui permet dentretenir des échanges commerciaux avec tous les autres royaumes. Kerroth est très convoité pour sa position avantageuse et pour ses terres fertiles. Qui plus est, une légende raconte lexistence dun arbre pouvant exaucer un souhait, bien évidemment, lexistence de cet arbre doté dun tel pouvoir nest fondé que sur des rumeurs. La convoitise de ces terres est à lorigine de nombreux conflits, malheureusement, Kerroth ne possède pas une armée digne de sa réputation économique. Le roi a donc usé de léloquence pour pouvoir créer une alliance avec les autres royaumes, nombreux sont ceux qui ont accepté. Malgré lardeur de ses paroles, il na malheureusement pas réussit à allier la totalité des royaumes. Kerroth, à laide de lAlliance réussirent à affronter ceux qui voulaient encore se battre. III/Fonctionnalités - Modification du personnage principale, avec un GUI permettant la modification du modele (Cheveux, bouche...) - Interface de news lié au site pour connaitre les derniers ajouts, et futurs events en temps réel : - Interface pour gérer votre faction (Créer, description...) -- Plus simple pour les nouveaux ! - Modification du plugin faction pour permettre un stockage en BDD et donc l'utilisation via PHP - Nouveaux minerais (Suffrite-Grycite-Etherite) avec le rendu 3D des épées - Possibilité de parler en jeu avec votre microphone - AntiBack AP - Nerf potions de force - Améliorations GamePlay pour le PvP - Et bien d'autres choses réalisé, en cours de réalisation ou de prévu IV/Screenshots en vrac -> Un beau launcher pour en mettre plein vos mirettes ^^ -> Introduction du background au lancement du launcher -> Un jolie GuiMainMenu pour pouvoir se connecter -> Des nouveaux minerais, n'apparaissant que dans les sous sols dangereux de Kerroth ! Ce qui a dailleur fait la richesse du pays, et la convoitise d'autres... -> Modification du HUD in game pour un petit piment role play et un clin d'oeil aux MMOs -> Modification des mouvements : Possibilités de crawler, grimper, faire une glissade, s'allonger ! (Sympa pour pimenter le PvP et les bases secrètes. -- Quelques screens d'arangar : V/Recrutement -> Moddeur sur l'API Forge : Utilisation de modèles 3D pour appliquer aux armes, création de GUIs, et autres selon le besoins. -> Coddeur Spigot: Pour des plugins lié au mods, gestions de packets //// Ou plugin sans gestions sockets pour le serveur. -> Térraformeur : Création de montagnes, de reliefs, de court d'eaux. -> Mappeur : Aménagement des villes, des zones autres que les villes, gestion de l'espace et construction des batiments. -> Decorateur : Aménagement des intérieurs de maisons avec les objets ajoutés par le launcher, rendre plus beau les villes. -> Scénaristes : Maîtrise de NPCCustom pour faire des quetes détaillés et recherchés ! -> Rédacteur : Animation du forum, présentation du projet aux autres communautés, chaines Youtube, contre-rendu des avancements du projets. -> Graphiste : Création de textures de blocs, de skins, d'armes, d'items. -> Modélisateur 3D: Création de mobs ?? armes 3D, illustration 3D pour le launcher/Site. -> Youtubeur : Partager le projet sur youtube ! ------ Contact ------ Par Mail :azword@hotmail.com Par Skype : MP moi ! Sur notre site :http://enoviah.fr/forum Ou TeamSpeak : ts.enoviah.fr Cordialement Azword
  16. ZeAmateis Modding Bonjour tout le monde ! Cela fait maintenant un bon bout de temps que je développe en Java, et plus précisément sur Minecraft, ce qui me permet de vous présenter toutes les choses que je suis capable de faire sous Forge de la 1.7.2 à nos jours ! Petite liste des choses que je suis capable de faire (et il n'y a pas tout !) Blocs: Du simple bloc lumineux en passant par un coffre, four ou autre chose ! Items: Du plus simple au plus complexe ! Entités:Volante, Aquatique, Agressive, Monture, Animal de compagnie... Crafts:Qui dit, Items ou Blocs, dit forcément... Crafts ! Menu/GUI: Modification du menu principal, ajout de bouton, news.... Et pleins d'autres choses ! Mais je tiens à vous dire que mes services ne sont pas "Gratuits", je passe beaucoup de temps à travailler de fond en comble mon code pour qu'il vous soit le plus simple possible, si une réécriture ou autre vous passerait à l'esprit ! Je m'engage donc à vous fournir un travail de qualité à des prix qui ne sont pas excessivement chers non plus ! Bien entendu si vous avez un quelconque souci financier, nous nous arrangerons ! Passons à une petite image de ce que j'ai fait, ici le passage 1.8 en 1.6.4 ! Voili, Voilà ! J'espère que ce petit C.V vous donnera envie de passer commande ! Et merci de m'avoir lu ! -ZeAmateis- Pour tout contact utilisez la messagerie du forum ! Si ce topic ne respecte pas une règle ou comporte quelque chose de non-autorisé sur le forum, faites le moi savoir ! Merci !
  17. Forge

    Générer un block (type minerai) -[iNTRODUCTION]- Dans ce tutoriel, je vais vous montrer comment générer un bloc grâce l'api de forge. -[sOMMAIRE]- 1] Explications 2] Résultat final 1] Explications Dirigeons nous vers notre classe principale pourdéclarez la classe GeneratorOreMod : GeneratorOreMod eventGeneratorManager = new GeneratorOreMod(); Une erreur va apparaître sur les mots GeneratorOreMod, c'est tout à fait normal puisque nous n'avons pas encore créé cette classe. Allez maintenant dans votre fonction preInit et enregistrez ceci : GameRegistry.registerWorldGenerator(eventGeneratorManager, 0); Le 0 est le poids de notre générateur (plus il est grand plus tard sera effectuée la génération). Maintenant, nous allons créer notre classe GeneratorOreMod. On vaimplémenter la classe IWorldGenerator comme ceci : import cpw.mods.fml.common.IWorldGenerator; public class GeneratorOreMod implements IWorldGenerator { } L'erreur qui apparaît demande la déclaration explicite d'une méthode (generate), ce que nous allons faire : @Override public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) { switch(world.provider.dimensionId) { case -1: generateNether(world, random, chunkX * 16, chunkZ * 16); case 0: generateSurface(world, random, chunkX * 16, chunkZ * 16); case 1: generateEnd(world, random, chunkX * 16, chunkZ * 16); } } Ceci sert à différentier ma génération de notre minerai dans les 3 dimensions qui sont le nether, le monde normal et l'end. Les 16 représentent la longueur et la largeur d'un chunk dans minecraft. Il faut bien sûr créer ces méthodes : private void generateNether(World world, Random random, int x, int z) { } private void generateEnd(World world, Random random, int x, int z) { } private void generateSurface(World world, Random random, int x, int z) { } Nous allons ajouter une méthode pour nous simplifier la vie (Ctrl + Shift + O pour résoudre les erreurs d'import) : /** * Génère le bloc passé en argument. * * @param block Le type de bloc à générer. * @param world Le monde dans lequel il faut le générer. * @param random Objet random pour calculer au hasard la position des filons. * @param blockXPos Position X de la génération. * @param blockZPos Position Z de la génération. * @param maxX Position X maximale dans le chunk. * @param maxZ Position Z maximale dans le chunk. * @param maxVeinSize La taille maximale d'un filon. * @param chancesToSpawn Le nombre de filons par chunk. * @param minY La hauteur minimum d'un filon. * @param maxY La hauteur maximum d'un filon. */ public void addOreSpawn(Block block, World world, Random random, int blockXPos, int blockZPos, int maxX, int maxZ, int maxVeinSize, int chancesToSpawn, int minY, int maxY) { int maxPossY = minY + (maxY - 1); assert maxY > minY: "La hauteur maximum doit être plus grande que la hauteur minimum."; assert maxX > 0 && maxX <= 16: "La plus grande position X doit être entre 0 et 16."; assert minY > 0: "La hauteur minimum doit être plus grande que 0."; assert maxY < 256 && maxY > 0: "La hauteur maximum doit être entre 0 et 256."; assert maxZ > 0 && maxZ <= 16: "La plus grande position X doit être entre 0 et 16."; int diffBtwnMinMaxY = maxY - minY; for(int x = 0; x < chancesToSpawn; x++) { int posX = blockXPos + random.nextInt(maxX); int posY = minY + random.nextInt(diffBtwnMinMaxY); int posZ = blockZPos + random.nextInt(maxZ); (new WorldGenMinable(block, maxVeinSize)).generate(world, random, posX, posY, posZ); } } Petit rappel sur les assertions : On peut également ajouter un message dans l'instruction assert : assert numero.charAt(0) == '0' : "Le numéro est invalide.";; Et l'erreur sera la suivante : Pour activer les assertions lors du lancement d'un programme, ajoutez "-ea" à la commande java (ou dans la case VM arguments d'Eclipse). Puis, grâce à cette méthode et dans une des 3 que nous avons créée, on peut générer notre bloc : this.addOreSpawn(Blocks.bedrock, world, random, x, z, 16, 16, 3, 2, 10, 20); Ce code génèrera 2 filons de bloc de bedrock par chunk. Ces filons comporteront 3 blocs maximum, et seront situés entre les couches 10 et 20. 2] Code final Au final, le code final est : import java.util.Random; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.world.World; import net.minecraft.world.chunk.IChunkProvider; import net.minecraft.world.gen.feature.WorldGenMinable; import cpw.mods.fml.common.IWorldGenerator; public class WorldGeneratorMod implements IWorldGenerator { @Override public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) { switch (world.provider.dimensionId) { case -1: generateNether(world, random, chunkX * 16, chunkZ * 16); case 0: generateSurface(world, random, chunkX * 16, chunkZ * 16); case 1: generateEnd(world, random, chunkX * 16, chunkZ * 16); } } private void generateNether(World world, Random random, int x, int z) { } private void generateEnd(World world, Random random, int x, int z) { } private void generateSurface(World world, Random random, int x, int z) { this.addOreSpawn(Blocks.bedrock, world, random, x, z, 16, 16, 3, 2, 10, 20); } /** * Génère le bloc passé en argument. * * @param block Le type de bloc à générer. * @param world Le monde dans lequel il faut le générer. * @param random Objet random pour calculer au hasard la position des * filons. * @param blockXPos Position X de la génération. * @param blockZPos Position Z de la génération. * @param maxX Position X maximale dans le chunk. * @param maxZ Position Z maximale dans le chunk. * @param maxVeinSize La taille maximale d'un filon. * @param chancesToSpawn Le nombre de filons par chunk. * @param minY La hauteur minimum d'un filon. * @param maxY La hauteur maximum d'un filon. */ public void addOreSpawn(Block block, World world, Random random, int blockXPos, int blockZPos, int maxX, int maxZ, int maxVeinSize, int chancesToSpawn, int minY, int maxY) { int maxPossY = minY + (maxY - 1); assert maxY > minY : "La hauteur maximum doit être plus grande que la hauteur minimum."; assert maxX > 0 && maxX <= 16 : "La plus grande position X doit être entre 0 et 16."; assert minY > 0 : "La hauteur minimum doit être plus grande que 0."; assert maxY < 256 && maxY > 0 : "La hauteur maximum doit être entre 0 et 256."; assert maxZ > 0 && maxZ <= 16 : "La plus grande position X doit être entre 0 et 16."; int diffBtwnMinMaxY = maxY - minY; for (int x = 0; x < chancesToSpawn; x++) { int posX = blockXPos + random.nextInt(maxX); int posY = minY + random.nextInt(diffBtwnMinMaxY); int posZ = blockZPos + random.nextInt(maxZ); (new WorldGenMinable(block, maxVeinSize)).generate(world, random, posX, posY, posZ); } } } -- Correction et mise en page par Wytrem le 27/05/2015.
  18. Bonjour, Bonsoir ! Aujourd'hui je reprends le flambeau d'un projet tombé dans l'oubli ! Cette fois-ci cela aboutira à une fin heureuse ! Celle d'un serveur Full RP sur le theme de SAO ! Je viens en ce jour vous présenter un projet naissant. Un serveur RPG d'un style particulier. Pour ceux qui auront reconnu le titre du topic, certains auront compris de quoi vais-je parler. Je tiens à rappeler que le projet est en cours d'écriture encore. __________ Pour voir l'avancement : http://www.youtube.com/watch?v=N0qDxpI8v8E I. Présentation En effet, Sword Art Online, est à la base un Shonen/Light Novel écrit par Reki Kawahara. Il a été adapté en manga puis en animé il n'y a pas longtemps en 25 épisodes suivant les aventures de "Kirito". Bien évidemment, nous ne pouvons pas tout modéliser sur Minecraft. Nous reprendrons l'idée de la map de SAO avec ses fameux 100 étages à gravir ainsi que son aspect RPG. Nous pourrons toujours reprendre bien évidemment le RP du manga de base. Le serveur se présentera sous la forme d'un énorme MMORPG donc. __________ II. Organisation de la Carte Le serveur entier se présentera sous une seule structure, appelée l'Aincrad : La structure devra être assez grande ( Soit, énorme ) pour pouvoir accueillir comme il se doit les joueurs pour qu'ils puissent évoluer à leur aise. Voici, par exemple, la capitale du premier étage, où les joueurs commenceront : Et Exemple de maison ! Cela prendra énormément de temps pour pouvoir construire l'Aincrad ainsi que l'intérieur. Il faudra travailler en même temps que l'écriture des quêtes pour avoir un suivi de l'aventure du joueur pas à pas. Chaque étage aura plusieurs architectures et ambiances différentes tout en restant dans le même thème de l'Heroic-Fantasy. Sans oublier que le meilleur moyen d'avoir des informations ou de l'inspiration pour les étages de l'Aincrad, sera de relire les scans du manga ou de revoir les animés. Après quelques recherches sur les fameuses maisons, voici le modèle pour les maisons dites au calme ou proche des lieu de récolte. Chaque 5-10 étage, on retrouvera une ville ou capitale clef. Comme par exemple la ville de l'étage 61, Salemburg : A propos de l'accès, un téléporteur général sera disponible. En effet, après avoir vaincu pour la première fois le boss d'un étage X, les joueurs pourront activer le téléporteur pour l'étage suivant. __________ III. Fonctionnalités Comme tout MMORPG qui se respecte, il possédera toutes les caractéristiques d'un vrai MMORPG. Cependant, il n'aura pas de magie à proprement dite. Il y aura bien un système de niveau, mais il sera utilisé pour plusieurs choses. Chaque joueur possédera une batterie de premières compétences pour l'épée à une main, qui sera la "voie principale". Les joueurs pourront se spécialiser dans une autre branche. Chaque arbre possédera une batterie de compétences Actives et Passive. Chaque possédera bien évidemment aussi des caractéristiques. Ils gagneront 5 points à dépenser à chaque niveau pour leurs caractéristiques. Pour l'instant, déterminer un niveau maximum serait difficile sans avoir fait préalablement des tests. Chaque joueur aura un stuff bien plus développé du jeu normal. De nouveaux items viendront ce greffer, anneaux, épaulières et j'en passe. ( Voir l'interface profil plus bas. ) Voici quelques images de l'interface joueur : La barre de vie se divise en 3 parties : On remarque bien évidemment, le pseudo du joueur, ses HP actuels et maximum ainsi que son niveau actuel.Ainsi la barre se divise en 3 parties :En vert lorsqu'elle reste au dessus des 50%.En orange lorsqu'elle reste au dessus des 20% et en dessous des 50%.Et en rouge, lorsqu'elle est en dessous des 20%. tat critique.L'interface profil :Ce n'est qu'un petit mod mais qui suffit à faire rever !. On remarque bien les emplacements à gauche pour chaque pièce d'équipement.La barre déroulante pour chaque fonctionnalité. Ici, on nous montre l'interface pour notre profil, pour pouvoir accéder à nos compétences, nos équipements et nos objets généraux.A propos des caractéristiques, les joueurs pourront choisir entre :(Note : Pas sûr pour l'esquive/précision)VIT (Vitalité) Augmentation des HPSTR (Force) Augmentation des dégâts physiquesAGI (Agilité) Augmentation de la vitesse d'attaque et de l'esquiveDEX (Dextérité) Augmentation des coups critiques et de la précisionSAG (Sagesse) Augmentation du taux de drop ou de l'Exp gagnée. (A voir)N'oublions pas l'histoire des Boss.Voici le premier boss du premier étage : Un monstre un peu particulier, en effet, bien plus grand et possédant plusieurs barres de HP, il faudra le battre en groupe pour pouvoir espérer accéder à l'étage supérieur. IV. Recrutement -> Moddeur sur l'API Forge : Création de capacités spécials, utilisation de modèles 3D pour nouveaux mobs, création de GUIs, modification des IAs de mobs pour reproduire "l'aggro", Etc... Tout ce qu'il y a de faisable de SAO. -> Coddeur bukkit : Pour des plugins lié au mods, gestions de packets. -> Térraformeur : Création de montagnes, de reliefs, de court d'eaux. -> Mappeur : Aménagement des villes des zones autres que les villes, gestion de l'espace et construction des batiments. -> Decorateur : Aménagement des intérieurs de maisons avec les objets ajoutés par le launcher, rendre plus beau les villes. -> Scénaristes : Maîtrise de NPCCustom pour faire des quetes détaillés et recherchés ! -> Rédacteur : Animation du forum, présentation du projet aux autres communautés, chaines Youtube, contre-rendu des avacements du projets. -> Graphiste : Création de textures de blocs, de skins, d'armes, d'items. -> Modélisateur 3D: Création de mobs optimisés de SAO, illustration 3D pour le launcher/Site. -> Youtubeur : Partager le projet sur youtube ! __________ Voici les quelques notes que j'ai pu prendre pendant quelques journées. Bien sûr, il manque énormément de choses sur la conception du projet et diverses choses. Si jamais le cur vous en dit et que le projet vous semble à la hauteur, je recherche actuellement quelques architectes plus que motivés pour m'accompagner dans cette aventure. __________ Vous pouvez me contacter via MP. Me répondre directement sur le topic ci-dessous. Ou bien, tout simplement me rajouter sur Skype pour pouvoir discuter plus facilement en me rajoutant : hannat.houtrer( Copiez-collez, ça sera plus simple. ) En vous souhaitant une agréable journée/soirée.
  19. Forge

    Changer son nom en jeuàpartir de son mods! -[iNTRODUCTION]- Bonjour à tous ! Dans ce tutoriel, nous allons faire un event qui nous permettra de "modifier son nom". -[sOMMAIRE]- 1]Création de L'event 2]Enregistrer L'event 1]Création de L'event : Pour commencer, nous allons créer une classe qui s'appellePlayerEventHandler.java ! Ensuite vous allez ajouter ce code qui vous permettra de modifier votre nom => package nom du package; import net.minecraftforge.event.entity.player.PlayerEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent; public class PlayerEventHandler { @SubscribeEvent public void onNameFormat(PlayerEvent.NameFormat event) { if(event.username.equals("entrez votre nom ici ")) { event.displayname = "entrez votre texte que vous voulez ajouter avant votre nom " + event.username; } } } Vous pouvez aussi modifier deux noms => package nom du package; import net.minecraftforge.event.entity.player.PlayerEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent; public class PlayerEventHandler { @SubscribeEvent public void onNameFormat(PlayerEvent.NameFormat event) { if(event.username.equals("entrez votre nom ici ")) { event.displayname = "entrez votre texte que vous voulez ajouter avant votre nom " + event.username; } if(event.username.equals("entrez votre 2e nom ici ")) { event.displayname = "entré votre texte que vous voulez ajouter avant votre 2e nom " + event.username; } } } Voici un exemple d'utilisation que j'ai fait sur un de mes mods => package ca.mathmatboy.axialcraft.handler; import net.minecraftforge.event.entity.player.PlayerEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent; public class PlayerEventHandler { @SubscribeEvent public void onNameFormat(PlayerEvent.NameFormat event) { if(event.username.equals("mathmatboy")) { event.displayname = "[AXAI] - " + event.username; } } } Ici je rajoute le nom de mon mods en avant mon pseudo ! Vous pouvez le faire de cette façons aussi => package ca.mathmatboy.axialcraft.handler; import net.minecraftforge.event.entity.player.PlayerEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent; public class PlayerEventHandler { @SubscribeEvent public void onNameFormat(PlayerEvent.NameFormat event) { if(event.username.equals("mathmatboy")) { event.displayname = "[AXAI] - mathmatboy"; } } } 2]Enregistrer L'event : Pour enregistrer un event, vous devez ajouter ce code dans n'importe quel init de votre classe => MinecraftForge.EVENT_BUS.register(new PlayerEventHandler()); Voici un exemple => @EventHandler public void init(FMLInitializationEvent event) { MinecraftForge.EVENT_BUS.register(new PlayerEventHandler());// on enregistre l'event } Screen's : A savoir :Il estimportants que le mods sois présent côté client que serveur, si non, vous ne pouvez pas vous connecter au serveur.
  20. 3D Particle Animation API Présentation: Cette API sert, comme sont nom l'indique, a crée des animation de particules en 3D. Pour le moment 3 animations différente sont disponible mais chacune d'elle peut être modifier a volonté et cumulé, ce qui permet de crée une multitudes d'effets. Animations disponible: -Cercle (AnimationCircle.java) -Carre (AnimationSquare.java) -Vortex (AnimationVortex.java) Quelques optionsdisponible: -Nombres de particules -Vitesse de rotation -Image au pied du joueur -Couleurs -Rayon -Durée de l'animation -Tailles des particules -Brillance -Etc... Capture d'écran: Voici une petite idée de ce que vous pourrez faire avec cette API. Cette image vient du développement d'Elkyos (server MMORPG Minecraft) IDs et dépendances: Aucune Téléchargement: 3D Particle Animation API:Télécharger V-1.0.1mirror(mediafire) C'est une version encore en beta, il risque d'y avoir quelques bugs. Ancienne version: Changement: V 1.0.1 +Compatibilité JRE 1.6 *Correction dusetOffsetY pour le cercle et leCarre -Réduction de la taille du packet V 1.0.0 -First release
  21. Cube's Edge Cube's Edge est un mod reprenant les mouvements du fameux jeu Mirror's Edge. Mirror's Edge, pour ceux qui ne connaissent pas, est un jeu de plateforme/action/aventure où vous incarnez une personne qui se déplace grâce aux toits. Par exemple : courir sur les mur, sauter sur les façades, etc. Avec ce mod vous pourrez : Monter à moins de quatre blocs rien qu'en sautant Vous accrocher au bloc si vous tombez Sauter sur les murs Faire des roulades si vous tombez de trop haut Courir de plus en plus vite et aller plus loin Ralentir le jeu (Touche R par défaut) Glissez pour passer en-dessous des blocs (on ne peut pas encore passer en-dessous x) ) Se retourner et puis sauter (Touche ² par défaut) Et puis admirer les animations futures du mod ! Le mod est actuellement en Alpha, c'est pour ça que j'ai besoin de votre aide pour découvrir les bugs présents, améliorer le code et donc améliorer le mod et aussi proposer des idées. Videos : TELECHARGEMENT ====> Voici le lien CurseForge : http://minecraft.curseforge.com/mc-mods/224055-cubes-edge Credit : Zak (alex.ulysse@gmail.com) Installation Pour installer le mod, il suffit de glisser le fichier jar dans le dossier mods du .minecraft Changelog Alpha 0.2.0 : Alpha 0.1.15 :
  22. Salut tout le monde, voici un petit mod que j'ai créé. Son objectif est d'améliorer Minecraft en ajoutant de petites choses et en corrigeant de petites incohérences dans le jeu. Il y a beaucoup de fonctionnalités, classées en catégories. Vous pouvez activer/désactiver chaque fonctionnalité dans le fichier de config (qui est en anglais, désolé pour les anglophobes, mais c'est plus pratique d'avoir une seule version d'un même mod). Tout a été créé en utilisant Minecraft Forge, sans modifier le code source du jeu, le mod devrait donc être compatible avec tout autre mod Forge. Je suis ouvert aux suggestions pour de prochains ajouts. Fonctionnalités du mod : Agriculture et élevage : Mobs et drops : Enchantements, réparation, alchimie : Nouveaux objets et crafts : Améliorations diverses : Options additionnelles (désactivées par défaut) : Voici lelien de téléchargement du mod, pour Minecraft 1.7.2 ou 1.7.10. /!\ Ce mod nécessite Forge pour fonctionner ! Voici la page de téléchargement de Forge (choisissez ce qui correspond à votre version de Minecraft). Support du mod par des resource packs : Le pack Summerfields dispose d'un support pour Improving Minecraft, vous le trouverez sur la page de téléchargement du pack.
  23. Recherche de Décorateur,Terraformeur , Codeur ,mais surtout d'architecte ! et tout le « BAZOR » pour Serveur RP, PVP, MMORPG de type Médiéval [THALANDAR], Inspirer de la saga « Les Chevaliers dEmeraude » Présentation du serveur Thalandar Le serveur est de type médiéval ( cest écrit dans le titre si tavais pas compris ) et est basé sur la saga des chevaliers démeraude. Pour ceux qui ne connaîtraient pas ( je pense une certaine majorité en tout cas ), l'histoire se déroule dans un monde ravagé par un guerre entre les habitants du royaume d'Enkidiev et les redoutable créature de l'empire noir. Cette guerre a été gagner par les hommes grâce a un ordre de guerrier, les chevaliers d'Emeraude. Cependant, les forces de l'empire noir se réveille, et le roi d'Emeraude ressent la nécessiter de recréer cette ordre... Nous avons presque terminé la 1ère ville, Emeraude, seul le château, le port et la périphérie de la ville sont incomplets, nous avons posé les fondations pour une autre, Fal ( possibilités damélioration de celle-ci ) et une autre en cours délaboration, Diamant ( laborieuse ). En plus de cela, nous prévoyons de faire deux modes de jeux : un métier qui consistera à faire des récoltes ou modifier la matière, gérer du commerce, ( Donc système économique ) et un second qui mettra en place un mode aventure, avec les compétences pour chaque classe ( mage, guerrier, voleur, ... ). Bien sûr les deux peuvent être fait en même temps Nos demandes en personnes Pour la bonne réalisation et achèvement de notre serveur, nous avons des besoins en personnes sachant faire de larchitecture ou de la décoration extérieur pour la modélisation du monde ( la décoration intérieur sera élaborée par les habitants eu même qui pourront aussi de faire ça par les soins dun décorateur dintérieur (donc peut être créé un métier par rapport à cela )) . De plus, si vous savez manipuler WorldEdit et (ou) VoxelSniper, du Terraforming pourra vous être demandé si vous vous en sentez capable. Des développeurs pourront aussi faire parvenir leur candidature car le développement des plugins et des mods est ambitieux et conséquent sur ce serveur ! Candidatures Les candidatures sont à posté sur ladresse e-mail suivantes :ThalandarBe@gmail,com ... . Une description de vos compétences ainsi que des pièces jointes à votre mail seront la bienvenue (photos, vidéo), pour davantage juger vos compétences et ne baisser pas si vite les bras si vous navez rien fait car le travail sur notre serveur ne manque pas et il faudra votre skype mis dans votre description . Je voulais terminer sur ce point en vous informant que nous voulons des personnes motivées et pouvant consacrer du temps et un peu dargent. Nous vous remercions davoir pris connaissance de notre projet minecraft et nous espérons recevoir vite votre candidature. A bientôt, La team Thalandar
  24. Salut, Ce mod a pour but de permettre d'industrialiser son monde et de progressivement augmenter son niveau de technologie. Un peu a la manière d'industrial craft 2 ou encore universal electricity mais cette fois avec un model de simulation beaucoup plus réaliste. Voici quelques screen shot d'une map utilisée pour tester le mod : Un lien vers un spot light :https://www.youtube.com/watch?v=2c3NG65hnq0 Actuellement, les bloc implémentés sont les suivant : Four a charbon (chauffe) Turbine (convertie chaleur en électricité) panneau solaire éolienne Transformateur électrique Four électrique Broyeur Mineur automatique Dissipateur thermique (avec ou sans ventilateur) Câble électrique Conducteur de chaleur Lampe électrique (Lampeincandescence et lampe économique)(la lumière est proportionnel à l'alimentation)(permet de se passer des torches) Bouton électrique (commandé manuellement ou via un signal électrique) Diode (élément assez basique en électronique) Disjoncteur (protège contre les surtension / surconsommation) Capteur (Tension courant puissance température luminosité) Vumètre (jauge qui affiche en 3D le niveau de tension d'un câble) Alarme sonore Convertisseur redstone (converti un niveau de tension en électricité et inversement) Timer Contrairement à IC2 et UE (qui simulent l'électricitéavec des échanges de packet), la simulationélectriqueet thermal est faitselonun vrais model donnant beaucoup plus depossibilité et un comportement très réaliste. Les release du mode se trouvent surhttps://github.com/Dolu1990/ElectricalAge/releases Le lien des postes a jours est :http://www.minecraftforum.net/topic/2741783-172forge-electrical-age-140/#entry32077163 Si vous êtes motivé pour participer au projet, nhésitez pas a me MP : D (son, graphisme, gui, wiki) N'hésitez pas à me donner vos feed back
  25. Salut tout le monde ! Encore là pour vous présenter un nouveau mod ! qui ne parle malheureusement pas de petits chatons... J'ai été inspiré par cette idée. L'idée est simple, quand vous mourrez (pas en vrai hein), vous vous transformer en fantôme, et votre but est d'atteindre l'endroit où vous êtes mort pour pouvoir ressuciter (pas mal ). une tombe spawn a l'endroit où vous êtes mort. en tant que "Ghost " vous ne prenez aucuns dommages. <kikoo> HEY mé c tro coul sa veu dir kon peu tou le tan joué en fantom ? paskon a pas de déga on é 1v1sible <kikoo> Et bien non car vous êtes en adventure mode, ce qui signifie que vous ne pouvez pas détruire de blocs, ni en placer, etc. Respawn : au moment de mourir, vous êtes téléporté a votre lit, ou s'il n'existe pas, au spawn du monde. Il y a 8 types de tombes : de gauche a droite : - Stone cross : peut être utilisée indéfiniment - Wooden cross : se détruit quand vous l'utilisez - (mossy) Cobblestone cross : se détruit aussi - Blaze cross : peut être placée dans le Nether uniquement, et une seule par Nether ! - Graves (toutes) :durée infinie. Crafts (pourraient changer) Toutes lescroixse craft en plaçant leur item en forme de "+" Croix de bois :sticks Croix de blaze : blaze rods Croix de cobble : cobblestone Croix de mossy cobble : mossy cobblestone - pour crafter la croix de pierre il vous faut d'abord de la Blessed rock : Les tombes se craftent comme ceci : utlisez respectivementcobblestone, mossy cobblestone & blessed Rockpour les crafts Coffre de respawn : par défaut, quand vous mourrez, tout votre inventaire est droppé par terre Cet item, s'il est placé près de votre lit (dans une item Frame), vous permettera de garder votre inventaire en mourrant. Runic Totems (new!): http://image.noelshack.com/fichiers/2014/19/1399299384-2014-05-05-16-14-20.png Les totems runiques servent à vous donner différents effets et bonus. Vous aurez pour cela besoin de plusieurs blocs et items : Runic stone: http://image.noelshack.com/fichiers/2014/19/1399299044-runic.png un totem doit être posé sur un bloc deRunic Stone. Soul essence &Soul chunk : http://image.noelshack.com/fichiers/2014/19/1399299044-essence.png http://image.noelshack.com/fichiers/2014/19/1399299044-chunk.png ces items servent pour les crafts. Runic Totem : http://image.noelshack.com/fichiers/2014/19/1399299044-doll.png ce totem ne donne aucun effet, mais il est utile pour créer les autres. http://image.noelshack.com/fichiers/2014/19/1399297379-2014-05-05-14-54-54.png Il y a 4 totems (de gauche à droite) : Totem de vie :créé en utilisant une Essence of Healthsur un totem runique. Procure un effet d'absorptionpendant 5 min. coûte 33 points d'xp enghost coûte 1 soul en humain Procure un effetweaknesssi le joueur n'a pas assez d'xp ou de soul crafté avec une potioninstant health II. Totem de vie amélioré :créé en utilisant une Quintessence of Healthsur un totem runique. Procure un effet d'absorptionpendant 5 min + regen pendant 5 min. coûte 80 points d'xp enghost ⢠coûte 2 soul enhumain Procure un effetweakness IIsi le joueur n'a pas assez d'xp ou de soul Totem de vitesse :créé en utilisant uneEssence of Speedsur un totem runique. Procure un effet despeedpendant 5 min. coûte 33 points d'xp enghost ⢠coûte 1 soul enhumain Procure un effet slownesssi le joueur n'a pas assez d'xp ou de soul crafté avec une potion deswiftness. Totem de vitesse amélioré :créé en utilisant uneQuintessenceof Speedsur un totem runique. Procure un effet despeedpendant 5 min +jumppendant 5 min. coûte 88 points d'xp enghost ⢠coûte 2 soul enhumain Procure un effetslowness + mining fatiguesi le joueur n'a pas assez d'xp ou de soul [beta] Invocation Altar (new!) : L'autel d'invocation est une structure : http://image.noelshack.com/fichiers/2014/19/1399293253-2014-05-02-15-45-39.png se construit en plaçant uneRunic Stoneentourée de Cobblestone walls.la runic stone devient un autel un fois activé. L'autel s'active grâce à unLegion Wand. http://image.noelshack.com/fichiers/2014/19/1399301624-wand.png Cet autel vous servira a faire spawner différents compagnon : Health : vous suit comme un chien ou un ocelot vous procure un effet tant qu'il est vivant : Zombie : strength Blaze : fire resistance Ghast : resistance coûte 33 points d'xp Comment spawner : il suffit de poser un totem sur le bloc central de l'autel puis transformer ce totem grâce à une soul correspondant au mob que vous voulez spawner puis d'activer ce totem grâce à un legion wand. Ghost Villager : Trades : 18 souls -> emerald 3 emerald -> 1 totem 3 emerald -> 1 health essence 3 emerald -> 1 speed essence 3 emerald + 1 health Essence -> health Quintessence 3 emerald + 1 speed Essence -> speed Quintessence Cursite (new!) : La Cursite est un nouveau bloc. Lorsque vous mourrez dans le nether, si vous avez de la netherrack dans votre inventaire, quelques blocs seront convertis en Cursite. Ce bloc permet de crafter un chaudron : Ce chaudron ne peut être rempli qu'avec un certain liquide Si vous trempez une épée en fer dans un chaudron plein, vous obtiendrez une cursed iron sword, automatiquement affectée par l'enchantement Awareness, qui permet d'obtenir des souls en tuant les mobs. Si vous remarquez un bug quelconque, merci de le précisez Download : Mc 1.7 : Link tout travail mérite salaire, merci de ne pas utiliser de Bypass Adf.ly Bien sûr Forge est requis ToDo proposez vos idées ! (a part un "kripeur mega géan ki fé pété le mond é on peu plu jouer") ________________________________________________________________________________ This document is Copyrighted ©(2014) and is the intellectual property of Iron_M. It may not be placed on any other website or distributed without written permission from the owner. If you mirror this mod page or anything The Owner has made on any other site, The Owner may seek damages through a lawsuit.