Here are two functions to shoot an arrow in a ModPE Script:
The first needs an entity to shoot the arrows away from, and the speed of the arrows. The speed 2 is twice as much as 1. You can choose as speed, for example, 2.5.
The second function need x, y, z and the speed and the yaw.
The yaw 0 is north and 180 is south. You can choose a yaw from 0 until 360, if you choose another yaw it counts it as long higher or lower until it is from 0 to 360.
Just paste the functions on the top of your Mod and call them whenever you need them:
function shootArrowE(entity, speedX, speedY, speedZ){
try{
var yaw=Entity.getYaw(entity);
yaw=yaw-90;
while(yaw>360){
yaw=yaw-360;
}
while(yaw<0){
yaw=yaw+360;
}
if(yaw>0 && yaw<22){
myX=-0.5;
myZ=0;
}
if(yaw>22 && yaw<45){
myX=-0.35;
myZ=-0.2;
}
if(yaw>45 && yaw<67){
myX=-0.2;
myZ=-0.35;
}
if(yaw>67 && yaw<90){
myX=0;
myZ=-0.5;
}
if(yaw>90 && yaw<112){
myX=0;
myZ=-0.5;
}
if(yaw>112 && yaw<135){
myX=0.2;
myZ=-0.35;
}
if(yaw>135 && yaw<157){
myX=0.35;
myZ=-0.2;
}
if(yaw>157 && yaw<180){
myX=0.5;
myZ=0;
}
if(yaw>180 && yaw<202){
myX=0.5;
myZ=0;
}
if(yaw>202 && yaw<225){
myX=0.35;
myZ=0.2;
}
if(yaw>225 && yaw<247){
myX=0.2;
myZ=0.35;
}
if(yaw>247 && yaw<270){
myX=0;
myZ=0.5;
}
if(yaw>270 && yaw<292){
MmyX=0;
myZ=0.5;
}
if(yaw>292 && yaw<315){
myX=-0.2;
myZ=0.35;
}
if(yaw>315 && yaw<337){
myX=-0.35;
myZ=0.2;
}
if(yaw>337 && yaw<360){
myX=-0.5;
myZ=0;
}
var arrow=Level.spawnMob(Entity.getX(entity)+myX*4, Entity.getY(entity), Entity.getZ(entity)+myZ*4, 80);
Entity.setVelX(arrow, myX*speedX);
Entity.setVelY(arrow, speedY);
Entity.setVelZ(arrow, myZ*speedZ);
}catch(err){
print("Error: " + err);
}
}
function shootArrowY(yaw, x, y, z, speedX, speedY, speedZ){
try{
yaw=yaw-90;
while(yaw>360){
yaw=yaw-360;
}
while(yaw<0){
yaw=yaw+360;
}
if(yaw>0 && yaw<22){
myX=-0.5;
myZ=0;
}
if(yaw>22 && yaw<45){
myX=-0.35;
myZ=-0.2;
}
if(yaw>45 && yaw<67){
myX=-0.2;
myZ=-0.35;
}
if(yaw>67 && yaw<90){
myX=0;
myZ=-0.5;
}
if(yaw>90 && yaw<112){
myX=0;
myZ=-0.5;
}
if(yaw>112 && yaw<135){
myX=0.2;
myZ=-0.35;
}
if(yaw>135 && yaw<157){
myX=0.35;
myZ=-0.2;
}
if(yaw>157 && yaw<180){
myX=0.5;
myZ=0;
}
if(yaw>180 && yaw<202){
myX=0.5;
myZ=0;
}
if(yaw>202 && yaw<225){
myX=0.35;
myZ=0.2;
}
if(yaw>225 && yaw<247){
myX=0.2;
myZ=0.35;
}
if(yaw>247 && yaw<270){
myX=0;
myZ=0.5;
}
if(yaw>270 && yaw<292){
MmyX=0;
myZ=0.5;
}
if(yaw>292 && yaw<315){
myX=-0.2;
myZ=0.35;
}
if(yaw>315 && yaw<337){
myX=-0.35;
myZ=0.2;
}
if(yaw>337 && yaw<360){
myX=-0.5;
myZ=0;
}
var arrow=Level.spawnMob(x, y, z, 80);
Entity.setVelX(arrow, myX*speedX);
Entity.setVelY(arrow, speedY);
Entity.setVelZ(arrow, myZ*speedZ);
}catch(err){
print("Error: " + err);
}
}
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
-
View User Profile
-
View Posts
-
Send Message
Curse PremiumHere are two functions to shoot an arrow in a ModPE Script:
The first needs an entity to shoot the arrows away from, and the speed of the arrows. The speed 2 is twice as much as 1. You can choose as speed, for example, 2.5.
The second function need x, y, z and the speed and the yaw.
The yaw 0 is north and 180 is south. You can choose a yaw from 0 until 360, if you choose another yaw it counts it as long higher or lower until it is from 0 to 360.
Just paste the functions on the top of your Mod and call them whenever you need them:
function shootArrowE(entity, speedX, speedY, speedZ){
try{
var yaw=Entity.getYaw(entity);
yaw=yaw-90;
while(yaw>360){
yaw=yaw-360;
}
while(yaw<0){
yaw=yaw+360;
}
if(yaw>0 && yaw<22){
myX=-0.5;
myZ=0;
}
if(yaw>22 && yaw<45){
myX=-0.35;
myZ=-0.2;
}
if(yaw>45 && yaw<67){
myX=-0.2;
myZ=-0.35;
}
if(yaw>67 && yaw<90){
myX=0;
myZ=-0.5;
}
if(yaw>90 && yaw<112){
myX=0;
myZ=-0.5;
}
if(yaw>112 && yaw<135){
myX=0.2;
myZ=-0.35;
}
if(yaw>135 && yaw<157){
myX=0.35;
myZ=-0.2;
}
if(yaw>157 && yaw<180){
myX=0.5;
myZ=0;
}
if(yaw>180 && yaw<202){
myX=0.5;
myZ=0;
}
if(yaw>202 && yaw<225){
myX=0.35;
myZ=0.2;
}
if(yaw>225 && yaw<247){
myX=0.2;
myZ=0.35;
}
if(yaw>247 && yaw<270){
myX=0;
myZ=0.5;
}
if(yaw>270 && yaw<292){
MmyX=0;
myZ=0.5;
}
if(yaw>292 && yaw<315){
myX=-0.2;
myZ=0.35;
}
if(yaw>315 && yaw<337){
myX=-0.35;
myZ=0.2;
}
if(yaw>337 && yaw<360){
myX=-0.5;
myZ=0;
}
var arrow=Level.spawnMob(Entity.getX(entity)+myX*4, Entity.getY(entity), Entity.getZ(entity)+myZ*4, 80);
Entity.setVelX(arrow, myX*speedX);
Entity.setVelY(arrow, speedY);
Entity.setVelZ(arrow, myZ*speedZ);
}catch(err){
print("Error: " + err);
}
}
function shootArrowY(yaw, x, y, z, speedX, speedY, speedZ){
try{
yaw=yaw-90;
while(yaw>360){
yaw=yaw-360;
}
while(yaw<0){
yaw=yaw+360;
}
if(yaw>0 && yaw<22){
myX=-0.5;
myZ=0;
}
if(yaw>22 && yaw<45){
myX=-0.35;
myZ=-0.2;
}
if(yaw>45 && yaw<67){
myX=-0.2;
myZ=-0.35;
}
if(yaw>67 && yaw<90){
myX=0;
myZ=-0.5;
}
if(yaw>90 && yaw<112){
myX=0;
myZ=-0.5;
}
if(yaw>112 && yaw<135){
myX=0.2;
myZ=-0.35;
}
if(yaw>135 && yaw<157){
myX=0.35;
myZ=-0.2;
}
if(yaw>157 && yaw<180){
myX=0.5;
myZ=0;
}
if(yaw>180 && yaw<202){
myX=0.5;
myZ=0;
}
if(yaw>202 && yaw<225){
myX=0.35;
myZ=0.2;
}
if(yaw>225 && yaw<247){
myX=0.2;
myZ=0.35;
}
if(yaw>247 && yaw<270){
myX=0;
myZ=0.5;
}
if(yaw>270 && yaw<292){
MmyX=0;
myZ=0.5;
}
if(yaw>292 && yaw<315){
myX=-0.2;
myZ=0.35;
}
if(yaw>315 && yaw<337){
myX=-0.35;
myZ=0.2;
}
if(yaw>337 && yaw<360){
myX=-0.5;
myZ=0;
}
var arrow=Level.spawnMob(x, y, z, 80);
Entity.setVelX(arrow, myX*speedX);
Entity.setVelY(arrow, speedY);
Entity.setVelZ(arrow, myZ*speedZ);
}catch(err){
print("Error: " + err);
}
}