一颗丁子
CT只会最简单的操作.. 能想到的方法是击杀生物后执行经济插件指令 或者击杀生物掉落某种物品再命令方块替换物品并执行经济插件指令 但都做不出来)
掉钱的只是怪物 且实现起来简单一点 不想一个个给一大堆生物加掉落物了

3TUSK
随机数的部分用到了 ContentTweaker,因为自己实现一个伪随机数生成器很麻烦。
  1. import crafttweaker.entity.IEntity;
  2. import crafttweaker.entity.IEntityLivingBase;
  3. import crafttweaker.event.ILivingEvent;
  4. import crafttweaker.event.EntityLivingDeathDropsEvent;
  5. import mods.contenttweaker.World;

  6. events.onEntityLivingDeathDrops(function (event as EntityLivingDeathDropsEvent) {
  7.     // nextInt(4) 意味着 0 到 3 之中的随机数。
  8.     event.addItem(<item:minecraft:diamond> * event.entityLivingBase.world.getRandom().nextInt(4);
  9. }
复制代码

一颗丁子
本帖最后由 一颗丁子 于 2021-1-28 08:16 编辑
3TUSK 发表于 2021-1-28 04:58
随机数的部分用到了 ContentTweaker,因为自己实现一个伪随机数生成器很麻烦。
...

第九行报了个错[INITIALIZATION][CLIENT][ERROR] [crafttweaker | SIDE_CLIENT]: Error parsing test.zs:9 -- ) expected
然后有没有可能给某些生物加一个黑名单呢 比如不让羊和鸡掉落(还有能改成仅玩家击杀掉落吗)

3TUSK
一颗丁子 发表于 2021-1-28 08:14
第九行报了个错[CLIENT][ERROR] [crafttweaker | SIDE_CLIENT]: Error parsing test.zs:9 -- ) expected{: ...

看样子你没意识到我少打了一个括号。

  1. import crafttweaker.entity.IEntity;
  2. import crafttweaker.entity.IEntityLivingBase;
  3. import crafttweaker.event.ILivingEvent;
  4. import crafttweaker.event.EntityLivingDeathDropsEvent;
  5. import mods.contenttweaker.World;

  6. events.onEntityLivingDeathDrops(function (event as EntityLivingDeathDropsEvent) {
  7.     // nextInt(4) 意味着 0 到 3 之中的随机数。
  8.     if (event.entityLivingBase.definition.id != "minecraft:sheep"
  9.         && event.entityLivingBase.definition.id != "minecraft:chicken") {
  10.         event.addItem(<item:minecraft:diamond> * event.entityLivingBase.world.getRandom().nextInt(4));
  11.     }
  12. }
复制代码

一颗丁子
3TUSK 发表于 2021-1-28 08:22
看样子你没意识到我少打了一个括号。

[INITIALIZATION][CLIENT][ERROR] [crafttweaker | SIDE_CLIENT]: Error parsing 1.zs:13 -- ) expected
{我又来了}

3TUSK
一颗丁子 发表于 2021-1-28 08:34
[CLIENT][ERROR] [crafttweaker | SIDE_CLIENT]: Error parsing 1.zs:13 -- ) expected
{我又来了}

我少打的括号有点多……
  1. import crafttweaker.entity.IEntity;
  2. import crafttweaker.entity.IEntityLivingBase;
  3. import crafttweaker.event.ILivingEvent;
  4. import crafttweaker.event.EntityLivingDeathDropsEvent;
  5. import mods.contenttweaker.World;

  6. events.onEntityLivingDeathDrops(function (event as EntityLivingDeathDropsEvent) {
  7.     // nextInt(4) 意味着 0 到 3 之中的随机数。
  8.     if (event.entityLivingBase.definition.id != "minecraft:sheep"
  9.         && event.entityLivingBase.definition.id != "minecraft:chicken") {
  10.         event.addItem(<item:minecraft:diamond> * event.entityLivingBase.world.getRandom().nextInt(4));
  11.     }
  12. });
复制代码


一颗丁子
本帖最后由 一颗丁子 于 2021-1-28 14:32 编辑
3TUSK 发表于 2021-1-28 10:03
我少打的括号有点多……

