Entity.setVelX(EntityUUID, Velocity); Entity.setVelY(EntityUUID, Velocity); Entity.setVelZ(EntityUUID, Velocity); //または setVelX(EntityUUID, Velocity); setVelY(EntityUUID, Velocity); setVelZ(EntityUUID, Velocity);エンティティの各軸の移動速度を設定する関数。
注意点は、地面を歩いているモブにattackHookの中でEntity.setVelYを使っても効果がない事だ。(1.11.4, 0.13.1現在)
恐らく、attackHookの後に発生する被ダメージモーションに、設定したY軸速度が上書きされてしまうからだろう。
preventDefaultでダメージを無効化するか、attackHookでフラグを立てて、modTickでEntity.setVelYを使うなどの対策が必要。
//エンティティを叩くと、そのエンティティをY軸+(上)方向に1の速度を与える。 function attackHook(AttackerEntityUUID, VictimEntityUUID){ Entity.setVelY(VictimEntityUUID, 1); //上に飛ばす preventDefault(); //ダメージキャンセル }
//エンティティを叩くと、そのエンティティをY軸+(上)方向に1の速度を与える。 var flag = false; var theUUID; function attackHook(AttackerEntityUUID, VictimEntityUUID){ theUUID = VictimEntityUUID; //UUIDを記憶 flag = true; //フラグを立てる } function modTick(){ if(flag){ //フラグが立ってる(true)の時 Entity.setVelY(theUUID, 1); //上に飛ばす flag=false; //フラグをおろす } }
タグ
コメントをかく