Четверг, 21.11.2024, 18:34
Качественные скрипты, моды и дополнения для GTA без регистрации
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Универсальные поворотники (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 проверял, вроде бы, вылетов нет. Корон действительно стало больше и это выглядит красиво.
Я хотел свой написать, но после того, как игра вылетела, желание отпало. Если что, пример с вылетом в аттаче.
А я доделал проекции smile
Прикрепления: patch_corona_li.txt (72.6 Kb)
 
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 минут-игра вылетела.
Прикрепления: 3399515.log (234.2 Kb)
 
Den_spbДата: Среда, 28.12.2011, 20:46 | Сообщение # 25
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
Устранил уязвимость в скрипте. Попробуй новую версию - она прикреплена к сообщению.
Прикрепления: turn_indicators.cs (20.0 Kb)
 
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
У меня это тоже бывает, но редко - например, в течение первых нескольких секунд после загрузки сохранений.
Надо также учитывать, что поворотники могут включаться задолго до поворота, если путь абсолютно прямой во всех плоскостях.
Прикрепления: 2902708.jpg (104.9 Kb)
 
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
 
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск: