Вопросы по созданию КЛЕО-скриптов 2
|
|
Den_spb | Дата: Пятница, 08.04.2022, 16:33 | Сообщение # 406 |
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
| 1.Проверки в скрипте медленно работают наверное потому, что у тебя много wait-ов. Каждый раз, когда выполнение скрипта наталкивается на wait, выполнение скрипта приостанавливается и игра выполняет отрисовку очередного кадра.
Если, предположим, выполняется проверка нахождения поезда в сфере, потом 5 wait-ов, потом опять проверка, за это время игра отрисует 5 кадров. Если поезд едет с большой скоростью, он за это время может проехать 10-20-30 метров и запросто проскочить сферу.
2.Вместо проверки нахождения в сфере можно использовать проверку, сколько поезд проехал метров от начала тракса. Пройденное расстояние от начала тракса хранится в структуре локомотива или вагона по смещению Код 0x05A8 | float distanceTravelled // Расстояние, пройденное от начала маршрута в метрах
http://gtamodding.ru/wiki/%D0%90%D0%B4%D1%80%D0%B5%D1%81%D0%B0_%D0%9F%D0%B0%D0%BC%D1%8F%D1%82%D0%B8_(SA) Получаем значение следующим образом:Код 0A97: 1@ = vehicle 0@ struct 1@ += 0x05A8 0A8D: 2@ = read_memory 1@ size 4 virtual_protect 0 if and 2@ > 1000.0 2@ < 1100.0 then 06DD: set_train 0@ speed 0.0 end
3. Единицы для остановок работают только в tracks.dat, в других tracks-файлах простановка единицы ничего не даст, работать не будет.
4. Про опкод 06DA: reset_train_directions ничего не знаю, не пользовался им никогда.
|
|
| |
laggth | Дата: Четверг, 26.01.2023, 17:22 | Сообщение # 407 |
Группа: Пользователи
Сообщений: 81
Статус: Offline
| Подставил твой скрипт в свой для езды трамов'. ............................................................. Но,как скриптом можно окрасить в нужные цвета прицепные вагоны?
Сообщение отредактировал laggth - Четверг, 26.01.2023, 19:18 |
|
| |
Den_spb | Дата: Четверг, 26.01.2023, 23:21 | Сообщение # 408 |
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
| Есть такая команда:
0229: set_car $IMPORT_CAR primary_color_to 11 secondary_color_to 0
Устанавливает указанному транспортному средству первый и второй цвет с указанными номерами.
|
|
| |
laggth | Дата: Пятница, 27.01.2023, 12:05 | Сообщение # 409 |
Группа: Пользователи
Сообщений: 81
Статус: Offline
| цвет встаёт только у лок0мотивов . вагоны невозможно по моему окрасить через скрипт ... . можно(нужно ли) вставлять опкод enable_thread_saving в скрипты с автоездящим транспортом? Что это даст? Даст ли это автостарт транспорта не с точек старта,а с точек,в каких транспорт был во время сохранения?
Сообщение отредактировал laggth - Пятница, 27.01.2023, 12:28 |
|
| |
Den_spb | Дата: Суббота, 28.01.2023, 23:00 | Сообщение # 410 |
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
| Цитата laggth ( ) вагоны невозможно по моему окрасить через скрипт ... . 078A: 43@ = get_train 40@ carriage 1 handle
С помощью этой команды можно получить указатель на вагон с указанным номером (0 - локомотив, 1 - первый вагон, 2 - второй вагон....) После этого к вагону можно применить команду перекраски.
Цитата laggth ( ) можно(нужно ли) вставлять опкод enable_thread_saving в скрипты с автоездящим транспортом? Что это даст? Даст ли это автостарт транспорта не с точек старта,а с точек,в каких транспорт был во время сохранения? Применение команды enable_thread_saving включает сохранение значений переменных скрипта 0@...31@ при сохранении игры. Чтобы транспорт появлялся в нужных координатах, надо в скрипте постоянно записывать координаты транспорта в какие-то переменные, а в начале скрипта прописать команду телепорта в эти координаты (если транспорт существует).
|
|
| |
laggth | Дата: Среда, 28.06.2023, 18:02 | Сообщение # 411 |
Группа: Пользователи
Сообщений: 81
Статус: Offline
| Тут с кусками кода из твоего скрипта трамы появляются,считывая id из памяти,но,если выкинуть водителя,то трамы останавливаются и дальше не едут,пока не перезапустишь их путём нажатия "2" субмисиия и сразу же после этого её отмены. (В моих скритптах трамы ездили даже если занять место водилы(без водил).Хотя это получилось случайно,тк мне водилы особо не нужны были тогда)).
https://pastebin.com/TiZ9iMuc
Как заставить трамы ездить даже без водил с остановками по плану скрипта?
Сообщение отредактировал laggth - Среда, 28.06.2023, 18:04 |
|
| |
Den_spb | Дата: Суббота, 01.07.2023, 00:45 | Сообщение # 412 |
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
| Цитата laggth ( ) Как заставить трамы ездить даже без водил с остановками по плану скрипта? После того, как водитель покинет поезд, надо применить к поезду команду 06DD (плавно разогнаться до указанной скорости и двигаться с этой скоростью). Можно применять эту команду в цикле (постоянно).
Код if 056E: car 0@ defined then 06DD: set_train 0@ speed 15.0 end
|
|
| |
laggth | Дата: Суббота, 01.07.2023, 16:28 | Сообщение # 413 |
Группа: Пользователи
Сообщений: 81
Статус: Offline
| :VYGRUZKA_MODELEI if &0(7@,1i) <> 0 jf @KONEC_SKRIPTA Model.Destroy(&0(7@,1i)) 7@ += 1 jump @VYGRUZKA_MODELEI
:KONEC_SKRIPTA -----------------------...-------------- &0(7@,1i) <> 0 -что это означает?
У меня нет там конца скрипта,но если начинается миссия,арестован,или сдох ,-то car 0@ исчезает .
https://pastebin.com/D2GVmzV4
Исправь пожалуста этот скрипт,чтобы было правильно(движение с остановками в сферах с водителями или без).,если можно.
Сообщение отредактировал laggth - Воскресенье, 02.07.2023, 03:37 |
|
| |
Den_spb | Дата: Суббота, 01.07.2023, 19:58 | Сообщение # 414 |
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
| Цитата laggth ( ) &0(7@,1i) <> 0 -что это означает? Мы последовательно проверяем адреса памяти, в которых записаны ИД моделей локомотива, 1 вагона, 2 вагона. Если записан 0, то этого вагона нет - мы достигли конца состава. Подробно можно почитать тут: https://sannybuilder.com/forums/viewtopic.php?id=18
Цитата laggth ( ) движение с остановками в сферах с водителями или без А может проще не переделывать скрипт, а вообще водителей не создавать в твоих трамваях? Но надо знать ИД модели трамвая. Например, ИД 537. Тогда убираем водителей так:
Код 0A8C: write_memory 0x6F7863 size 2 value 537 virtual_protect 1
После этой команды в поездах, локомотив которого имеет модель 537, водители создаваться не будут.
|
|
| |
laggth | Дата: Воскресенье, 02.07.2023, 12:46 | Сообщение # 415 |
Группа: Пользователи
Сообщений: 81
Статус: Offline
| Пошло вроде.Но трам витязь не перекрашивается. команды не сработали-
:SOZDANIE_POEZDA jump @NONAME_79
:NONAME_79 wait 0 06D8: 0@ = create_train_at 2850.5901 -1120.7035 24.7013 type 21@ direction 1 //las kalinas hotel1 0229: set_car 0@ primary_color_to 6 secondary_color_to 1 0186: 2@ = create_marker_above_car 0@ 0165: set_marker 2@ color_to 4 078A: 22@ = get_train 0@ carriage 1 handle 0229: set_car 22@ primary_color_to 6 secondary_color_to 1 078A: 23@ = get_train 0@ carriage 2 handle 0229: set_car 23@ primary_color_to 6 secondary_color_to 1 06DC: set_train 0@ acc 10.0 06DD: set_train 0@ speed 16.0 072A: put_actor $PLAYER_ACTOR into_car 0@ driverseat jump @VYGRUZKA_MODELEI
:VYGRUZKA_MODELEI wait 0 if &0(7@,1i) <> 0 jf @prov_1 Model.Destroy(&0(7@,1i)) 7@ += 1 jf @VYGRUZKA_MODELEI
========================= Надо ли на train-овые скрипты добавлять команду "enable_thread_saving" ??
=========================================
В скрипте на загрузку id из памяти поезд не появляется если стоит тип 0 на загрузке - https://pastebin.com/2hVisxt5
Сообщение отредактировал laggth - Вторник, 04.07.2023, 04:23 |
|
| |
Den_spb | Дата: Вторник, 04.07.2023, 20:17 | Сообщение # 416 |
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
| Цитата laggth ( ) Пошло вроде.Но трам витязь не перекрашивается. команды не сработали- Так эти трамваи вроде текстурами покрашены. Тогда цвет командой не поменять.
Цитата laggth ( ) Надо ли на train-овые скрипты добавлять команду "enable_thread_saving" ?? Эту команду надо использовать, если нужно сохранить значения переменных скрипта при сохранении игры. Например, можно создать скрипт, создающий несколько банковских счетов для игрока. Тогда при сохранении игры будет сохраняться количество денег на этих счетах. Или можно сделать скрипт бензина и сохранять количество бензина в автомобиле игрока. И т.д.
Цитата laggth ( ) В скрипте на загрузку id из памяти поезд не появляется если стоит тип 0 на загрузке -https://pastebin.com/2hVisxt5 Я не вижу в коде ничего такого, что изменило бы его работу, если тип поезда 0. Попробуй протестировать скрипт. Например, с помощью команд добавления денег игроку. После блока загрузки моделей добавляем игроку 10$. 0109: player $PLAYER_CHAR money += 10 После выгрузки 100$ 0109: player $PLAYER_CHAR money += 100 После создания поезда 1000$. 0109: player $PLAYER_CHAR money += 1000 Если счет увеличится, например на 110$, значит загрузка и выгрузка сработала, а создание поезда - нет. Определив, какой блок не работает, можно дальше изучить его и найти причину.
|
|
| |
laggth | Дата: Суббота, 08.07.2023, 14:48 | Сообщение # 417 |
Группа: Пользователи
Сообщений: 81
Статус: Offline
| Cкольмо может быть пассажирских мест в freight freibox fraiflat ,и в моделях,поставленных на новые id ,с их настройками Vehicles.ide ? Можно ли в этих вагонах создавать пассажиров,не вылетит ли игра?
Сообщение отредактировал laggth - Суббота, 08.07.2023, 14:49 |
|
| |
Den_spb | Дата: Вторник, 11.07.2023, 22:12 | Сообщение # 418 |
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
| Цитата laggth ( ) Cкольмо может быть пассажирских мест в freight freibox fraiflat Не знаю. Я думаю что в вагон влезет столько же людей, сколько помещается в другие виды транспорта. Можно поставить эксперимент. С помощью программы SATL или скрипта подменить модель локомотива или вагона моделью какого-то четырехместного легкового автомобиля. Затем скриптом создать поезд, в котором локомотивом или вагоном будет четырехместный автомобиль. Далее скриптом создать водителя и пассажиров и посадить их внутрь - если получится, то четыре человека получается в вагоне могут быть.
|
|
| |