Воскресенье, 28.04.2024, 01:36
Качественные скрипты, моды и дополнения для GTA без регистрации
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » Игры серии ГТА » Скриптинг » Вопросы по созданию КЛЕО-скриптов 2
Вопросы по созданию КЛЕО-скриптов 2
Den_spbДата: Пятница, 01.10.2021, 21:28 | Сообщение # 391
Создатель сайта
Группа: Администраторы
Сообщений: 1598
Статус: Offline
laggth, в скрипте была ошибка - я исправил. Попробуй снова. Что касается количества вагонов у одного поезда, то да, сейчас можно делать максимум 19 вагонов. Если попытаться создать более длинный поезд, то игра вылетит.

Recoil, с allocate memory не работал, обычно пользовался hex..end буфером. Я в коде ошибок не вижу. Можно попробовать вывести значения из allocate memory на экран, чтобы убедиться, что они правильно пишутся и читаются (пример вывода чисел на экран есть в соседней теме - вопрос про сопла джетпака)
 
RecoilДата: Пятница, 01.10.2021, 21:53 | Сообщение # 392
Группа: Проверенные
Сообщений: 12
Статус: Offline
Еще в начале этого года занимался подобным, пример скрипта с аллокейт, работает как часы, почему тот не работает никто не знает

{$CLEO}
wait 2000

0AC8: 0@ = allocate_memory_size 16
0A8C: write_memory 0@ size 4 value 2.0 virtual_protect 0
0085: 1@ = 0@ // (int)
inc(1@,4)
0A8C: write_memory 1@ size 4 value 4.5 virtual_protect 0 
inc(1@,4)
0A8C: write_memory 1@ size 4 value 6.5 virtual_protect 0
inc(1@,4)
0A8C: write_memory 1@ size 4 value 7.5 virtual_protect 0

wait 500
0085: 1@ = 0@ // (int)
0A8D: 4@ = read_memory 0@ size 4 virtual_protect 0
inc(1@,4)
0A8D: 5@ = read_memory 1@ size 4 virtual_protect 0
inc(1@,4)
0A8D: 6@ = read_memory 1@ size 4 virtual_protect 0
inc(1@,4)
0A8D: 7@ = read_memory 1@ size 4 virtual_protect 0
0AC9: free_allocated_memory 0@
0AD0: show_formatted_text_lowpriority "%.2f %.2f %.2f %.2f" time 4000 4@ 5@ 6@ 7@  // ???????: 20 45
0A93: end_custom_thread
 
Den_spbДата: Воскресенье, 03.10.2021, 14:10 | Сообщение # 393
Создатель сайта
Группа: Администраторы
Сообщений: 1598
Статус: Offline
Причин может быть несколько:
1)значения не записываются по адресам
2)значения записываются, но тут же изменяются каким-то другим скриптом/процессом
3)адрес неверный, либо для получения эффекта нужно выполнить ещё какое-то действия.

Судя по тому, что аналогичный скрипт с hex-буфером работает, то скорее всего здесь имеет место первая причина и проблема с самим allocated memory. С помощью последовательного вывода чисел на экран можно проверить, что числа корректно записываются в allocated memory, корректно читаются и копируются в игровую память, а также то, что числа в памяти впоследствии не меняет другой процесс. Сам я такой проверочный скрипт сейчас сделать не могу, так как в отъезде и компьютера нет под рукой. Ещё момент: в коде с hex-буфером меняются 5 значений, с allocate memory - 4. Может, эффект не наступит, пока не изменить все 5 значений?
 
RecoilДата: Воскресенье, 03.10.2021, 18:00 | Сообщение # 394
Группа: Проверенные
Сообщений: 12
Статус: Offline
Цитата Den_spb ()
Ещё момент: в коде с hex-буфером меняются 5 значений, с allocate memory - 4.
Нет, при окончательном тестировании просто добавил адрес в первоначальный скрипт т.к. у бандито оказался свой адрес.
Ясен пень, пример с  hex-буфером смотрел у тебя, потому и работает.
 
reloadedmailidДата: Вторник, 09.11.2021, 17:52 | Сообщение # 395
Группа: Пользователи
Сообщений: 1
Статус: Offline
The site is still alive!!
 
Den_spbДата: Вторник, 09.11.2021, 17:54 | Сообщение # 396
Создатель сайта
Группа: Администраторы
Сообщений: 1598
Статус: Offline
Цитата reloadedmailid ()
The site is still alive!!
Alive again!  crazy
 
laggthДата: Понедельник, 31.01.2022, 09:41 | Сообщение # 397
Группа: Пользователи
Сообщений: 79
Статус: Offline
Почему,когда я даю команду поезду стать синим  0229: set_car 1@ primary_color_to 10 secondary_color_to 1 ,он становится чёрным(локомотив). Другие цвета с кучей других поездов(красно-белый,жёлто белый,сине-зелёный(на разных линиях)) работают и появляются с правильным цветом. Но иногда и появляются правильные голубые с белым локмотивы,но почему то редко.
 
Den_spbДата: Среда, 02.02.2022, 17:51 | Сообщение # 398
Создатель сайта
Группа: Администраторы
Сообщений: 1598
Статус: Offline
А что за модель локомотива? Стандартная из игры или авторская модификация?
 
laggthДата: Среда, 02.02.2022, 21:36 | Сообщение # 399
Группа: Пользователи
Сообщений: 79
Статус: Offline
Авторская модель метро мытищинского.
 Но теперь работает вроде,я их поставил на новые id и побоялся прописать цвета в carcols(думал что вылетать будет из за них).
 
