# Calculate coordinates at a target block

Discussion in 'Skript' started by AkroDogy2005, May 20, 2022.

Not open for further replies.
1. ### AkroDogy2005 Member

Joined:
Apr 20, 2018
Messages:
18
1
Hi, I'm trying to make a calculation so that when the arrow reaches the center point of the block it receives 3 points, farther from the center 2 points and farthest from the center of the block 1 point.
This is my actual code:
Code (Text):
1. on projectile hit:
2.     if {shape::*} is true:
3.         if {game::*} is true:
4.             projectile is arrow:
5.                 shooter is player:
6.                     if event.getHitBlock() is target:
7.                         set {_x::*} to x-location of projectile
8.                         set {_y::*} to y-location of projectile
9.                         set {_z::*} to z-location of projectile
10.                         set {_xar1} to "%event-block's x-location%"
11.                         set {_yar1} to "%event-block's y-location%"
12.                         set {_zar1} to "%event-block's z-location%"
13.                         message "Hit coords %{_x::*}% %{_xar1}%  %{_y::*}% %{_yar1}%  %{_z::*}% %{_zar1}%" to shooter
14.                         message "&e+1 point" to shooter
15.                         if {_x::*} > {_xar1}+0.5:
16.                             message "test"
17.     else:
18.         cancel event
19.
When test it i don t get any "test" message:
Can someone help me with?

File size:
115.8 KB
Views:
28
#1
2. ### BanditEagle Active Member

Joined:
May 3, 2021
Messages:
55
0
Try this:
Code (Text):
1. on projectile hit:
2.     if {shape::*} is true:
3.         if {game::*} is true:
4.             projectile is arrow:
5.                 shooter is player:
6.                     if event.getHitBlock() is target:
7.                         set {_x} to x-location of projectile
8.                         set {_y} to y-location of projectile
9.                         set {_z} to z-location of projectile
10.                         set {_xar1} to "%event-block's x-location%"
11.                         set {_yar1} to "%event-block's y-location%"
12.                         set {_zar1} to "%event-block's z-location%"
13.                         message "Hit coords %{_x}% %{_xar1}%  %{_y}% %{_yar1}%  %{_z}% %{_zar1}%" to shooter
14.                         message "&e+1 point" to shooter
15.                         if {_x} > {_xar1}+0.5:
16.                             message "test"
17.     else:
18.         cancel event

#2
3. ### AKRODOGY Active Member

Joined:
Mar 20, 2018
Messages:
52
2
Tried it but the variable is not working, if i put {_x} instead of {_x::*} i ll not get the test message and on the first message with all coords i ll get a <none> instead of a coord

#3
4. ### BanditEagle Active Member

Joined:
May 3, 2021
Messages:
55
0
oh i know why now. you are comparing a number with a string, since you set {_xar1} as a string while {_x::*} as a number. If you make {_xar1} to a number as well it should work.

#4
5. ### AkroDogy2005 Member

Joined:
Apr 20, 2018
Messages:
18
1
nop, same thing it doesn t display any message like "test"

#5
6. ### David09sm Member

Joined:
May 21, 2022
Messages:
1
0
//How to print to console: console.log(JSON.stringify(13));
// http://paulirish.com/2011/requestanimationframe-for-smart-animating
//shim layer with setTimeout fallback
window.requestAnimFrame = (function(){
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function(callback){
window.setTimeout(callback, 1000 / 60);
};
})();
//namespace the game
var SHOOT ={
//setting up the values
WIDTH: 400,
HEIGHT: 400,
entities: [], //Targets and bullet entities
score: {
shot: 0,
hit: 0,
escaped: 0,
accuracy: 0
},
canvas: null,
ctx: null,
nextTarget: 100,
offset: {
top: 0,
left: 0
},
cannon: {
w: function(){return SHOOT.WIDTH / 5;},
h: function(){return SHOOT.HEIGHT / 5;},
x_loc: function(){return SHOOT.WIDTH * 0.4;},
y_loc: function(){return SHOOT.HEIGHT * 0.8;}
},

init: function(){
SHOOT.canvas = document.getElementsByTagName('canvas')[0];//Setting up canvas element
//Must set canvas width otherwise space bar clicker browser automatically defaults 320 x 200
SHOOT.canvas.width = SHOOT.WIDTH;
SHOOT.canvas.height = SHOOT.HEIGHT;
SHOOT.ctx = SHOOT.canvas.getContext('2d');//Setting up canvas context

//Need something to listen for clicks
e.preventDefault();
SHOOT.Input.set(e);
},false);

//call the loop
SHOOT.loop();
},

#6
7. ### AkroDogy2005 Member

Joined:
Apr 20, 2018
Messages:
18
1
Hi, thanks for responding but I don't think the code is for me, im using skript and i saw that code written by you is for web browsers.

#7
Not open for further replies.