Jump to content

Performing an action


Nosba

Recommended Posts

Hi all,

 

I want to create a mod that implements some new Weapons. These weapons must do a different action based on the keys pressed by the user: e.g. if the user presses the shift key and the left mouse a sword should lunge.

 

My problem is that I don't even know what I have to look for, is that an animation or what?

Do you know where can I learn about it?

Link to comment
Share on other sites

You need to do several things.

 

1) The client listens for the keys and then informs the server "do action X"

2) The server then decides if the player can perform action X (checks for having the right weapon equipped, etc)

3) The server performs the desired effect.

 

You will probably want animations for these things, but that part is purely visual (the server would inform all clients in range of what animation to play)

 

A lunge is more than just an animation, it's a combination of forward movement and damage volume.  The server would be responsible for moving the player over time, calculating what entities the damage area hits, and applying that damage.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

...client proxy that calls a method of the server proxy...

 

No, you need packets.

 

The client and the server are not guaranteed to be on the same physical machine.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

...client proxy that calls a method of the server proxy...

 

No, you need packets.

 

The client and the server are not guaranteed to be on the same physical machine.

 

Ok, but I suppose that there are some events that are raised when the player press some keys. So how can I override these methods at server side?

 

I found that tutorial http://www.lopakalogic.com/articles/minecraft-articles/minecraft-mods-forge/custom-actions-items/ but it only works on client side.

 

Should I override the method in client and in that method send a packet to the server?

Link to comment
Share on other sites

Ok, but I suppose that there are some events that are raised when the player press some keys. So how can I override these methods at server side?

 

"Packets"

If the question ever involves "how does the server know the client did...?" the answer is packets.  Likewise the answer to "how does the client know the server did...?" is also packets.

 

I found that tutorial http://www.lopakalogic.com/articles/minecraft-articles/minecraft-mods-forge/custom-actions-items/ but it only works on client side.

 

Should I override the method in client and in that method send a packet to the server?

 

onItemRightClick

is called on both sides.  You don't need to do anything involving packets.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

Ok, but I suppose that there are some events that are raised when the player press some keys. So how can I override these methods at server side?

 

"Packets"

If the question ever involves "how does the server know the client did...?" the answer is packets.  Likewise the answer to "how does the client know the server did...?" is also packets.

 

I found that tutorial http://www.lopakalogic.com/articles/minecraft-articles/minecraft-mods-forge/custom-actions-items/ but it only works on client side.

 

Should I override the method in client and in that method send a packet to the server?

 

onItemRightClick

is called on both sides.  You don't need to do anything involving packets.

 

thank you!

 

Now I have another problem. I didn't open another thread because this problem is

tightly connected to the previous one.

Some answers ago Draco18s wrote:

[...]

You will probably want animations for these things, but that part is purely visual (the server would inform all clients in range of what animation to play)

[...]

 

Now I know how to write my own method that removes the opponent's life, etc. But I do not know how to make the visual effect yet.

 

I searched online for: Animations Minecraft forge tutorial, Action Minecraft forge tutorial, Attack animation Minecraft tutorial and other queries, but I found nothing about that.

 

Can you tell me some tutorials, pdf, videos or anything else where I can learn about animations for Minecraft 1.10?

Link to comment
Share on other sites

You will have to override the model and render them yourself. Using the RenderPlayerEvent.Pre.

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

You will have to override the model and render them yourself. Using the RenderPlayerEvent.Pre.

 

All right but I need to know how to override that method. I will probably need a series of textures to show in sequence to simulate a movement. But I don't know anything about the method to call from the RenderPlayerEvent.pre event to show my animation?

Link to comment
Share on other sites

You will have to override the model and render them yourself. Using the RenderPlayerEvent.Pre.

 

All right but I need to know how to override that method. I will probably need a series of textures to show in sequence to simulate a movement. But I don't know anything about the method to call from the RenderPlayerEvent.pre event to show my animation?

Do you know about Forge Events? No? Then i suggest you read through this tutorial http://www.minecraftforum.net/forums/mapping-and-modding/mapping-and-modding-tutorials/1571567-forge-1-6-4-1-8-eventhandler-and

If yes RenderPlayerEvent.Pre is a forge event that is called before the player is rendered ie Pre. You will cancel the event inside of your event then render your animations.

 

*Edit this is for the player item animations should be done with an IBakedModel.

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

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.

×
×
  • Create New...

Important Information

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