Вторник, 23.04.2024, 10:51
Качественные скрипты, моды и дополнения для GTA без регистрации
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » Игры серии ГТА » Скриптинг » Вопросы по созданию КЛЕО-скриптов (Вопросы по опкодам, кодингу и др.)
Вопросы по созданию КЛЕО-скриптов
VitalДата: Воскресенье, 29.05.2011, 22:46 | Сообщение # 631
Группа: Проверенные
Сообщений: 206
Статус: Offline
sexy,
08EA. По сути должен включать (1) или выключать (0) появление банд (я не тестировал)
08FD. Включает (1) или выключает (0) эффекты жары (над асфальтом такой воздух горячий)
099E. Включает (1) или выключает (0) полицейские патрули
0A3D. Девушки ...кхм...кхе кхе легкого поведения платят тебе (тоже либо вкл(1) либо выкл(0))
0733 не знаю


SCRIPTER
 
sexyДата: Понедельник, 30.05.2011, 08:38 | Сообщение # 632
Группа: Пользователи
Сообщений: 23
Статус: Offline
Спасибо! Правда ничего интересного там не оказалось. У меня еще вопрос. Как поменять номер на машине. Именно поменять на существующей. Такое есть в all in one mod
 
VitalДата: Понедельник, 30.05.2011, 16:48 | Сообщение # 633
Группа: Проверенные
Сообщений: 206
Статус: Offline
Есть два опкода для смены номера машины:
0674: set_car_model #ИМЯМОДЕЛИ numberplate "НОМЕР (максимум 8 символов, знак _ это пропуск)"
Сначала используешь этот опкод, а потом создаешь машину с моделью, которую указал в опкоде.
И второй:
09E2: ПЕРЕМЕННАЯ ПАРКОВКИ = parked_car_generator_w_numberplate #ИМЯМОДЕЛИ -1 -1 0 alarm 50 door_lock 0 0 10000 plate "НОМЕР (правила написания те же)" at 0.0 0.0 0.0 angle 180.0
А теперь поясню параметры:
-1 -1 - цвет машины (есть в справке СБ)
0 - не знаю
50 - вероятность того, что у машины есть сигнализация
0 - вероятность того, что машина закрыта
0 - не знаю
10000 - цена, которая не нужна никому
0.0 0.0 0.0 - координаты X Y Z
180.0 - угол, на который будет повернута машина
Не знаю, как насчет языка номера, скорее всего только английский, однако стоит попробовать и с русским языком, но не забывай, что в игре все иначе. Я про то, что когда делаешь текст (например .gxt или .fxt), то нужно переводить русский текст в специальные символы, которые понимает игра. Попробуй использовать именно символы в номере машины, однако я не уверен, что получится. Если не выйдет, пиши русские слова английскими буквами, например Typ6o


SCRIPTER

Сообщение отредактировал Vital - Понедельник, 30.05.2011, 16:55
 
ILYALIONДата: Понедельник, 30.05.2011, 17:45 | Сообщение # 634
Группа: Проверенные
Сообщений: 325
Статус: Offline
Den_spb, я по Вашим советам создал скрипт
но игра вылетает при загрузке. SmLog показывает, что вылетает именно из-за этого скрипта. В чём моя (мои) ошибка (ошибки)?
 
Den_spbДата: Понедельник, 30.05.2011, 18:35 | Сообщение # 635
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Вылетает по двум причинам:
1.Перед созданием поезда необходимо загрузить модели вагонов, а после создания поезда выгрузить модели из памяти.
2.Необходимо завершить скрипт командой 0A93: (поставить перед :SEARCH )
Кроме того, в текущей версии кода поиск поезда будет произведён только один раз. Чтобы поиск повторялся до успешного завершения, необходимо заменить:
Code
if    
       gosub @SEARCH    
then    
       // действия с найденным поездом
end
на цикл
Code
repeat
       wait 0
until gosub @SEARCH
// действия с найденным поездом
 
ILYALIONДата: Понедельник, 30.05.2011, 21:28 | Сообщение # 636
Группа: Проверенные
Сообщений: 325
Статус: Offline
Вот что у меня получилось
Но игра вылетает. SmLog показывает, что ошибка в опкоде 06D8. Я пробую всё это на станции Клюквы и замечаю, что перед вылетом на трамвайных путях создаётся товарный поезд, который нужен мне, проезжает метра 3, а потом вылет. Если ошибок в коде нет, то могут ли вылеты происходить из-за того, что одновременно в игре создаётся 4 поезда? (Трамвай, мой товарняк, его 2я часть и пассажирский поезд, едущий по другому пути)

Добавлено (30.05.2011, 21:28)
---------------------------------------------
Когда я загрузил сэйв Лос-Сантоса, то тоже произошёл вылет. Видимо дело не в избыточном количестве поездов

 
Den_spbДата: Вторник, 31.05.2011, 05:23 | Сообщение # 637
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Убери jump @START, иначе скрипт попытается создать огромное количество поездов.
 
