本帖最后由 MashKJo 于 2021-8-15 22:59 编辑 
复制代码如题,目的是让AC的湮灭媒介不能右键以获取超级BUFF,之前试了event.cancel(); 不行,现在曲线救国写execute也不行,哪里出了问题吗
如果有等效的代码可以实现这个目的也行
- import crafttweaker.events.IEventManager;
 
- import crafttweaker.event.PlayerRightClickItemEvent;
 
- import crafttweaker.item.IItemStack;
 
- import crafttweaker.player.IPlayer;
 
 
- //Events
 
- events.onPlayerRightClickItem(function(event as PlayerRightClickItemEvent){
 
-     if(event.item == <abyssalcraft:oc>){
 
-         event.player.executeCommand("effect @p clear");
 
-                 event.player.executeCommand("give @p abyssalcraft:oc");
 
-         }
 
- });
如果有等效的代码可以实现这个目的也行
 本帖最后由 qq857945782 于 2021-8-15 23:27 编辑 
import crafttweaker.events.IEventManager;
import crafttweaker.player.IPlayer;
import crafttweaker.event.PlayerInteractEvent;
import crafttweaker.item.IItemStack;
events.onPlayerInteract(function(event as PlayerInteractEvent){
if (!event.world.remote){
var item as IItemStack = event.player.currentItem;
if (!isNull(item) &&(item.definition.id == "abyssalcraft:oc"))
{event.cancel();event.player.sendMessage("无法使用");}
else {return;}}else {return;}});
试试这个,不知道格式有没错,重开之前/ct syntax看看它说什么问题
import crafttweaker.events.IEventManager;
import crafttweaker.player.IPlayer;
import crafttweaker.event.PlayerInteractEvent;
import crafttweaker.item.IItemStack;
events.onPlayerInteract(function(event as PlayerInteractEvent){
if (!event.world.remote){
var item as IItemStack = event.player.currentItem;
if (!isNull(item) &&(item.definition.id == "abyssalcraft:oc"))
{event.cancel();event.player.sendMessage("无法使用");}
else {return;}}else {return;}});
试试这个,不知道格式有没错,重开之前/ct syntax看看它说什么问题
qq857945782 发表于 2021-8-15 23:19
import crafttweaker.events.IEventManager;
import crafttweaker.player.IPlayer;
import crafttweaker.ev ...
报错,依然能使用此物品,提示说PlayerInteractEvent没有cancel
而且我记得PlayerInteractEvent好像是和方块互动的事件
 本帖最后由 qq857945782 于 2021-8-16 00:43 编辑 
import crafttweaker.events.IEventManager;
import crafttweaker.player.IPlayer;
import crafttweaker.event.PlayerRightClickItemEvent;
import crafttweaker.item.IItemStack;
events.onPlayerRightClickItem(function(event as PlayerRightClickItemEvent){
if (!event.world.remote){
var item as IItemStack = event.item;
if (!isNull(item) &&(item.definition.id == "minecraft:apple"))
{event.cancel(); event.player.sendMessage("无法使用");}
else {return;}}else {return;}});
我试了原版的苹果,有吃的动作但是是没吃的效果的。但是很难说能不能作用到mod物品,如果有发信息但还是有效果的话应该是改不了的了。我觉得不行的话还不如用CoT创建一个新的替代物品再把它嵌套到合成表里
import crafttweaker.events.IEventManager;
import crafttweaker.player.IPlayer;
import crafttweaker.event.PlayerRightClickItemEvent;
import crafttweaker.item.IItemStack;
events.onPlayerRightClickItem(function(event as PlayerRightClickItemEvent){
if (!event.world.remote){
var item as IItemStack = event.item;
if (!isNull(item) &&(item.definition.id == "minecraft:apple"))
{event.cancel(); event.player.sendMessage("无法使用");}
else {return;}}else {return;}});
我试了原版的苹果,有吃的动作但是是没吃的效果的。但是很难说能不能作用到mod物品,如果有发信息但还是有效果的话应该是改不了的了。我觉得不行的话还不如用CoT创建一个新的替代物品再把它嵌套到合成表里
- events.onPlayerRightClickItem(function(event as PlayerRightClickItemEvent){
 
-     if(<abyssalcraft:oc>.matches(event.item)){
 
-         event.cancel();
 
-     }
 
- });