Пути поездов - Страница 3 - Форум
Суббота, 10.12.2016, 13:47
Качественные скрипты, моды и дополнения для GTA без регистрации
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 3 из 5«12345»
Форум » Игры серии ГТА » Различные вопросы о ГТА » Пути поездов
Пути поездов
DK22PacДата: Вторник, 27.03.2012, 20:15 | Сообщение # 31
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Что-то я ничего не понимаю... Массив точек остановок общий для всех tracks-файлов...
 
Den_spbДата: Вторник, 27.03.2012, 20:29 | Сообщение # 32
Создатель сайта
Группа: Администраторы
Сообщений: 1536
Статус: Offline
Возможно, вопрос остановок я не разбирал. Единственное что могу сказать - остановки работают только для поезда, движущегося по tracks. Для трамвая (поезд tracks3) указание остановок ничего не даёт.
 
DK22PacДата: Вторник, 27.03.2012, 20:37 | Сообщение # 33
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Понятно. А может такое быть, что кроме позиции, игра получает какую-то дополнительную информацию на основе точек из tracks.dat? Мне показалось, что там ещё что-тоесть крое XYZ (возможно, угол или скорость движения?)
 
Den_spbДата: Вторник, 27.03.2012, 20:50 | Сообщение # 34
Создатель сайта
Группа: Администраторы
Сообщений: 1536
Статус: Offline
Как я уже писал, структура точки tracks имеет размер 10 байтов: 6 из них - координаты, ещё 2 - длина маршрута от первой точки до текущей. Последние 2 байта детально не смотрел, может быть флаги.
 
DK22PacДата: Среда, 28.03.2012, 03:27 | Сообщение # 35
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
0x8D48F8 RwV3D[6] Точки остановок поезда
0xC38034 float[6] Дистанция между этими точками?
0x6F6BD0 TrackLine GetTrainNodeNearPoint(X, Y, Z, ptrackID)
Code
int __cdecl GetTrainNodeNearPoint(float fX, float fY, float fZ, int pTrackIDresult)
{
   int trackLineResult; // edi@1
   signed int trackID; // esi@1
   int zero; // ST14_4@1
   int trackLine; // ecx@2
   int pPoint; // edx@3
   int pStartPointsData; // eax@4
   long double distance; // fst5@4
   signed int point.x; // ebp@4
   int pPointData; // eax@4
   float point.z; // ST2C_4@4
   float subX; // ST18_4@4
   long double subY; // fst7@4
   float resultDistance; // [sp+10h] [bp-20h]@1

   trackLineResult = zero;
   LODWORD(resultDistance) = 0x47C34FF3u;        // 99999.898
   trackID = 0;
   do
   {
     trackLine = 0;
     if ( tracksDatLineCount[trackID] > 0 )
     {
       pPoint = 0;
       do
       {
         pStartPointsData = tracksDatContents[trackID];
         point.x = *(pStartPointsData + pPoint);
         pPointData = pPoint + pStartPointsData;
         point.z = *(pPointData + 4) * 0.125;
         subX = fX - point.x * 0.125;
         subY = fY - *(pPointData + 2) * 0.125;
         distance = sqrt((fZ - point.z) * (fZ - point.z) + subY * subY + subX * subX);
         if ( distance < resultDistance )
         {
           resultDistance = distance;
           trackLineResult = trackLine;
           *pTrackIDresult = trackID;
         }
         ++trackLine;
         pPoint += 10;
       }
       while ( trackLine < tracksDatLineCount[trackID] );
     }
     ++trackID;
   }
   while ( trackID < 4 );
   return trackLineResult;
}
 
laggthДата: Среда, 28.03.2012, 16:50 | Сообщение # 36
Группа: Пользователи
Сообщений: 43
Статус: Offline
Как бы увеличить до |><| количество точек пути в тракс файле,потому что на путях свыше 600 точек начинаются глюки - транспорт складывается матрёшкой почему то. Если псмотреть в максе то там путь замкнут с одной жёлтой точкой- что бы она значила...,но там складывается составчик.

Сообщение отредактировал laggth - Среда, 28.03.2012, 18:50
 
Den_spbДата: Среда, 28.03.2012, 17:33 | Сообщение # 37
Создатель сайта
Группа: Администраторы
Сообщений: 1536
Статус: Offline
Quote (DK22Pac)
0x8D48F8 RwV3D[6] Точки остановок поезда
Спасибо за информацию.

Quote (laggth)
потому что на путях свыше 600 точек начинаются глюки
У тебя в каждом файле больше 600 точек? Просто по-моему на все 4 файла выделяется один блок памяти, поэтому важно общее количество точек во всех файлах.