报错比之前长了)
[INITIALIZATION][CLIENT][INFO] [crafttweaker | SIDE_CLIENT]: Loading Script: {[0:crafttweaker]: 1.zs}
[INITIALIZATION][CLIENT][ERROR] 1.zs:11 > No such member in crafttweaker.world.IWorld: getRandom
[INITIALIZATION][CLIENT][ERROR] 1.zs:11 > any values not yet supported
[INITIALIZATION][CLIENT][ERROR] [crafttweaker]: Error executing {[0:crafttweaker]: 1.zs}: Bad type on operand stack
Exception Details:
  Location:
    ZenClassCrafttweaker10.handle(Lcrafttweaker/api/event/EntityLivingDeathDropsEvent;)V @84: ifnonnull
  Reason:
    Type integer (current frame, stack[7]) is not assignable to reference type
  Current Frame:
    bci: @84
    flags: { }
    locals: { 'ZenClassCrafttweaker10', 'crafttweaker/api/event/EntityLivingDeathDropsEvent' }
    stack: { 'crafttweaker/api/event/EntityLivingDeathDropsEvent', 'crafttweaker/api/item/IItemStack', null, '[Lstanhebben/zenscript/value/IAny;', '[Lstanhebben/zenscript/value/IAny;', integer, integer, integer }
  Bytecode:
    0x0000000: 2bb9 0010 0100 b900 1601 00b9 001c 0100
    0x0000010: 121e b600 249a 0007 03a7 0004 0499 005a
    0x0000020: 2bb9 0010 0100 b900 1601 00b9 001c 0100
    0x0000030: 1226 b600 249a 0007 03a7 0004 0499 003a
    0x0000040: 2b12 2812 29b8 002f 0112 30bd 0032 5912
    0x0000050: 2912 3359 c700 0857 01a7 0006 b800 39b8
    0x0000060: 003f 53b9 0043 0200 b900 4701 00b9 004d
    0x0000070: 0200 b900 5302 00b1                    
  Stackmap Table:
    same_frame(@28)
    same_locals_1_stack_item_frame(@29,Integer)
    same_frame(@60)
    same_locals_1_stack_item_frame(@61,Integer)
    full_frame(@92,{Object[#3],Object[#79]},{Object[#79],Object[#73],Null,Object[#85],Object[#85],Integer,Integer})
    full_frame(@95,{Object[#3],Object[#79]},{Object[#79],Object[#73],Null,Object[#85],Object[#85],Integer,Object[#50]})
    same_frame(@119)

java.lang.VerifyError: Bad type on operand stack
Exception Details:
  Location:
    ZenClassCrafttweaker10.handle(Lcrafttweaker/api/event/EntityLivingDeathDropsEvent;)V @84: ifnonnull
  Reason:
    Type integer (current frame, stack[7]) is not assignable to reference type
  Current Frame:
    bci: @84
    flags: { }
    locals: { 'ZenClassCrafttweaker10', 'crafttweaker/api/event/EntityLivingDeathDropsEvent' }
    stack: { 'crafttweaker/api/event/EntityLivingDeathDropsEvent', 'crafttweaker/api/item/IItemStack', null, '[Lstanhebben/zenscript/value/IAny;', '[Lstanhebben/zenscript/value/IAny;', integer, integer, integer }
  Bytecode:
    0x0000000: 2bb9 0010 0100 b900 1601 00b9 001c 0100
    0x0000010: 121e b600 249a 0007 03a7 0004 0499 005a
    0x0000020: 2bb9 0010 0100 b900 1601 00b9 001c 0100
    0x0000030: 1226 b600 249a 0007 03a7 0004 0499 003a
    0x0000040: 2b12 2812 29b8 002f 0112 30bd 0032 5912
    0x0000050: 2912 3359 c700 0857 01a7 0006 b800 39b8
    0x0000060: 003f 53b9 0043 0200 b900 4701 00b9 004d
    0x0000070: 0200 b900 5302 00b1                    
  Stackmap Table:
    same_frame(@28)
    same_locals_1_stack_item_frame(@29,Integer)
    same_frame(@60)
    same_locals_1_stack_item_frame(@61,Integer)
    full_frame(@92,{Object[#3],Object[#79]},{Object[#79],Object[#73],Null,Object[#85],Object[#85],Integer,Integer})
    full_frame(@95,{Object[#3],Object[#79]},{Object[#79],Object[#73],Null,Object[#85],Object[#85],Integer,Object[#50]})
    same_frame(@119)

        at 1.__script__(1.zs:7)
        at __ZenMain__.run(1)
        at crafttweaker.runtime.CrTTweaker.loadScript(CrTTweaker.java:228)
        at crafttweaker.runtime.CrTTweaker.loadScript(CrTTweaker.java:105)
        at crafttweaker.mc1120.events.CommonEventHandler.registerRecipes(CommonEventHandler.java:73)
        at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_84_CommonEventHandler_registerRecipes_Register.invoke(.dynamic)
        at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
        at net.minecraftforge.fml.common.eventhandler.EventBus$1.invoke(EventBus.java:144)
        at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182)
        at net.minecraftforge.registries.GameData.fireRegistryEvents(GameData.java:857)
        at net.minecraftforge.common.crafting.CraftingHelper.loadRecipes(CraftingHelper.java:636)
        at net.minecraftforge.fml.common.Loader.initializeMods(Loader.java:747)
        at net.minecraftforge.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:336)
        at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:535)
        at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:378)
        at net.minecraft.client.main.Main.main(SourceFile:123)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
        at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
[INITIALIZATION][CLIENT][INFO] Completed script loading in: 179ms
[POSTINITIALIZATION][CLIENT][INFO] Removing recipes for various outputs
[AVAILABLE][CLIENT][INFO] Fixed the RecipeBook
COT我装了的


第一页 上一页 下一页 最后一页