Вы используете устаревший браузер
Ваш браузер устарел, и поэтому некоторые важные функции этого сайта могут не работать. Пожалуйста, обновитесь то более современного браузера. :(
Система турелей. 1.14.4. Датапаки. Турель-дробовик.
Дробовик стреляет несколькими патронами, при этом стрелы спавнятся только в том случае, если луч positioned-рейкаста коснётся моба с тегом (чтобы турель "видела" преграды, и чтоб в игрока не прилетело). Т.е если моб один - то и стрела вылетит только одна.
Разброс снарядов есть константа и задаётся только по горизонтали градусом поворота стенда (стенд и есть сама турель), после запуска предыдущего снаряда, задания ему вектора полёта.
В чём проблема: positioned-рейкаст запускается исключительно с исходного ротейшена, в то время как вектор вычисляется нормально, учитывая тот самый поворот между выстрелами. Т.е моб один - а летят все три стрелы, две из которых в него не попадут. Если визуализировать функцию positioned-рейкаста с помощью партиклов, то все три запуска строят одну и ту же линию, до моба. Но стрелы летят нормально, с разбросом. При этом на каждый запуск pos-рейкаста я поставил разные функции с разными переменными (rcd(0-2) в коде), чтобы исключить конфликты, в самих функциях проблем нет, я их тысячу раз проверил. С задержками проблем тоже быть не должно, всё запускается и выдаёт результат последовательно, как надо. Сброс временных переменных также в порядке.
Как можно устранить данную проблему?
Код:
function dos:turel/vrc/get_vec
function dos:turel/prc/rcd0/start
execute if score @s start = 1 const run summon arrow ^ ^1.6 ^1.1 {Tags:["temp"],life:1195s} (start - результат проверки pos-рейкаста)
execute if score @s start = 1 const run execute as @e[type=arrow,tag=temp,sort=nearest,limit=1] run function dos:turel/loop/fire/f13 (да, это 13я по счёту турель).
teleport @s ~ ~ ~ ~20 ~ (если задавать фейсингом (с помощью "^ ^ ^") - ничего не изменится)
function dos:turel/vrc/get_vec
function dos:turel/prc/rcd1/start
execute if score @s start2 = 1 const run summon arrow ^ ^1.6 ^1.1 {Tags:["temp"],life:1195s}
execute if score @s start2 = 1 const run execute as @e[type=arrow,tag=temp,sort=nearest,limit=1] run function dos:turel/loop/fire/f13
teleport @s ~ ~ ~ ~-40 ~
function dos:turel/vrc/get_vec
function dos:turel/prc/rcd2/start
execute if score @s start3 = 1 const run summon arrow ^ ^1.6 ^1.1 {Tags:["temp"],life:1195s}
execute if score @s start3 = 1 const run execute as @e[type=arrow,tag=temp,sort=nearest,limit=1] run function dos:turel/loop/fire/f13
scoreboard players operation @s clip -= 1 const (уменьшение обоймы)
scoreboard players set @s turtimer 0
(сброс таймера перезарядки).
Заранее большое спасибо!!
#1 | 12 апреля 2021 - 18:42
#2 | 13 апреля 2021 - 13:46
#3 | 14 апреля 2021 - 08:42
Если я не тупой и не слепой, то ты не поворачиваешь сами стрелы. Там везде ^ ^1.6 ^1.1, без учёт смещения координат.
Мои сборки:
MystMag (1.12.2)
ReachForTheStars (1.12.2)
TechGears (1.16.5)
#4 | 14 апреля 2021 - 12:36
А причём тут стрелы? Заданием моушена стрелам занимаются функции fire, а в этой функции они лишь спавнятся. ^ ^1.6 ^1.1 - это лишь настройка высоты и дальности спавна, чтобы стенд не мешал полёту стрелы.
Как только доберусь домой, прикреплю визуализацию проблемы, я, вероятно, непонятно описал, скидав всё, как обычно, в одно предложение.
#5 | 14 апреля 2021 - 13:17
[Визуализация проблемы]
Все три positioned рейкаста отображают луч в одной линии, при повороте между ними.
Ещё раз протестировал на последовательность - всё в порядке с задержками. Вот только стрелы летят криво, как будто стенд сначала разворачивает на 20 градусов, потом прямо, а затем на -40. Но я отключил слежку турели за мобом. И она начала каждую итерацию смещать взгляд на те сраные -40 градусов, вообще игнорируя первое смещение, хоть туда 40 (должна стоять на месте), хоть 100 градусов введи. Самый прикол в том, что если появляется моб, то стрелы летят по всем трём траекториям, учитывая значения всех поворотов. И снова какая-то непонятная дичь, учитывая предыдущий свой "опыт", самое время просто удалить функцию и написать заново.
#6 | 14 апреля 2021 - 14:42
А что тебе надо-то? Я прост не впираю что ты хочешь сделать.
Мои сборки:
MystMag (1.12.2)
ReachForTheStars (1.12.2)
TechGears (1.16.5)
#7 | 14 апреля 2021 - 18:07
Турель-дробовик с горизонтальным разбросом (перед каждым следующим выстрелом турель-дробовик поворачивается на некоторый градус). Но чтобы он не стрелял в кого не надо, по пути каждой стрелы нужно пройтись positioned-рейкастом, который решает, спавнить её, либо не спавнить. Проще говоря - есть на пути моб - спавним стрелу, нету моба - не спавним. Есть моб, но рядом игрок - не спавним.
#8 | 15 апреля 2021 - 03:20
И что работает не так, как запланировано и что конкретно не так?
Мои сборки:
MystMag (1.12.2)
ReachForTheStars (1.12.2)
TechGears (1.16.5)
#9 | 15 апреля 2021 - 10:33
описано же подробно в самом первом сообщении
#10 | 15 апреля 2021 - 10:40
После черт знает какого перечитывания понял. Ты разбрасываешь(телепортируешь) стрелу в любом случае - тебе нужно поставить условие телепорта. Тип не просто телепорт, а execute if score... teleport.
Мои сборки:
MystMag (1.12.2)
ReachForTheStars (1.12.2)
TechGears (1.16.5)
#11 | 15 апреля 2021 - 14:43
Наверное под "стрелой" имеется в виду стенд (турель). (Функция запускается относительно этого стенда, и имеет свой отдельный "запускатор", который при отсутсвии поблизости мобов эту функцию вообще запускать не будет)
А как я проверю, есть в том направлении цель (моб), если я турель не буду поворачивать?
Однако, спасибо за идею, я попробую сопоставить ротейшен стенда и positioned смещение для каждого рейкаста, чтобы они даже без поворота проверяли условия в нужных направлениях. Костыли, но что поделать.
#12 | 15 апреля 2021 - 16:28
Оно работает! Но есть проблемы с взаимодействием facing'а и rotation'а. В дробной части ротейшена после изменения взгляда какой-то хаос, хоть генератор рандомных чисел делай. От поворота самого стенда откажусь, сделаю сразу отдельные функции и для получения вектора, с вычетом градуса внутри их самих. Но так и не понял, почему первоначальный вариант не работает.
#13 | 15 апреля 2021 - 17:45
Ты после проверки на то, где сущность, поворачивал стенд в любом случае, даже если сущность была в том же месте. Условие помогло сделать так, что если сущность в том же месте, ты не поворачиваешь стенд. Вот как-то так.
Мои сборки:
MystMag (1.12.2)
ReachForTheStars (1.12.2)
TechGears (1.16.5)
#14 | 16 апреля 2021 - 02:14
Все равно не понял. Стенд то в любом случае поворачивается. А если там есть сущность - то происходит выстрел, нет - не происходит.
По сути, весь код имеет вид:
Рассчитать вектор
Проверить цель
Если цель обнаружена: выстрел
Поворот
Рассчитать вектор
Проверить цель
Если цель обнаружена: выстрел
Поворот
Рассчитать вектор
Проверить цель
Если цель обнаружена: выстрел
Уменьшение обоймы
Сброс таймера перезарядки
Если на смещение ротейшена поставить условие нахождения сущности, то наоборот, если будет только один моб и стенд обнаружит его, то второе условие ротейшена выполнено не будет и он по идее прочекает сущностей только в двух направлениях, и во втором - два раза. Если поставить условие ненахождения - то это уже будет не дробовик, он будет стрелять одной стрелой. Но я попробую ещё поэкспериментировать с этим.
#15 | 16 апреля 2021 - 03:55
Статистика форума
Сейчас онлайн: 5
- Создано тем
- 13951
- Написано сообщений
- 846158
- Пользователей
- 374201
- Новый участник
- Darrrk_Kkking
Администраторы | Главные редакторы | Модератор | Дедушки | Журналисты | HENTAI BOY | Goldфаги | Журналисты-олдфаги | ТруЪ Олдфаги-с | ТруЪ Плагинщик | Олдфаги | true Художник | Модератор бездны | Картоделы | XXXL ПХЛ | Просто хорошие люди | Посетители | Новички
Последние сообщения с форума
Название темы | Автор | Статистика | Последнее сообщение |
---|---|---|---|
Как зделать такой модифецирований ричаг? Тема в разделе: Ваши вопросы по Minecraft |
Akkal76575464 | Просмотров: 857 Ответов: 8 |
Автор: MinerBman |
Видео/Стримы канал Ritterydam Тема в разделе: Флудильня |
ritterydam | Просмотров: 114779 Ответов: 545 |
Автор: ritterydam |
Нужны идеи для создания карты Тема в разделе: Собственные карты, модерация |
Demonas | Просмотров: 11989 Ответов: 37 |
Автор: Mono Shiki |
Прикольные ачивки Тема в разделе: Форумные игры |
cat1967 | Просмотров: 2457 Ответов: 16 |
Автор: Prikalel |
игра "я бы добавил в майнкрафт" Тема в разделе: Форумные игры |
IponeMaster | Просмотров: 2487 Ответов: 16 |
Автор: Prikalel |