引言
最近自己在琢磨1.12.2末日整合包,发现这款模组内容非常优质,加上CRT魔改的话,其实潜力巨大。
准备工作
在版本文件夹内找到scripts文件夹(没有就新建),并新建文件夹harvestfestival,再新建一个文本文件(比如TXT),文件名字随便取最好是中文,并将后后缀改为zs,像这样:
然后就可以开始愉快的写(copy)代码啦!
添加出货箱能够售卖的物品
注:此处只是添加新的物品能够售卖(支持其他MOD物品)
格式:mods.harvestfestival.Shipping.addShipping(<物品ID>, 出售价格);
示例代码:不需要导包,直接可用(注意句末的标点符号,并且一定是英文符号,不可以中文符号)
//ItemStack, SellValue
mods.harvestfestival.Shipping.addShipping(<minecraft:stick>, 100);
增加商店出售物品
首先是可以用指令获取游戏内的店铺ID
指令为:这个是游戏内指令,不是写入脚本里的
/hf shops
商店ID列表如下: (因为有些商店是需要完成任务后才能解锁购买界面,所以我还没能全部测试对应的店都是那些NPC,后面再慢慢补全)
harvestfestival:baitshop
harvestfestival:barn
harvestfestival:bloodmage
harvestfestival:cafe
harvestfestival:carpenter 木工小屋,哥哥NPC的购买界面
harvestfestival:clockmaker
harvestfestival:cooking
harvestfestival:cow
harvestfestival:dairy
harvestfestival:general
harvestfestival:kitchen
harvestfestival:knitting
harvestfestival:mfc
harvestfestival:miner
harvestfestival:poultry
harvestfestival:recipes
harvestfestival:sheep
harvestfestival:trader
那么拿到商店ID之后呢,就可以开始添加商店出售的物品了(支持其他MOD物品),
格式:mods.harvestfestival.Shops.addPurchasable("店铺ID", <物品ID>, 此物的售价);
示例代码:注意句末符号
//Adding an item
//ShopName, ItemStack, Cost
mods.harvestfestival.Shops.addPurchasable("harvestfestival:cafe", <minecraft:stick>, 1000);
添加木工小屋购买所需money和材料(上面的方法不可以添加需要材料购买的条件,这个方法可以添加,但是仅限木工小屋)
格式:mods.harvestfestival.Shops.addPurchasableToBuilder(<所售物品ID>, 所需原木数量, 所需石材数量, 所需Money);
示例代码:
//Add an item to the builder shop
//ItemStack, WoodCost, StoneCost, GoldCost
mods.harvestfestival.Shops.addPurchasableToBuilder(<minecraft:stick>, 100, 100, 1000);
其实还可以修改商店所售物品的价格,官方WIKI说的用指令获取在售商品ID:/hf items [shopid]
但是shopid部分,我试了好几次都不行,后面突破了再做补充。另付官方WIKI地址,内容更多,比如自定义农作物,等等模组:Harvest Festival 支持 - MineTweaker 3 (archive.org)需要梯子
2024.04.19更新
关于获取商店在售商品ID指令:
官方写的格式是:/hf items [shopid]
实际测试为:/hf items 商店ID
也就是不要打外面的括号,比如获取咖啡店在售商品ID:
/hf items harvestfestival:cafe
之后列表会导出在crafttweaker.log中,如图:
可以直接打开,最下面就是导出的内容。
商店ID导出指令:/hf shops
NPCid导出指令: /hf npcs
NPC与对应ID如下:(可以用来给商店添加NPC,教程内暂未写,后续补充)
Abii = harvestfestival:abi
Ashlee = harvestfestival:ashlee
Brandon = harvestfestival:brandon
Candice = harvestfestival:candice
Cloe = harvestfestival:cloe
Danieru = harvestfestival:daniel
Fenn = harvestfestival:fenn
Granny Katlin = harvestfestival:katlin
Jade = harvestfestival:jade
Jakob = harvestfestival:jacob
Jenni = harvestfestival:jenni
Jim = harvestfestival:jim
Johan = harvestfestival:girafi
Liara = harvestfestival:liara
Mayor Jeimmi = harvestfestival:jamie
Tiberius = harvestfestival:tiberius
Tomas = harvestfestival:thomas
Yulif = harvestfestival:yulif
丰收女神 = harvestfestival:goddess
移除商品
格式:mods.harvestfestival.Shops.removePurchasable("需要修改的商店的ID", "需要修改的物品的ID");
注意:格式中的物品ID需要通过/hf items 商店ID 指令来获取
示例代码:其中harvestfestival_treat就是物品ID
mods.harvestfestival.Shops.removePurchasable("harvestfestival:barn", "harvestfestival_treat");
5.修改商品价格
格式:mods.harvestfestival.Shops.adjustPurchasable("需要修改的商店的ID", "在售物品ID", 修改后的价格);
示例代码:修改harvestfestival:barns商店中entityharvestcowy(也就是牛)的价格为40000g
//ShopName, PurchasableId, NewGoldCost
mods.harvestfestival.Shops.adjustPurchasable("harvestfestival:barn", "entityharvestcow", 40000);
也可以修改木工小屋中所售物品需要的材料和金币:
格式:mods.harvestfestival.Shops.adjustCarpenter("木工小屋内在售物品id", 改后所需木材, 改后所需石材, 需要的钱);
注:只能修改价格中本来就需要材料的商品,不能作为添加需要材料来使用;比如商店中购买新建筑需要木材和石材和金币,我们就能通过这段代码修改它所需的木材、石材和金币的量,但是本身购买就不需要木材和石材的情况下,不能通过下面代码来修改为需要木材和石材购买。
实例:在售物品ID同样需要通过:/hf items 商店ID
//PurchasableID, NewLogsCost, NewStoneCost, NewGoldCost
mods.harvestfestival.Shops.adjustCarpenter("harvestfestival_supermarket", 500, 100, 1000000);