[Help]Barricade sur fenêtre

  • Auteur de la discussion Auteur de la discussion AJ-GeN
  • Date de début Date de début

AJ-GeN

Aventurier
4 Juillet 2011
69
0
0
Bonsoir cher moddeur !

Je débute tout juste dans le modding et je suis fasciné :P !

Je n'ai pas encore énormément appris le java script ! Mais j'avance a petit pas pour bien comprendre :P

Et j'ai lu une fois le tutoriels ci-dessous :

http://fr-minecraft.net/forum/topic-6563-tuto-faire-un-mod-minecraft.html

Exélent tutoriel d'ailleurs :P !

Mais commençant une map d'aventure dans un monde dévasté par les zombies, j'ai eu l'idée dans une des versions de cette aventure me créer mes modes !

Et je voulais savoir si ça ne vous dérangez pas de créer un avant gout de mon futur modes des fenêtres barricadées si possible me mettre le code java histoire que je me fixe à peu prêt :P

Donc le mode :

Pour Crafter une fenêtre Barricadés en boit il faudrait mettre 1 blocs de glass puis juste a côté un panneau. Puis créer un item qui sera le Bloc de glass avec le panneau direct collé dessus et que la résistance soit plus élevé ;)

Voilà je vous demande juste de créer celle en bois le temps que j'apprenne et je ferais celle en fer etc...

Merci beaucoup, j'espère que cela ne vous dérange pas :s
 
Ok merci les gars :P je posterais dès que possible le code test et je vous dirais ce qu'il en est mais il faut que j'apprenne comment créer un bloc de verre avec une pancarte directement dessus :s
 
j'ai un peu besoin d'aide :s
j'ai voulu mettre des textures différentes sur les faces ensuivent le tutoriels mais il a légèrement mal expliqué je crois et donc voici mon code mais comment l'arranger pour qu'il fonctionne ? Car je sais qu'il est mal fait mais je vois pas encore bizen comment le faire :s :

BlockBarricade.java :

package net.minecraft.src;

import java.util.Ramdom;

public class BlockBarricade extends Blocks
{
Public BlockBarricade(int i, int j)
{
super(i, j, Material.rock);
}

Public int Texture1 = ModLoader.addOverride("/terrain.png", "Barricade.png");

Public int Texture2 = ModLoader.addOverride("/terrain.png", "Fenetre.png");

Public int getBlockTextureFromSide(int i)
{
if(i == 1)
{
return Texture1;
}else
{
return Texture2;
}
}
}

Merci ! :P
 
Utilise l'indentation, ça te facilitera la tâche ;)

déjà, le classe mère doit être Block et non Blocks.

La déclaration de tes textures doit se faire dans l'initialisation de toutes les valeurs de ton block, en gros dans :

Code:
Public BlockBarricade(int i, int j)

Après tu doit déclarer ses textures à la fin pour qu'elles puissent être réutilisé par les autres fichiers :

Code:
public int Texture1
public int Texture2


Ce qui donnerait, avec l'indentation :

Code:
package net.minecraft.src;

import java.util.Ramdom;

public class BlockBarricade extends Blocks
{
   Public BlockBarricade(int i, int j)
   {
      super(i, j, Material.rock);

      Public int Texture1 = ModLoader.addOverride("/terrain.png", "Barricade.png");
      Public int Texture2 = ModLoader.addOverride("/terrain.png", "Fenetre.png");
   }

   Public int getBlockTextureFromSide(int i)
   {
      if(i == 1)
      {
         return Texture1;
      }
      else
      {
         return Texture2;
      }
   }

   public int Texture1;
   public int Texture2;
}


Pour le sujet général de ce topic, trois suggestions :

1. T'a trop joué à Call of


2. Pour plus de réalisme, je propose de faire de vraies barricades, qui seront très fines pour ne prendre qu'une face du bloc ( même si pour l'ordinateur il prendra la place entière ).

Par contre, le prototype de cette fonction qui change la taille du bloc est assez compliquée...

je poste un exemple dès que possible.


3. Commence par apprendre le Java sur le site du Zéro par exemple ou lit le tutoriel de modding de minecraft fr.

Mais, je conseil d'apprendre véritablement le Java, car le tuto ne donne que de maigres possibilités en expliquant pas la partie théorique du code.
 
Merci j'ai réussi a corriger pas mal de chose :P voici mon nouveau code et il ne me reste plus q'une erreurs :P :

package net.minecraft.src;

import java.util.Ramdom;

public class BlockBarricade extends Block
{
public BlockBarricade(int i, int j)
{
super(i, j, Material.rock);

Texture1 = ModLoader.addOverride("/terrain.png", "Barricade.png");

Texture2 = ModLoader.addOverride("/terrain.png", "Fenetre.png");
}

public int Texture1;

public int Texture2;

public int getBlockTextureFromSide(int i)
{
if(i == 1)
{
return Texture1;
}else
{
return Texture2;
}
}
}

L'erreur que e ne comprend pas encore :
src\minecraft\net\minecraft\src\BlockBarricade.java:3:
cannot find symbol : class ramdom
location : package java.util
import java.util.ramdom;
^

Voilà merci beaucoup pour votre patience et votre aide !


Ah oui et pour ce que tu as dit à la fin non j'ai pas trop joué a call of c'est qu'en je regarder 28 semaines plus tard :P

Après pour les planches fines c'est ce que je voulais faire mais comme j'apprend le java sur le site du Zéro je ne m'y connait pas assez

