question about vectors

Discussion in 'Plugin Development' started by matter123, Sep 19, 2011.

Thread Status:
Not open for further replies.
  1. Offline

    matter123

    im new to vectors so would
    event.getPlayer().setVelocity(event.getPlayer().getVelocity().multiply(speed));​
    speed up or slow down the player with 0 being completly stopped and 1.0 is normal?
     
  2. Offline

    emericask8ur

    Vector vec = new Vector(0,0,0); you can set the 0 0 0 to what ever its xyz so...enjoy ahaha
     
  3. Offline

    matter123

    ok well i want them to move the same way just change there speeds
     
  4. Offline

    emericask8ur

    Then u must use a HashMap to store the velocity,
     
  5. Offline

    Shamebot

    I don't think that he was asking for that.

    Your code should boost the player depending on the factor, if you're asking which number you should use, try it out.
     
  6. Offline

    bergerkiller

    Important: you can't use player.getVelocity(). This always returned odd numbers (or 0) for me. Try calculating the velocities manually in onPlayerMove and use from and to.
    Code:
    public void onPlayerMove(PlayerMoveEvent event) {
        Vector vel = new Vector();
        vel.setX(event.getTo().getX() - event.getFrom().getX());
        vel.setY(event.getTo().getY() - event.getFrom().getY());
        vel.setZ(event.getTo().getZ() - event.getFrom().getZ());
        //You now know the old velocity. Set to match recommended velocity
        double currspeed = vel.length();
        if (currspeed > 0.01) {
            //only if moving set a factor
            double recspeed = 0.6;
            vel = vel.multiply(recspeed / currspeed);
            //apply the new velocity (MAY REQUIRE A SCHEDULED TASK INSTEAD!)
            event.getPlayer().setVelocity(vel);
        }
    }
     
  7. Offline

    WizzleDonker

    Thanks, this is also going to be extremely helpful for my new plugin too :p
     
Thread Status:
Not open for further replies.

Share This Page