Quote (laggth)
Если псмотреть в максе то там путь замкнут с одной жёлтой точкой- что бы она значила...,но там складывается составчик.
Не понял, что за жёлтая точка - хорошо бы увидеть скрин. Состав может складываться и в тех местах, где две рядом стоящие точки перепутаны местами - проверь это.
 
laggthДата: Среда, 28.03.2012, 18:14 | Сообщение # 38
Группа: Пользователи
Сообщений: 43
Статус: Offline
Неперепутаны.
308,926,664,241.
spsb4.
Но сколько максимальное количество точек для всех тракс файлов- не больше оригинала,или можно больше?
Но теперь если поставлено точек "3" на старом пути1 где было 926(теперь он стал2),то при подьезде к пересечению с бывшим путём1 - ошибка).Наверно влияют файлы train и train2,но непонятно зачем они нужны.
Но также хотелось бы скрипт чтобы сам вписывал координаты игрока только после нажатии кнопки в столбик в txt файл,или в открытый файл в санибилдер.


Сообщение отредактировал laggth - Понедельник, 02.04.2012, 18:26
 
АртёмДата: Среда, 09.05.2012, 14:33 | Сообщение # 39
Группа: Пользователи
Сообщений: 90
Статус: Offline
Привет. У меня стала недавно стала вылетать игра. Я вот недавно tracks.dat делал, не подскажешь, что неправильно в этом файле (карты я проверял, все там нормально): http://narod.ru/disk....at.html
Заранее спасибо.


Делаю новый мод Greatland
 
Den_spbДата: Среда, 09.05.2012, 18:59 | Сообщение # 40
Создатель сайта
Группа: Администраторы
Сообщений: 1536
Статус: Offline
Можно было написать, к кому конкретно обращаемся - я на форуме не один wink
Файл посмотрел - ошибок не заметил.
 
АртёмДата: Среда, 09.05.2012, 21:15 | Сообщение # 41
Группа: Пользователи
Сообщений: 90
Статус: Offline
Спасибо, буду разбираться:)

Добавлено (09.05.2012, 21:15)
---------------------------------------------
Кстати, Den_spb, странно, но факт: без этого tracks.dat (со стандартным) игра не вылетает. Я тоже много раз перепроверял, вроде все нормально wacko


Делаю новый мод Greatland
 
Den_spbДата: Среда, 09.05.2012, 21:47 | Сообщение # 42
Создатель сайта
Группа: Администраторы
Сообщений: 1536
Статус: Offline
Попробуй убрать остановку с первой или последней точки. А то получаются 2 остановки на соседних точках, что по-моему не очень хорошо.
 
АртёмДата: Вторник, 22.05.2012, 22:35 | Сообщение # 43
Группа: Пользователи
Сообщений: 90
Статус: Offline
Den_spb, спасибо! smile

Добавлено (22.05.2012, 22:35)
---------------------------------------------
В чем может быть проблема, если игра не вылетает, а поезда по своему tracks.dat просто не ходят? Координаты вроде указаны правильно.


Делаю новый мод Greatland
 
Den_spbДата: Среда, 23.05.2012, 04:12 | Сообщение # 44
Создатель сайта
Группа: Администраторы
Сообщений: 1536
Статус: Offline
Если игрок находится недалеко от пути, и движение поездов не отключено (не был выполнен опкод 06D7: enable_train_traffic 0),
то рано или поздно поезд должен быть создан. Для проверки можно попробовать создать поезд скриптом на этом пути.
 
АртёмДата: Четверг, 24.05.2012, 19:05 | Сообщение # 45
Группа: Пользователи
Сообщений: 90
Статус: Offline
Den_spb, один раз случайно увидел с другого места, действительно. А так жду и почему-то не идет... ждал минут 15... Ладно, может переустановка поможет

Добавлено (24.05.2012, 16:53)
---------------------------------------------
Действительно на другой инсталляции все прекрасно работает

Добавлено (24.05.2012, 19:05)
---------------------------------------------
Den_spb, все уже ок спасибо, было что-то с моделью, а вот подскажи плиз с другой проблемой, там где заканчивается tracks.dat игра вылетает, но tracks.dat я сделал пока только в одну сторону. Если я доделаю его до конца проблема уйдет? Поезд должен там, где заканчивается tracks.dat переходить на начало или идти в обратную сторону?


Делаю новый мод Greatland
 
Форум » Игры серии ГТА » Различные вопросы о ГТА » Пути поездов
Страница 3 из 5«12345»
Поиск: