Универсальные поворотники (GTA SA/CLEO4)
|
|
MumiyTroll | Дата: Вторник, 29.11.2011, 23:50 | Сообщение # 16 |
Группа: Проверенные
Сообщений: 92
Статус: Offline
| Хотелось бы,чтоб на автострадах и трассах педы тоже включали повороты.А то они любители перестраиваться с одной полосы на другую.Возможно это сделать?
|
|
| |
Den_spb | Дата: Среда, 30.11.2011, 00:37 | Сообщение # 17 |
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
| Наверное возможно, перестроения я пока не исследовал.
|
|
| |
MumiyTroll | Дата: Суббота, 17.12.2011, 18:39 | Сообщение # 18 |
Группа: Проверенные
Сообщений: 92
Статус: Offline
| Привет.Ден,у меня перестали блымать поворотники.Из-за чего это может быть? Добавлено (17.12.2011, 18:39) --------------------------------------------- Все,я понял.Это из-за дополнительного транспорта на новых id
|
|
| |
Den_spb | Дата: Суббота, 17.12.2011, 18:40 | Сообщение # 19 |
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
| Привет. Такое бывает, когда падает скорость работы скрипта. Возможные причины: большое количество машин в трафике, большое количество ресурсоёмких модификаций, маломощный компьютер и т.д.
|
|
| |
DK22Pac | Дата: Понедельник, 26.12.2011, 23:28 | Сообщение # 20 |
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
| CoronaLimit1000.asi проверял, вроде бы, вылетов нет. Корон действительно стало больше и это выглядит красиво. Я хотел свой написать, но после того, как игра вылетела, желание отпало. Если что, пример с вылетом в аттаче. А я доделал проекции
|
|
| |
Den_spb | Дата: Вторник, 27.12.2011, 04:19 | Сообщение # 21 |
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
| Quote (DK22Pac) Я хотел свой написать, но после того, как игра вылетела, желание отпало. Наверное заменил не все ссылки на массив (необходимо заменить ссылки не только на начало массива, но и на адреса типа НачалоМассива+Смещение).
Quote (DK22Pac) А я доделал проекции Молодец, хорошо получилось.
|
|
| |
MumiyTroll | Дата: Среда, 28.12.2011, 18:03 | Сообщение # 22 |
Группа: Проверенные
Сообщений: 92
Статус: Offline
| Привет.Ден,у меня снова стала вылетать игра.Скрипт "Универсальные поворотники". Последняя команда в scmlog-00001580: 0A8D
|
|
| |
Den_spb | Дата: Среда, 28.12.2011, 19:48 | Сообщение # 23 |
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
| Пришли весь лог. После каких действий стала вылетать игра?
|
|
| |
MumiyTroll | Дата: Среда, 28.12.2011, 19:54 | Сообщение # 24 |
Группа: Проверенные
Сообщений: 92
Статус: Offline
| Я сохранился и продолжил игру.Прошло 5 минут-игра вылетела.
|
|
| |
Den_spb | Дата: Среда, 28.12.2011, 20:46 | Сообщение # 25 |
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
| Устранил уязвимость в скрипте. Попробуй новую версию - она прикреплена к сообщению.
|
|
| |
DK22Pac | Дата: Пятница, 06.01.2012, 00:38 | Сообщение # 26 |
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
| Денис, очень рад что ты дорабатываешь свой скрипт! Так как я уже переработал предыдущую версию скрипта под метод работы с компонентами автомобиля, то начинать это заново, с новой версией скрипта, не особо хочется. Можешь пожалуйста разьяснить этот момент Quote - исправлена уязвимость, из-за которой в определённых случаях была вероятность вылета игры со скриптом версии 2.0; Или этого Quote // убраны опкоды 0B10, 0B15. Добавлена проверка <> 0xFFFF будет достаточно?Добавлено (06.01.2012, 00:38) --------------------------------------------- Кстати, сам не раз замечал неисправность побитовых операций в CLEO. Но в исходном коде IntOperations.cleo ошибок нет.
Сообщение отредактировал DK22Pac - Пятница, 06.01.2012, 00:36 |
|
| |
Den_spb | Дата: Пятница, 06.01.2012, 02:03 | Сообщение # 27 |
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
| Доработать надо было обязательно, т.к. скрипт 2.0 мог привести к вылету игры. Как оказалось, необходимо производить проверку <> 0xFFFF для каждой из трёх точек путей (а не для одной) - это и имелось ввиду под исправлением уязвимости кода. Опкоды IntOperations.cleo заменил функциями, т.к. у некоторых использование данных опкодов также приводит к вылету игры.
|
|
| |
DK22Pac | Дата: Среда, 01.02.2012, 13:01 | Сообщение # 28 |
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
| Иногда авто включает поворотники на середине "прямого" пути http://img40.imageshack.us/img40/7540/gssd2.jpg Только у меня так?
Сообщение отредактировал DK22Pac - Среда, 01.02.2012, 13:02 |
|
| |
Den_spb | Дата: Среда, 01.02.2012, 13:42 | Сообщение # 29 |
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
| У меня это тоже бывает, но редко - например, в течение первых нескольких секунд после загрузки сохранений. Надо также учитывать, что поворотники могут включаться задолго до поворота, если путь абсолютно прямой во всех плоскостях.
|
|
| |
DK22Pac | Дата: Четверг, 14.03.2013, 04:08 | Сообщение # 30 |
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
| После длительных разборов с путями, удалось переварить эти строки в читабельный код: Код if 3@(31@,3i) <> 0xFFFF then 0085: 0_PointAdress = 3@(31@,3i) // (int) 0AC6: 30@ = label @SHR_0Ah offset 0AA8: call_function_method 30@ struct 3@(31@,3i) num_params 0 pop 0 3@(31@,3i) //0B15: 3@(31@,3i) = 3@(31@,3i) SHR 0xA//////////////////////////////////////////////////////////// 3@(31@,3i) *= 4 3@(31@,3i) += 0x96F854 0A8D: 3@(31@,3i) = read_memory 3@(31@,3i) size 4 virtual_protect 0 if 3@(31@,3i) <> 0 then 0085: 3@(31@,3i) = 0_PointAdress // (int)
0AC6: 30@ = label @AND_3FFh offset 0AA8: call_function_method 30@ struct 0_PointAdress num_params 0 pop 0 0_PointAdress //0B10: 0_PointAdress = 0_PointAdress AND 0x3FF /////////////////////////////////////////////////// 0_PointAdress *= 0xE 0AC6: 30@ = label @SHR_0Ah offset 0AA8: call_function_method 30@ struct 3@(31@,3i) num_params 0 pop 0 3@(31@,3i) // 0B15: 3@(31@,3i) = 3@(31@,3i) SHR 0xA /////////////////////////////////////////////////////////// 3@(31@,3i) *= 4 3@(31@,3i) += 0x96F974 0A8D: 3@(31@,3i) = read_memory 3@(31@,3i) size 4 virtual_protect 0 005A: 0_PointAdress += 3@(31@,3i) // (int) 0085: 6@(31@,3i) = 0_PointAdress // (int) 0A8E: 9@(31@,3i) = 0_PointAdress + 2 // int ... => Код naviNodeInfo = car->carCtrl.m_wNextPathPointId; if(naviNodeInfo != -1) { if (g_Pathfind.pNodes[naviNodeInfo >> 10]) { naviNode = &g_Pathfind.pNaviNodes[naviNodeInfo >> 10][naviNodeInfo & 0x3FF]; // 2хМассив[ИД_ЗОНЫ][ИД_ТОЧКИ_В_ЗОНЕ] x = naviNode->x / 8.0; y = naviNode->y / 8.0; } } naviNodeInfo - это WORD, первые 10 битов - уникальный ид точки пути, следуещие 6 битов - ид зоны путей (nodes%.dat). Подробнее тут : http://www.gtamodding.com/index.p....i_Links g_Pathfind - обьект 0x96F050 (класс). pNodes - массив указателей (для каждой зоны свой набор ) на структуры CPathNode, подробнее тут: http://www.gtamodding.com/index.p....h_Nodes pNaviNodes - массив указателей (для каждой зоны свой набор) на структуры CNaviNode, подробнее тут: http://www.gtamodding.com/index.p....i_Nodes
Сообщение отредактировал DK22Pac - Четверг, 14.03.2013, 04:20 |
|
| |