Jump to content

Recommended Posts

Posted

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?

Posted

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.

Posted

Then, if I've understood what you meant, I have to add a listener in the client proxy that calls a method of the server proxy which performs the action and informs all the client to play the right animation?

Posted

...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.

Posted

...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?

Posted
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.

Posted

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?

Posted

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?

Posted

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.

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



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • It is a rendering issue with embeddium/oculus
    • So, I have a minecraft world hosted with essential on forge 1.20.1, there's 149 mods, and the forge version is 47.3.0, and it's been like that for a good 2-3 weeks, and all of a sudden, it stopped loading, and I have 0 clue as to why, and this world means A LOT to me, so if anyone out there is able to help, I would GLADLY appreciate it. here's the link if ya wanna help:   [04Dec2024 22:42:24.552] [Worker-ResourceReload-3/ERROR][net.minecraft.server.packs.resources.SimpleJsonResourceReloadListener/]: Couldn't parse data file slabsexpanded:snow_blockblocktoslab from slabsexpanded:recipes/snow_blockblocktoslab.json com.google.gson.JsonParseException: com.google.gson.stream.MalformedJsonException: Expected name at line 16 column 4 path $.result.item at net.minecraft.util.GsonHelper.m_13780_(GsonHelper.java:526) ~[client-1.20.1-20230612.114412-srg.jar%23490!/:?] at net.minecraft.util.GsonHelper.m_263475_(GsonHelper.java:531) ~[client-1.20.1-20230612.114412-srg.jar%23490!/:?] at net.minecraft.util.GsonHelper.m_13776_(GsonHelper.java:581) ~[client-1.20.1-20230612.114412-srg.jar%23490!/:?] at net.minecraft.server.packs.resources.SimpleJsonResourceReloadListener.m_278771_(SimpleJsonResourceReloadListener.java:41) ~[client-1.20.1-20230612.114412-srg.jar%23490!/:?] at net.minecraft.server.packs.resources.SimpleJsonResourceReloadListener.m_5944_(SimpleJsonResourceReloadListener.java:29) ~[client-1.20.1-20230612.114412-srg.jar%23490!/:?] at net.minecraft.server.packs.resources.SimpleJsonResourceReloadListener.m_5944_(SimpleJsonResourceReloadListener.java:17) ~[client-1.20.1-20230612.114412-srg.jar%23490!/:?] at net.minecraft.server.packs.resources.SimplePreparableReloadListener.m_10786_(SimplePreparableReloadListener.java:11) ~[client-1.20.1-20230612.114412-srg.jar%23490!/:?] at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?] at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1760) ~[?:?] at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) ~[?:?] at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) ~[?:?] at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) ~[?:?] at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) ~[?:?] at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) ~[?:?] Caused by: com.google.gson.stream.MalformedJsonException: Expected name at line 16 column 4 path $.result.item at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1657) ~[gson-2.10.jar%23107!/:?] at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:514) ~[gson-2.10.jar%23107!/:?] at com.google.gson.stream.JsonReader.hasNext(JsonReader.java:422) ~[gson-2.10.jar%23107!/:?] at com.google.gson.internal.bind.TypeAdapters$28.read(TypeAdapters.java:779) ~[gson-2.10.jar%23107!/:?] at com.google.gson.internal.bind.TypeAdapters$28.read(TypeAdapters.java:725) ~[gson-2.10.jar%23107!/:?] at com.google.gson.internal.bind.TypeAdapters$34$1.read(TypeAdapters.java:1007) ~[gson-2.10.jar%23107!/:?] at net.minecraft.util.GsonHelper.m_13780_(GsonHelper.java:524) ~[client-1.20.1-20230612.114412-srg.jar%23490!/:?]
    • Hello! I have been having a problem with Forgematica, Embeddium, Oculus, and create. I wanted to download litematica so I could see which blocks are in my creative mode build, so that I could collect them all in survival. However, litematica is a fabric mod. I found a port called forgematica, which I added (along with it's dependency) to my mods folder. I loaded into a new world, and built a structure. Then, I added a part from the create mod, and the game crashed instantly, with exit code -1. Thanks for any help! Crash Report and mods list: https://pastebin.com/rtzh6LAi
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

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