Et opur finir oui j'apprend java merci tout de même !

Et pour la modification des tailles je te remercie ! Mais les modes comme Mo creature, plane etc...ils ont fais comment pour faire des characters 3D différents ?

Besoin d'aide :P
 
java.util.ramdom n'existe pas, la classe c'est java.util.Random ^^
Mais vu que tu t'en sers même pas tu peux tout simplement virer cette ligne.

Sinon pour tes questions initiales, pour créer des modèles 3D, les créatures sont codées en dur avec juste des appels de fonctions OpenGL (ça déconne pas chez Mojang). Y'a un truc qui s'appelle Turbo Model Thingy qui aide pas mal à faire certaines choses, mais les rares modeleurs graphiques qui existent sont pas très développés il me semble.

Pour décompiler un mod (ou tout autre bout de java), tu peux utiliser JD Decompiler (sympa parce qu'il a un interface graphique) ou, vu que t'utilise Minecraft Coder Pack, le décompileur qui va avec.

Sinon pour créer des recettes et des trucs comme ça, je t'encourage à regarder la Javadoc de ModLoader (en l'occurrence y'a une fonction ModLoader.AddRecipe, le fonctionnement de l'ajout des recettes est un peu chelou mais on s'y fait).

Bonne chance ^^
 
Merci mais comme tout mes modes quand je lance startclient.bat il initialise ModLoader 1.7.2 mais il ne charge pas mon mode :
[attachment=1173]

Mais pourquoi ?
 
C'est bon c'est réglé mais le jeu crash car il ne trouve pas mes images texture alors uqe je les ai mises dans mpc/bin/Minecraft

Normale ?

c'est bon :P
 
Salut ! Pour éviter 36 topics messages je vais poster sur celui-ci !

J'ai voulu faire pour un pote un bloc de sable mouvant ! Donc j'ai copié les donnés du Block.Web

Et au final voilà mon code :

mod_SableMouvant.java

Code:
package net.minecraft.src;
public class mod_SableMouvant extends BaseMod
{
public mod_SableMouvant()
{
ModLoader.RegisterBlock(SableMouvant);
ModLoader.AddRecipe(new ItemStack(SableMouvant, 1), new Object[]
{" X ", " # ", Character.valueOf('#'), Item.bucketWater, Character.valueOf('X'), Block.sand});
ModLoader.AddName(SableMouvant, "Sable Mouvant");
}
public static final Block SableMouvant = (new
BlockSableMouvant(224,224)).setHardness(2.0F).setResistance(2F).setStepSound(Block.soundSandFootstep);
public String Version()
{
return "1.7.2";
}
}

BlockSableMouvant.java :

Code:
package net.minecraft.src;

import java.util.Random;

// Referenced classes of package net.minecraft.src:
//            Block, Material, Entity, Item, 
//            World, AxisAlignedBB

public class BlockSableMouvant extends Block
{

    public BlockSableMouvant(int i, int j)
    {
        super(i, j, Material.rock);
		
		Texture1 = ModLoader.addOverride("/terrain.png", "/SableMouvant.png");
    }
	
	public int Texture1;

    public void onEntityCollidedWithBlock(World world, int i, int j, int k, Entity entity)
    {
        entity.isInWeb = true;
    }

    public boolean isOpaqueCube()
    {
        return false;
    }

    public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int i, int j, int k)
    {
        return null;
    }

    public boolean renderAsNormalBlock()
    {
        return false;
    }
	
	public int getBlockTextureFromSide(int i)
		  {
		    if(i == 3)
			{
			  return Texture1;
			}
			else
			{
			  return Texture1;
			}
		  }
}

mais en lançant le version test de minecraft il crash et voilà l'erreur :
Code:
java.lang.Exception: net.minecraft.src.BlockSableMouvant@47124746 is missing name tag!
	at net.minecraft.src.ModLoader.AddName(ModLoader.java:385)
	at net.minecraft.src.mod_SableMouvant.<init>(mod_SableMouvant.java:9)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at java.lang.Class.newInstance0(Class.java:355)
	at java.lang.Class.newInstance(Class.java:308)
	at net.minecraft.src.ModLoader.addMod(ModLoader.java:224)
	at net.minecraft.src.ModLoader.readFromClassPath(ModLoader.java:1202)
	at net.minecraft.src.ModLoader.init(ModLoader.java:794)
	at net.minecraft.src.ModLoader.AddAllRenderers(ModLoader.java:121)
	at net.minecraft.src.RenderManager.<init>(RenderManager.java:65)
	at net.minecraft.src.RenderManager.<clinit>(RenderManager.java:158)
	at net.minecraft.client.Minecraft.startGame(Minecraft.java:138)
	at net.minecraft.client.Minecraft.run(Minecraft.java:435)
	at java.lang.Thread.run(Thread.java:662)
--- END ERROR REPORT a4fab336 ----------

Merci de m'aider :P et désolé pour toutes ces demande d'aide mais c'est les débuts :s
 
c'est bon j'ai réglé

Bizarre quand je lance la version test de minecraft quand je casse les blocs je peux récupérer les items qui tombe mais quand je le met dans la version officiel je casse les bloc mais rien ne tombe et quand je rentre dans le four il bug et me met saving chunk et hop minecraft crash normale ?
Le mode rentrerais t'il en conflit avec les autre mode que j'ai créé ?
Donc comment corriger ceci ?