Дрифт-система почти как на МТА-дрифт-серверах!
Сначала идёт сухой гайд для тех кто не хочет разбираться в работе системы, а в конце уже объясню подробно как и что работает. Погнали!
Всего используется 4 массива игрока и таймер 500мс активация все игроки.
кб 1:
Действие 1: Установить значение массива: 3 (#fa#-#array(1)#)
Действие 2: Установить значение массива: 1 #fa#
Действие 5: Вызвать блок 3
кб 1 - настройка условий
#fa# меньше или равно 180
скорость больше 25
Иначе: Вызвать блок 2
кб 2:
Действие 1: Установить значение массива: 1 (360-#fa#)
Действие 2: Установить значение массива: 3 (#array(1)#-#array(2)#)
Действие 3: Установить значение массива: 2 #array(1)#
Действие 5: Вызвать блок 3
кб 2 - настройка условий
скорость больше 25
Иначе: Вызвать блок 5
кб 3:
Действие 1: Установить значение массива: 3 (#array(3)# * -1)
Действие 2: Вызвать блок 4
кб 3 - настройка условий
массив игрока 3 меньше 0
Иначе: Вызвать блок 4
кб 4:
Действие 1: Добавить значение массива: 4 #array(3)#
Действие 2: Игровой текст: 5000 6 ~w~+#array(3)# - ~g~#array(4)#
Действие 3: Установить значение массива: 3 0
кб 4 - настройка условий
Массив игрока 3 больше 0
Скорость больше 40
кб 5:
Действие 1: Выдать деньги #array(4)#
Действие 2: Игровой текст: 4000 6 ~g~+#array(4)#$
Действие 3: Установить значение массива: 3 0
Действие 4: Установить значение массива: 4 0
кб 5 - настройка условий
Массив игрока 4 не равно 0
Мой Игровой текст выглядит вот так. Вы можете поменять его на какой вам угодно.
Это всё! А теперь я постараюсь объяснить как работает всё это дело.
Дрифт-очки которые мы получаем - это разница между нашим углом поворота (#fa#) сейчас, и пол-секунды назад.
Вот вам картинка для наглядности в сопоставлении с радаром:
0 градусов - север
90 градусов - запад
180 градусов - юг
270 градусов - восток
Пример: мы едем ровно на запад, наш поворот #fa# равен 90. Мы резко выворачиваем руль вправо, и вот теперь у нас угол поворота #fa# равен 30. А теперь отнимаем старый #fa# от нового #fa#: 90 - 30 = 60
60 очков зачисляем игроку в виде денег. Это база, опора нашей системы.
Если посмотрите на кб 1, то увидите тоже самое:
Чтобы сделать отпечаток старого #fa#, мы его записываем в Массив Игрока 1, а затем от настоящего #fa# отнимаем массив 1. Результат мы записываем в Массив Игрока 3, это будет наша переменная для подсчёта очков за единицу времени.
А теперь представим ситуацию, что наш угол был 30, мы повернули налево, и теперь наш угол равняется 120!
Теперь наши очки будут равнятся: 30 - 120 = -90
Отрицательное число! Но и это можно исправить.
Я это исправил в кб 3: если наш Массив Игрока 3 будет равен отрицательному значению, мы просто умножим его на -1, и получим положительное число!
А вот ещё ситуация: Мы ехали на северо-восток и угол был 315. Тут мы поворачиваем налево, и наш угол становится 45.
Вычисляем: 315 - 45 = 270
Вот это плохо. За небольшой манёвр, мы получаем сразу 270 очков! Это потому что круг… круглый! Но мы всё равно можем это исправить. Сначала взглянем на кб 1 - настройку условий, второе действие:
Если #fa# больше 180, тогда вызовется блок 2.
В блоке 2 я в Массив Игрока 1, записываю значение 360 - #fa#
. Это позволит нам превратить сферу из 360 градусов в 180 градусов.
В блоке 2, Массив игрока 2 выполняет ту же самую функцию, что и Массив игрока 1 выполняет в блоке 1, то есть делает отпечаток старого #fa# чтобы затем сравнить его с новым.
Теперь очки корректно записываются в Массив Игрока 3, но не выдаются. Надо бы их выдать! Я это сделал в виде денег.
Смотрим кб 4:
Массив игрока 4 выступает в качестве сумматора денег. Когда дрифт закончится - он выдаст нам всю накопленную сумму. Если вы играли в МТА-дрифт, это покажется вам знакомым.
После того как добавили в Массив Игрока 4 #array(3)#, последний необходимо обнулить.
Смотри настройку условий кб 4:
Первое действие необходимо чтобы игровой текст не высплывал, если мы не набрали очки. Например если мы едем по прямой и не дрифтим.
Хорошо, деньги накапливаются в Массив Игрока 4. Он должен выдать нам деньги в тот момент, когда мы закончим дрифт.
Как же понять что дрифт закончился? На самом деле вариантов несколько, но на тренинге самый простой в реализации - это сделать проверки на скорость.
Я до сих пор не упомянул про скорость в настройках условий блоков 1, 2, 4. Самое время объяснить как это работает:
В настройках условий кб 1 и 2, мы ставим предельное значение, необходимое чтобы дрифт не сбрасывался. В моём случае это Скорость больше 25
. Значение взято после нескольких тестов, вы можете сами донастроить до нужной вам величины.
В настройках условий кб 4, мы ставим значение от которого будет считаться дрифт. Получается следующее:
Скорость:
0-25
- дрифт сбрасывается
25-40
- дрифт поддерживается
40 и больше
- дрифт очки капают
Теперь вернёмся к кб 1-2 настройка условий: Если скорость ниже 25, тогда вызывается кб 5.
Смотрим кб 5 настройку условий: если у нас в Массив Игрока 4 накапало хоть сколько-нибудь очков, тогда кб 5 сработает.
Смотрим кб 5: Здесь выдаём деньги, которые накопились в Массиве Игрока 4, вызываем игровой текст с информацией, а также не забываем обнулять 3 и 4 массив игрока.
Теперь привязываем таймер 500мс с активацией все игроки на кб 1.
Ура! Теперь у вас есть дрифт, не хуже чем в МТА!!
Буду рад если вы используете эту систему в своём мире!
Для тех кто хочет челленджа
Можно улучшить систему, чтоб прям ваще кайф был:
Когда ты дрифтишь - тебе капает множитель очков. Чем больше ты в дрифте - тем больше множитель!