Jump to content

[SOLVED] Modifying Player Movement


insomniac10102

Recommended Posts

I am currently trying to modify a player's movement, but so far everything I've tried has failed. Does anyone know of the preferred/suggested way to override a player's movement?

 

The closest I have gotten is EntityClientPlayerMP.addVelocity(), but it is only modifying the coordinates of the player (and also, for whatever reason, setting isAirBorne to true). I am in need of something that will modify movement relative to where the player is looking.

Link to comment
Share on other sites

Remember, the changes you make have to apply to the server and to the client.  If you make changes to the server and not to the client, you will appear to be walking like normal but the server will have you registered far away, vice versa for the opposite.  The best way I approached it was apply buffs (potions) to the player as that works well for communication from Server to Client and Client to Server.

Link to comment
Share on other sites

This is code I did for setting a player to a specific location. Is this what you are looking for?

 

if (!par2World.isRemote) {
        	ChunkCoordinates bedCoords = par3EntityPlayer.getBedLocation(0);
        	
        	if(bedCoords != null) {
        		if(par3EntityPlayer instanceof EntityPlayerMP) {
        			((EntityPlayerMP)par3EntityPlayer).playerNetServerHandler.setPlayerLocation(bedCoords.posX, bedCoords.posY, bedCoords.posZ, par3EntityPlayer.rotationYaw, par3EntityPlayer.rotationPitch);
        		}
        	} else {
        		par3EntityPlayer.addChatMessage("You haven't slept in a bed.");
        	}
        }

Link to comment
Share on other sites

This may help you. But I was doing this in 162, dont know if there is difference.

To write a movementinput and act the movement by yourself.

But one thing is that you need to control the movement by yourself too.

It's not so smart when you want to control a player with WSAD just with code.

 

The code below is that when the player have potion 37,39 and 41, he can't move and jump.

and with potion 49, when you press W, you go backward, same with "AD".

 

public class ConfusedMovementInput extends MovementInput {

public ConfusedMovementInput(MovementInput interceptedMovementInput) {
	underlyingMovementInput = interceptedMovementInput;
	System.out.println("construct movementinput");
}

@Override
public void updatePlayerMoveState() {
	underlyingMovementInput.updatePlayerMoveState();
	EntityPlayer p = Minecraft.getMinecraft().thePlayer;
        this.jump = underlyingMovementInput.jump && 
        		    !p.isPotionActive(37) &&
        		    !p.isPotionActive(39) &&
        		    !p.isPotionActive(41);
        this.sneak = underlyingMovementInput.sneak;
        if (p.isPotionActive(37) || p.isPotionActive(39) || p.isPotionActive(41)) {
        	this.moveForward = 0;
        	this.moveStrafe = 0;
        }
        if (p.isPotionActive(49)) {
          this.moveStrafe = -underlyingMovementInput.moveStrafe;
          this.moveForward = -underlyingMovementInput.moveForward;
        } else {
          this.moveStrafe = underlyingMovementInput.moveStrafe;
          this.moveForward = underlyingMovementInput.moveForward;
        }

}

public void setConfusion(boolean newConfused) {
	confused = newConfused;
}

protected MovementInput underlyingMovementInput;
private boolean confused = false;

}

 

 

and you can replace the origin movement input somewhere in your code

    EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer;
    if (player != null) {
    	if (player.movementInput instanceof ConfusedMovementInput) {
    	} else {
    		player.movementInput = new ConfusedMovementInput(player.movementInput);
    	}
    }

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.