Jump to content

How to check if a custom mob is attacking a player


Discult

Recommended Posts

Well there are some methods related to attacking in the entity, but those are for dealing the damage and only happen on the exact tick of the attack (which also might be too late for the animation to start). Animations normally progress over several ticks. I think it might make sense to trigger it using the AI classes for your custom entity. However, the AI runs on the server (I'm pretty sure) and not the client where you want the animations.

 

I guess I would probably have the AI trigger it. If you look at the EntityAIAttackMelee class you can see what I mean. In that class, in the update() method the entity will try to close the distance to the target and then it runs the checkAndPerformAttack() method. In that method, if the distance is close enough it will perform the attack which includes the vanilla swingArm() method for the animation which updates the progress of the animation and also sends a packet to the client tracking system.

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Link to comment
Share on other sites

16 minutes ago, jabelar said:

Well there are some methods related to attacking in the entity, but those are for dealing the damage and only happen on the exact tick of the attack (which also might be too late for the animation to start). Animations normally progress over several ticks. I think it might make sense to trigger it using the AI classes for your custom entity. However, the AI runs on the server (I'm pretty sure) and not the client where you want the animations.

 

I guess I would probably have the AI trigger it. If you look at the EntityAIAttackMelee class you can see what I mean. In that class, in the update() method the entity will try to close the distance to the target and then it runs the checkAndPerformAttack() method. In that method, if the distance is close enough it will perform the attack which includes the vanilla swingArm() method for the animation which updates the progress of the animation and also sends a packet to the client tracking system.

You know how the attack speed works?

Edited by Discult
Link to comment
Share on other sites

4 minutes ago, Discult said:

You know how the attack speed works? 

I think that only affects players, but I am not sure. Seeing as how searching the whole repository I found nothing about SharedMonsterAttributes.ATTACK_SPEED in any AI or entity class that was not EntityPlayer.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

55 minutes ago, jabelar said:

Well there are some methods related to attacking in the entity, but those are for dealing the damage and only happen on the exact tick of the attack (which also might be too late for the animation to start). Animations normally progress over several ticks. I think it might make sense to trigger it using the AI classes for your custom entity. However, the AI runs on the server (I'm pretty sure) and not the client where you want the animations.

 

I guess I would probably have the AI trigger it. If you look at the EntityAIAttackMelee class you can see what I mean. In that class, in the update() method the entity will try to close the distance to the target and then it runs the checkAndPerformAttack() method. In that method, if the distance is close enough it will perform the attack which includes the vanilla swingArm() method for the animation which updates the progress of the animation and also sends a packet to the client tracking system.

I have been trying to figure out how to call it from my model class(where the animations is set) i tried doing like entity.getAction or something but i cant find anything. Do you have anymore information that could help me.

Link to comment
Share on other sites

Trigger it from you entities AI task

2 hours ago, jabelar said:

If you look at the EntityAIAttackMelee class you can see what I mean. In that class, in the update() method the entity will try to close the distance to the target and then it runs the checkAndPerformAttack() method. In that method, if the distance is close enough it will perform the attack which includes the vanilla swingArm() method for the animation which updates the progress of the animation and also sends a packet to the client tracking system.

Do your attack logic on the server, then call swingArm (or your own similar method) to fire the animation

About Me

Spoiler

My Discord - Cadiboo#8887

My WebsiteCadiboo.github.io

My ModsCadiboo.github.io/projects

My TutorialsCadiboo.github.io/tutorials

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.