本篇教程由作者设定使用 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();
其他方法:
方法 | 类型 | 描述 |
badEffectIn | bool | 药水给予的是否是坏的效果 |
beneficial | bool | 药水对玩家是否有益, 有益的药水会放在第一格 |
instant | bool | 药水是即刻生效的还是持续生效的 (true 为即刻, false 为持续)[对应上方affectEntity函数] |
shouldRender | bool | 是否在背包栏渲染 |
shouldRenderHUD | bool | 是否在 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
参考文献: