本篇教程由作者设定使用 CC BY-NC-SA 协议。

rt跟cot的联动给游戏带来了自定义药水效果功能


首先导包:

import mods.contenttweaker.VanillaFactory;
import mods.randomtweaker.cote.IPotion;

接着告诉游戏我要自定义一个药水:

var potion as IPotion = VanillaFactory.createPotion(unlocalizedName, liquidColorIn);

unlocalizedName为注册名,不可重复! 类型为string(不要傻傻的填 unlocalizedName)

liquidColorIn为药水颜色,例如0xF7D575


接着是包涵的函数:


isReady函数:

决定当前 Tick 是否触发 performEffect 函数

官方实例:

potion.isReady = function(duration, amplifier) {
if (duration % 20 == 0) {
    return true;
}
    return false;
};

也可以

 return duration % 20 == 0

意思为20t触发一次(20t为一秒)


amplifier为药水等级(int)

duration为药水时间(int)



performEffect函数:

此函数每 Tick 都会调用

官方实例:

potion.performEffect = function(living, amplifier) {
 if(!living.world.remote && living instanceof Player) {
 var player as Player = living;
 player.sendChat("didiidid~~~");
}
};

living为 IEntityLivingBase 具有此药水效果的有生命实体

amplifier为药水等级(int)



affectEntity函数:

此函数仅 Potion 的 instant 为 true 时触发


请导包:

import mods.randomtweaker.cotx.PotionPerformEffect;


官方实例:

potionObj.affectEntity = function(living, amplifier) {
 if(!living.world.remote && living instanceof Player) {
 var player as Player = living;
 player.sendChat("didiidid~~~");
}
};


使用方法跟performEffect函数相同


完整代码:

#loader contenttweaker

import mods.contenttweaker.VanillaFactory;
import mods.randomtweaker.cote.IPotion;
import mods.contenttweaker.Player;

var potion as IPotion = VanillaFactory.createPotion("lhhd", 0xF7D575);
potion.isReady = function(duration, amplifier) {
if (duration % 20 == 0) {
return true;
}
return false;
};
potion.performEffect = function(living, amplifier) {
 if(!living.world.remote && living instanceof Player) {
 var player as Player = living;
 player.sendChat("didiidid~~~");
}
};
potion.register();



其他方法:

方法类型描述
badEffectInbool药水给予的是否是坏的效果
beneficialbool药水对玩家是否有益, 有益的药水会放在第一格
instantbool药水是即刻生效的还是持续生效的 (true 为即刻, false 为持续)[对应上方affectEntity函数]
shouldRenderbool是否在背包栏渲染
shouldRenderHUDbool是否在 HUD (在右上角) 渲染



贴图必须是 18 * 18 大小!

贴图必须是 18 * 18 大小!

贴图必须是 18 * 18 大小!

貌似16*16也可以? 64*64什么的肯定也行


贴图位置 : contenttweaker:textures/gui/unlocalizedName.png

贴图位置 : contenttweaker:textures/gui/unlocalizedName.png

贴图位置 : contenttweaker:textures/gui/unlocalizedName.png



参考文献:


https://github.com/Project-RT/RandomTweaker/tree/1.12/wiki

【Minecraft 魔改小课堂 #001】魔改思路:自制药水效果