Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #replace
- //#############names#############
- RayCastSpot = RayCastSpot
- RayCastMarker = RayCastMarker
- RayCastMain = RayCastMain
- //#############objectives#############
- targetMarkerObjective = targetMarker
- rotationPitchObjective = rotationPitch
- rotationYawObjective = rotationYaw
- vectorXObjective = vectorX
- vectorYObjective = vectorY
- vectorZObjective = vectorZ
- tpMarkerObjective = tpMarker
- rayCastHitObjective = rayCastHit
- rayCastIDObjective = rayCastID
- CONST_10 = _10 CONST
- CONST_1000 = _1000 CONST
- CONST_10000 = _10000 CONST
- CONST_90 = _90 CONST
- CONST_90000 = _90000 CONST
- CONST_360 = _360 CONST
- CONST_-1 = _-1 CONST
- CONST_200 = _200 CONST
- CONST_2000 = _2000 CONST
- //#############selectors#############
- Target = @e[targetMarkerObjective==1,c=1]
- RCSpots = @e[rayCastHitObjective>=-1,name=RayCastSpot]
- RCSpots[ = @e[rayCastHitObjective>=-1,name=RayCastSpot,
- RCMain = @e[rayCastHitObjective>=-1,c=1,name=RayCastMain]
- RCMain[ = @e[rayCastHitObjective>=-1,c=1,name=RayCastMain,
- RCMarker = @e[rayCastHitObjective>=-1,c=1,name=RayCastMarker]
- RCMarker[ = @e[rayCastHitObjective>=-1,c=1,name=RayCastMarker,
- //#############nbt#############
- RayCastNBT = NoGravity:true,Invulnerable:true,CustomNameVisible:false,Invisible:true
- //#############command coordinates#############
- areadefault = -2311 75 1052 -2306 75 1052
- areastart = -2311 75 1060 -2307 75 1060
- //#############commands#############
- //#####build raycasters#####
- #new_functionline x ~ ~3 ~
- kill @e[rayCastHitObjective>=-1]
- scoreboard players reset * rayCastHitObjective
- scoreboard players reset * rayCastIDObjective
- summon ArmorStand ~ ~3 ~ {CustomName:"RayCastMain",RayCastNBT}
- summon ArmorStand ~ ~3 ~ {CustomName:"RayCastMarker",RayCastNBT}
- summon ArmorStand ~ ~3 ~ {CustomName:"RayCastSpot",RayCastNBT}
- summon ArmorStand ~ ~3 ~ {CustomName:"RayCastSpot",RayCastNBT}
- @e[name=RayCastSpot] => summon ArmorStand ~ ~3 ~ {CustomName:"RayCastSpot",RayCastNBT}
- @e[name=RayCastSpot] => summon ArmorStand ~ ~3 ~ {CustomName:"RayCastSpot",RayCastNBT}
- @e[name=RayCastSpot] => summon ArmorStand ~ ~3 ~ {CustomName:"RayCastSpot",RayCastNBT}
- @e[name=RayCastSpot,c=4] => summon ArmorStand ~ ~3 ~ {CustomName:"RayCastSpot",RayCastNBT}
- @e[name=RayCastSpot] rayCastHitObjective = -1
- @e[name=RayCastMarker] rayCastHitObjective = -1
- @e[name=RayCastMain] rayCastHitObjective = -1
- RCMain rayCastIDObjective = -1
- RCMarker rayCastIDObjective = -1
- RCSpots rayCastIDObjective = -1
- RCSpots[c=1,rayCastIDObjective==-1] rayCastIDObjective = <<1:20>>
- //##############main fast#############
- #new_functionline x ~ ~10 ~6 top
- RCMarker[targetMarkerObjective>=1] => fill areastart redstone_block
- RCMain[rayCastIDObjective>=1] => fill areadefault redstone_block
- RCMain[rayCastIDObjective>=1] => fill areadefault stained_hardened_clay 14
- //####start###########################
- #new_functionline x ~ ~3 ~4
- RCMain rayCastIDObjective = 1
- RCMarker targetMarkerObjective = 0
- RCMarker rayCastIDObjective = 0
- RCMarker rayCastHitObjective = -1
- RCSpots tpMarkerObjective = 1
- RCSpots vectorXObjective = rayCastIDObjective *= RCMarker vectorXObjective /= CONST_200
- RCSpots vectorYObjective = rayCastIDObjective *= RCMarker vectorYObjective /= CONST_200
- RCSpots vectorZObjective = rayCastIDObjective *= RCMarker vectorZObjective /= CONST_200
- RCMarker vectorXObjective = RCSpots[rayCastIDObjective==20] vectorXObjective
- RCMarker vectorYObjective = RCSpots[rayCastIDObjective==20] vectorYObjective
- RCMarker vectorZObjective = RCSpots[rayCastIDObjective==20] vectorZObjective
- tp RCSpots RCMarker
- //####default###########################
- #new_functionline x ~ ~3 ~-4
- RCSpots vectorXObjective = RCMarker vectorXObjective
- RCSpots vectorYObjective = RCMarker vectorYObjective
- RCSpots vectorZObjective = RCMarker vectorZObjective
- //effects
- RCMain[rayCastHitObjective>=1,rayCastIDObjective>=1] => RCSpots => particle reddust ~ ~ ~ 0.1 0.1 0.1 0 10 force
- //detection per Spot
- RCSpots rayCastHitObjective = -1
- RCSpots[block=~ ~ ~ air] rayCastHitObjective = 0
- RCMarker => @e[r=100] => RCSpots[r=0,rayCastHitObjective>=0] rayCastHitObjective += 1
- @e[rayCastHitObjective>=-1] => RCSpots[r=0,rayCastHitObjective>=1] rayCastHitObjective -= 1
- RCSpots[rayCastHitObjective>=1] rayCastHitObjective = 2
- RCSpots[rayCastHitObjective==-1] rayCastHitObjective = 1
- RCSpots[rayCastHitObjective==0] rayCastHitObjective = -1
- //evaluation
- RCMarker[rayCastIDObjective<=0] => RCSpots[c=1,rayCastHitObjective>=1] => RCMarker rayCastHitObjective = @me rayCastHitObjective
- RCMarker[rayCastHitObjective>=1] rayCastIDObjective = 1
- RCMarker[rayCastIDObjective==1] => RCMain[rayCastIDObjective>=1] rayCastIDObjective = 0
- //tp if target
- RCMarker[rayCastIDObjective==1] => @e[rayCastHitObjective>=1,name=RayCastSpot,c=1] rayCastHitObjective += 10
- tp RCMarker[rayCastIDObjective==1] @e[rayCastHitObjective>=11,name=RayCastSpot,c=1]
- //reset
- RCMain[rayCastIDObjective>=1] rayCastIDObjective += 1
- RCMain[rayCastIDObjective>=10] rayCastIDObjective = 0
- RCMain[rayCastIDObjective==0] => tp RCSpots RCMain
- RCMain[rayCastIDObjective==0] => tp RCMarker[rayCastIDObjective<=0] RCMain
- RCMain[rayCastIDObjective==0] => RCSpots tpMarkerObjective = 0
- RCMain[rayCastIDObjective==0] => fill areastart stained_hardened_clay 14
- RCMain[rayCastIDObjective==0] => say this could be your command!
- RCMain[rayCastIDObjective==0] rayCastIDObjective = -1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement