wish2012
本帖最后由 wish2012 于 2013-5-5 14:48 编辑

本文新手向,为那些初次做整合包的人提供一点帮助。
在将不同mod整合到一起是很容易遇到ID冲突的。在mod少的时候这个问题基本不会出现,因为有足够的ID来分配。但在装了很多mod,尤其是工业林业这类大型mod后这个问题基本上是必然出现的。本教程就是教大家如何解决这个问题。
下面就是此次教程的两个主演:
一般情况下这两个mod不会冲突,但为了做教程,我特意将两个mod改的冲突了{:10_512:}
打开minecraft,出现错误提示:
让我们看看出了什么问题:

在错误报告中,我们注意到这一句
java.lang.IllegalArgumentException: Slot1024 is already occupied by cpw.mods.ironchest.BlockIronChest@6e86b7 whenadding flabs.mods.betterfurnaces.BlockBetterFurnace@4e8ffe

这就是ID冲突的提示,大概的意思就是在载入更多熔炉(betterfurnaces)的时候发现1024这个ID已经被更多箱子(ironchest)用掉了,结果更多熔炉载入失败。

现在让我们来解决这个问题
.minecraft文件夹里找到config文件夹,打开config文件夹可以看到很多cfg后缀名的文件,这就是mod的配置文件,大多数mod都会在这里生成一个配置文件,配置文件里有modID设置。
上图是部分配置文件,第一个是更多熔炉(betterfurnaces)的配置文件,最后一个是更多箱子(ironchest)的配置文件。打开这两个文件,可以看到:

Block是方块的IDitem是物品的ID。方块ID最大4095,物品ID最大31999(不太确定,但NEI转存的ID最大是这个,尽量不要超过这个限制)
在两个配置文件中都找到1024这个ID(图中红色方框),可以发现两个mod都用了1024这个ID结果冲突了,让我们改掉一个(要改成未使用的ID,若果改成的ID仍然有其它mod使用的话还是会出现ID冲突这个问题的)
可以看到,我将更多箱子的1024改成了1000。保存配置文件后重新启动minecraft

问题解决。{:10_525:}

基础教程完毕,下面是进阶教程。
进阶教程需要这个:
没错,就是NEI,当然用这个不是为了作弊,是为了它的一个功能——ID转存。
先点击坐下角的设置
再选择右下加的方块/物品ID设置
然后就出现这个界面:
我习惯使用和未使用的方块物品ID都转存(当然,你可以选择之转存使用的方块物品ID或者只转存未使用的方块物品ID):
最后点击现在转存ID表,会出现如下提示
.minecraft文件夹找到提示的文件:
上图最后一个就是,打开这个文件:
上图中可以看到更多熔炉使用的两个方块ID,还有一大堆未使用的ID,整合mod时就可以将那些冲突的ID往这些未使用的ID上改。

————————END——————————————

当然进阶教程可以不使用NEI,把每一个modID都记下来就行了,不过这个工作量就有点大。我一般是装好一个mod后用NEI转存一次ID表,在装下一个mod时如果出现ID冲突,就到最后一次转存的ID表里找未使用的ID,然后把冲突的ID往未使用的ID上改。



