Doob 2 751 Опубликовано: 19 июля, 2015 (изменено) Если интересно, то направление из азимута можно задать так: x = math.cos(a)*p y = math.sin(a)*p Где p это число для округления до целых блоков с необходимой точностью. Чтобы управлять параболой, кажется, надо ее делить на квадратный корень из фокального расстояния и умножить на расстояние. А лучше сделать пристрелку и вывести таблицу дальности, как в минометах. Изменено 19 июля, 2015 пользователем Doob Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
evgkul 571 Опубликовано: 19 июля, 2015 Если интересно, то направление из азимута можно задать так: x = math.cos(a)*p y = math.sin(a)*p Где p это число для округления до целых блоков с необходимой точностью. Чтобы управлять параболой, кажется, надо ее делить на квадратный корень из фокального расстояния и умножить на расстояние. А лучше сделать пристрелку и вывести таблицу дальности, как в минометах. Мне что-то кажется, что сделать определение x и z из места тычка будет проще, чем сначала перегонять место тычка в азимут, а затем обратно в x и z Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 751 Опубликовано: 19 июля, 2015 (изменено) Мне что-то кажется, что сделать определение x и z из места тычка будет проще, чем сначала перегонять место тычка в азимут, а затем обратно в x и z Тогда не париться и делать сразу морской бой с TNT и подвижными кораблями. Изменено 19 июля, 2015 пользователем Doob 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex Автор темы 4 683 Опубликовано: 19 июля, 2015 Вы там пишите программку для арт-САУ "Мста-2С" что ли? Вы еще буссоль возьмите для пристрелки Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
evgkul 571 Опубликовано: 20 июля, 2015 Надо ещё решить, как сделать подбор гнилой плоти. Если ставить воронки в некоторых местах, то их снесёт взрывом, а дебаг-плата вроде на это не способна Хотя tractor beam может и сработать Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
evgkul 571 Опубликовано: 20 июля, 2015 реализую при помощи дрона Идея: сделать креативного дрона с камерой и подправить через mcedit его nbt, сделав его неуязвимым Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
evgkul 571 Опубликовано: 20 июля, 2015 Можно и без mcedit: дроны взрывоустойчивы. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
evgkul 571 Опубликовано: 20 июля, 2015 Радар может обнаруживать дроп, а удалять его можно через worldedit Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
evgkul 571 Опубликовано: 20 июля, 2015 Проблема: даже с креатив-корпусом дрон требует энергии. А зарядник уничтожается взрывом... Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
evgkul 571 Опубликовано: 20 июля, 2015 Пушка уже стреляет очередями, зомби уже сбиваются в толпу, по которой весело стрелять, оплата уже принимается. Осталось сделать так, чтоб зомби держали в руках динамит, подбор лута - радар справится и анти-афк(таймер на 2 минуты, который сбрасывается при тыке на любую кнопку и, если никто его не тыкает, переносит всех игроков в радиусе 10 блоков к терминалу оплаты) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Lgmrszd 390 Опубликовано: 20 июля, 2015 evgkul, на сервере выключено уничтожение взрывом. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
evgkul 571 Опубликовано: 20 июля, 2015 Отлично. Тогда можно и просто поставить камеру и радар Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 751 Опубликовано: 3 августа, 2015 (изменено) Дело было вечером, делать было нечего.Реализовал свою версию.Дальность рассчитана на 40 блоков (можно вести огонь в кругу радиусом 81 блок), комблок должен находится на уровне поверхности (поправку на высоту делает игрок).Суть такова: вводим название программы, направление в Майнкрафтовских градусах (юг = 0, отсчет по часовой +, против часовой -), вводим дальность и жмем [Enter]На короткой дистанции большие погрешности, но для TNT это не играет роли. local cb = require('component').command_block local tH = {0.02, 0.04, 0.08, 0.1, 0.12, 0.14, 0.18, 0.2, 0.22, 0.24, 0.26, 0.3, 0.32, 0.34, 0.38, 0.42, 0.44, 0.48, 0.5, 0.54, 0.6, 0.62, 0.68, 0.72, 0.76, 0.82, 0.86, 0.92, 1.0, 1.05, 1.11, 1.2, 1.26, 1.32, 1.4, 1.53, 1.56, 1.6, 1.71, 1.81} local function azimuth(a) local x = math.sin(math.rad(a)) local y = math.cos(math.rad(a)) x = (x-(x*2))-0.0001 y = y-0.0001 return x, y end local tArgs = {...} if tArgs and #tArgs == 2 then local angle = tonumber(tArgs[1]) local distance = tonumber(tArgs[2]) if type(angle) == 'number' and type(distance) == 'number' and distance <= #tH then local a, b = azimuth(angle) cb.setCommand('summon PrimedTnt ~ ~1 ~ {Fuse:100,Motion:['..a..','..tH[distance]..','..b..']}') cb.executeCommand() else print('Расстяние должно быть меньше '..#tH) end else print('Использование:\nboom <направление> <дальность>') end Пример работы скрипта for i = 0, 360, 10 do shell.execute('boom '..i..' 30') end В тесте стрелял камнем FallingSand Изменено 29 мая, 2016 пользователем Doob Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
unknown 23 Опубликовано: 3 августа, 2015 Дальность рассчитана на 40 блоков (можно вести огонь в кругу радиусом 81 блок), комблок должен находится на уровне поверхности (поправку на высоту делает игрок).Диаметром же. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 751 Опубликовано: 3 августа, 2015 (изменено) Диаметром же. Действительно К алгоритму можно прикрутить управление через чат и снятие денег со счета в банке, но не знаю где разместить игрока. Можно сделать телепортацию через чат на точку спавна TNT, а игроку выдавать инвиз. Изменено 4 августа, 2015 пользователем Doob Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах