Вопросы по созданию КЛЕО-скриптов
|
|
Den_spb | Дата: Пятница, 01.04.2011, 22:58 | Сообщение # 556 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Если скрипт не работает, то надо разбить его на отдельные части и проверить работоспособность каждой из этих частей. В данном случае я бы сначала проверил, нет ли проблем с загрузкой и воспроизведением звуков. Для этого проверку выбора элемента в панели можно заменить простой проверкой нажатия клавиши.
|
|
| |
klm88 | Дата: Вторник, 05.04.2011, 05:19 | Сообщение # 557 |
Группа: Пользователи
Сообщений: 21
Статус: Offline
| А что даёт команда: fade 0 0 ? Code create_thread ... create_thread...
fade 0 0
....
|
|
| |
Den_spb | Дата: Вторник, 05.04.2011, 17:16 | Сообщение # 558 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Команда fade применяется для кратковременного погашения экрана.
|
|
| |
Vital | Дата: Пятница, 08.04.2011, 19:01 | Сообщение # 559 |
Группа: Проверенные
Сообщений: 206
Статус: Offline
| fade 0 0 первый параметр определяет затемнение (0) или наоборот, просветление (сложно слово подобрать) (1) второй параметр - время затемнения/просветления в мс (1000 мс - 1 с)
SCRIPTER
|
|
| |
d88 | Дата: Суббота, 09.04.2011, 16:34 | Сообщение # 560 |
Группа: Проверенные
Сообщений: 113
Статус: Offline
| Den_spb, как в скриптинге работать с добавленными объектами? А то я их прописал, а СБ ID не находит.
|
|
| |
Den_spb | Дата: Суббота, 09.04.2011, 19:33 | Сообщение # 561 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Quote (d88) Den_spb, как в скриптинге работать с добавленными объектами? Всё как обычно - загружается модель, создаётся объект, потом модель выгружается из памяти. В командах, как всегда, указывается ID-номер модели. Quote (d88) А то я их прописал, а СБ ID не находит. В списке моделей, который появляется при вводе знака #, добавленных моделей не будет. Но функция перевода ID-номера в имя модели и обратно должна работать в любом случае, если добавленная модель присутствует в одном из IDE-файлов.
|
|
| |
Vital | Дата: Понедельник, 11.04.2011, 13:46 | Сообщение # 562 |
Группа: Проверенные
Сообщений: 206
Статус: Offline
| Можете, пожалуйста, помочь с миссией. Я сделал cleo миссию, она нормально запускается, все идет нормально, все тексты есть, но также имеется пара проблем. 1) Вылет после успешного прохождения 2) Человек, который должен стоять на кране, постоянно падает, какой угол ему сделать? 3) Анимация "IDLE_CHAT" не проигрывается, хотя по идее должна работать (файл PED) Вот код миссии. Доступно только для пользователей Я уже несколько шаблонов перепробовал, ничего нового, все те же проблемы... Я не пробовал проваливать миссию пока что. Если надо, покажу и стартер миссии, хотя проблема явно не в нем. Жду вашей помощи. Заранее спасибо.
SCRIPTER
|
|
| |
Den_spb | Дата: Понедельник, 11.04.2011, 16:25 | Сообщение # 563 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Quote (Vital) 1) Вылет после успешного прохождения Загляни в scmlog. Quote (Vital) 2) Человек, который должен стоять на кране, постоянно падает, какой угол ему сделать? Надо не угол менять, а координаты местонахождения актёра. Quote (Vital) 3) Анимация "IDLE_CHAT" не проигрывается, хотя по идее должна работать (файл PED) Попробуй убрать команды 05BA: AS_actor 1@ move_mouth
|
|
| |
Vital | Дата: Понедельник, 11.04.2011, 19:39 | Сообщение # 564 |
Группа: Проверенные
Сообщений: 206
Статус: Offline
| Den_spb, спасибо за советы. То, что после успешного прохождения, говорит то, что надпись "миссия выполнена" проходит и идет вылет сразу. Попробую scmlog. 2) Координаты правильные, создавал объект в Med, объект точно на кране, но немного выше, чтобы актер не был в кране. Он немного падает, как после мелкого падения (я не видел, но думаю) и наверняка идет анимация, как актер идет чуть вперед от падения и грохается вниз... когда я прихожу, он постоянно валяется дохлый около дружков... уже надоело это видеть у него же снайперка еще, так что для интереса к миссии он обязателен. Ну с ним я разберусь сам. SCMLog у меня не работает... я уже сам создал scmlog.log, а он как не работал, так и не работает... пробовал 2 раза. Я поставил .cleo и .ini файлы в папку cleo
SCRIPTER
Сообщение отредактировал Vital - Понедельник, 11.04.2011, 20:08 |
|
| |
Den_spb | Дата: Вторник, 12.04.2011, 00:07 | Сообщение # 565 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Можно поочерёдно вставлять задержки (wait) за командами, выполняющимися после вывода текста. Так можно узнать, на какой команде происходит вылет.
|
|
| |
ILYALION | Дата: Среда, 13.04.2011, 22:46 | Сообщение # 566 |
Группа: Проверенные
Сообщений: 325
Статус: Offline
| Немного изучив справку sanny builder и Ваши советы, я создал свой первый cleo скриптCode {$CLEO} 0A95: wait 0 model.Load(1412) 038B: load_requested_models if and model.Available(1412) object.Create(1@,1412,2504.7883,-1668.9213,12.5) object.Angle(1@) = 0.0 0A93: Скрипт создаёт забор у дома сиджея. У меня вопросы: как сделать так, чтобы на расстоянии 200 м модели выгружались из памяти? А потом, когда снова подходишь к забору ближе, чем на 200 м, модели снова вгружались в память. А то я снёс забор, отъехал на приличное расстояние, а забор не появился(Хотя в игре всегда так: если снести какой-нибудь забор, то потом он снова появится). И нужна ли задержка (wait 0)?Добавлено (13.04.2011, 22:07) --------------------------------------------- И я думаю, вместо if and надо писать if Добавлено (13.04.2011, 22:46) --------------------------------------------- А что писать, если я хочу создать несколько заборов? Я думаю, что Code {$CLEO} 0A95: wait 0 model.Load(1412) 038B: load_requested_models if and model.Available(1412) object.Create(1@,1412,2504.7883,-1668.9213,12.5) model.Available(1412) object.Create(1@,1412,2514.7883,-1668.9213,12.5) object.Angle(1@) = 0.0 0A93:
|
|
| |
Den_spb | Дата: Четверг, 14.04.2011, 00:28 | Сообщение # 567 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| У тебя неверно реализовано условие. Надо было написать так:Code {$CLEO} 0A95: model.Load(1412) :Metka wait 0 if model.Available(1412) jf @Metka object.Create(1@,1412,2504.7883,-1668.9213,12.5) model.Destroy(1412) 0A93: Механизм работы: если проверка даёт ложный результат (модель не загружена), то благодаря команде jf @Metka выполнение скрипта будет продолжаться со строчки, в которой стоит указанная метка (:Metka). Если проверок несколько (не больше 7), то вместо if надо писать команду if and или if or - подробно об этом написано в справке SB (глава Условия). Можно применить неотложную загрузку моделей (команда 038B) - в этом случае отпадает надобность в проверке на загруженность модели:Code {$CLEO} 0A95: model.Load(1412) 038B: load_requested_models object.Create(1@,1412,2504.7883,-1668.9213,12.5) model.Destroy(1412) 0A93: После создания объекта модель больше не нужна и мы выгружаем её из памяти командой model.Destroy. Quote (ILYALION) А что писать, если я хочу создать несколько заборов? Я думаю, что С учётом указанных моментов код немного изменится:Code {$CLEO} 0A95: model.Load(1412) 038B: load_requested_models object.Create(1@,1412,2504.7883,-1668.9213,12.5) object.Create(1@,1412,2514.7883,-1668.9213,12. 5) m odel.Destroy(1412) 0A93: Угол создаваемого объекта, транспорта или актёра по умолчанию равен 0.0. Quote (ILYALION) И нужна ли задержка (wait 0)? Задержка нужна в участках кода, выполнение которых может осуществляться много раз подряд. Такие участки называются циклами. Пример цикла:Code :Metka wait 0 if model.Available(1412) jf @Metka Quote (ILYALION) У меня вопросы: как сделать так, чтобы на расстоянии 200 м модели выгружались из памяти? Модель должна выгружаться сразу после создания объекта. А то, что ты имеешь ввиду, называется удалением объекта. Для реализации данной идеи необходимо применение цикла, в котором нужно будет проверять, находится ли игрок рядом с местом создания объекта (actor near point). Если игрок находится рядом с этим местом, то далее нужно проверить, существует ли объект (object exists). Если объект не существует, то его нужно создать. Указанные команды легко найти с помощью Поиска опкодов (Сервис-Инструменты-Поиск опкодов). Вообще объекты проще и лучше расставлять не скриптом, а с помощью Map Editor - если, конечно, над объектами в дальнейшем не планируется производить какие-либо действия.
|
|
| |
ILYALION | Дата: Четверг, 14.04.2011, 12:33 | Сообщение # 568 |
Группа: Проверенные
Сообщений: 325
Статус: Offline
| Quote (Den_spb) объекты проще и лучше расставлять не скриптом, а с помощью Map Editor Просто я хотел создать скрипт "автопарк"-место, огороженное забором, в котором стоят автобусы Quote (Den_spb) Угол создаваемого объекта, транспорта или актёра по умолчанию равен 0.0. А как изменить угол? У меня была команда object.Angle(1@) = 0.0
|
|
| |
izerli | Дата: Четверг, 14.04.2011, 14:50 | Сообщение # 569 |
Группа: Проверенные
Сообщений: 90
Статус: Offline
| Quote (ILYALION) А как изменить угол? У меня была команда object.Angle(1@) = 0.0 вместо 0.0 пишешь необходимый тебе угол.
|
|
| |
Vital | Дата: Четверг, 14.04.2011, 21:07 | Сообщение # 570 |
Группа: Проверенные
Сообщений: 206
Статус: Offline
| Только не забудь, что угол всегда дробный! То есть, если надо 90 градусов, пишешь 90.0 а можно точнее угол делать, например 90.57
SCRIPTER
|
|
| |