Создание гоночной миссии с нуля
Создание гоночной миссии с нуля
Обсуждение http://gtamaps.net/forum/index.php?showtopic=7795
Nikitos: Это скрипт-заготовка, позволяющий стряпать гоночные миссии как пирожки. Все что от вас требуется изменить некоторые цифры и... ВСЁ! Ваша миссия готова! А вот какие цифры - давайте разбираться. В тексте миссии идут мои коментарии, ниже смотрите подробные пояснения к ним. Так что думаю даже новичек в скриптинге, который умеет хотя бы устанавливать миссии и пользоваться прогой определения координат сможет смастерить свою миссию.
var //БЛОК 2
$checkmd : integer = 0 // режим проверок (1-вкл., 0-выкл.)
$money : integer = 12000 //вознаграждение игрока
$traff : float = 0.0 //траффик(плотность)
$a : integer = 14 // количество машин
$ak : integer = 6// номер машины игрока в массиве
$b : integer = 13 //количество чекпоинтов
end //КОНЕЦ БЛОКА 2
var
//этот блок нетрогаем
$nar : integer
$tar : integer
6@ : integer
$nomaney : integer = 0 //а эти деньги игрок уже не поличит
$time : float = 0.0 //ВРЕМЯ
$dist : float // дистанция между машиной и чекпоинтом
$dist2 : float // вспомогательная дистанция
$mode : integer = 0 // режим (водитель-пассажир)
$pos : integer = 1 //позиция в гонке
$pos2 : integer = 1 //позиция в гонке
//БЛОК 3
$stage : array 18 of integer // этап в гонке для каждой машины
$car : array 18 of car // машины
$model : array 18 of integer // модели машин
$act : array 18 of actor // актеры в машинах (не в машине игрока)
$mark : array 18 of marker //маркеры над машинами (кроме машины игрока)
$carx : array 18 of float // все х-координаты старта
$cary : array 18 of float // все y-координаты старта
$carz : array 18 of float // все z-координаты старта
$angle : array 18 of float // все углы машин на старте
//БЛОК 4
$pointx : array 21 of float // все х-координаты чекпоинта
$pointy : array 21 of float // все у-координаты чекпоинта
$pointz : array 21 of float // все z-координаты чекпоинта
$speed : array 21 of float // все значения скорости машин при езде на чекпоинт
$type : array 21 of integer // тип езды
end // var
for $par = 1 to $a
$stage[$par] = 1 // для каждой машины начальный этап равен 1
end
//БЛОК 5
//далее координаты чекпоинтов, скорость и тип езды для машин соперников
$pointx[$a1] = -2689.4043
$pointy[$a1] = 1389.8258
$pointz[$a1] = 55.0323
$speed[$a1] = 100.0
$type[$a1] = 3
1.В СТАРТЕРЕ меняйте координаты, в которых будет маркер для старта гонки и номер миссии
2.БЛОК 1. Кол-во переменных здесь должно быть неменьше кол-ва чекпоинтов или машин в гонке. Если больше и это вам не мешает, можете оставить как есть. В противном случае допишите по аналогии переменные в этот блок. В последних версиях SB имеется поддержка констант в качестве индекса массива, поэтому здесь можно было упростить скрипт, но пусть все будет как есть.
3.БЛОК 2: $checkmd. При $checkmd = 1 все машины, попавшие в беду(Перевернулись, тонут и т.д.) востанавливаются на дороге. В противном случае выбывают из гонки. Кстати, все машины бронированные, в лейбле :RACING_111 это обстаятельство отмечено (уберите если ненадо).
$money - приз игрока за победу
$traff - плотность траффика в игре(от нуля до одного)
$a - всего участников в гонке (вместе с машиной игрока)
$ak - для бысрой смены машины игрока. Напр: $ak = 6 и $a = 14 значит что машина №6 из 14
$b - сами разберетесь?
4.БЛОК 3 array XX of Y. XX везде должен быть больше кол-ва машин, но никак не меньше
5.БЛОК 4 тоже самое с чекпоинтами.
6.БЛОК 5. Этот блок и определяет маршрут трассы. Вооружитесь терпением и хорошим средством передвижения а также прогой для измерения координат для того чтобы проехать по нужному вам маршруту и определить где будет находиться каждый чекпоинт. Так наппример $pointx[$a1] - координата X первого чекпоинта (помните в блоке 1 мы определяли эти номера?). С Y и Z аналогично.
$speed скорость езды компьютерных соперников к чекпоинту. $speed = 100 не значит 100 км/ч, а значит гораздо больше. На скоростных участках 100 сполна хватает. $type - тип езды(3-по особым путям, срезая углы на поворотах, 1-по обычным путям). После внесения всех изменений и посмотрев как безмозглые противники проходят трассу, желательно подкорректировать значения этого блока чтобы они грамотнее проходили трассу. Иначе невидать вам достойных конкурентов. Более подробно можете почитать в моей статье о гонках, что лежит на миссионсе.
7.БЛОК 6. Позиции на старте и углы для каждой машины. Опять таки, если у вас машин больше добавьте аналогично, меньше - можете удалить лишнее.
8.БЛОК 7 Модели каждой машины...
Если вы все сделали правильно, то должно работать. Кстати, по умолчанию скрипт запускает гоночную миссию, опубликованную мной в соседнем топике, что развеивает сомнения некоторых товарищей в том, что делал я это с нуля. Конечно, ваша гонка будет в чем-то похожа на мою, но с другой стороны все гонки похожи:)
Описание фич:
1.Вывод на экран текущей позиции игрока.
2.Отображение времени продолжительности гонки.
3.Естественно, гоночные чекпоинты с направляющей стрелкой, благодаря которым вы будете знать, куда ехать дальше.
4.15000$ на финише за первое место, а также «уточнение» вашего времени
5.Вы вовсе не обязаны водить свою машину самостоятельно!!! В машине присутствует второй водитель (вы должны узнать этого персонажа), который при нажатии клавиши “submission”(подмиссия) продолжит гонку за вас!!! Его услуги не бесплатны. За каждую секунду его вождения из вашего приза будет вычитаться 100$. Таким образом, если он пробудет за рулем больше 150 секунд, то вы ничего не получите (но и не потеряете). Чтобы сесть обратно на место водилы, нажмите кнопку подмиссии еще раз.
6.Сильные соперники (хотя, для кого как)
7.Высокие скорости
8.Бронированные машины!
9.Все по честному! Если ваш соперник перевернулся и загорелся, он выбывает из гонки.
10.Гонка от северного конца моста Гант до местечка на юге Чилиада.
11.Отсутствие посторонних машин
12.Облеты камеры на старте
13.Возможность проходить миссию сколько угодно раз
14.Для прекращения гонки нажмите «exit car»(выход из машины)
15.14!!! Соперников!
Не попадите в завал на старте!
А теперь, дамы и господа, прошу всех кто это видел поставить мне респектиков, т.к на создание данной заготовки у меня ушло уйма времени! Если есть вопросы - задавайте, не стесняйтесь! Katya: Сюда пройдемте :)
1034 Прочтений • [Создание гоночной миссии с нуля] [13.05.2012] [Комментариев: 0]