= 创作分享 =
你问我答
有关CrT生成实体的求助
bviit

有关CrT生成实体的求助

bviit 于 2022-7-2 19:09 ( 1年前 ) [复制链接] [只看楼主] [打印]
637 10
100RF
在使用IWorld中[backcolor=rgb(229 229 229/var(--tw-bg-opacity))][size=1em]spawnEntity时,直接使用了拿来的target,并修改了其坐标,在游戏中变成了类似于tp的效果,想求助一下修改实体的那一项参数可以实现类似于复制的效果?比方说攻击一只僵尸在原僵尸位置生成一只新僵尸,且原僵尸不消失。

最佳答案

查看完整内容

不能复制,以下方式你可以考虑: 具体说就是 1.监测EntityLivingAttacked事件 2.(假设事件名叫event)用类似event.entityLivingBase的方式拿到IEntityLivingBase [2.5].检测是否僵尸 3.用IEntityLivingBase.getX()、IEntityLivingBase.getY()、IEntityLivingBase.getZ()拿到坐标(分别记为x、y、z), 用IEntityLivingBase.server拿到IServer, 用IServer.commandManager拿到ICommandManager 4.玩家能用/Summon: ICommandMana ...
发表于 2022-7-2 19:09:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

回复 | 举报

该帖共收到 11 条回复!
Sam0324
不能复制,以下方式你可以考虑:
具体说就是
1.监测EntityLivingAttacked事件
2.(假设事件名叫event)用类似event.entityLivingBase的方式拿到IEntityLivingBase
[2.5].检测是否僵尸
3.用IEntityLivingBase.getX()、IEntityLivingBase.getY()、IEntityLivingBase.getZ()拿到坐标(分别记为x、y、z),
  用IEntityLivingBase.server拿到IServer,
  用IServer.commandManager拿到ICommandManager
4.玩家能用/Summon:  ICommandManager.executeCommand(event.damageSource,"/summon minecraft:zombie "~x~" "~y~" "~z);
  玩家不能用/Summon: 先用IEntityLivingBase.world.getDimensionType()拿到维度名(记为d),然后
      ICommandManager.executeCommand(IServer, "/execute in "~d~" run summon minecraft:zombie "~x~" "~y~" "~z);
发表于 2022-7-2 19:09:24 | 只看该作者

回复 | 举报

bviit
QQ酱22009 发表于 2022-7-3 09:01
不能复制,以下方式你可以考虑:
具体说就是
1.监测EntityLivingAttacked事件

谢谢~主要是不知道怎样实现crt用原版指令,马上试试。
发表于 2022-7-3 09:33:37 | 只看该作者

回复 | 举报

Sam0324
13082679913 发表于 2022-7-3 09:33
谢谢~主要是不知道怎样实现crt用原版指令,马上试试。

executeCommand就是运行命令啊www
发表于 2022-7-3 11:21:48 | 只看该作者

回复 | 举报

bviit
QQ酱22009 发表于 2022-7-3 11:21
executeCommand就是运行命令啊www

是自己做的匠魂特性,里面的afterHit和onHit似乎都没有IDamageSource类型的参数,对于有作弊权限的玩家能用第二条吗?创造模式试验没有报错,但也没有召唤成功。
发表于 2022-7-3 12:27:34 | 只看该作者

回复 | 举报

Sam0324
13082679913 发表于 2022-7-3 12:27
是自己做的匠魂特性,里面的afterHit和onHit似乎都没有IDamageSource类型的参数,对于有作弊权限的玩家能 ...

你所说的的匠魂特性是攻击后如果是僵尸就复制一只吗?
第4步时你可以用后面说“不能用/summon”的方法啊,IEntityLivingBase对应着target。
发表于 2022-7-3 12:43:57 | 只看该作者

回复 | 举报

bviit
QQ酱22009 发表于 2022-7-3 12:43
你所说的的匠魂特性是攻击后如果是僵尸就复制一只吗?
第4步时你可以用后面说“不能用/summon”的方法啊 ...

原本是想在匠魂里复刻一下巫术学召唤的那个法术,但是暂时用的是原版僵尸。
确实是用了target,测试了一下维度名和坐标都没有问题,但是无法召唤,就怀疑到权限上了。
发表于 2022-7-3 13:04:24 | 只看该作者

回复 | 举报

Sam0324
13082679913 发表于 2022-7-3 13:04
原本是想在匠魂里复刻一下巫术学召唤的那个法术,但是暂时用的是原版僵尸。
确实是用了target,测试了一 ...

所以现在可以了吗?IServer那个方法用的服务器权限。
发表于 2022-7-3 16:19:34 | 只看该作者

回复 | 举报

bviit
QQ酱22009 发表于 2022-7-3 16:19
所以现在可以了吗?IServer那个方法用的服务器权限。

仔细看了好长时间wiki,说的是rawCommand直接是指令
/summon minecraft:zombie
...就好了,和权限没关系。
如果能顺便请教一下怎么把左边显示的 server召唤了实体 隐藏就好了
发表于 2022-7-3 17:22:24 | 只看该作者

回复 | 举报

Sam0324
13082679913 发表于 2022-7-3 17:22
仔细看了好长时间wiki,说的是rawCommand直接是指令
/summon minecraft:zombie
...就好了,和权限没关系 ...

隐藏应该可以/gamerule,以及直接指令的话你得处理方位问题,这就是为什么前面有execuse(不然你在末地打僵尸可能僵尸就生成在主世界了)
发表于 2022-7-3 17:28:02 | 只看该作者

回复 | 举报

12下一页
百科目前不允许匿名发帖哦~ 请先 [ 登陆 ][ 注册 ] 吧~

本版积分规则

发新帖
  • 回复
  • 点评
  • 评分

[ MC百科(mcmod.cn) 除另有声明,所有开放公共编辑的内容均使用 BY-NC-SA 3.0 协议 ]

Minecraft百科CC协议
快速回复 返回顶部 返回列表