2021.12 数据,可能有更多内容本文新手向,为那些初次做整合包的人提供一点帮助。在将不同mod整合到一起是很容易遇到ID冲突的。在mod少的时候这个问题基本不会出现,因为有足够的ID来分配。但在装了很多mod,尤其是工业林业这类大型mod后这个问题基本上是必然出现的。本教程就是教大家如何解决这个问题。下面就是此次教程的两个主演:
一般情况下这两个mod不会冲突,但为了做教程,我特意将两个mod改的冲突了{:10_512:}打开minecraft,出现错误提示:
让我们看看出了什么问题:Minecraft has crashed!  ----------------------   
Minecraft has stopped running because itencountered a problem; Failed to start game
A full error report has been saved toH:\MC\minecraft 1.5.1 简单整合Beta0.4\.minecraft\crash-reports\crash-2013-05-05_12.53.37-client.txt- Please include a copy of that file (Not this screen!) if you report thiscrash to anyone; without it, they will not be able to help fix the crash :(


--- BEGIN ERROR REPORT 879da235 --------Full report at:H:\MC\minecraft 1.5.1 简单整合Beta0.4\.minecraft\crash-reports\crash-2013-05-05_12.53.37-client.txtPlease show that file to Mojang, NOT justthis screen!
Generated 13-5-5 下午12:53
-- System Details --Details:   MinecraftVersion: 1.5.1   OperatingSystem: Windows 7 (x86) version 6.1   JavaVersion: 1.7.0_01, Oracle Corporation   JavaVM Version: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation   Memory:36571976 bytes (34 MB) / 91287552 bytes (87 MB) up to 1060372480 bytes (1011MB)   JVMFlags: 2 total; -Xincgc -Xmx1024M   AABBPool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used   Suspiciousclasses: FML and Forge are installed   IntCache:cache: 0, tcache: 0, allocated: 0, tallocated: 0   FML:MCP v7.44 FML v5.0.38.600 Minecraft Forge 7.7.0.600 Optifine OptiFine_1.5.1_HD_U_B1汉化sy 14 modsloaded, 14 mods active   mcp[Minecraft Coder Pack] (minecraft.jar)Unloaded->Constructed->Pre-initialized->Initialized   FML[Forge Mod Loader] (coremods)Unloaded->Constructed->Pre-initialized->Initialized   Forge[Minecraft Forge] (coremods)Unloaded->Constructed->Pre-initialized->Initialized   CodeChickenCore[CodeChicken Core] (coremods)Unloaded->Constructed->Pre-initialized->Initialized   NotEnoughItems[Not Enough Items] (coremods)Unloaded->Constructed->Pre-initialized->Initialized   mod_bspkrsCore[bspkrsCore] ([1.5.1]bspkrsCorev1.03.zip)Unloaded->Constructed->Pre-initialized->Initialized   TreeCapitator[TreeCapitator] ([1.5.1]TreeCapitator.Forge.1.5.1.r01.Uni.CoreMod.jar)Unloaded->Constructed->Pre-initialized->Initialized   mod_ArmorStatusHUD[ArmorStatusHUD] ([1.5.1]ArmorStatusHUDv1.6.zip)Unloaded->Constructed->Pre-initialized->Initialized   DamageIndicatorsMod[Damage Indicators] ([1.5.1]DamageIndicators_v2.5.3_cn.zip)Unloaded->Constructed->Pre-initialized->Initialized   mod_ReiMinimap[mod_ReiMinimap] ([1.5.1]ReiMinimap_v3.3_04_CN(sy).zip)Unloaded->Constructed->Pre-initialized->Initialized   craftguide[CraftGuide] (CraftGuide-1.6.6For1.5.1_CN(sy).zip)Unloaded->Constructed->Pre-initialized->Initialized   inventorytweaks[Inventory Tweaks] (InventoryTweaks-1.52-MC1.5.1_CN(sy).jar)Unloaded->Constructed->Pre-initialized->Initialized   IronChest[Iron Chest] (更多箱子MOD汉化78.zip) Unloaded->Constructed->Pre-initialized->Initialized   BetterFurnaces[Better Furnaces] (更好的熔炉-1.5.1.zip) Unloaded->Constructed->Pre-initialized->Errored   LWJGL:2.4.2   OpenGL:GeForce G210M/PCIe/SSE2 GL version 3.3.0, NVIDIA Corporation   IsModded: Definitely; Client brand changed to 'forge,fml'   Type:Client (map_client.txt)   TexturePack: faithful32pack.zip   ProfilerPosition: N/A (disabled)   Vec3Pool Size: ~~ERROR~~ NullPointerException: null
java.lang.IllegalArgumentException: Slot1024 is already occupied by cpw.mods.ironchest.BlockIronChest@6e86b7 whenadding flabs.mods.betterfurnaces.BlockBetterFurnace@4e8ffe   atnet.minecraft.block.Block.<init>(Block.java:339)   atnet.minecraft.block.BlockContainer.<init>(SourceFile:9)   atflabs.mods.betterfurnaces.BlockBetterFurnace.<init>(BlockBetterFurnace.java:65)   atflabs.mods.betterfurnaces.BetterFurnaces.onInit(BetterFurnaces.java:59)   atsun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)   atsun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)   atsun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)   atjava.lang.reflect.Method.invoke(Unknown Source)   atcpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:515)   atsun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)   atsun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)   atjava.lang.reflect.Method.invoke(Unknown Source)   atcom.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)   atcom.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)   atcom.google.common.eventbus.EventBus.dispatch(EventBus.java:314)   atcom.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)   atcom.google.common.eventbus.EventBus.post(EventBus.java:267)   atcpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:165)   atsun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)   atsun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)   atsun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)   atjava.lang.reflect.Method.invoke(Unknown Source)   atcom.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)   atcom.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)   atcom.google.common.eventbus.EventBus.dispatch(EventBus.java:314)   atcom.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)   atcom.google.common.eventbus.EventBus.post(EventBus.java:267)   atcpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:98)   atcpw.mods.fml.common.Loader.initializeMods(Loader.java:681)   atcpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:206)   atnet.minecraft.client.Minecraft.func_71384_a(Minecraft.java:444)   atnet.minecraft.client.MinecraftAppletImpl.func_71384_a(SourceFile:56)   atnet.minecraft.client.Minecraft.run(Minecraft.java:729)   atjava.lang.Thread.run(Unknown Source)--- END ERROR REPORT ea6fb578 ----------
在错误报告中,我们注意到这一句java.lang.IllegalArgumentException: Slot1024 is already occupied by cpw.mods.ironchest.BlockIronChest@6e86b7 whenadding flabs.mods.betterfurnaces.BlockBetterFurnace@4e8ffe
这就是ID冲突的提示,大概的意思就是在载入更多熔炉(betterfurnaces)的时候发现1024这个ID已经被更多箱子(ironchest)用掉了,结果更多熔炉载入失败。
现在让我们来解决这个问题到.minecraft文件夹里找到config文件夹,打开config文件夹可以看到很多cfg后缀名的文件,这就是mod的配置文件,大多数mod都会在这里生成一个配置文件,配置文件里有mod的ID设置。
上图是部分配置文件,第一个是更多熔炉(betterfurnaces)的配置文件,最后一个是更多箱子(ironchest)的配置文件。打开这两个文件,可以看到:
Block是方块的ID,item是物品的ID。方块ID最大4095,物品ID最大31999(不太确定,但NEI转存的ID最大是这个,尽量不要超过这个限制)在两个配置文件中都找到1024这个ID(图中红色方框),可以发现两个mod都用了1024这个ID结果就冲突了,让我们改掉一个(要改成未使用的ID,若果改成的ID仍然有其它mod使用的话还是会出现ID冲突这个问题的)
可以看到,我将更多箱子的1024改成了1000。保存配置文件后重新启动minecraft:

问题解决。{:10_525:}
基础教程完毕,下面是进阶教程。进阶教程需要这个:
没错,就是NEI,当然用这个不是为了作弊,是为了它的一个功能——ID转存。先点击坐下角的设置
再选择右下加的方块/物品ID设置
然后就出现这个界面:
我习惯使用和未使用的方块物品ID都转存(当然,你可以选择之转存使用的方块物品ID或者只转存未使用的方块物品ID):
最后点击现在转存ID表,会出现如下提示
到.minecraft文件夹找到提示的文件:
上图最后一个就是,打开这个文件:
上图中可以看到更多熔炉使用的两个方块ID,还有一大堆未使用的ID,整合mod时就可以将那些冲突的ID往这些未使用的ID上改。
————————END——————————————
当然进阶教程可以不使用NEI,把每一个mod的ID都记下来就行了,不过这个工作量就有点大。我一般是装好一个mod后用NEI转存一次ID表,在装下一个mod时如果出现ID冲突,就到最后一次转存的ID表里找未使用的ID,然后把冲突的ID往未使用的ID上改。



z736027620
很棒了~@!

974778701
顶一下LZ~{:10_512:}

52Dora
砸场子:
只需使用ID分配Mod即可
英文名忘了

Sakura灬zero
A.A不会的在这里路过

杯具的俺
感谢LZ,赶紧收藏

Kphvssmfh
很不错  学习了   

alexhod
很不错的新手向教程,NEI部分受教了,原来都是自己查空ID的

leous9895
使用IDChecker这个MOD,每次成功进入游戏可以把当前包括block item biome Dimension等在内的所有ID列成TXT,直观明了……逐个导入逐个确认就好了,不然单独去看每个mod的设置文件容易出现纰漏

wish2012
本帖最后由 wish2012 于 2013-5-7 23:28 编辑
leous9895 发表于 2013-5-7 18:47
使用IDChecker这个MOD,每次成功进入游戏可以把当前包括block item biome Dimension等在内的所有ID列成TXT, ...

我也用过之类的mod,但都只更新几个版本就不再更新了,又得去找新的mod,最后我懒得再去找mod就自己去改了,而且设置文件里有很多很有意思的设置内容,比如工业的设置文件有是否显示隐藏的合成表,林业的设置文件里可以设置养蜂的难度。

leous9895
wish2012 发表于 2013-5-7 23:27
我也用过之类的mod,但都只更新几个版本就不再更新了,又得去找新的mod,最后我懒得再去找mod就自己去改了 ...

Idchecker从来是随mc版本更新的啊,整和几个大型mod的时候自己对照简直受累不讨好,而且用了之后那些id没被占用一目了然,偷懒的地方不太好。
另外无关紧要的,自动分配id的mod经常和自带id调整的mod冲突,所以很难用
关于设置文件的其他内容,如果是总自己装mod自己玩的玩家,基本都有一套喜欢的设定

s2800620
超讚的!!已全吸收~~感謝

dlsts
s2800620 发表于 2013-9-9 21:41
超讚的!!已全吸收~~感謝

1.5id上就是个悲剧。。。就1.5没有自动分配id的mod

dl3889853
泪流满面啊,感谢楼主的大恩大德,靠你的教程,我成功了,谢谢!!

979676518
服务端的怎改