ILYALIONДата: Вторник, 31.05.2011, 07:21 | Сообщение # 638
Группа: Проверенные
Сообщений: 325
Статус: Offline
Спасибо, Den_spb. Но теперь 2я часть появляется на трамвайных путях, не телепортируется к 1й части, а продолжает ехать по трамвайным путям. Почему? В приведённом выше коде я удалил только jump @START, остальное ничего не трогал.
 
Den_spbДата: Вторник, 31.05.2011, 07:39 | Сообщение # 639
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Попробуй создавать второй поезд на том же пути, что и первый. Для этого в команде создания второго поезда надо указать координаты любой точки маршрута первого поезда.
 
ILYALIONДата: Вторник, 31.05.2011, 12:17 | Сообщение # 640
Группа: Проверенные
Сообщений: 325
Статус: Offline
Спасибо, заработало. Но у меня стоит "Новый алгоритм", и я хочу, чтобы длинные поезда ездили по обоим путям. Можно ли как то вычислить, по какому пути едет первый поезд и на основе этих вычислений создать второй поезд на этом же пути?

Добавлено (31.05.2011, 12:17)
---------------------------------------------
И можно ли создавать второй поезд сразу за первым, а не в произвольной точке пути?

 
Den_spbДата: Вторник, 31.05.2011, 16:24 | Сообщение # 641
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (ILYALION)
Можно ли как то вычислить, по какому пути едет первый поезд и на основе этих вычислений создать второй поезд на этом же пути?
Можно. Маршрут вагона поезда записан в его структуре по смещению 0x5C0 [byte]. Значения: 2 - tracks2, 1 - tracks3, 3 - tracks4, 0-tracks.
Quote (ILYALION)
И можно ли создавать второй поезд сразу за первым, а не в произвольной точке пути?
Теоретически можно, но смысла в этом нет - только скрипт усложнится.
 
ILYALIONДата: Вторник, 31.05.2011, 19:04 | Сообщение # 642
Группа: Проверенные
Сообщений: 325
Статус: Offline
Теперь появилось несколько вопросов:
1.Что это за смещение? Куда его записывать в скрипт?
2.Как сделать так, чтобы было несколько вариаций первого поезда, при котором к нему прицепляется 2я часть? (т.е. вторым вагоном был не толко id537, а ещё и какой-нибудь другой.
3.Как сделать так, чтобы 2й поезд брался не только 5 типа, а ещё и 2х-3х типов случайно.
 
Den_spbДата: Среда, 01.06.2011, 03:09 | Сообщение # 643
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (ILYALION)
1.Что это за смещение? Куда его записывать в скрипт?
Смещение нужно прибавить к адресу начала структуры транспортного средства (вагона), который вычисляется опкодом 0A97. В результате получим адрес, по которому записан номер маршрута данного вагона. Значение, записанное по определённому адресу, читается опкодом 0A8D. Пример:
Code
0A97: 1@ = car 0@ struct // 0@ - переменная вагона
1@ += 0x5C0
0A8D: 1@ = read_memory 1@ size 1 virtual_protect 0
if
      1@ == 0  // маршрут вагона - tracks.dat
then
      ...
end


Quote (ILYALION)
2.Как сделать так, чтобы было несколько вариаций первого поезда, при котором к нему прицепляется 2я часть? (т.е. вторым вагоном был не толко id537, а ещё и какой-нибудь другой.
Заменить проверку одного условия (if) на проверку нескольких условий (if or) в коде поиска поезда.

Quote (ILYALION)
3.Как сделать так, чтобы 2й поезд брался не только 5 типа, а ещё и 2х-3х типов случайно.
Выбрать случайное целое число из заданного интервала можно опкодом:
Code
0209: 17@ = random_int_in_ranges 0 10 // выбор случайного числа из интервала 0 - 9
 
ILYALIONДата: Среда, 01.06.2011, 11:10 | Сообщение # 644
Группа: Проверенные
Сообщений: 325
Статус: Offline
Как сделать, чтобы CJ входил в определённый вагон без анимации? А то некоторые модели вагонов не позволяют зайти в них. Извините, если повторяюсь, просто я уже где-то видел этот вопрос, а где-найти не могу.
 
Den_spbДата: Среда, 01.06.2011, 16:32 | Сообщение # 645
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Можно написать скрипт, телепортирующий игрока в ближайшее транспортное средство при нажатии какой-либо кнопки.
Телепортация осуществляется опкодом 036A: put_actor 93@ in_car 70@, если что.
Вообще подобных проблем возникать не должно, если вместе с моделью были установлены и настройки к ней (handling и vehicles).
 
Форум » Игры серии ГТА » Скриптинг » Вопросы по созданию КЛЕО-скриптов (Вопросы по опкодам, кодингу и др.)
Поиск: