-
Число публикаций
364 -
Регистрация
-
Последнее посещение
-
Дней в топе
11 -
AMKoin
9,637 [Подарить AMKoin]
Закладки
-
Уроки по модостроению
Уроки по модостроению
Эта мини-статейка пригодятся тем, кто например прописывает оружие в торговлю, а оно появляется в руках у торговца. Соответственно оружие нельзя купить. Тоже самое с другими предметами: детекторами и т.д.
Автор: Shadows
Сложность: ЛегкоИтак:
Проследуем в файл: gamedata\config\creatures\m_stalker.ltx
В этом файле найдем секцию: [stalker_trader]:stalker
Ниже находим строчки:use_single_item_rule = off can_select_items = on
и меняем наuse_single_item_rule = off can_select_items = off
Если же can_select_items = off прописать в самой секции сталкеров, тогда все НПС отказываются менять оружие и предметы на лучшее.
Автор: Shadows
Все мы знаем, что Сталкер ТЧ понимает только одноканальные звуки. И кто например вытягивает звуки из ЗП\ЧН сталкиваются с тем, что там они двухканальные, т.е. стерео. И при переносе игра ругается на стереозвуки. И вот я полазив по интернету нашел программу, которая переводит звуки из стерео в моно. На самом деле там огромное количество функций. Самое замечательное, что эта программа читает OGG формат - формат звуковых файлов в сталкере. Ничего предварительно конвертировать не надо. Программа называется Adobe Audition 3.0.
К делу.
1. Скачиваем программу.
2. Запускаем прогу. Нажимаем "Мультитрек". На самой верней "полоске" нажимаем ПКМ "Вставить\Аудио". В открывшемся окне, внизу выбираем OGG и выбираем свой файл.
3. Он появляется в нашей "полоске". Нажимаем на нем ПКМ внизу выбираем "Микшировать в новый файл\Главный выход в сессии (Моно)". Ждем.
4. После окончания "Микширования" жмем "Файл\Сохранить как". Выбираем внизу OGG формат и сохраняем.
Все!
Очень много кто интересовался как же это сделать, однажды заинтересовался и я. И нашел как.
Автор: Shadows
Сложность: Легко
Итак:
Проследуем в файл: gamedata\config\ui\map_spots_relations.xml
В этом файле найдем строчку:<enemy_mini_spot width="4" height="4" stretch="1" alignment="c" xform_anim="map_spot_rel_xform" xform_anim_cyclic="0">
И заменим на:<enemy_mini_spot width="0" height="0" stretch="1" alignment="c" xform_anim="map_spot_rel_xform" xform_anim_cyclic="0">
Здесь мы сузили точку врагов по ширине и длине до нуля, использую параметры width= и height=.
Авторы: Shadows и XMK
Сложность: Средне
Как сфотографировать карту локации
Эта часть тутора посвящена тем кто хочет сделать текстуры карт новых локаций
Итак:
0. Скачиваем программу Adobe Photoshop (Тестировалось на версии CS4)
1. Переводим в настройках, игру на Статическое освещение (DirectX 8) и перезапускаем игру
2. Загружаем сейв на локации
3. В консоле вводим команду: sv_setweather map
4. В консоле вводим команду: demo_record 1
5. После появления мигающих надписей жмем клавишу F11
6. В папке со скриншотами появляется новый файл с разрешением TGA (Файл Фотошопа). Так же в названии файла появляются цифры - это координаты параметра bound_rect (Положения игрока на карте локации)
7. Переводим этот файл из разрешения TGA в DDSКак прикрепить карту локации на глобальную карту в ПДА
Часть 1. Теория
Попробуем вначале разобраться, что такое глобальная карта и как она работает. Откуда на ней все карты локаций, и каким образом открывая ПДА в разделе карты мы видим метки Кордона на участке обозначающем Кордон, а метки например, Складов – там где они и должны быть.Итак… Папка gamedata\config, файл game_maps_single.ltx. Откроем его. Поясню, что там внутри за что отвечает.
[level_maps_single] L01_escape L02_garbage L03_agroprom L03u_agr_underground l04_darkvalley l04u_LabX18 L05_bar L06_rostok l07_military l08_yantar l10_radar l11_pripyat l12_stancia l12_stancia_2 l12u_control_monolith l12u_sarcofag l08u_brainlab
Эта секция перечисляет все уровни, что есть в игре. Как видно – от Кордона до ЧАЭС-2, включая все подземные уровни. Это список из ТЧ, оригинальная игра.
[level_music_tracks] music\amb01 = 0, 12, 0.5, 10,20 music\amb03 = 0, 12, 0.5, 10,15 music\amb07 = 12,24, 1.0, 5, 25
Понятия не имею что это, но наверно что-то про музыку… Нам не понадобится.
[global_map] texture = ui\ui_global_map bound_rect = 0.0,0.0, 1024, 2634.0 max_zoom = 6.0
А вот это самое главное. Здесь определена текстура – она лежит по адресу gamedata\textures\ui, называется ui_global_map – обратите внимание, текстура без расширения указана. bound_rect – это игровые координаты текстуры, нечто вроде сетки координат на глобальной карте. Четыре числа означают крайние точки координат – верхний левый угол глобальной карты имеет координаты 0,0 а нижний правый угол глобальной карты имеет координаты 1024,2634. ОБРАТИТЕ ВНИМАНИЕ, это не пиксели! Сама текстура имеет размер 1024*2048, а может быть и любого другого – но для игры высота карты берётся равной 2634 пункта, при том что ширина сохраняется 1024. Это очень важное замечание – его важность поясним дальше. Max_zoom – тут я думаю ясно, это максимально разрешённое увеличение. То есть самое большее насколько можно «приблизить» изображение в ПДА открыв глобальную карту это в 6 раз. Попробуйте поставить другие значения – иногда получается интересно.
Дальше файл заполнен однотипными секциями, описывающими уровни и расположение их карт на глобальной карте. Возьмём несколько для разбора, скажем, Кордон, Агропром, ну и пожалуй, Припять.[l01_escape] texture = map\map_escape bound_rect = -317.164, -633.718, 404.880, 811.627 global_rect = 355.0,2011.0, 576.0,2453.000000 weathers = default music_tracks = l01_escape_musics [l03_agroprom] texture = map\map_agroprom bound_rect = -266.505, -355.611, 331.388, 213.838 global_rect = 161.0, 1834.0, 344.0,2008.293945 weathers = default ;music_tracks = l03_agroprom_musics music_tracks = l01_escape_musics [l11_pripyat] texture = map\map_pripyat bound_rect = -529.399, -457.516, 574.854, 769.050 global_rect = 457.0, 586.0, 798.0, 964.770996 weathers = pripyat music_tracks = l11_pripyat_musics
Теперь подробно о каждом параметре.
Texture – это текстура карты локации. Именно она показывается на мини-карте в игре, именно она же НАКЛАДЫВАЕТСЯ (да-да, сама накладывается) на глобальную карту в том месте, где мы захотим.
bound_rect – это описание крайних координат локации ВНУТРИ самой локации. Тут наверно нужно пояснить. Любой кто имел дело с координатами на уровнях, замечал что икс и игрек (высоту сейчас не будем принимать в расчет) бывают не только положительными, но и отрицательными. Точка на уровне имеющая координаты (0,0) это не угол карты, как можно было бы предположить, а где-то около её середины. Например, на Кордоне точка с координатами 0,0 расположена недалеко от поста Кузнецова под мостом. А вот возле бункера Сидоровича координата икс у игрока (или чего угодно другого, любого объекта в игре) будет отрицательная. А возле блокпоста военных (тот, что на юге, вниз по дороге от деревни новичков) координата игрек будет отрицательной. Так вот, в строке bound_rect последовательно указаны самые минимальные координаты локации и самые максимальные. То есть самый меньший икс, потом самый меньший игрек, потом самый большой икс, и четвёртое число – самый большой игрек. Обратите внимание, эти координаты – вовсе не там, где можно побегать. Нет. Речь идёт об УГЛАХ локации, там где заканчивается земля и начинается пустота. На кордоне юго-западный угол имеет координаты -317.164, -633.718, а северо-восточный 404.880, 811.627. Точность указана до сотых.
Вот составил пояснения чисел, для редактирования bound_rect:
Например:bound_rect = -256.776, -745.382, 1398.440, 850.482
(ххх.х - число)
ххх.х - коорд. в ПДА по х, ххх.х - коорд. минимапы по у, ххх.х - коорд. минимапы по х, ххх.х - коорд. в ПДА по у.
Увеличиваем значение - метки на карте ползут вниз, уменьшаем - вверх.global_rect – вот это именно то, что нам надо. Это – координаты прямоугольника на глобальной карте, тот кусочек куда будет вписана (наложена) карта локации, и где будут с учётом масштаба отображаться все метки локации. Метод указания координат аналогичен, берутся два угла, первый северо-ЗАПАДНЫЙ, второй юго-ВОСТОЧНЫЙ. Обратите внимание, при определении координат на локации отсчёт игрека идёт снизу вверх, а тут наоборот, сверху вниз. То есть точка с координатами 50, 100 будет ВЫШЕ чем точка 50, 200. А точка с координатами 50, 0 – вообще на самом верху. В то время как точка с координатами 50, 2634 – на самом низу глобальной карты. Вообще правило отсчёта координат от верхнего левого угла текстуры характерно для СТАЛКЕРа, не знаю как для других игр использующих dds формат, может так же. Посмотрим на глобальные координаты карты Кордона на большой, глобальной карте.
global_rect=355.0,2011.0,576.0,2453.000000
Получается, прямоугольник куда будет вписана карта Кордона определён двумя точками. Первая с координатами (на глобальной карте!) 355.0,2011.0, а вторая с координатами 576.0,2453.000000. Зачем столько нулей – не спрашивайте. Не знаю. Но по этим координатам видно, что карта Кордона будет вписана в прямоугольник, который начинается от 355 по икс и 2011 по игрек и заканчивается на 576 по икс и 2453 по игрек. Итого на глобальной карте размер карты Кордона составит 221*442 пункта. Повторюсь – это не пиксели, а пункты, количество которых определено во второй секции конфигурационного файла, который мы сейчас разбираем.Интересно, что подземелья Агропрома, например, на глобальной карте тоже есть – но для них отведено всего лишь 2*3 пункта, и находятся они почти посередине карты Агропрома! Именно поэтому когда игрок находится в подземке, его метка всегда светится в районе завода, где прятался Крот при первом заходе на локацию, и практически неподвижна. Похожим образом сделано и с лабораторией Х18 – она на глобальной карте расположена справа от Радара, но размер её прямоугольника всего 2*2 пункта.
Часть 2 Практика
Итак, у нас имеется локация, у которой имеется карты – textures\map\map_lost_villiage.dds например.
bound_rect уже известен, если нет перечитайте предыдущую часть.Открываем файл ui_global_map.dds через программу Stalker Icon Viewer и снимаем координаты верхнего левого угла будущего места расположения локации. Снимаем как? Просто наводим курсор на понравившееся место, и смотрим внизу координаты (Pixel:) Х и У
Итак допустим у нас получились координаты: x=180, y=370
Из предыдущей статьи вы возможно узнали что в конфиге глобальная карта имеет координаты 1024,2634, в то время когда текстура всего 1024x2048.
Что мы делаем? Запускаем калькулятор и делим 2634 на 2048, у нас получается 1.2861328125Далее умножаем координату y(370) на получившееся значение (1.2861328125), у нас получаться 475.86... (округлим)
Далее все просто, скажем наша карта локации 100на100, задаем в global_rect нашей локации 180.0, 475.86, 280.0, 575.86
180.0 - координата x левого края текстуры локации
475.86 – число, которое мы получили, координата верхнего края текстуры локации
280.0 – координата x правого края текстуры локации. Прибавляем к координате левого края локации ширину карты
575.86 - координата y нижнего края текстуры локации. Прибавляем к координате верхнего края локации высоту картыВот собственно и всё.
Внимание! Для работы метода необходимы функции АМК мода!
Автор: Shadows & Co
Сложность: Легко
ID будем задавать прямо в функции спавна. Пишем в своем скрипте:
function npc_spawn() -- имя функции local obj = alife():create("профильное_имя_нпс",vector():set(x,y,z),level_vertex,game_vertex) -- координаты local tbl = amk.read_stalker_params(obj) tbl.sid = 97120 -- ID - любое число, но оно не должно повторятся с уже существующими (см. файл: game_story_ids в конфигах) amk.write_stalker_params(tbl, obj) end
Благодаря этому способу, можно например поставить метку на заспавненного скриптом НПС...
Внимание: после спавна НПС нужно сделать сейв\лоад, чтобы ID заработал.
-
Stalker UI Creator
Инструментарий для мододеловStalker UI CreatorВерсия: 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 файл.Скриншоты:Если вы нашли ошибку или есть какое-нибудь пожелание, то пишите, программа будет дорабатываться.Скачать:
Stalker UI Creator - http://yadi.sk/d/-sckUFqu9DPGF
SUIC_Videos - http://yadi.sk/d/XLzs2nlr8q84s
Добавляет в программу видео файлы из игры, которые могут быть использованы при создании проекта. Если у Вас есть распакованная gamedata, то Вы можете взять видео от туда. Стандартные конфигурации создаются при первом запуске программы, поэтому добавлять видео желательно перед первым запуском программы. Видео добавлять сюда: "папка с программой"\data\default_res\"SHOC/CS/COP"\textures\ui\. Если конфигурации уже созданы, то видео файлы добавлять в нее нужно по пути: "папка с программой"\data\configurations\"имя конфигурации"\textures\ui\