Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var arrows = [];
- var Arrow = Particles.registerParticleType({
- texture: "arrow",
- size: [1, 1],
- lifetime: [1, 5],
- velocity: [0, 0, 0]
- });
- var emitter = new Particles.ParticleEmitter(0, 0, 0);
- function CustomArrow() {
- this.spawn = function (params) {
- var lookAngle = Entity.getLookAngle(Player.get());
- if (lookAngle.yaw == 0) { this.spawn(params); return; }
- var c = Entity.getPosition(Player.get()),
- v = McMath.lookDirection(lookAngle.yaw, lookAngle.pitch);
- entity = Entity.spawn(c.x + (v.x * 1.2), c.y + (v.y * 0.8), c.z + (v.z * 1.2), 80);
- Entity.setSkin(entity, params.skin);
- Entity.setVelocity(entity, v.x * params.speed, v.y * params.speed + 0.2, v.z * params.speed);
- Bows.addBullet({ "entity": entity, damage: params.damage });
- this.entity = entity;
- return entity;
- // this.p = Entity.getPosition(this.entity);
- // this.v = Entity.getVelocity(this.entity);
- }
- this.tick = function () {
- this.p = Entity.getPosition(this.entity);
- this.v = Entity.getVelocity(this.entity);
- if(this.v.y!=0){
- this.animate();
- }
- }
- this.animate = function () {
- for (let i = -0.99; i < 0.99; i += 0.33) {
- var c = {
- x: this.p.x - (this.v.x * i),
- y: this.p.y - (this.v.y * i),
- z: this.p.z - (this.v.z * i)
- };
- emitter.emit(Arrow, 0, c.x, c.y, c.z);
- }
- }
- }
- Callback.addCallback("tick", function () {
- for (var i in arrows) Test(function() {
- if(arrows[i].p.y!=0)
- arrows[i].tick();
- else
- delete arrows[i];
- }, 'ParticleTick')
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement