Вопросы по созданию модификаций к ГТА СА
|
|
Den_spb | Дата: Суббота, 26.03.2011, 16:46 | Сообщение # 61 |
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
| Quote (ILYALION) А если я скачал 2 скрипта с файлами колизии col, то их уже не объединить в один col архив? Объединить архивы можно. Открой с помощью Collision Editor один col-архив, затем добавь в него модели из второго архива (нажми Edit - Add и выбери второй col-архив).
|
|
| |
WallFuck | Дата: Воскресенье, 27.03.2011, 14:17 | Сообщение # 62 |
Группа: Проверенные
Сообщений: 56
Статус: Offline
| Нет, денис ты не так понял) как их вообще создать?) вот смотри строчку: Quote actor.create($MyAct,4,#FAM1,-2400.0,500.8,24.2) Вот это можеш обьяснить? а то я непонимаю что обозначает $MyAct и #FAM1 и где взять #FAM1(модель) я не понимаю... когда нажимаю на # там этих моделек нету....
|
|
| |
Den_spb | Дата: Воскресенье, 27.03.2011, 19:48 | Сообщение # 63 |
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
| Quote (WallFuck) как их вообще создать? Актёр, транспорт или объект создаются по одному и тому же сценарию (отличаться будут только команды создания): 1.загружаем модель 2.ждём, пока модель не загрузится 3.создаём актёра 4.выгружаем модель Параметры команды создания актёра: $MyAct - имя переменной (ячейки памяти), в которую будет записан указатель на созданного актёра. В клео-скриптах глобальные переменные (со знаком $) не употребляются (исключения: $PLAYER_ACTOR, $PLAYER_CHAR, $ONMISSION и некоторые другие стандартные переменные), вместо них следует использовать локальные переменные: 0@, 1@, 2@ ... 31@. #FAM1 - название модели (dff-файла). Вместо названия модели с решёткой можно ввести ID номер модели (см. файл peds.ide) Quote (WallFuck) когда нажимаю на # там этих моделек нету.... В списке, появляющемся при нажатии # перечислены не все модели.
|
|
| |
WallFuck | Дата: Вторник, 29.03.2011, 22:22 | Сообщение # 64 |
Группа: Проверенные
Сообщений: 56
Статус: Offline
| а вот переменные можно использовать только до 31@?
|
|
| |
Den_spb | Дата: Среда, 30.03.2011, 01:38 | Сообщение # 65 |
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
| Quote (WallFuck) а вот переменные можно использовать только до 31@? Да, для каждого скрипта выделен блок в 32 локальные переменные. Есть ещё переменные-таймеры: 32@ и 33@ - значения, записанные в них, автоматически увеличиваются с каждой миллисекундой прошедшего времени на 1.
|
|
| |
slavig_95 | Дата: Среда, 30.03.2011, 17:35 | Сообщение # 66 |
Группа: Пользователи
Сообщений: 3
Статус: Offline
| Den_spb, Возможно ли в СА сделать автоинформатор?К примеру к автобусам: при подъезде к остановке нажать клавишу или комбинацию клавиш и начинает проигрываться аудио файл с названием остановки
|
|
| |
Den_spb | Дата: Среда, 30.03.2011, 19:01 | Сообщение # 67 |
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
| Quote (slavig_95) Den_spb, Возможно ли в СА сделать автоинформатор?К примеру к автобусам: при подъезде к остановке нажать клавишу или комбинацию клавиш и начинает проигрываться аудио файл с названием остановки Возможно. Для проверки нажатия клавиш надо использовать опкод 0AB0, а опкоды для воспроизведения собственных звуков можно найти в справке CLEO4.
|
|
| |
WallFuck | Дата: Среда, 30.03.2011, 21:56 | Сообщение # 68 |
Группа: Проверенные
Сообщений: 56
Статус: Offline
| Den_spb, а можно ли сделать скрипт чтобы машины на большой скорости не влетали друг в друга? если да то как? Добавлено (30.03.2011, 21:56) --------------------------------------------- да и еще можно ли делать переменую с любым названием? например $polmansf
|
|
| |
Den_spb | Дата: Среда, 30.03.2011, 22:08 | Сообщение # 69 |
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
| Quote (WallFuck) Den_spb, а можно ли сделать скрипт чтобы машины на большой скорости не влетали друг в друга? если да то как? Самого интересует этот вопрос, так что возможно такой скрипт появится. Quote (WallFuck) да и еще можно ли делать переменую с любым названием? например $polmansf Как я уже говорил, в CLEO-скриптах глобальные переменные не применяются. При скриптинге в main.scm глобальные переменные использовать можно, в этом случае добавленным переменным можно давать любые названия.
|
|
| |
WallFuck | Дата: Среда, 30.03.2011, 22:37 | Сообщение # 70 |
Группа: Проверенные
Сообщений: 56
Статус: Offline
| у меня такой скрипт который раставляет по всему штату посты дпс и там не хватит 31 переменых
|
|
| |
Den_spb | Дата: Среда, 30.03.2011, 23:38 | Сообщение # 71 |
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
| Quote (WallFuck) у меня такой скрипт который раставляет по всему штату посты дпс и там не хватит 31 переменых Так не надо сразу создавать актёров по всему штату. Нужно проверить, к какой из точек игрок ближе всего, и в ней создать актёров. Если игрок переместится к другой точке, то актёров в старом месте нужно удалить, а в новом создать. Из-за этого скрипт немного усложнится, но зато будут рационально использованы ресурсы игры и не возникнет нехватки переменных.
|
|
| |
WallFuck | Дата: Четверг, 31.03.2011, 20:58 | Сообщение # 72 |
Группа: Проверенные
Сообщений: 56
Статус: Offline
| Den_spb, если не трудно напиши пример а то на словах я то понял но как это сделать незнаю)
|
|
| |
Den_spb | Дата: Четверг, 31.03.2011, 22:11 | Сообщение # 73 |
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
| Что конкретно непонятно?
|
|
| |
WallFuck | Дата: Пятница, 01.04.2011, 13:21 | Сообщение # 74 |
Группа: Проверенные
Сообщений: 56
Статус: Offline
| ну мне не понятно как сделать чтобы актер появлялся если он в зоне видимости игрока и исчезал когда игрок его не видит... Ну а остальное более менее понял.
|
|
| |
Den_spb | Дата: Пятница, 01.04.2011, 19:07 | Сообщение # 75 |
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
| Вот пример для двух точек:Code {$CLEO} wait 0 while true wait 50 if not player.Defined($player_char) then continue end if 00EC: actor $PLAYER_ACTOR 0 near_point 1812.369 -1929.922 radius 300.0 300.0 then 0@ = 0 3@ = 1812.369 4@ = -1929.922 5@ = 28.7 end if 00EC: actor $PLAYER_ACTOR 0 near_point 452.818 1182.5 radius 300.0 300.0 then 0@ = 1 3@ = 452.818 4@ = 1182.5 5@ = 22.4 end if 803B: not 0@ == 1@ // (int) then 0085: 1@ = 0@ // (int) if 056D: actor 2@ defined then 009B: destroy_actor 2@ end model.Load(#FAM1) repeat wait 0 until model.Available(#FAM1) actor.Create(2@ 4 #FAM1 3@ 4@ 5@) model.Destroy(#FAM1) end end В переменную 0@ записывается номер ближайшей точки, а в переменной 1@ хранится старый номер ближайшей точки. Если старый и новый номер не равны, то старый актёр удаляется и создаётся новый.
|
|
| |