[樂游網導讀]Custom Stuff 2是一個API性質的Mod,可以實現往里面添加方塊,物品,改變圖形界面(GUI,用戶圖形接口),在地圖上生成方塊等功能。
Custom Stuff 2是一個API性質的Mod,可以實現往里面添加方塊,物品,改變圖形界面(GUI,用戶圖形接口),在地圖上生成方塊等功能。
注意下面的中/、\和=都是全角字,若想簡單復制粘貼請先用替換工具換成半角的/、\和=
無聊原創教程——Custom Stuff 2
其實這個mod自配的Document(下載地址:見樓中樓)已經把他的用法講的很詳細了,所以這里我只是拋磚引玉地簡化講下這個mod玩法。
這里我不細講javascript,因為一般玩家可能不需要用到javascript(雖然我后面舉例可能要用到比較難的javascript),只是往里面添加方塊的話只需要注意javascript的“區分大小寫”的特性就可以了。
這個Mod可以實現往里面添加方塊,物品,改變圖形界面(GUI,用戶圖形接口),在地圖上生成方塊等功能,可惜不能生成生物,應該會在以后的版本里改進(這個想法在官網上已有很多人提出。)
首先先安裝CustomStuff2,將這個mod下載(見樓中樓)之后放到.Minecraft\mods\下面就好了。
啟動minecraft,這個mod就會在.minecraft\config文件夾下面生成一個叫CustomStuff的文件夾,打開,就會看到里面有個mods文件夾,在這里我們可以添加自制的方塊和物品。
【例1】例如我們可以嘗試做一個蘑菇階梯:
①先在這個文件夾里面新建一個叫mushroomStairs的文件夾,打開,然后在里面新建一個文本文檔,起名為mod.js,用記事本打開(當然也可以用Notepad++等打開),往里面輸入如下代碼:(注意大小寫!)
config.addBlockIdProperty(“StairId”,2000);
mod.addBlock(“mushroomStair.js”,”stairs”);
解釋下上面這段話的功效,第一句config.addBlockIdProperty(“StairId”,2000);是實現了往你的自制方塊或物品的cfg文件中添加登記一個名為“StairId”的“方塊id”屬性的功能,它的初始值為2000,cfg文件保存在config文件下面,眾所周知玩家是可以通過修改mod的cfg文件來更改mod的功能的,這個也不例外。玩家可以修改你的自制方塊或物品的cfg文件中的屬性來改變它的功能。前面的“StairId”是對應的鍵,后面的2000是這個方塊的初始鍵值,以后玩家可以通過修改cfg文件里的StairId鍵值來修改你的蘑菇階梯的id。
第二句mod.addBlock(“mushroomStair.js”,”stairs”);是關鍵,它實現了將你的方塊載入游戲的功能,前面的mushroomStair.js是方塊的腳本,后面的stairs是方塊的模型,這里的模型是stairs,即“臺階”。除臺階以外還有其他的模型,可以在ducument的Block.htm里面找到。
②保存并退出這個mod.js,在該文件夾下面新建一個叫Blocks的文件夾,里面新建一個叫mushroomStair.js(注意大小寫)的文件,打開,往里面輸入以下代碼:
name= "mushroomStair";
id = config.getBlockId("StairId" );
displayName[0]= "蘑菇階梯";
material="cloth";
stepSound="cloth";
addToCreative[0]= true;
creativeTab="buildingBlocks";
hardness[0]= 1.0;
tileTransparent[0]= true;
opacity= 255;
textureFileXN[0]= "/mushroom_skin_red.png";
textureFileXP[0]= "/mushroom_skin_red.png";
textureFileYN[0]= "/mushroom_skin_red.png";
textureFileYP[0]= "/mushroom_skin_red.png";
textureFileZN[0]= "/mushroom_skin_red.png";
textureFileZP[0]= "/mushroom_skin_red.png";
依舊是逐句解釋:第一行name表示這個mod的英文名稱,id = config.getBlockId("StairId" );表示從cfg文件里面獲取id信息并加載,displayName[0]= "蘑菇階梯";表示這個物品的工具提示信息,material="cloth";表示這個方塊的行為類似與羊毛,stepSound="cloth";表示玩家在上面行走時發出的聲音和玩家踩在羊毛上面的聲音一樣,addToCreative[0] = true;表示這個方塊能在創造模式的物品欄里面找到,creativeTab ="buildingBlocks";表示玩家可以在物品欄的建筑材料一欄里面找到,hardness[0] = 1.0;表示這個東西的硬度是1.0,如果你不想這個方塊被打碎的話可以將硬度設為-1.0,就像基巖一樣,tileTransparent[0]= true;表示這個方塊和其他方塊連接的時候不消除邊界,這個是防止別的方塊放到你的方塊上面的時候你的方塊會因為消除邊界而被透視了(這個是傳說中的人工CJB√),opacity= 255;表示這個方塊是的阿爾法值是255,此時光線完全不能透過這個方塊。當設為0時光線完全可以透過這個方塊。后面的一堆textureFile**[0]= "/mushroom_skin_red.png";表示貼上去的材質文件,當后面的路徑前面有/的時候表示調用的是游戲材質包里面的文件,否則就是調用這個mushroomStairs文件夾里面的Textures文件夾的文件。
③保存,然后打開游戲,只要你一步一步按照要求做了,你就會在游戲里面見到你添加的方塊/物品。
【例2】我們做一碗飯怎么樣√,包含生飯和熟飯√:
①類似的我們在mods文件夾下面新建一個文件夾叫rice,在里面新建mod.js,在里面輸入如下的腳本:
config.addItemIdProperty("cookedRiceId" ,2015);
mod.addItem("cookedRice.js","food");
config.addItemIdProperty("rawRiceId" ,2016);
mod.addItem("rawRice.js","food");
mod.addSmeltingRecipe(config.getItemId("cookedRiceId"),config.getItemId("rawRiceId"));
mod.addRecipe(config.getItemId("rawRiceId")+"1",1,2,296,281);
這里加的就不是BlockId了而是ItemId,表示是物品的id,而mod.addBlock也變成了mod.addItem,表示往游戲里面添加的不是方塊而是物品,然后添加物品的方式是”food”,表示添加的是食物,能添加的還有其他種類,可以在document的Items.htm里面找到。mod.addSmeltingRecipe(config.getItemId("cookedRiceId"),config.getItemId("rawRiceId"));這句則是實現了往游戲里面添加一個熔爐的合成公式,將生飯烤成熟飯的功能,同理mod.addRecipe(config.getItemId("rawRiceId")+" 1",1,2,296,281);實現了小麥+碗=生飯的功能。
②在rice文件夾下面新建一個文件夾叫textures,打開,在里面再新建一個文件夾叫items,往里面添加一個png文件(至于圖畫就自己畫了√),名字rice.png。
③在rice文件夾下面新建一個文件夾叫items,里面新建兩個文件分別為rawRice.js和cookedRice.js,分別輸入以下內容:
在rawRice.js輸入:
name= "RawRice";
id = config.getItemId("rawRiceId" );
displayName= "生米";
textureFile="rice.png";
addToCreative= true;
creativeTab= "food";
full3d= true;
maxStack=1;
containerItem= "281";
leaveContainerItem= true;
onEaten="itemstack.setValues(281,1,0);"
alwaysEdible=false;
hunger=1;
saturation=1;
在cookedRice.js輸入:
name="CookedRice";
id = config.getItemId("cookedRiceId" );
displayName= "熟飯";
textureFile="rice.png";
addToCreative= true;
creativeTab= "food";
full3d= true;
maxStack=1;
hasEffect=true;
containerItem= "281";
leaveContainerItem= true;
onEaten="itemstack.setValues(281,1,0);"
alwaysEdible=false;
hunger=3;
saturation=1;
繼續解釋逐句的含義:name、id、displayName、addToCreative、creativeTab的功用和方塊里面的相同,full3d=true;表示該物品是像鎬子、劍等工具或武器一樣拿在手上的,maxStack=1;表示最大堆疊數為1,containerItem = "281";leaveContainerItem= true;表示裝著它的物品是碗,并且合成之后留下碗,onEaten= "itemstack.setValues(281,1,0);"表示吃完之后留下碗。這句話用到了比較高級的javascript,如果不加上這句話的話吃完就連碗一起吃掉了。alwaysEdible=false;表示饑餓值慢的時候不能吃,hunger=1;表示增加一點饑餓度(熟飯是加3點饑餓度),saturation=1;表示吃完之后有一段時間是不掉饑餓的。而hasEffect=true;表示“熟飯”是有附魔效果的。
④寫完之后保存,在游戲能看到如圖的效果。

生米與熟飯的效果
喜歡
頂
無聊
圍觀
囧
難過
熱門評論
最新評論