【CBL·K_bai】[原版模组]还担心箭技不佳?追踪导蛋解决您的烦恼!


====================前言====================
听说你箭术差?根本射不到敌人?
追踪导蛋帮你忙!
只需先用雪球命中标记敌人 再右键萝卜吊杆召唤
追踪导蛋就可以自动向目标飞去!即使在墙背后也可以!


这里是动图 原动图太大百度不让看= =

https://www.gfycat.com/BasicEnchantingIndochinahogdeer
https://www.gfycat.com/RareWatchfulKiwi


====================原理解释====================
分为四部分
-------------------------------------锁定目标-------------------------------------

计分板目标:
/scoreboard objectives add zChosen dummy 被标记
/scoreboard objectives add zTracked dummy 被锁定

这里是用了@C-青皮君 的判断被击中的方法 这里是原帖
http://www.mcbbs.net/thread-387851-1-1.html

/scoreboard players set @e[type=!Player] zChosen 1 {DeathTime:0s}
/scoreboard players set @e[type=!Player] zChosen 0 {HurtTime:0s}

现将所有有DeathTime标签的实体标记为1
DeathTime是生物独有的标签 因此不会把掉落物品雪球之类的实体标记上
然后再去掉所有没受伤即HurtTime为零的实体

/execute @e[type=!Player,score_zChosen_min=1] ~ ~ ~ /scoreboard players reset * zTracked
/scoreboard players set @e[type=!Player,score_zChosen_min=1] zTracked 1
/scoreboard players reset * zChosen

如果有受伤生物, 那么就重置之前标记过的生物
然后给现在受伤的生物加标记
最后重置检测受伤的计分板
这三条命令把受伤的生物记住, 并且可以随时更改

-------------------------------------生成导蛋-------------------------------------

/scoreboard objectives add zUseStick stat.useItem.minecraft.carrot_on_a_stick 使用吊杆

/execute @p[score_zUseStick_min=1] ~ ~2 ~ /summon ArmorStand ~ ~ ~ {CustomName:"egg",Equipment:[{id:"minecraft:dragon_egg",Count:1,Damege:0},{},{},{},{}],Pose:{RightArm:[0f,0f,-40f]},Invisible:1,NoGravity:1}

/playsound mob.ghast.fireball @p[score_zUseStick_min=1] ~ ~ ~ 1 1.5 1
/scoreboard players reset * zUseStick

恩相信你们看的懂
-------------------------------------追踪目标-------------------------------------
以平面为例:
首先我们知道在平面直角坐标系中
整个平面被分为几个部分
x

/|\
|
第二象限 | 第一象限
|
|

---------------------------------------------------------------> y

|
|
第三象限 | 第四象限
|
|


分别是四个象限和两个坐标轴
假设被追踪的目标在原点
那么我们就只要让在每个区域内的导蛋向其靠近即可


切换到三维
一个空间直角坐标系可以分成

三个坐标轴 (可细分为+x -x +y -y +z -z)

八个区域

三个平面 (这三个平面又可以细分为12个面)


