引言


最近自己在琢磨1.12.2末日整合包,发现这款模组内容非常优质,加上CRT魔改的话,其实潜力巨大。

准备工作


安装MOD:CRT以及丰收物语

在版本文件夹内找到scripts文件夹(没有就新建),并新建文件夹harvestfestival,再新建一个文本文件(比如TXT),文件名字随便取最好是中文,并将后后缀改为zs,像这样:

零基础CRT魔改丰收物语物品出售与购买-第1张图片

然后就可以开始愉快的写(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中,如图:



零基础CRT魔改丰收物语物品出售与购买-第2张图片

可以直接打开,最下面就是导出的内容。

商店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);