// пусть координаты точки из которой вылетают пули gunX, gunY
// пусть координаты точки прицела crosshairX, crosshairY
// пусть максимальный разброс зависит от расстояния
// рассчитываем расстояние между оружием и прицелом
const dx = crosshairX - gunX;
const dy = crosshairY - gunY;
const dist = Math.hypot(dx, dy);
// рассчитываем разброс в зависимости от расстояния (пусть на дистанции 10 разброс будет равен PI/4 или 45 градусов)
const dispersion = ( Math.PI / 4 ) * dist / 10;
// рассчитываем угол вылета пули без учета разброса
const bulletAngle = Math.atan2(dy, dx);
// рассчитываем угол вылета пули с учетом +-разброса
const bulletDispersionAngle = bulletAngle + (Math.random() * 2 * dispersion - dispersion);
...
// далее можно посчитать координаты пули в какойто из моментов времени
// пусть скорость пули задана в переменной bulletSpeed (пиксели в секунду)
// пусть время прошедшее с момента старта пули задано в переменной bulletTime (миллисекунды)
// считаем расстояние на которое улетела пуля
const bulletDist = bulletSpeed * bulletTime / 1000;
// считаем координаты пули
const x = gunX + bulletDist * Math.cos(bulletDispersionAngle);
const Y = gunY + bulletDist * Math.sin(bulletDispersionAngle);
33.33.222.9
12.34.567.89
98.765.43.21
let proxyList = fs.readFileSync('proxy.txt', 'utf-8').split("\n");
const targetProxy = proxyList.map(el => el + ':7951');
Va = {ax; ay; az}
и Vb = {bx; by; bz}
в декартовой системе координат - это вектор, значение которого можно вычислить по формуле:Vn = {ay*bz - az*by; az*bx - ax*bz; ax*by - ay*bx}
A = {x1; y1; c1}
B = {x2; y2; c2}
C = {x3; y3; c3}
ax = x2-x1
ay = y2-y1
az = z2-z1
bx = x3-x1
by = y3-y1
bz = z3-z1
var i = 10;
while (i--) {
console.log('while', i);
}
console.log('result, i);
while 9
while 8
while 7
while 6
while 5
while 4
while 3
while 2
while 1
while 0
result -1
var i = 10;
while (i) {
i--;
console.log('while', i);
}
console.log('result, i);
while 9
while 8
while 7
while 6
while 5
while 4
while 3
while 2
while 1
while 0
result 0
var content = fs.readFileSync('users.json', 'utf8')
Ведь благодаря данной технологии можно заменить что угодно, разве нет?
второй кусок кода генерирует ошибку
Uncaught (in promise) error
window.addEventListener('unhandledrejection', function(event) { // объект события имеет два специальных свойства: alert(event.promise); // [object Promise] - промис, который сгенерировал ошибку alert(event.reason); // Error: Ошибка! - объект ошибки, которая не была обработана }); new Promise(function() { throw new Error("Ошибка!"); }); // нет обработчика ошибок
Это событие является частью стандарта HTML.
Если происходит ошибка, и отсутствует её обработчик, то генерируется событие unhandledrejection, и соответствующий объект event содержит информацию об ошибке.
Обычно такие ошибки неустранимы, поэтому лучше всего – информировать пользователя о проблеме и, возможно, отправить информацию об ошибке на сервер.
В не-браузерных средах, таких как Node.js, есть другие способы отслеживания необработанных ошибок.