如此一来一共26个区域 如果有导蛋在这26个区域内 就让它向中心移动即可!
详细指令:
八个区域
/execute @e[type=!Player,score_zTracked_min=1] ~1 ~1 ~1 /tp @e[type=ArmorStand,name=egg,dx=100,dy=100,dz=100] ~-0.087 ~-0.087 ~-0.087
/execute @e[type=!Player,score_zTracked_min=1] ~1 ~1 ~-101 /tp @e[type=ArmorStand,name=egg,dx=100,dy=100,dz=100] ~-0.087 ~-0.087 ~0.087
/execute @e[type=!Player,score_zTracked_min=1] ~1 ~-101 ~1 /tp @e[type=ArmorStand,name=egg,dx=100,dy=100,dz=100] ~-0.087 ~0.087 ~-0.087
/execute @e[type=!Player,score_zTracked_min=1] ~1 ~-101 ~-101 /tp @e[type=ArmorStand,name=egg,dx=100,dy=100,dz=100] ~-0.087 ~0.087 ~0.087
/execute @e[type=!Player,score_zTracked_min=1] ~-101 ~1 ~1 /tp @e[type=ArmorStand,name=egg,dx=100,dy=100,dz=100] ~0.087 ~-0.087 ~-0.087
/execute @e[type=!Player,score_zTracked_min=1] ~-101 ~1 ~-101 /tp @e[type=ArmorStand,name=egg,dx=100,dy=100,dz=100] ~0.087 ~-0.087 ~0.087
/execute @e[type=!Player,score_zTracked_min=1] ~-101 ~-101 ~1 /tp @e[type=ArmorStand,name=egg,dx=100,dy=100,dz=100] ~0.087 ~0.087 ~-0.087
/execute @e[type=!Player,score_zTracked_min=1] ~-101 ~-101 ~-101 /tp @e[type=ArmorStand,name=egg,dx=100,dy=100,dz=100] ~0.087 ~0.087 ~0.087
x-z平面
/execute @e[type=!Player,score_zTracked_min=1] ~1 ~ ~1 /tp @e[type=ArmorStand,name=egg,dx=100,dy=0,dz=100] ~-0.106 ~ ~-0.106
/execute @e[type=!Player,score_zTracked_min=1] ~1 ~ ~-101 /tp @e[type=ArmorStand,name=egg,dx=100,dy=0,dz=100] ~-0.106 ~ ~0.106
/execute @e[type=!Player,score_zTracked_min=1] ~-101 ~ ~1 /tp @e[type=ArmorStand,name=egg,dx=100,dy=0,dz=100] ~0.106 ~ ~-0.106
/execute @e[type=!Player,score_zTracked_min=1] ~-101 ~ ~-101 /tp @e[type=ArmorStand,name=egg,dx=100,dy=0,dz=100] ~0.106 ~ ~0.106
x-y平面
/execute @e[type=!Player,score_zTracked_min=1] ~1 ~1 ~ /tp @e[type=ArmorStand,name=egg,dx=100,dy=100,dz=0] ~-0.106 ~-0.106 ~
/execute @e[type=!Player,score_zTracked_min=1] ~1 ~-101 ~ /tp @e[type=ArmorStand,name=egg,dx=100,dy=100,dz=0] ~-0.106 ~0.106 ~
/execute @e[type=!Player,score_zTracked_min=1] ~-101 ~1 ~ /tp @e[type=ArmorStand,name=egg,dx=100,dy=100,dz=0] ~0.106 ~-0.106 ~
/execute @e[type=!Player,score_zTracked_min=1] ~-101 ~-101 ~ /tp @e[type=ArmorStand,name=egg,dx=100,dy=100,dz=0] ~0.106 ~0.106 ~
y-z平面
/execute @e[type=!Player,score_zTracked_min=1] ~ ~1 ~1 /tp @e[type=ArmorStand,name=egg,dx=0,dy=100,dz=100] ~ ~-0.106 ~-0.106
/execute @e[type=!Player,score_zTracked_min=1] ~ ~1 ~-101 /tp @e[type=ArmorStand,name=egg,dx=0,dy=100,dz=100] ~ ~-0.106 ~0.106
/execute @e[type=!Player,score_zTracked_min=1] ~ ~-101 ~1 /tp @e[type=ArmorStand,name=egg,dx=0,dy=100,dz=100] ~ ~0.106 ~-0.106
/execute @e[type=!Player,score_zTracked_min=1] ~ ~-101 ~-101 /tp @e[type=ArmorStand,name=egg,dx=0,dy=100,dz=100] ~ ~0.106 ~0.106
六个轴
/execute @e[type=!Player,score_zTracked_min=1] ~1 ~ ~ /tp @e[type=ArmorStand,name=egg,dx=100,dy=0,dz=0] ~-0.15 ~ ~
/execute @e[type=!Player,score_zTracked_min=1] ~-101 ~ ~ /tp @e[type=ArmorStand,name=egg,dx=100,dy=0,dz=0] ~0.15 ~ ~
/execute @e[type=!Player,score_zTracked_min=1] ~ ~1 ~ /tp @e[type=ArmorStand,name=egg,dx=0,dy=100,dz=0] ~ ~-0.15 ~
/execute @e[type=!Player,score_zTracked_min=1] ~ ~-101 ~ /tp @e[type=ArmorStand,name=egg,dx=0,dy=100,dz=0] ~ ~0.15 ~
/execute @e[type=!Player,score_zTracked_min=1] ~ ~ ~1 /tp @e[type=ArmorStand,name=egg,dx=0,dy=0,dz=100] ~ ~ ~-0.15
/execute @e[type=!Player,score_zTracked_min=1] ~ ~ ~-101 /tp @e[type=ArmorStand,name=egg,dx=0,dy=0,dz=100] ~ ~ ~0.15



有些同学可能注意到0.087 0.106 0.15这几个数字的不同
这是为了让导蛋在不同区域内的移动速度相等
例如

/\ a

|
|
-----------------> b


在轴上的移动速度是0.15 blocks/tick
那a和b两个速度合成后c=0.15*√2 blocks/tick
啊我是说不清楚了 反正就是速度合成 我相信上过初中物理的一定懂
这样一来实现追踪
-------------------------------------到达目标-------------------------------------

/execute @e[type=!Player,score_zTracked_min=1] ~ ~ ~ /execute @e[type=ArmorStand,name=egg,r=0,c=1] ~ ~ ~ /summon Creeper ~ ~ ~ {Fuse:0,ExplosionRadius:1}
/execute @e[type=!Player,score_zTracked_min=1] ~ ~ ~ /kill @e[type=ArmorStand,name=egg,r=0]
生成一个creeper实现爆炸

====================一些疑问====================

有些同学会说了 26个区域太多了!这样不会太卡么
确实卡 但是效果好啊!

有些情况我不需要效果好,我就要不卡
其实分这些区域不是唯一的 甚至你可以只分6个区域
但是导蛋走的路就远呗 这还是要看情况设置

====================存档以及OCS====================

http://pan.baidu.com/s/1bnvzYI7

存档名为: [CBL·K_bai] 教程 [20150813].zip
全命令集合以及OCS生成: [CBL·K_bai]追踪导蛋_20150813.txt

OCS生成可在生存中使用
原检测受伤生物的命令太卡顿 因此简化成了只检测僵尸 骷髅 蜘蛛和Creeper

楼主 kongbaiyoo  发布于 2015-08-13 13:42:00 +0800 CST  
象限图崩了
反正你们肯定会懂XD
这个原版模组的视频在我放的百度云链接里也有!
谢谢各位支持!


最后
向在天津爆炸事件中逝去的消防员同志表示默哀

楼主 kongbaiyoo  发布于 2015-08-13 13:46:00 +0800 CST  
请各位精品作者支持!谢谢啦XD
@乾坤轩辕1

@EndFish

@duoduo_123dong
@1163698402

@Az蓝色轨迹

胡乱艾特了几个见过的少年= =(除了第一个!

楼主 kongbaiyoo  发布于 2015-08-13 13:51:00 +0800 CST  

楼主:kongbaiyoo

字数:6249

发表时间:2015-08-13 21:42:00 +0800 CST

更新时间:2016-03-15 11:40:13 +0800 CST

评论数:88条评论

帖子来源:百度贴吧  访问原帖

 

热门帖子

随机列表

大家在看