Jump to content

Recommended Posts

Posted

As soon as I figure out the problem I suggested in the other post, I will face another problem - how to make the player move?

 

I imagine there is a singleton object that represents player, which will allow me to interact with it. Am I right? How do I get my hands on the object?

 

Once I get my hands on the object, I also imagine there are methods to allow me to teleport player instantly to given coordinates. But that's not what I would like to do that. I would like the player to actually move to the position. For the start, let's consider only flat platform the player will be moving on. In the future, I suppose I will teach the bot that controls the player to overcome some obstacles.

 

 

Maybe I should have started with different question. Is it possible to write a bot that will "take over" control over player (the one from which perspective I am looking) and make him do something? If positive, how to do some basic stuff like moving the player?

 

Thanks in advance for any help provided.

Posted

As soon as I figure out the problem I suggested in the other post, I will face another problem - how to make the player move?

 

I imagine there is a singleton object that represents player, which will allow me to interact with it. Am I right? How do I get my hands on the object?

 

Once I get my hands on the object, I also imagine there are methods to allow me to teleport player instantly to given coordinates. But that's not what I would like to do that. I would like the player to actually move to the position. For the start, let's consider only flat platform the player will be moving on. In the future, I suppose I will teach the bot that controls the player to overcome some obstacles.

 

 

Maybe I should have started with different question. Is it possible to write a bot that will "take over" control over player (the one from which perspective I am looking) and make him do something? If positive, how to do some basic stuff like moving the player?

 

Thanks in advance for any help provided.

Posted

The singleotn you are talking about is Minecraft#thePlayer.

 

Your player (you) is controlled by ClientPlayerController (not sure naming).

 

To understand how the process works you can lookup how Minecraft handles input movement keys and sends those moves to server va packets.

1.7.10 is no longer supported by forge, you are on your own.

Posted

The singleotn you are talking about is Minecraft#thePlayer.

 

Your player (you) is controlled by ClientPlayerController (not sure naming).

 

To understand how the process works you can lookup how Minecraft handles input movement keys and sends those moves to server va packets.

1.7.10 is no longer supported by forge, you are on your own.

Posted

OrangeVillager91, Ernio:

Thank you, I appreciate your replies.

 

I already resolved problem I was referring to in the first post in this thread, and now I intend to do the same with the current one. I did a thorough google search for the topic of ClientPlayerController but no luck so far.

 

I studied a bit more the game mechanics (still lot to catch up though) and find out that there is always client/server relationship. But I also noticed that people talk A LOT about 'their GUI'. I understand meaning of the word, but I fail the grasp the concept in the context of it.

 

Let's assume I want my mod to take control over player and move him one block ahead, move not teleport. What is the approach? Is it something like this?

  • I tell the (local - I consider having the mod operational only for single player, for now) server I move my player block ahead (How will I do that? Where should I look for functions that can do that? More specifically please :-) )
  • I tell GUI that I moved the player? (if positive, how do I even access the GUI and tell it to do such a thing)

 

Or - there is no need to notify GUI about the change, minecraft will do that on its own?

 

One more thing that crossed my mind is that people talking about GUI are actually talking about their HUD part of the UI that player sees and update that GUI?

 

Thanks in advance for your further assistance.

Posted

OrangeVillager91, Ernio:

Thank you, I appreciate your replies.

 

I already resolved problem I was referring to in the first post in this thread, and now I intend to do the same with the current one. I did a thorough google search for the topic of ClientPlayerController but no luck so far.

 

I studied a bit more the game mechanics (still lot to catch up though) and find out that there is always client/server relationship. But I also noticed that people talk A LOT about 'their GUI'. I understand meaning of the word, but I fail the grasp the concept in the context of it.

 

Let's assume I want my mod to take control over player and move him one block ahead, move not teleport. What is the approach? Is it something like this?

  • I tell the (local - I consider having the mod operational only for single player, for now) server I move my player block ahead (How will I do that? Where should I look for functions that can do that? More specifically please :-) )
  • I tell GUI that I moved the player? (if positive, how do I even access the GUI and tell it to do such a thing)

 

Or - there is no need to notify GUI about the change, minecraft will do that on its own?

 

One more thing that crossed my mind is that people talking about GUI are actually talking about their HUD part of the UI that player sees and update that GUI?

 

Thanks in advance for your further assistance.

Posted

1. GUI = Graphical user interface, in this case (MC) it rather means HUD. SO when talking about GUI we are (99% times) talk about what is rendered FLAT on TOP of screen.

 

2. "google search for the topic of ClientPlayerController but no luck so far" - I told you, name may be different. Regarding what is responsible for controlling players:

* PlayerControllerMP (actions)

* NetHandlerPlayClient (sending/receiving packets)

* MovementInput sub-class (values of client input actions, such as if you are moving forward)

* EntityPlayerSP (all packeting, e.g: look at : onUpdateWalkingPlayer()).

 

Some stuff: http://mcforge.readthedocs.org/en/latest/concepts/sides/

 

And finally - learn to use your IDE. As of 1.9+ MC source is so RIDICULOUSLY beutiful! Just sid and read, look for "move" and "input" keywords, callbacks, hierarchy. Everything is there under very nice names.

 

Aditional note; there is difference between moving player and making a path for him, for sevond one you need to lookup pathfinding algorithms - e.g Zombies. Note that pathes should not be further than 32, or it will start to get heavy on performance (for longer distance you can use multiple checkpoints).

1.7.10 is no longer supported by forge, you are on your own.

Posted

1. GUI = Graphical user interface, in this case (MC) it rather means HUD. SO when talking about GUI we are (99% times) talk about what is rendered FLAT on TOP of screen.

 

2. "google search for the topic of ClientPlayerController but no luck so far" - I told you, name may be different. Regarding what is responsible for controlling players:

* PlayerControllerMP (actions)

* NetHandlerPlayClient (sending/receiving packets)

* MovementInput sub-class (values of client input actions, such as if you are moving forward)

* EntityPlayerSP (all packeting, e.g: look at : onUpdateWalkingPlayer()).

 

Some stuff: http://mcforge.readthedocs.org/en/latest/concepts/sides/

 

And finally - learn to use your IDE. As of 1.9+ MC source is so RIDICULOUSLY beutiful! Just sid and read, look for "move" and "input" keywords, callbacks, hierarchy. Everything is there under very nice names.

 

Aditional note; there is difference between moving player and making a path for him, for sevond one you need to lookup pathfinding algorithms - e.g Zombies. Note that pathes should not be further than 32, or it will start to get heavy on performance (for longer distance you can use multiple checkpoints).

1.7.10 is no longer supported by forge, you are on your own.

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.