想通过npc脚本或crt实现之前小游戏服里的 角色技能 [例如:像前方传送、发射火焰弹,雷击,地震]
触发条件:右键物品
设置技能使用冷却时间,不消耗物品
ps:技能触发效果可以直接使用指令进行,只需要一个代码模板,即右键触发某指令,并且有冷却时间限制 即可
感谢大佬
触发条件:右键物品
设置技能使用冷却时间,不消耗物品
ps:技能触发效果可以直接使用指令进行,只需要一个代码模板,即右键触发某指令,并且有冷却时间限制 即可
感谢大佬
本帖最后由 Wudji 于 2022-3-26 15:59 编辑
KubeJS示例(server script)
复制代码
crt参考https://youyi580.gitbook.io/cog/advance/event
右键物品事件:
复制代码
(不知道crt怎么写物品冷却)
KubeJS示例(server script)
- onEvent('item.right_click', function (event) {
- switch (event.item.id) {
- case "minecraft:item_id0":
- event.server.runCommandSilent("say item.right_click test0");
- event.player.addItemCooldown("minecraft:item_id0", 200); // 冷却 200 ticks,即10s
- event.item.count--; // 物品数量-1
- break;
- case "minecraft:item_id1":
- event.server.runCommandSilent("say item.right_click test1");
- event.player.addItemCooldown("minecraft:item_id1", 200); // 冷却 200 ticks,即10s
- event.item.count--; // 物品数量-1
- break;
-
- }
- })
crt参考https://youyi580.gitbook.io/cog/advance/event
右键物品事件:
- import crafttweaker.api.event.entity.player.interact.RightClickItemEvent;
(不知道crt怎么写物品冷却)
- function interact(e){
- if(e.player.getMainhandItem().getName()=="minecraft:paper"){
- e.API.executeCommand(e.player.world,"tellraw "+e.player.getName()+' {"text":"执行了指令"}')
- var p=e.player.getMCEntity()
- p.func_184811_cZ().func_185145_a(e.player.getMainhandItem().getMCItemStack().func_77973_b(),100)
- p.func_184602_cy()
- }
- }
本帖最后由 2503180246b 于 2022-3-26 15:57 编辑
这里改写指令的位置是{"text":"执行了指令"} 这里面的吗 我改成{"lighting"}貌似不行 是不是格式不对 求更正
无敌三脚猫 发表于 2022-3-26 11:48
那个100是冷却时间,单位是刻,20刻是1秒
这里改写指令的位置是{"text":"执行了指令"} 这里面的吗 我改成{"lighting"}貌似不行 是不是格式不对 求更正
Wudji 发表于 2022-3-26 11:23
KubeJS示例(server script)
KubeJS是类似crt的mod么
2503180246b 发表于 2022-3-26 15:54
KubeJS是类似crt的mod么
对的
教程见
[SCT]KubeJS魔改教程
https://www.mcbbs.net/thread-1207772-1-1.html
(出处: Minecraft(我的世界)中文论坛)
2503180246b 发表于 2022-3-26 15:52
这里改写指令的位置是{"text":"执行了指令"} 这里面的吗 我改成{"lighting"}貌似不行 是不是格式不对 求更 ...
这里的+号能把字符串连起来,比如说右键物品的人名字叫steve,那e.player.getName()也就是steve,3串字符加起来是
tellraw steve {"text":"执行了指令"}
这是一个完整的指令
(你不会是没见过tellraw吧,早知道我就写say了)
无敌三脚猫 发表于 2022-3-26 16:02
这里的+号能把字符串连起来,比如说右键物品的人名字叫steve,那e.player.getName()也就是steve,3串字符 ...
哦哦,那如果我想让玩家实现 右键执行spawn的指令,那里概怎么改呢刚刚直接改了spawn 貌似不行
2503180246b 发表于 2022-3-26 16:19
哦哦,那如果我想让玩家实现 右键执行spawn的指令,那里概怎么改呢刚刚直接改了spawn 貌似不行
...
lighting……还有spawn都来了,你这明明是插件的指令啊,写成sudo spawn也许可以,不过你玩的这个服务器明明能装插件为啥不用插件执行指令呢?https://www.mcbbs.net/thread-682208-1-1.html
无敌三脚猫 发表于 2022-3-26 16:23
lighting……还有spawn都来了,你这明明是插件的指令啊,写成sudo spawn也许可以,不过你玩的这个服务器 ...
可恶啊 这么好的插件我为什么现在才知道 感谢分享
另外想问下,crt想修改物品的displauname
我是这样写了个貌似不行
<minecraft:paper>.addTooltip("§e这个方块可以存东西");
<minecraft:chest>.addTooltip("aaa啊啊啊");
<minecraft:chest>.displayName("名字");
只展现了lore的信息 那个displayname没变
2503180246b 发表于 2022-3-26 16:28
可恶啊 这么好的插件我为什么现在才知道 感谢分享
另外想问下,crt想修改物品的displauname
我是这样写了 ...
<minecraft:chest>.displayName="名字";
显然你没有分清楚什么叫getter,什么叫setter
https://docs.blamejared.com/1.12/en/Vanilla/Items/IItemStack
无敌三脚猫 发表于 2022-3-26 16:31
.displayName="名字";
显然你没有分清楚什么叫getter,什么叫setter
https://docs.blamejared.com/1.12/e ...
好的 感谢大佬