CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Minecraft
  • Tout support
  • PC
  • Xbox Series
  • Switch
  • Switch 2
  • PS4
  • ONE
  • WiiU
  • PS3
  • 360
  • Vita
  • iOS
  • Android
  • Web
  • New 3DS
Forum
  • Accueil
  • Actus
  • Tests
  • Vidéos
  • Images
  • Soluces
  • Forum
Liste des sujets

[mod]quelques modifications de minecraft

argg
argg
Niveau 6
12 novembre 2011 à 00:38:43

bonjour (ou bonsoir :noel: ) à tous!
ses temps si je m'ennuyait sur minecraft, alors quand un pote m'a dit qu'il allait coder en java je me suis dit "pourquoi pas moi?" c'est comme ca que je me suis mis a faire de la programmation sur mon minecraft.jar.
finalement j'ai réussi pour l'instant à créer des achievements (en étant un peu aidé par mon pote pour trouver ou coder la description de l'achievement)

screens:
http://s3.noelshack.com/upload/18705216841245_20111112_000639.png
http://s3.noelshack.com/upload/5692283114760_20111112_000653.png
http://s3.noelshack.com/upload/10118925196281_20111111_234035.png
http://s3.noelshack.com/upload/20462924772873_20111112_001107.png

désolé de n'avoir pas pus poser le screen de l'achievement "the power of BBQ" mais mon ordi lague trop pour que je réussisse a tuer un cochon (je sais mon pc c'est de la merde).

je posterait les modifications que j'aurais créer avec des screens à l'appui sur ce topic :)

PS: je n'utilise aucun mod (même pas modloader) je code a même le code source :cool:
PS2: par contre j'ai du supprimé le META-INF car flemme de le modifier pour le rendre compatible avec les modifs que j'apporte :noel:

LEpigeon888_
LEpigeon888_
Niveau 10
12 novembre 2011 à 00:46:26

Utilise modloader c'est mieux, ton mod ne sera pas compatible avec les autres qui n'utilise pas modloader.

argg
argg
Niveau 6
12 novembre 2011 à 00:50:00

je n'utilise pas modloader pour que justement ca fonctionne le mieux possible. si ca marche sans mods ca marche avec mods. seulement faut transférer tout le minecraft.jar pour transférer les modifications c'est ça le problème.
de plus, je ne sais pas comment je pourrais créer un mod ajoutant des achievements avec modloader.

Styvak
Styvak
Niveau 7
12 novembre 2011 à 00:51:56

Au contraire ton mod seras incompatible avec plein d'autres si tu ne l'utilise pas.

LEpigeon888_
LEpigeon888_
Niveau 10
12 novembre 2011 à 00:52:43

"je n'utilise pas modloader pour que justement ca fonctionne le mieux possible"

Erreur, avec modloader ton mod sera compatible avec les autre mods qui rajoute des achivements, alors que là non, donc avec modloader ça marchera encore mieux.

"seulement faut transférer tout le minecraft.jar pour transférer les modifications c'est ça le problème. "

Non, il suffit de donner les .class que tu as modifier, pas tout le .jer (la distribution du .jar en entier est interdit :ok: )

"de plus, je ne sais pas comment je pourrais créer un mod ajoutant des achievements avec modloader."

Il existe des mods qui rajoute des achivements qui sont fait avec modloader, dé-compile-les pour savoir comment ils sont fait.

Styvak
Styvak
Niveau 7
12 novembre 2011 à 00:54:40

"Il existe des mods qui rajoute des achivements qui sont fait avec modloader, dé-compile-les pour savoir comment ils sont fait"
Ou sinon il faut decompiler modloader et on peut trouver des exemples si son créateur en as mis

LEpigeon888_
LEpigeon888_
Niveau 10
12 novembre 2011 à 00:56:49

Styvak, ouais mais c'est plus compliqué, et plus long surtout :ok:

Gollumet
Gollumet
Niveau 9
12 novembre 2011 à 00:57:27

l'achievement "You are a pirate" :bave:

Styvak
Styvak
Niveau 7
12 novembre 2011 à 00:58:00

Ouais mais en même temps tu peut voir pour les ajouts de blocks etc... quand on sait pas ^^ voir d'autres choses (items etc...)

argg
argg
Niveau 6
12 novembre 2011 à 01:02:36

"Erreur, avec modloader ton mod sera compatible avec les autre mods qui rajoute des achivements, alors que là non, donc avec modloader ça marchera encore mieux."
je pense au contraire que ca peut marcher puisque les achievement que je rajoute sont interpréter comme faisant partie d'un minecraft "pur" :doute:

"Non, il suffit de donner les .class que tu as modifier, pas tout le .jer (la distribution du .jar en entier est interdit :ok: )"
la ca risque de me poser un probleme puisque je les modifient sous la forme avec nom et que quand je recompile ca me donne des aaa.class, aa.class, ect... :(

sinon en effet je serais tenter d'utiliser modloader surtout pour créer des blocs (c'est l'horreur pour en faire qui soit plus utile que de la dirt!) mais j'évite de l'utilisé par principe.

Styvak
Styvak
Niveau 7
12 novembre 2011 à 01:04:41

Ben je t'avertit que ton mod seras incompatible par plusieurs mod. Et avec modloader c'est plus simple pour les noms des fichiers comme c'est ti qui les choisis mod_MonMod, Block1 ou bli pour le fichier du block c'est plus libre pour se repérer

LEpigeon888_
LEpigeon888_
Niveau 10
12 novembre 2011 à 01:05:05

"je pense au contraire que ca peut marcher puisque les achievement que je rajoute sont interpréter comme faisant partie d'un minecraft "pur" :doute: "

Oui ton mod marche, mais n'est pas compatible avec les autres :ok:

"la ca risque de me poser un probleme puisque je les modifient sous la forme avec nom et que quand je recompile ca me donne des aaa.class, aa.class, ect... :( "

Je sais, mais tu dois chercher pour savoir lequel est quoi :ok:

"sinon en effet je serais tenter d'utiliser modloader surtout pour créer des blocs (c'est l'horreur pour en faire qui soit plus utile que de la dirt!) mais j'évite de l'utilisé par principe. "

Non on contraire, c'est même plus pratique car t'as des exemples directement là ou tu code :(

Sinon ton "principe" de ne pas utiliser modloader est assez con je trouve :(

argg
argg
Niveau 6
12 novembre 2011 à 01:17:05

si modloader est compatible avec un minecraft sans mod alors il est compatible avec le miens en fait j'ai du juste suprimmer le meta-inf a cause de l'ajout d'un string dans un .lang

+ si tu m'explique comment chercher dans du byte code je veux bien le faire :hap:

+ tu dis que c'est plus facile de faire un bloc car on a des exemples a coté et c'est vrai mais bon voici l'exemple du code pour le block "cake":

// Decompiler options: packimports(3) braces deadcode

package net.minecraft.src;

import java.util.Random;

// Referenced classes of package net.minecraft.src:
// Block, Material, IBlockAccess, World,
// AxisAlignedBB, EntityPlayer, FoodStats

public class BlockCake extends Block
{

protected BlockCake(int i, int j)
{
super(i, j, Material.cakeMaterial);
setTickOnLoad(true);
}

public void setBlockBoundsBasedOnState(IBlockAccess iblockaccess, int i, int j, int k)
{
int l = iblockaccess.getBlockMetadata(i, j, k);
float f = 0.0625F;
float f1 = (float)(1 + l * 2) / 16F;
float f2 = 0.5F;
setBlockBounds(f1, 0.0F, f, 1.0F - f, f2, 1.0F - f);
}

public void setBlockBoundsForItemRender()
{
float f = 0.0625F;
float f1 = 0.5F;
setBlockBounds(f, 0.0F, f, 1.0F - f, f1, 1.0F - f);
}

public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int i, int j, int k)
{
int l = world.getBlockMetadata(i, j, k);
float f = 0.0625F;
float f1 = (float)(1 + l * 2) / 16F;
float f2 = 0.5F;
return AxisAlignedBB.getBoundingBoxFromPool((float)i + f1, j, (float)k + f, (float)(i + 1) - f, ((float)j + f2) - f, (float)(k + 1) - f);
}

public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int i, int j, int k)
{
int l = world.getBlockMetadata(i, j, k);
float f = 0.0625F;
float f1 = (float)(1 + l * 2) / 16F;
float f2 = 0.5F;
return AxisAlignedBB.getBoundingBoxFromPool((float)i + f1, j, (float)k + f, (float)(i + 1) - f, (float)j + f2, (float)(k + 1) - f);
}

public int getBlockTextureFromSideAndMetadata(int i, int j)
{
if(i == 1)
{
return blockIndexInTexture;
}
if(i == 0)
{
return blockIndexInTexture + 3;
}
if(j > 0 && i == 4)
{
return blockIndexInTexture + 2;
} else
{
return blockIndexInTexture + 1;
}
}

public int getBlockTextureFromSide(int i)
{
if(i == 1)
{
return blockIndexInTexture;
}
if(i == 0)
{
return blockIndexInTexture + 3;
} else
{
return blockIndexInTexture + 1;
}
}

public boolean renderAsNormalBlock()
{
return false;
}

public boolean isOpaqueCube()
{
return false;
}

public boolean blockActivated(World world, int i, int j, int k, EntityPlayer entityplayer)
{
eatCakeSlice(world, i, j, k, entityplayer);
return true;
}

public void onBlockClicked(World world, int i, int j, int k, EntityPlayer entityplayer)
{
eatCakeSlice(world, i, j, k, entityplayer);
}

private void eatCakeSlice(World world, int i, int j, int k, EntityPlayer entityplayer)
{
if(entityplayer.func_35197_b(false))
{
entityplayer.func_35191_at().func_35771_a(2, 0.1F);
int l = world.getBlockMetadata(i, j, k) + 1;
if(l >= 6)
{
world.setBlockWithNotify(i, j, k, 0);
} else
{
world.setBlockMetadataWithNotify(i, j, k, l);
world.markBlockAsNeedsUpdate(i, j, k);
}
}
}

public boolean canPlaceBlockAt(World world, int i, int j, int k)
{
if(!super.canPlaceBlockAt(world, i, j, k))
{
return false;
} else
{
return canBlockStay(world, i, j, k);
}
}

public void onNeighborBlockChange(World world, int i, int j, int k, int l)
{
if(!canBlockStay(world, i, j, k))
{
dropBlockAsItem(world, i, j, k, world.getBlockMetadata(i, j, k));
world.setBlockWithNotify(i, j, k, 0);
}
}

public boolean canBlockStay(World world, int i, int j, int k)
{
return world.getBlockMaterial(i, j - 1, k).isSolid();
}

public int quantityDropped(Random random)
{
return 0;
}

public int idDropped(int i, Random random)
{
return 0;
}
}

Styvak
Styvak
Niveau 7
12 novembre 2011 à 01:19:51

Juste ton minecraft.jar n'est pas cleann comme les sources sont modifier et il suffit qu'un mod comme TMI ou une API utilise un fichier source que tu as utiliser et les personnes utilisant le mod ouu l'api ont un ecran noir puisque ton mod n'est pas adapter aux leurs

argg
argg
Niveau 6
12 novembre 2011 à 01:25:21

t'a raison je ferais mieux de voir si l'ajout d'une variable peut entrainer l'incompatibilité des mods (même si j'en doute sachant que je n'enlève rien) je vais vérifier pour tmi et modloader, les plus importants d'après moi.

Styvak
Styvak
Niveau 7
12 novembre 2011 à 01:27:21

SPC est important aussi ^^

argg
argg
Niveau 6
12 novembre 2011 à 01:29:05

ouais je l'avais oublié celui la :)

Styvak
Styvak
Niveau 7
12 novembre 2011 à 01:31:24

Et aussi c'est plus facile de mettre a jour le mod avec modloader puisque sinon tu vas devoir tout recoder si il y a un fichier qui a changer

argg
argg
Niveau 6
12 novembre 2011 à 01:44:24

et forcement des fichiers vont changer jeudi prochain mais bon a pars pour les blocs ou c'est chiant c'est assez facile de coder minecraft si on sais ou chercher

Styvak
Styvak
Niveau 7
12 novembre 2011 à 01:45:15

oué mais faut retenir ce que tu as modifier à chaque fois

Sous forums
  • Recherche de joueurs et serveurs PC/Consoles
La vidéo du moment