Тутор по добавлению карт в SLRR для 221 mwm и 230 LE
Оглавление:
Глава 1 №1.1.Введение. №1.2.Необходимый софт.
Глава 2 Выдергиваем модели из игр с помощью: №2.1. 3D Ripper DX. №2.2. 3DsimED. №2.3. NFS shift tools.
Глава 3 №3.1.Подготовка модели трека в 3d max 5. №3.2.Экспорт модели и конверт в игру с помощью Track Wizard для (для 221 mwm).
Глава 4 №4.1.Ява. №4.2.Добавляем и удаляем ботов через яву. №4.3.Рисуем сплайн для бота. №4.4.Делаем собственных ботов. №4.5.Добавляем воду. №4.6.Настройка материалов для дорожных покрытий.
Глава 5 №5.1.Конверт в 230 LE.
Глава 6 №6.1.Заключение.
№1.1.Введение.
В этом туторе я вам буду рассказывать как добавляется карта в игру для 221 мвм и для 230 ле версии, как вытаскивать модели с других игр, как добавлять своих ботов, рисовать для них траекторию, расскажу немного о яве и всяких других мелочей. Постараюсь рассказать это все более подробно. Если что с первого раза не получилось, НЕ стоит сразу на этом останавливаться! Старайтесь разобраться и найти ошибку. Если что то не так описано или не так названо...я пишу на своем языке и не стоит на это обращать внимание! Надеюсь что этот тутор будет для вас полезен =) Хочу поблагодарить таких замечательных людей, какRAXAT, drifter, SnakeR, Antony666за помощь в обучении различных методов, хитростей и тонкостей в освоении моддинга SLRR данного раздела!!!
№1.2.Необходимый софт.
среда моделирования: 3d max 5 ZModeler v1.07a
плагины и скрипты: 3DS Max 5 SCX Export plugin 1.0b SCX Import plugin for ZModeler v1.07a 1.0 SPL export script
программы и инструменты для конверта: Track Wizard resconvert
Вспомогательные программы: 3DsimED 3D Ripper DX NFS shift tools
все это можно скачать здесь ! сам 3d max 5 можно скачать здесь перезалит скрипт экспорта сплайна! СКАЧАТЬ
Выдергиваем модели из игр с помощью: №2.1.3D Ripper DX.
С помощью этой программы я выдергивал все дрифт треки с NFSU которые вы наверное видели в качестве мода. Не буду описывать что к чему, потому что на форуме уже есть эта тема. можно посмотреть этот тутор Если кому интересно, вот еще хороший тутор
№2.2. 3DsimED.
Очень мощная и удобная программа для выдергивания моделей с таких игр как: NFS shift, Dirt, Dirt 2, Race 07, GTR Evolution, STCC The Game, GTR2, rFactor, GTL, GTR, Papyrus Nascar 2003 & Grand Prix Legends (GPL), Formula 1 2002 (F1 2002), Formula 1 Career Challenge (F1 CC), Nascar SimRacing, Race Driver Grid, TOCA Race Driver, Nascar Heat, Viper Racing
Как пользоваться: 1.Устанавливаем 3DsimED (самая новая версия это 2.11,но для стабильности я использую 2.6). Программа находится в архиве с софтом. 2.Покажу как это делается на примере игры GRID. Запускаем прогу. 3.Нажимаем File >>> Import
4.Выбираем нужный формат ( 1 ) в нашем случае это: GRID tracks >>> ( 2 ) ищем где располагается файл с моделью трека >>> ( 3 ) выбираем "objects.pssg" >>> ( 4 ) открыть
5. ( 1 ) route_0 - это событие на треке, т.е. в игре будет несколько маршрутов. выбираем нужный(если не подходит, идем назад, выбираем другую папку route_1 и т.д.) >>> ( 2 ) выбираем ornaments.bin >>> ( 3 ) открыть
6. ( 1 ) Export >>> ( 2 ) 3ds >>> сохраняем, нажимаем ок (галочки не трогаем) >>> ( 3 ) экспортируем текстуры, сохраняем, галочки не трогаем
С другими играми все делается аналогично! Как импортировать и редактировать в 3dmaх читаем ниже...
№2.3.NFS shift tools.
Здесь процесс выдергивания моделей потяжелее.. 1.Открываем архив QuickBMS + NFS Shift.bms.zip и все содержимое копируем где установлена игра: .... \Need for Speed SHIFT\Pakfiles >>> вставляем 2.Запускаем quickbms.exe >>> открываем nfsshift.bms >>> дальше выбираем нужный вам трек в Need for Speed SHIFT\Pakfiles\Tracks >>> сохраняем в нужную папку. ждем... нажимаем любую клавишу
3.запускаем 3dsimed >>> File >>> Import >>> ( 1 ) выбираем нужный формат >>> ( 2 ) путь к модели >>> ( 3 ) выбираем, открываем
4.Теперь можно перегнать в 3dmax точно так же как делали раньше.
№3.1.Подготовка модели трека в 3d max 5. Что нужно знать: В модели трека не должно превышать 250 000-300 000 полигонов для экспорта в игру. это можно посмотреть в 3dmax нажав на File >>> Summary Info и в блоке Mesh Totals смотрим Faces - это и есть количество полигонов. Экспериментируйте! У меня получалось 450 000 полей экспортировать в игру.
Собственно как это делается: 1. Запускаем 3dmax 5 >>> file >>> import >>> выбираем 3ds,prj формат и выбираем файл, который экспортировали с помощью 3dsimed >>> жмем "ок" Примечание: Возможно при импорте модели могут появляться ошибки: 1.Если ошибка в виде окна с названием "Warning...", то мы ставим галочку на Dont show me this error again и жмем Retry; 2.Если ошибка "Improper file formats", то увы! попробуйте запустить эту модель через другой 3dmax свежей версии или через zmodeler. с такой ошибкой у меня так и не получилось импортировать модель в 3dmax ( Совет: после импорта модели в программу я всегда начинаю чистку трека от лишних объектов до тех пор,пока не наберу нужное количество полигонов (напоминаю, что в среднем не должно превышать 300 000 полигонов) удалять объекты очень просто: выбираем не нужный объект, кликаем и нажимаем на кнопку "delete"
2.далее нужно начать его текстурировать. самый эффективный и быстрый способ как это сделать: 2.1. нажимаем на англ-ю кнопку "M" (Material Editor) >>> ( 1 ) выбираем свободную ячейку >>> ( 2 ) кликаем на пипетку >>> ( 3 ) и с помощью этой пипетки нажимаем на объект, который мы хотим зетекстурировать (в моем случае это мост) >>> ( 4 ) видим, что для этого объекта задействованы 2 текстуры >>> ( 5 ) заходим в ambus125
2.2. выбираем Diffuse
2.3. в свитке Bitmap Parameters выбираем Bitmap: ambus244.dds /
дальше нужно выбрать нужную текстуру. как это удобней сделать? все просто: 2.3.1. запускаем 3dsimed с моделью этого трека. нажимаем правой кнопкой на этом объекте и выбираем в открывшимся окне "material ambush_....._main"
2.3.2. в открывшимся окне нажимаем на ( 1 ) >>> ( 2 ) и копируем полностью этот текст
2.4. возвращаемся в 3dmax и вставляем это название текстуры в окно и жмем "открыть" Примечание: перед этим не забудьте указать правильный путь к текстурам
2.5. далее нажимаем последовательно на ( 1 ) и ( 2 ). текстура должна наложится на объект. далее нажимаем дважды на стрелку назад ( 3 )
2.6. дальше нужно точно так же сделать с остальными текстурами. в моем случае следующая текстура идет с альфа каналом.(прозрачная) делается все очень просто: 2.6.1. сделайте тоже самое что и с 1й частью, но только в 3dsimed нужно нажать правой кнопкой на другой части этого же объекта, которую хотим затекстурировать ( 1 ) и копируем название текстуры и вставляем в 3dmax как это делали раньше.
2.6.2. дальше нажимаем один раз на стрелку назад и разворачиваем свиток ( 0 ) >>> нужно скопировать текстуру Diffuse Color ( 1 ) в opacity ( 2 ) перетаскиваем и в появившемся окошке нажимаем "ок" >>> далее в окошках ( 3 ) и ( 4 ) меняем значения на 45 - это прозрачность текстуры >>> нажимаем на ( 5 ) и ( 6 )
Примечание: на самом деле все что я рассказал, это делается за 3-5 мин и в скором времени у вас это доведется до автоматизма =)
2.7. дальше таким же образом текстурируем все объекты =) Удачи! 2.8. В моем случае для игры это очень маленькая модель трека и ее нужно увеличить. в 3dmax нажимаем на ctrl+A (выделение всех объектов) >>> ( 1 ) нажимаем на select and unifurm scale >>> ( 2 ) меняем значение на 10000. теперь модель трека подходит по размерам к игре.
№3.2.Экспорт модели трека и конверт в игру с помощью Track Wizard для (для 221 mwm).
1.кидаем содержимое архива Track Wizard в папку с игрой. запускаем 2.( 1 )New project - это создание нового проекта(новой карты). ( 2 ) Load project - загрузка проекта, который создавали ранее. >>> заходим в ( 1 )
3. в области ( 1 ) вводится имя трека, а в области ( 2 ) имя рпк трека(здесь не должно быть пробелов, вместо него ставиться такой символ "_" без ковычек) >>> ( 3 ) create - создать. в Street Legal Racing Redline\maps\Addon_Maps\Track_name создается наш проект.
4.теперь нужно экспортировать модель трека в 3dmax 5 с помощью плагина(3dmax_export_plugin),который находится в архиве с софтом. кидаем его в 3dsmax5\plugins >>> в 3dmax - File >>> Export 5. в окне Select File to Export выбираем нам нужный формат ( 1 ) >>> ведем путь к нашему проекту,а точнее к меши трека >>> выбираем Ground.scx ( 3 ) >>> сохраняем ( 4 ) Примечание: Для экспорта карт советую пользоваться только V3 плагином!
возвращаемся в Track Wizard. ( 1 ) - это редактирование явы ( 2 ) - при экспорте модели трека создается текстовый файл со всеми текстурами, которые задействованы в модели и нужно будет с помощью этого метода выбрать этот файл. ( 3 ) - редактирование рбд трека. ( 4 ) и ( 5 ) - редакторы и правка для текстур. ( 6 ) - выполняется в конце, когда уже все собрано. ( 7 ) - вход в игру
6. заходим в Edit Java. здесь можно отредактировать название трека ( 1 ), описание трека ( 2 ), автора мода ( 3 ),в зоне ( 4 ) редактируются координаты положения авто на треке, ( 5 ) здесь откроется сама ява трека,о которой я расскажу позже.
7. заходим в Assign textures from *.tex и выбираем текстовый файл. все текстуры трека должны быть сохранены в папке Textures, которая находится в папке с треком. 8. после того как все настроили нажимаем на Compile RPK. далее пойдет конверт проекта карты в игру (если при конверте появятся какие то ошибки, значит вы сделали что то не правильно или превысили количество полигонов) Совет: в папке с игрой не должно быть ни каких resconvert и не resdecode!!! удалите если есть! все это вшито в программе трек визард. иначе возникнут такие проблемы, как текстуры с альфа каналом не будут прозрачны в игре и на треке будет темно.
заходим в игру и пробуем прокатиться на новом треке =)
№4.1.Ява. В архив добавил яву с трека "london river" с 6ю режимами: 1.Free Arrival - свободный заезд 2.Big Race - гонка с 3 ботами 3.Time Attack - гонка на время 4.Drift Attack - дрифт на время 5.Drift 6.Drag
Примечание: Для работоспособности режима дрифт необходимо заменить файл Math.class в 221mwm\system\Scripts\lang этот файл можно найти в архиве - готовые аддоны\for 221mwm
Если хотите использовать ее, вам нужно скопировать все содержимое в свою яву трека и заменить в тексте: track_name на название рпк вашего трека.
Подробно описывать не буду что где есть. скажу только самое основное на примере режима Big Race: сама опция режима находится внизу явы:
if( CurrentMode == 2 ) - это порядковый номер режима RaceOption = 3 - это опция режима в которой описываются все методы и действия режима CurrentMode = 1; - эта строка указывает на следующий режим, в моем случае этот режим "Time Attack"
if ( RaceOption == 3 ) // Circuit Mode - Player and Opponents position { posStart = new Vector3(-249.999, -0.0, 348.464 ); oriStart = new Ypr( -0.350, 0.000, 0.000 );
raceBot1_posStart = new Vector3( -249.692, -0.0, 331.106 ); // First opponent start position raceBot1_oriStart = new Ypr( -0.350, 0.000, 0.000 ); // First opponent start rotation
raceBot2_posStart = new Vector3( -245.732, -0.0, 338.065 ); // First opponent start position raceBot2_oriStart = new Ypr( -0.350, 0.000, 0.000 ); // First opponent start rotation
raceBot3_posStart = new Vector3( -251.731, -0.0, 339.636 ); // First opponent start position raceBot3_oriStart = new Ypr( -0.350, 0.000, 0.000 ); // First opponent start rotation
}
В этой секции находится положение авто игрока и ботов. для определение координат я пользуюсь этой прогой. видеотутор прилагается SLRR_coordinates_and_tutorial_FIXED
Code
if ( RaceOption == 3 ) // Circuit Mode - Lap sectors and countdown { //track stuff LoopRound = new Round( this, null, null ); LoopRound.startdir( -0.00 ); LoopRound.point( -241.786, 1.545, 322.546, 12.0, frontend:0x0060r, frontend:0x0070r, new Pori(new Vector3(0.0, 2.0, 0.0), new Ypr(0.0, 0.0, 0.0)) ); // Start/Finish LoopRound.point( -463.655, 0.242, -451.024, 12.0, frontend:0x0060r, frontend:0x0070r, new Pori(new Vector3(0.0, 2.0, 0.0), new Ypr(0.0, 0.0, 0.0)) ); LoopRound.point( -653.232, 2.300, 459.612, 12.0, frontend:0x0060r, frontend:0x0070r, new Pori(new Vector3(0.0, 2.0, 0.0), new Ypr(0.0, 0.0, 0.0)) ); raceCountDown=3;
LoopRound.point - чекпоинты. можно добавлять и удалять. Вставляем свои координаты!
Code
//----Wake up A.I-bots if (raceBot1) if (raceBot1.car) raceBot1.car.queueEvent( null, GameType.EVENT_COMMAND, "start" ); if( raceBot1 ) raceBot1.followSplineTrack( 0.01, "maps\\Addon_Maps\\track_name\\RaceLine\\RaceLine.spl", player.car.id() ); // Opponent 1 starts racing using the .spl
здесь raceBot1 присвоена RaceLine.spl которую будем редактировать позже. на этом режим будет полностью готов для вашей карты. все остальные режимы редактируются аналогично.
№4.2.Добавляем или удаляем ботов через яву. показываю на примере режима Big race
//----Wake up A.I-bots if (raceBot1) if (raceBot1.car) raceBot1.car.queueEvent( null, GameType.EVENT_COMMAND, "start" ); if( raceBot1 ) raceBot1.followSplineTrack( 0.01, "maps\\Addon_Maps\\track_name\\RaceLine\\RaceLine.spl", player.car.id() ); // Opponent 1 starts racing using the .spl }
//----Wake up A.I-bots if (raceBot1) if (raceBot1.car) raceBot1.car.queueEvent( null, GameType.EVENT_COMMAND, "start" ); if( raceBot1 ) raceBot1.followSplineTrack( 0.01, "maps\\Addon_Maps\\track_name\\RaceLine\\RaceLine.spl", player.car.id() ); // Opponent 1 starts racing using the .spl
if (raceBot2) if (raceBot2.car) raceBot2.car.queueEvent( null, GameType.EVENT_COMMAND, "start" ); if( raceBot2 ) raceBot2.followSplineTrack( 0.01, "maps\\Addon_Maps\\track_name\\RaceLine\\RaceLine2.spl", player.car.id() ); // Opponent 2 starts racing using the .spl }
и с этого момента можете наблюдать на своей карте нового бота. те строки, которые мы искали и если их удалить, то получается что мы удалили этого бота. все делается очень просто, главное разобраться!
№4.3.Рисуем сплайн для бота.
В архиве с софтом лежит файл SPL2_export его кидаем в \3dsmax5\scripts запускаем модель карты в 3dmax 5 и начинаем рисовать траекторию для бота: 1. траектория рисуется с помощью линии. выбираем Create\Shapers\line
2.Переходим на вид сверху (Top) и рисуем 3.рисуется очень легко. попробуйте! как нарисовали нажимаем на этой линии правой кнопки мыши и выбираем Convert to\convert to editable spline
4.выбираем vertex ( 1 ) и начинаем редактировать сплайн. ( 2 ) - Refine - добавляет новые точки на линию
5. ( 1 ) - select and move - перемещение точки по всем осям. ( 2 ) - select and rotate - вращение. ( 3 ) - select and uniform scale - изменение размера, длинны, радиуса линии. добавляем новые точки (refine). И стараемся сделать траекторию ровной, как на рисунке. совет: старайтесь чтобы все точки лежали на дороге, иначе боты будут жестко тупить. правится все с помощью select and move
6.как только траектория готова,ее нужно экспортировать и сохранить. идем в ( 1 ),( 2 ),( 3 ) и открываем SPL_export.ms >>> нажимаем "да". теперь все эти координаты копируем, идем в папку с треком\receLine открываем нужный сплайн и вставляем свой. не забудьте сохранить перед выходом!
С этого момента бот будет ездить по заданным координатам
Видео:
№4.4.Делаем собственных ботов.
В архиве есть папка готовые аддоны\для mwm\save. добавьте ее в папку с игрой. Создаем свою машину в гараже на свой вкус. заходим в главное меню игры и жмем save car и заменяем на интересующую вам машину: bot1 = bot2 = bot3 = dragcar теперь на треке должна появится машина, которую вы создали сами.
Gerskii, Tariell, эти самые объекты нужно добавить в папку render и при этом использовать трек визард 2.0
Добавлено (2012-06-04, 12:24:42) --------------------------------------------- Видео туториал: сплайны для бота
Track_Name.java "AI_params 10.0 200.0" Для каждой машины соотношения этих цифр должны быть индивидуальны. Изменяет характеристики вождения. Если бот по прежнему ведет себя не адекватно на определенном участке, то добавьте еще несколько "точек" - Refine на этот участок. Больше экспериментируйте и добьетесь высоких результатов! Удачи!
B228AN, я не знаю есть ли такие программы или нет. поищи в интернете. если у тебя получится перетащить модель города в 3ds max, то дальше тебе понадобится этот туториал.
B228AN, неважно даже какими, ты в любом случае в конечном итоге попадёшь обратно в 3ds max Владелец сайта PROMODS.RU Администратор сайта streetlegalmods.com (GOM-TEAM) Разработчик Street Legal Racing: Redline v2.3.1 Skype: skype_raxat PayPal: eversoft@bk.ru E-mail: ceo@image-code.com
public class Track_name extends Track { final static String MapName = "Track_name"; final static String MapDescription = "xxxxx"; final static String MapAuthor = "xxxxxx"; final static ResourceRef MapImage = new ResourceRef(Maps.Addon_Maps.Track_name:0x0DC2r); // Image for track selector final static float TS_Version = 1.0; // Dont change it!
RenderRef Water; // Definition water render name
public DeadIslandTrack() { posStart = new Vector3( 30.0, 5.0, -30.0 ); // Start car position oriStart = new Ypr( 0.0, 0.0, 0.0 ); // Start car rotation
public void StartMap() { // Track selector run this void when you click "TAKE IT" GameLogic.changeActiveSection( new DeadIslandTrack() ); }
public void enter( GameState prev_state ) { Frontend.loadingScreen.show(); GfxEngine.flush();
Water = new RenderRef( map, Maps.Addon_Maps.Track_name:0x00000032r, null ); // Water mesh map.setWater(new Vector3(0.0,-8.4,-1500.0), new Vector3(0.0,1.0,0.0), 300.0, 50.0); // Water object and behavior
super.enter( prev_state ); }
public void exit( GameState next_state ) { Water.destroy(); // Delete water mesh when exit from track
super.exit( next_state ); } }
не забудьте указать ваш собственный путь к карте и указать координаты меши воды. теперь экспортируем только мешь воды в 3dmax 5 в папку track_name/Meshes/ и сохраняем как Water.scx далее собираем все в track wizard нажав на complite rpk.
примечание:
сам трек и вода должны быть экспортированы отдельно от друг друга.
№4.6.Настройка материалов для дорожных покрытий.(для 221mwm)
при конверте трека создается в папке Meshes файл Ground.SCM. заходим в него и видим все материалы, которые были созданы в 3dmax. К примеру будем настраивать материал для гравия или песка: заходим в 3dmax, вызываем material editor нажав на "М" выбираем пипетку ( 1 ) и нажимаем на объект, над которым будет экспериментировать. ( 2 ) - в этой области мы видим название материала и копируем его.
открываем Ground.SCM и ищем sand_019
Code
material 10 sand_019
чтобы отредактировать этот материал делаем как на этом примере:
экспериментируйте с настройками friction,rollres и collcoeff меняя значения. skid_SMcolor 0xFF737373 - это цвет дыма. настраивается цвет в фотошопе. см скрин:
так же делаем по аналогии с другими материалами.
№5.1.Конверт в 230 le. Чтобы конвертировать карту в 230 le нужно: 1.Slrr\maps удаляем папку test_track и файл test_track.rpk. в архиве есть папка Готовые аддоны\for 230LE\maps и копируем все содержимое в папку maps и кидаем яву в sl\Scripts\game\src (ява находится в архиве в папке ява "") 2.экспортируем карту через 3dmax 5 как делали раньше или можно перенести с другой карты Ground.scx в папку test_track\meshes и заменить 3.Кидаем в корень игры resconvert.exe и изрдб.bat (в архиве - софт\программы и инструменты для конверта\for 230LE) 4.если не хотите прописывать вручную текстуры, то вам нужно будет создать проект в track wizard и сделать полную карту, потому что нам понадобится рдб карты для более быстрого конверта в игру 5.теперь у нас есть рдб трека созданного через track wizard, открываем его и открываем рдб тест трека. с рдб TW копируем весь блок текстур и вставляем его в наш рдб тест трека
7.НЕ забываем скопировать текстуры в папку Textures 8.запускаем изрдб.bat и трек должен конвертироваться в игру. теперь в игре вместо тест трека будет ваш новый трек!
№6.1. Заключение. На первый взгляд вам покажется все это довольно непонятным и тяжелым, НО если посидеть над этим некоторое время и разобраться что где есть и как это делается, то в скором времени у вас будет все меньше и меньше вопросов и проблем! Спасибо за внимание!
Drift_My_Life, я сейчас делаю трек с 1 000 000 полигонами. игра выдерживает. провел тесты и понял, что игру нагружает не количество полигонов, а количество материалов созданных в 3д макс. не могу понять второе предложение... т.е. названия текстур не совпадают с исходным названием? если конвертировал с другой программы трек, то он имена сокращает. т.е. оригинал texture_name, а сократил textur0874. посмотри 3ю главу данного тутроиала.
GTR-X-ITE, а как настроить режим circuit, в яве что в архиве, там не все или я не нашел. Биг рейс сделать получилось. Но мне надо чтобы был только круг и тайм аттак. А как настроить незнаю. подскажи пожалуйста. зараннее спасибо.
Tariell, тогда тебе нужно создать два режима по аналогии( или взять и убрать из явы которая представлена для примера и удалить лишнее). в твоём случае будет final static int RaceOption = 0; final static int[/font] CurrentMode[size=11]=[/size] 0[size=11];[/size] [font=Times]... else if( CurrentMode == 1 ) { track_name.RaceOption = 1; opt1.changeLabelText( " Circuit " ); CurrentMode = 2; } else if( CurrentMode == 2 ) { track_name.RaceOption = 2; opt1.changeLabelText( "Time Attack" ); CurrentMode = 1; [font=Times][/font] а в RaceOption будешь описывать все действия для каждого режима !
P.S. мог ошибиться, не ругайте! Уважаю SLRR
Post edited by Razeil - Четверг, 2013-02-07, 23:56:08
//----Wake up A.I-bots if (raceBot1) if (raceBot1.car) raceBot1.car.queueEvent( null, GameType.EVENT_COMMAND, "start" ); if( raceBot1 ) raceBot1.followSplineTrack( 0.01, "maps\\Addon_Maps\\autumnring\\RaceLine.spl", player.car.id() ); // Opponent 1 starts racing using the .spl
if (raceBot2) if (raceBot2.car) raceBot2.car.queueEvent( null, GameType.EVENT_COMMAND, "start" ); if( raceBot2 ) raceBot2.followSplineTrack( 0.01, "maps\\Addon_Maps\\autumnring\\RaceLine.spl", player.car.id() ); // Opponent 2 starts racing using the .spl
if (raceBot3) if (raceBot3.car) raceBot3.car.queueEvent( null, GameType.EVENT_COMMAND, "start" ); if( raceBot3 ) raceBot39.followSplineTrack( 0.01, "maps\\Addon_Maps\\autumnring\\RaceLine.spl", player.car.id() ); // Opponent 3 starts racing using the .spl
} } } }
гонка грузится, ботов почему то нет. только моя машина и все, старта нет. сразу выкидывает. еррор лог говорит ошибка в строке 872, но там я непойму в чем ошибка: raceBot1.brain.command( "AI_BeginRace 0.5" );
Post edited by Tariell - Пятница, 2013-02-08, 20:13:20
[b]GTR-X-ITE, все спасибо с этим разобрался, но возникла другая проблема, насчет три, перед статром игра выкидывает. в прошлый раз эта проблема была у меня из за сплайна, но сейчас я прописал путь к нему. ероор чист.[/b]
Post edited by Tariell - Суббота, 2013-02-09, 00:30:51
Tariell, так точно. главное чтобы все было в if ( RaceOption == 6 ) {
}
как создаются боты смотри пункт 4.2.
Добавлено (2013-02-09, 00:34:45) --------------------------------------------- у тебя 3 бота появляются на треке? проверь еще раз путь и имена сплайнов для ботов.
//----Wake up A.I-bots if (raceBot1) if (raceBot1.car) raceBot1.car.queueEvent( null, GameType.EVENT_COMMAND, "start" ); if( raceBot1 ) raceBot1.followSplineTrack( 0.01, "maps\\Addon_Maps\\autumnring\\RaceLine.spl", player.car.id() ); // Opponent 1 starts racing using the .spl
if (raceBot2) if (raceBot2.car) raceBot2.car.queueEvent( null, GameType.EVENT_COMMAND, "start" ); if( raceBot2 ) raceBot2.followSplineTrack( 0.01, "maps\\Addon_Maps\\autumnring\\RaceLine.spl", player.car.id() ); // Opponent 2 starts racing using the .spl
if (raceBot3) if (raceBot3.car) raceBot3.car.queueEvent( null, GameType.EVENT_COMMAND, "start" ); if( raceBot3 ) raceBot3.followSplineTrack( 0.01, "maps\\Addon_Maps\\autumnring\\RaceLine.spl", player.car.id() ); // Opponent 3 starts racing using the .spl
if (raceBot4) if (raceBot4.car) raceBot4.car.queueEvent( null, GameType.EVENT_COMMAND, "start" ); if( raceBot4 ) raceBot4.followSplineTrack( 0.01, "maps\\Addon_Maps\\autumnring\\RaceLine.spl", player.car.id() ); // Opponent 3 starts racing using the .spl
if (raceBot5) if (raceBot5.car) raceBot5.car.queueEvent( null, GameType.EVENT_COMMAND, "start" ); if( raceBot5 ) raceBot5.followSplineTrack( 0.01, "maps\\Addon_Maps\\autumnring\\RaceLine.spl", player.car.id() ); // Opponent 3 starts racing using the .spl
} } } }
а второй вот такой:
Код
if ( RaceOption == 6 ) // Time Attack Mode - Lap sectors { //track stuff LoopRound = new Round( this, null, null ); LoopRound.startdir( -0.00 ); LoopRound.point( 134.165, 13.032, 223.59, 12.0, frontend:0x0060r, frontend:0x0070r, new Pori(new Vector3(0.0, 2.0, 0.0), new Ypr(0.0, 0.0, 0.0)) ); // Start/Finish LoopRound.point( -137.072, 14.083, 78.633, 12.0, frontend:0x0060r, frontend:0x0070r, new Pori(new Vector3(0.0, 2.0, 0.0), new Ypr(0.0, 0.0, 0.0)) ); LoopRound.point( 161.088, 18.367, 193.4, 12.0, frontend:0x0060r, frontend:0x0070r, new Pori(new Vector3(0.0, 2.0, 0.0), new Ypr(0.0, 0.0, 0.0)) ); raceCountDown=3;
GTR-X-ITE, Извиняюсь за свою тугость в плане явы, и спс за помощь. ну вот не выходит уменя ничего... Можно попросить пример рабочего режима круга? А то я совсем запутался, ничего не выходит, пытался почистить яву и оставить 1 режим, то вылетает, то просто ничего нет. зараннее спасибо.
Вероятнее всего этот вопрос уже задавали не один раз, но тем не менее кто мне подскажет как прописать таймер на трассу без чикпоинтов, точка старта она же точка финиша, вот как то так) Всем спасибо!) www.slrr-nt.ru www.modmakers.ru
Post edited by vado2818 - Понедельник, 2013-02-18, 18:49:34
vado2818, таймер должен включиться когда машина начнет движение. вроде бы ни чего не пропустил.
Код
public class Track_name extends Track { Trigger[] checkPoint; float startTime = 0; int displayTimer; float timerStarted = 0.0f; Text time; int currentLap = 0; int endLap = 1; // количество кругов
public Track_name () { checkPoint = new Trigger[1]; checkPoint[0] = new Trigger( map, null, new Vector3( 204.4, -8.73, 73.01), 20, 20, 1, "Start" ); addNotification( checkPoint[0].trigger, EVENT_TRIGGER_ON, EVENT_SAME, null, "line_Start" ); }
public void enter( GameState prev_state ) { super.enter( prev_state ); time = osd.createText( "", Frontend.smallFont, Text.ALIGN_LEFT, 0.6, -0.80); }
public void startTimer() { timerStarted=System.simTime(); displayTimer = 1; }
public void pauseTimer() { displayTimer = 0; } }
Добавлено (2013-02-18, 19:46:02) --------------------------------------------- Tariell, посмотри на примере выше. создается триггер. при его активации считается переменная currentLap. она и есть круги.
У меня возникла проблема с конвертом в игру. Кто встречался с этим подскажите что делать! Вот скрин:
в левой части скрина, конверт прошёл, а в правой, после добавления части сцены, вылетает ошибка, примерный перевод которой-"слишком много узлов в пакете". Есть предположение, что это происходит из-за текстур, их слишком много.
vado2818, сталкивался с такой проблемой. правда уже забыл в следствии чего она всплывает. 1) просмотреть наименование текстур. только латинские буквы. допускается цифры и _ 2) возможно превышено количество полигонов для одного рпк.
для второго пункта оставь одну сцену "Ground4" если конвертируется, то добавляй следующие части. на которой сцене всплывает ошибка на то и проверь наименование текстур в файле txt.
сколько полигонов на карте? желательно иметь не более 300 000 для одного рпк. я так и не понял какое количество полигонов выдерживает игра. нет строгого значения. у меня получалось добавлять и 400 000, а бывало и 300 000 добавлять не хотел.
если все таки проблемы с количеством, то попробуй создать часть карты как отдельный объект. пример как на карте shibuya.
GTR-X-ITE, cпасибо что быстро откликнулся!) Теперь по порядку) Что касаеться первого пункта, то я текстуры не переименовывал, их как выдернул 3DRipperDX, они так и зовуться. По поводу второго пункта, я что то тебя несовсем понял, у меня изначально один рпк, и потом ты говоришь про Ground4.scx, почему именно он? Общее кол-во полигонов: 1085266 P.S: пока ничего проверить не успел!, но думаю сегодня) www.slrr-nt.ru www.modmakers.ru
Post edited by vado2818 - Четверг, 2013-03-21, 17:24:51