Den_spbДата: Четверг, 03.02.2022, 13:15 | Сообщение # 400
Создатель сайта
Группа: Администраторы
Сообщений: 1598
Статус: Offline
Хорошо, что теперь всё работает! up
 
laggthДата: Четверг, 03.02.2022, 23:39 | Сообщение # 401
Группа: Пользователи
Сообщений: 79
Статус: Offline
Как остановить поезд скриптом моментально или плавно в точке или в маленькой сфере(диаметром не более 1(чтобы не задевать встречный путь)).Я остановливаю поезда кодом
wait 0
if
01AF:   car 1@ sphere 0 in_sphere 2556.0588 -2501.9448 26.5784 radius 14.0 14.0 14.0       // seaport vnutr
jf @platf3
jump @NONAME_926

далее задаю ass 0.0 и speed 0.0 ,и поезд остановливается моментально при скорости 30.0 .
Но на двухпутном пути поезд попадает в одни и те же сферы дважды на обратном пути по параллельному пути и останавливается поэтому в началах встречных платформ(в концах своих платформ)(перед тем как заехать на свою платформу по пути).
Если сферы сделать меньше,то поезд их проезжяет без остановки,потому у меня такие широкие сферы.


Сообщение отредактировал laggth - Четверг, 03.02.2022, 23:41
 
Den_spbДата: Пятница, 04.02.2022, 15:36 | Сообщение # 402
Создатель сайта
Группа: Администраторы
Сообщений: 1598
Статус: Offline
Так а почему проверяется нахождение каждого поезда и в своих, и в чужих сферах? Надо проверять нахождение каждого поезда только в сферах своего пути.

Если код переделать по каким-то причинам нельзя, то можно завести переменную-флаг. Например, изначально в 29@ записан 0.
0 означает, что данный поезд на данной станции еще не останавливался. Дальше проверяем:

Код
if and
01AF:   car 1@ sphere 0 in_sphere 2556.0588 -2501.9448 26.5784 radius 14.0 14.0 14.0       // seaport vnutr
29@ == 0 // поезд еще не останавливался на этой станции
jf @platf3
jump @NONAME_926

Если оба условия верны, то останавливаем поезд.
Есть две команды - ass 0.0 и speed 0.0
Одна мгновенно останавливает поезд, вторая - плавно. Какая из них какая - не помню.
И устанавливаем флаг 29@ = 1. Это означает, что поезд уже останавливался на этой станции, второй раз его останавливать не нужно.

Когда поезд уедет далеко от станции, например на 1000.0 метров, обнуляем флаг, чтобы он мог остановиться на следующей станции.

Вместо проверок со сферами обычно можно просто проверить одну координату. Например, поезд едет с севера на юг. Координата Y будет уменьшаться. Тогда проверка будет выглядеть так:

Код
00AA: store_car 0@ position_to 3@ 4@ 5@
if and
    4@ < 500.0 // Y-координата точки остановки
    29@ == 0
then
    06DD: set_train 0@ speed 0.0
    29@ = 1
end

И последнее - чтобы проверки в коде работали быстрее, надо стараться использовать как можно меньше команд wait (только там, где они действительно нужны).
 
laggthДата: Воскресенье, 06.02.2022, 21:25 | Сообщение # 403
Группа: Пользователи
Сообщений: 79
Статус: Offline
Как сделать скриптом,чтобы поезда,идущие в одном направлении по одному или разным путям tracks,работающие на отдельных разных скриптах cleo,не наезжали бы в зад впереди идущим,а останавливались бы перед ним.?

Сообщение отредактировал laggth - Воскресенье, 06.02.2022, 21:28
 
Den_spbДата: Вторник, 15.02.2022, 13:58 | Сообщение # 404
Создатель сайта
Группа: Администраторы
Сообщений: 1598
Статус: Offline
Это реализовано в моем скрипте "Умные трамваи". Смысл в том, что в зоне определенного радиуса перед трамваем осуществляется поиск транспортных средств и пешеходов. Если препятствие найдено, то трамваю дается команда на торможение. Этот скрипт можно использовать не только для трамваев, но и для поездов. Тогда ИД модели трамвая в скрипте надо исправить на ИД модели локомотива.
Если поездов в игре несколько, то самый простой способ - скопировать файл скрипта несколько раз (для каждого поезда - свой файл получается).
 
laggthДата: Пятница, 08.04.2022, 15:25 | Сообщение # 405
Группа: Пользователи
Сообщений: 79
Статус: Offline
Есть ли какой нибудь опкод,дающий остановку поезда в точке(не в сфере с радиусом).01AD:   car 99@ sphere 0 near_point 252@ 253@ radius 6.0 6.0
есть,но хотелось бы без собак в клео ,тк остановок много,и собак может не хватить.
как работает код
06DA: reset_train_directions

09CF: set_train 40@ stop_at_stations 0  (будет ли останавливацца на единицах тракса  - любого дополнительного(не первого)?).

Почему,чем больше  скорость,тем шире должна быть сфера для остановки? - чтоб не проскакивал мимо.... .


Сообщение отредактировал laggth - Пятница, 08.04.2022, 15:27
 
Форум » Игры серии ГТА » Скриптинг » Вопросы по созданию КЛЕО-скриптов 2
Поиск: