本帖最后由 yeziqie 于 2016-3-29 09:30 编辑
听Cthu群里的某萝莉妓术宅【咳咳 说开发板块是可以发招人帖子的,所以我还是来发一贴,虽然不抱希望,万一能招到人呢【不
【以及如果审核不通过的话我就去打死他
咳咳,言归正传。
自我介绍一下,这里是NullaDev开发组的组长,因为罚抄厨所以叫我小鸟即可【LL什么的都持矢吧
嘛又扯远了。。总之我们nulla是一个温馨【Excuse me? 的大家庭【码农聚集地 所以如果你是一个苦力怕,呸,苦力程序猿或者美工的话,不妨来我们组转转嘛,23333
当然,本组也欢迎mod开发小白加入,毕竟总有人比你更菜嘛。
小学生不在此列。小学生不在此列。小学生不在此列。重要的事情说三遍。
PS:本组内有女装程序猿哦【不是我
组内目前开发项目:KeyCraft(重制版)https://github.com/NullaDev/KeyCraft-Rewrite/
因为害怕这里有dalao我就不虚张声势强行装一波逼了,不过总之很唬人就对了【并没有
【不要问我为什么灵魂美工,就是因为没有美工我才来发招(keng)新贴的喂!
制作组QQ群号:159628975,差点忘了
PS:不要因为长得像,就总是问我们和隔壁AcademyCraft的制作组LI是什么关系了,我们是友好,咳咳,纯洁的友好制作组关系
【欲了解其中八卦还请去找LI的(rbq)组长了解
以上。
---------------------------------以下是正文-------------------------------
今天早上有内部人员跟我说没有干货过不去审,不说了,我先去打死妓术宅
为了过审,那么以下是干货
相信大家在做mod的时候肯定希望有一个属于自己的Potion效果,然而打开MC的源码一看。。
public static final Potion[] potionTypes = new Potion[32];
protected Potion(int p_i1573_1_, boolean p_i1573_2_, int p_i1573_3_) {
this.id = p_i1573_1_;
potionTypes[p_i1573_1_] = this;
......
}
尼玛硬编码!内心顿时爆炸有木有!
于是解决办法如下:
public static void init()
{
try {
Field potionTypesField = Potion.class.getDeclaredField("potionTypes");
// 去掉final
Field modifiersField = Field.class.getDeclaredField("modifiers");
modifiersField.setAccessible(true);
modifiersField.setInt(potionTypesField, potionTypesField.getModifiers() & ~Modifier.FINAL);
nextID = Potion.potionTypes.length;
Potion[] newPotionTypes = new Potion[Potion.potionTypes.length + 32];
// 复制
for (int i = 0; i < Potion.potionTypes.length; i++)
newPotionTypes = Potion.potionTypes;
// 修改
potionTypesField.set(null, newPotionTypes);
} catch (Exception e) {
e.printStackTrace();
}
// 注册你的其他效果
}常见的reflect反射黑没什么可说的吧233333
然后是Potion的Icon和name问题。。。
我懒得写了你们自己翻源码吧233333333333
以上。
听Cthu群里的某萝莉妓术宅【咳咳 说开发板块是可以发招人帖子的,所以我还是来发一贴,虽然不抱希望,万一能招到人呢【不
【以及如果审核不通过的话我就去打死他
咳咳,言归正传。
自我介绍一下,这里是NullaDev开发组的组长,因为罚抄厨所以叫我小鸟即可【LL什么的都持矢吧
嘛又扯远了。。总之我们nulla是一个温馨【Excuse me? 的大家庭【码农聚集地 所以如果你是一个苦力怕,呸,苦力程序猿或者美工的话,不妨来我们组转转嘛,23333
当然,本组也欢迎mod开发小白加入,毕竟总有人比你更菜嘛。
小学生不在此列。小学生不在此列。小学生不在此列。重要的事情说三遍。
PS:本组内有女装程序猿哦【不是我
组内目前开发项目:KeyCraft(重制版)https://github.com/NullaDev/KeyCraft-Rewrite/

因为害怕这里有dalao我就不虚张声势强行装一波逼了,不过总之很唬人就对了【并没有
【不要问我为什么灵魂美工,就是因为没有美工我才来发招(keng)新贴的喂!
制作组QQ群号:159628975,差点忘了
PS:不要因为长得像,就总是问我们和隔壁AcademyCraft的制作组LI是什么关系了,我们是友好,咳咳,纯洁的友好制作组关系
【欲了解其中八卦还请去找LI的(rbq)组长了解
以上。

今天早上有内部人员跟我说没有干货过不去审,不说了,我先去打死妓术宅
为了过审,那么以下是干货
相信大家在做mod的时候肯定希望有一个属于自己的Potion效果,然而打开MC的源码一看。。
public static final Potion[] potionTypes = new Potion[32];
protected Potion(int p_i1573_1_, boolean p_i1573_2_, int p_i1573_3_) {
this.id = p_i1573_1_;
potionTypes[p_i1573_1_] = this;
......
}
尼玛硬编码!内心顿时爆炸有木有!
于是解决办法如下:
public static void init()
{
try {
Field potionTypesField = Potion.class.getDeclaredField("potionTypes");
// 去掉final
Field modifiersField = Field.class.getDeclaredField("modifiers");
modifiersField.setAccessible(true);
modifiersField.setInt(potionTypesField, potionTypesField.getModifiers() & ~Modifier.FINAL);
nextID = Potion.potionTypes.length;
Potion[] newPotionTypes = new Potion[Potion.potionTypes.length + 32];
// 复制
for (int i = 0; i < Potion.potionTypes.length; i++)
newPotionTypes = Potion.potionTypes;
// 修改
potionTypesField.set(null, newPotionTypes);
} catch (Exception e) {
e.printStackTrace();
}
// 注册你的其他效果
}常见的reflect反射黑没什么可说的吧233333
然后是Potion的Icon和name问题。。。
我懒得写了你们自己翻源码吧233333333333
以上。
然而Forge从Minecraft 1.8.9版本开始就提供了对药水效果的原生支(ha)持(ck),所以说从189开始这种轮子已经没有什么意义了,不过在1710还是很有必要的对吧23333333不过很多Mod都对药水效果做了它们自认为很合理的改动所以说很多冲突都是药水效果导致的。。。所以说是不是可以尽量避免药水效果什么的。。。等等,你这个帖子的本质是招人?
========上面的话当我什么都没说========
========上面的话当我什么都没说========
嗯。。。帮顶。。。以及我是写插件的。。。以及interesting in 女装程序猿[观众:你够了]
强行我妓术了讲道理,说好的女装呢?