Версия:3.0 Назначение:Сталкер ТЧ/ЧН/ЗП Автор:Stalk15 Тестеры:Comador, Viнt@rь Требования: NET framework 3.5
Краткое описание: Программа, упрощающая создание скриптовых окон. С её помощью можно быстро и наглядно создавать скриптовые окна, при этом код самому писать не нужно. Программа сама генерирует скрипт и файл-описатель элементов(xml). Остается лишь положить сгенерированные файлы в игру и вызвать запуск меню.
Подробное описание:
Программа будет полезна как новичкам, так и опытным модмейкерам. Новички, пользуясь программой, могут создать свое окно и при этом им не нужно знать все возможности пользовательского интерфейса в Сталкере и копаться в ресурсах игры в поисках примеров. Все это есть в программе. Опытным модмейкерам программа значительно ускорит создание окна.
Возможности программы: - Добавление элементов(кнопки, текст. поля и т.д) одним кликом мыши. - Визуальное редактирование расположения, размеров и свойств элементов на экране. - Автоматическое создание скрипта и файла-описателя элементов(xml) в соответствии с добавленными элементами. - Генерация функций открытия и закрытия созданного окна, функций, обрабатывающих события элементов(например, нажатие кнопки), функций получения и установки параметров элементов. - Во многих сгенерированных функциях присутствуют комментарии для лучшей ориентации по скрипту. - Что бы долго не искать нужную текстуру в списке, программа создает второй список, где предлагаются наиболее подходящие текстуры для определенного элемента. Список доступных элементов: Button, Static, List, EditBox, CheckBox, TabControl, Frame, FrameLine, SpinNum, TrackBar, RadioGroup, ComboBox, ProgressBar. Описание и назначение элементов смотрите в разделе "инструкция".
В программе присутствуют конфигурации создаваемых проектов. От выбранной конфигурации зависит набор текстур, используемых в проекте и некоторые другие параметры. Изначально в программе три стандыртных конфигурации - Тень Чернобыля, Чистое Небо и Зов Припяти. Если Вы создаете скриптовое окно для вашего мода, в котором присутствуют новые текстуры(текстуры кнопок, например), то следует создать новую конфигурацию, что бы задействовать в проекте новые текстуры.
Инструкция:
1. Размещение элементов. Что бы добавить новый элемент, нужно в левой колонке выбрать имя элемента(button, Static ...) и кликнуть туда, куда хотите добавить элемент. С левой стороны отображаются свойства выделенного элемента, а ниже панель с описанием, за что отвечает выделенное свойство. Для того, что бы изменить одно свойство сразу нескольким элементам, удерживая клавишу "Ctrl", выделите нужные элементы. Теперь при изменении свойства оно будет менятся у всех выделенных элементах. Для удаления элемента нужно кликнуть правой мышью по элементу и нажать "удалить".
2. Описание и назначение элементов Текстуры на некоторых элементах состоят из нескольких частей. Например, если текстовому полю назначить текстуру с именем ui_linetext_d, то текстура на элементе сложится из следующих текстур: ui_linetext_d_b(левая граница), ui_linetext_d_back(середина(основная)), ui_linetext_d_e(правая граница). Выбирая текстуру, обращайте на это внимание.
Button - Кнопка. При нажатии возникает событие. Кнопка имеет 4 текстуры и 4 состояния. Каждая текстура соответствует своему состоянию кнопки. Возможные состояния: 1 - обычное, 2 - курсор наведен на кнопку, 3 - кнопка нажата, 4 - кнопка недоступна(отключена). Static - Статический элемент(текст, изображение, видео). List - Список, их которого пользователь может выбрать элементы. EditBox - Текстовое поле. CheckBox - Позволяет пользователю включить/отключить соответствующий параметр. TabControl - Коллекция вкладок, содержащих элементы. Frame - Рамка. Имеет текстуру, сложенную из 8 или 9 текстур(левый верхний угол, верхняя часть, правый верхний угол, правая часть и так далее по кругу). Наличие средней текстуры не обязательно. FrameLine - Представляет собой вертикальную или горизонтальную полосу. Также, как и EditBox имеет текстуру, сложенную из 3 частей, но в отличии от EditBox текстура может накладываться вертикально. SpinNum - Отображает числовое значие, которое пользователь может увеличить или уменьшить с помощью кнопок "вверх-вниз". Возможности выбора текстуры не имеет. TrackBar - Позволяет пользователю выбрать диапазон значений с помощью ползунка, движущегося по полосе. Возможности выбора текстуры не имеет. RadioGroup - Позволяет пользователю выбрать определенный параметр из группы в комбинации с другими флаговыми кнопками. Возможности выбора текстуры не имеет. ComboBox - Текстовое поле с раскрывающимся списком значений для выбора одного их них. Возможности выбора текстуры не имеет. ProgressBar - Индикатор изменения какого-либо значения или прогресса в виде полосы.
3. Применение элемента Button При выборе текстуры для кнопки можно увидеть опцию "Расширенный выбор текстуры". Этой опцией стоит воспользоваться, если Вам нужно самостоятельно назначить текстуру для каждого состояния кнопки. После включения опции "Расширенный выбор текстуры" станут доступны 4 переключателя, которые соответствуют определенному состоянию кнопки: Idle - текстура кнопки в обычном состоянии, MouseEnter - текстура кнопки при наведении курсора на кнопку, MouseClick - текстура кнопки при нажатии мышкой по кнопке, Disabled - текстура кнопки в отключенном состоянии. Что бы выбрать текстуру для определенного состояния кнопки, включите нужный переключатель и кликните два раза по нужной текстуре в списке. Имя выбранной текстуры будет отображаться напротив переключателя. Если для любого из состояний кнопки текстуру не выбрать, то в этом состоянии кнопка будет без текстуры.
4. Применение элемента TabControl Для добавления новой вкладки нужно кликнуть правой мышью по свободному месту TabControl'а и в появившемся меню нажать "Добавить вкладку". В этом же меню можно сделать TabControl прозрачным/непрозрачным. Прозрачным TabControl стоит делать тогда, когда все элементы размещены и вы не нуждаетесь в видимости границ TabControl'а. Что бы добавить к вкладке элементы, нужно нажатием по вкладке выделить её и кидать элементы на TabControl.
5. Применение элемента ProgressBar Элемент ProgressBar выглядит красивее, когда на заднем фоне имеется шкала. Это создает эффект заполнения шкалы. Что бы добиться такого эффекта, разместите в проекте элемент Static, назначте ему текстуру со шкалой(например, ui_sega_healph) и поверх шкалы разместите ProgressBar так, что бы он совпадал со шкалой.
6. Создание новой конфигурации. От выбранной конфигурации зависит набор текстур, используемых в проекте и некоторые другие параметры. Изначально в программе три стандыртных конфигурации - Тень Чернобыля, Чистое Небо и Зов Припяти. Если Вы создаете скриптовое окно для вашего мода, в котором присутствуют новые текстуры(текстуры кнопок, например), то следует создать новую конфигурацию, что бы задействовать в проекте новые текстуры. Что бы создать новую конфигурацию, нужно зайти в меню "Инструменты" и выбрать "Настройки". В появившемся окне введите имя новой конфигурации и нажмите "Добавить". Далее укажите путь к папке gamedata и начнется создание конфигурации.
7. Компиляция проекта. После того, как все нужные элементы размещены, нажмите "Проект -> Построить". Зайдите в папку, куда Вы сохранили проект. Для использования в игре пригодятся два файла - .script и .xml файл.
Скриншоты:
Если вы нашли ошибку или есть какое-нибудь пожелание, то пишите, программа будет дорабатываться.
SUIC_Videos - Скачать Добавляет в программу видео файлы из игры, которые могут быть использованы при создании проекта. Если у Вас есть распакованная gamedata, то Вы можете взять видео от туда. Стандартные конфигурации создаются при первом запуске программы, поэтому добавлять видео желательно перед первым запуском программы. Видео добавлять сюда: "папка с программой"\data\default_res\"SHOC/CS/COP"\textures\ui\. Если конфигурации уже созданы, то видео файлы добавлять в нее нужно по пути: "папка с программой"\data\configurations\"имя конфигурации"\textures\ui\
PS:
Есть идея добавить в программу и, соответственно, в игру новые элементы пользовательского интерфейса, такие, как: - ContextMenuStrip - контекстное меню. Используется в инвентаре. Зашито в движок, поэтому для модмейкеров недоступно. - Многострочный EditBox - SpinText - отображает строковое значие, которое пользователь может выбрать с помощью кнопок "вверх-вниз". Используется в настройках мультиплеера. Возможности добавления своих параметров нет, поэтому для модмейкеров не интересен. - Анимированные и движущиеся элементы. Например, титры. Пригодится модмекерам для создания титров к своему моду. Плюс к этому новые возможности, такие, как перетаскивание элементов(например, как в инвентаре), всплывающая подсказка(в ЗП есть, но в ТЧ и ЧН не доступна). Но это по мере надобности. Контекстное меню:
Сообщение отредактировал Stalk15 - Пятница, 13.09.2013, 18:40
Не баг, скорее недочет: Form1, в качестве имени программы на панели инструментов.
Добавлено (21.08.2013, 15:26) --------------------------------------------- Если хотите заюзать созданное окошко под ЧН\ЗП, попробуйте сделать так: Замените:
Код
self:Init(тут значения, их следует скопировать в отдельный файл)
На
Код
self:SetWndRect (Frect():set(Сюда вставить значения, которые мы копировали))
Может быть и заработает, но я переносил окна (сделанные не в утилите, делал достаточно давно), вроде так.
Нашел баг - при генерации скриптов и xml, в xml используется кодировка UTF-8, а сталкер нормально его не читает, из-за чего в игре, в окошке вместо надписей - каракули.
Сообщение отредактировал Wookie - Среда, 21.08.2013, 18:25
Наверное, полезная вещь для новичков. За труды большой плюс. Но в целом я предпочитаю делать подобные операции руками. Точно также, как и не вижу смысла в утилитах создания еды. По поводу платформ. Что лучше: BMW, Mercedes, или Audi? Кому как. А спорить тут бесполезно. Поэтому согласен с Геоонзисом. Как по мне, ЗП удобней всего. Только текстуры размытенькие. Рендер, если не ошибаюсь, фиговый. Моды на ТЧ, хоть многие его любят, вряд ли когда-то буду делать. Для меня он непривычный и неудобный (в плане ковыряния). Более того, не помню, чтоб я прошел хоть один мод на ТЧ. Сколько пробовал, не сильно понравились. Оригинал лучше.
Цитата (marafonec)
Хочется убить Сталкер - переходите на ЧН и ЗП
Хм, а почему и как мы таким образом убиваем "Сталкер"? Тут уже больше дело в качестве и атмосфере мода. Платформа необязательно должна играть основную роль, как по мне.
Поэтому согласен с Геоонзисом. Как по мне, ЗП удобней всего.
Разве речь про удобство? Я, например, не только делать не буду, а даже проходить хоть какой-то мод на ЧН и ЗП не буду, и что от этого что-то изменится? Просто очень уж безапелляционный второй пост в теме был: "Будущее за ЗП!" - вот на него и ответил. Это уж кому как - кому зеленый фломастер нравится, кому - красный. :)