0

I am trying to make a weeping angel on realms. I tried doing this in Minecraft 1.13 but I could not find a way to make the weeping angel armor stand move when a player looks away from it and not looking at it. Can anybody help?

4
  • How exactly are you planning on these weeping angels to attack when not looked at? Is it editing their entitydata or something else? – SpiceWeasel Jan 26 '19 at 3:47
  • I think this was asked before, but I can't find it. The trick is to put an invisible enderman right in front of it, otherwise you would have to track every single possible viewing angle or do raytracing or other complicated stuff. – Fabian Röling Jan 26 '19 at 10:19
  • I was going to run the commands to make the angel look at the player and to it closer whenever the angel was out of the players view. – IShrugSometimes Jan 26 '19 at 11:31
  • I can’t use endermen since everyone online will be in creative so I will try to see if I can get the player viewing angle to work. – IShrugSometimes Jan 26 '19 at 11:45
1

If I'm correct, you want the angel to look at the player's position when looked at, then make it come closer when it isn't. This method isn't perfect but will get you what you want quickly.

It's actually a very simple concept. Run these commands in a repeating chain (note that I'm assuming for this tutorial that your angel is an armor stand named "weeping_angel", but change this if necessary):

tag @e remove freeze
execute as @a at @s positioned ^ ^ ^3 run tp @e[type=armor_stand,name=weeping_angel,distance=..3] ~ ~ ~ facing entity @p eyes
execute as @a at @s positioned ^ ^ ^3 run tag @e[type=armor_stand,name=weeping_angel,distance=..3] add freeze

This removes the "freeze" tag for all entities, then tags all armor stands named weeping_angel within a radius of 3 in front of all players three blocks ahead with a "freeze" tag, as well as making them look at you. Any armor stands not found in the player's radius will have no freeze tag.

IF YOUR ANGEL IS A MOB

If your zombie is a mob, you'd want it to not have AI (artificial intelligence) when tagged with "freeze", then start moving without the tag. Add to the chain these commands (note here that the example now uses a zombie named "weeping_angel"):

execute as @e[type=zombie,name=weeping_angel,tag=freeze] run data merge entity @s {NoAI:true,Motion:[0,0,0]}
execute as @e[type=zombie,name=weeping_angel,tag=!freeze] run data merge entity @s {NoAI:false}

In case you aren't aware, the tag=!freeze in the second command targets all entities who do NOT have the freeze tag. The "Motion:[0,0,0]" prevents the mob from moving, because although the zombie no longer has AI, it will still move a little as if it were sliding on the ground (I suspect this is a bug).

IF YOUR ANGEL IS AN ARMOR STAND

Again, I'm assuming it's an armor stand named "weeping_angel". Forget the two commands above and use these commands instead:

execute as @e[type=armor_stand,name=weeping_angel,tag=!freeze] at @s run tp @s ~ ~ ~ facing entity @p eyes
execute as @e[type=armor_stand,name=weeping_angel,tag=!freeze] at @s run tp @s ^ ^ ^1

This executes all armor stands without the freeze tag to look at the closest player and then teleport themselves one block in the direction they are looking. Once you implement these commands you could be about done once you add the other commands that give damage and stuff.

TO PREVENT ARMOR STANDS FROM GOING THROUGH WALLS

The problem with the above method with armor stands is that they will teleport near the player regardless of how many walls they walk through. I'm not familiar with Doctor Who, but if they aren't supposed to do that, and it's that annoying, you can put these commands BEFORE the armor stand teleports.

tag @e[type=armor_stand,name=weeping_angel,tag=!freeze] add move
execute as @e[type=armor_stand,name=weeping_angel,tag=!freeze] at @s if block ^ ^ ^1 air if block ^ ^-1 ^1 air run tag @s remove move

You'd then want to edit the armor stand teleporting commands so it also conditions armor stands to not have a move tag.

...@e[type=armor_stand,name=weeping_angel,tag=!freeze,tag=!move]...

You'd also want to copy the above two commands again and again for every block you want it to go through - carpets, torches, grass, flowers, ladders and banners are a few examples.

If you have any sub-questions I'll try to answer them to the best of my ability. I hope this method is what you're looking for.

0
-1

The armor stand would spin around on top of your head when it was close enough because of eyes after

execute as @a at @s positioned ^ ^ ^3 run tp @e[type=armor_stand,name=weeping_angel,distance=..3] ~ ~ ~ facing entity @p eyes

and

execute as @e[type=armor_stand,name=weeping_angel,tag=!freeze] at @s run tp @s ~ ~ ~ facing entity @p eyes

I removed the eyes part of the command and it works fine, but when you look at the weeping angel, it doesn't stop moving. I did some tinkering and added these two commands:

execute as @a at @s positioned ^ ^ ^-10 run tag @e[type=minecraft:armor_stand,name=weeping_angel,distance=..10] remove freeze

and

execute as @a at @s positioned ^ ^ ^10 run tag @e[type=minecraft:armor_stand,name=weeping_angel,distance=..10] add freeze

5
  • If you take into account that the player will be killed by the angel I didn't bother telling him how to fix that. I didn't think of making it long range though, but personally I would just copy the same command over and over again but increasing the positioned number and radius number to prevent angels in the blindspots being frozen. Also the removing tag on the bottom seems unnecessary and less efficient if you just remove all the tags from the start. – SpiceWeasel Jan 26 '19 at 14:55
  • Also it's not really a good idea to make an answer based off of someone else's answer. – SpiceWeasel Jan 26 '19 at 14:56
  • @SpiceWeasel If you believe this answer takes too much of yours, I'd recommend downvoting it. – Frank Jan 26 '19 at 15:36
  • @SpiceWeasel Oh ok, sorry, I’m new to this site so I didn’t know about that kinda stuff. – IShrugSometimes Jan 27 '19 at 3:00
  • @IShrugSometimes It's fine. I recommend in the future to comment on the current answer a problem you encountered, then suggest an edit or wait for them to edit it. You can edit mine if you'd like, since like you noticed a distance of 3 wasn't very much. – SpiceWeasel Jan 27 '19 at 17:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.