Перейти к содержанию

gkalian

Администратор
  • Постов

    14 435
  • Зарегистрирован

  • Посещение

  • Победитель дней

    10

Весь контент gkalian

  1. Rybak2, это портирование Обливиона на движок Скайрима. И судя по всему некоторая вольность в процессе разработки.
  2. А откуда моделька гуара?
  3. Ну ты бы еще с какого-нибудь файлохостинга приложил бы ссылок, чтоб наверняка. Форум не обрабатывает все хостинги и видеоплееры эвар, для каждого сайта надо отдельно настраивать. 
  4. Можете создать тему. В раздел "Видео" больше нельзя выкладывать пользователям.
  5. gkalian

    Чат

    http://tesall.ru/index.php?app=core&module=usercp&tab=core&area=ignoredusers  
  6. gkalian

    Чат

    Што
  7. gkalian

    Чат

    Разошлись по разным углам. Не хотите читать чьи-то сообщения, заблокируйте пользователя.  И не переходите на личности. 
  8. Короткая обучающая статья про основы скриптописания - базовая информация Откройте конструктор. Откройте File --> Data. В появившемся окне кликните двойным щелчком на Oblivion.esm, жмите ОК и ждите пока загрузится. В окне объектов (Object Window) найдите отмычку (lockpick). Вы найдёте её в пункте Items --> Misc Item (Если не нашли отмычку, подойдёт любой другой предмет, например яблоко). Дважды кликните на предмете. Откроется окно свойств предмета.Там где написано Script: NONE , кликните на кнопку с 3 точками расположенную рядом.Откроется редактор скриптов. Откройте Script --> New, чтобы начать новый скрипт. Напишите следующее: ScriptName HelloWorld Begin OnAdd Message "Hello World!", 10 end Информация о скрипте: Первая строка это имя вашего скрипта.Проверьте чтобы оно было уникально. "Begin OnAdd" означает что скрипт сработает после того как вы подберёте этот предмет. Команда "end" заканчивает секцию скрипта, начатую командой "OnAdd" И, наконец строка "Message" управляет тем, что будет показано, "10"-время которое надпись будет видна на экране. Сохраните скрипт, закройте редактор скриптов и редактор свойств предмета, но после этого ваш скрипт ещё не появится. Вернитесь в окно свойств предмета и "HelloWorld" должен появться в меню для скриптов(Вам вероятно придётся закрывать окно свойств предмета и повторно открывать его, чтобы ваш скрпт появился в списке) Жмите кнопку Save и закрывайте окно. Откройте File --> Save, назовите файл "HelloWorld"(получится .esp файл с именем HelloWorld) Откройте стартовое меню Oblivion и нажмите Data Files. Двойной щелчок не файле HelloWorld.esp Войдите в игру, выбросите отмычку и подберите её. Вам должно выскочить сообщение "HelloWorld"! Добро пожаловать в скриптинг!
  9. Что делать, если автор не дал psc файлы? ...В помощь переводчику... Перевод - это великое дело, но что делать, если переводимый текст записан в функции MessageBox "ля ля - фа фа", а исходника (.psc файла) этого скрипта злобный автор не предоставил. Не унываем - выход есть: Bethesda снабдила нас возможностью дезассемблировать скрипты, просто не сказала нам об этом. Итак, как это сделать: Ну это в принципе ясно - ставим "конструктор" Находим папку %gamedir%\Papyrus Compiler и обращаем в ней внимание на файл PapyrusAssembler.exe - это и есть ассемблер скриптов, а он-же и дезассемблер, если задать соответствующий ключ. Как им пользоватся? А всё просто: Устанавливаем рабочую папку в папку с .pex файлом, который нужно дезассемлбировать Ну, это сделать так, чтоб в утилите cmd перед курсором писалось например e:\Skyrim\data\Scripts, короче путь к интересующей нас папке. Это можно сделать набором команд cd или перейти в файлменеджере (напр. Total commander) в нужную папку и в командной строке набрать cmd и нажать "ввод". В командной строке (можно, даже лучше, создать .bat файл) пишем: "%gamedir%\Papyrus Compiler\PapyrusAssembler" имя интересующего нас pex файла, только без расширения> -D Жмём ввод. Итого, если всё написано правильно т. е. если программа написала: 0 error(s), 0 warning(s) Disassembly succeeded То ищем в папке с .pex файлом файл формата "имя нашего pex файла.disassemble.pas" - это и есть дезассемблированный файл, который хоть и имеет специфический формат, сильно отличающийся от формата psc файла, но уже являющийся текстовым и его можно редактировать. Итак. Редактировать. А что редактировать? А то же (названия функций принципиально не изменены т. е. забивай в поиск название функции напр. MessageBox (или Message), находи строку, в которой она встречается и редактируй текст в "кавычках". Оригинальный скрипт Scriptname _test_testscript extendsObjectReference   {Тестовыйскрипт "Привет мир!"} EventOnActivate(ObjectReference akActionRef) Debug.MessageBox("Привет, мир!") endEvent Дезассемблированный скрипт   .info         .source "_test_testscript.psc"         .modifyTime 1336688266;FriMay1101:17:462012Local         .compileTime 1336688290;FriMay1101:18:102012Local         .user "Администратор"         .computer "USER-B390813CF2" .endInfo .userFlagsRef         .flag hidden 0  ;0x00000000         .flag conditional 1     ;0x00000001 .endUserFlagsRef .objectTable         .object _test_testscript ObjectReference                 .userFlags 0    ;Flags:0x00000000                 .docString "Тестовый скрипт\n\"Привет мир!\""                 .autoState                 .variableTable                 .endVariableTable                 .propertyTable                 .endPropertyTable                 .stateTable                     .state                            .functionOnActivate                                     .userFlags 0    ;Flags:0x00000000                                     .docString ""                                     .return NONE                                    .paramTable                                         .param akActionRef ObjectReference                                    .endParamTable                                    .localTable                                         .local::nonevar NONE                                     .endLocalTable                                     .code                                   CallStatic debug MessageBox::nonevar "Привет, мир!"  ;@line6                                     .endCode                             .endFunction                             .functionGotoState                                     .userFlags 0    ;Flags:0x00000000                                     .docString "Function that switches this object to the specified state"                                     .return NONE                                     .paramTable                                           .param newState String                                     .endParamTable                                     .localTable                                            .local::nonevar NONE                                     .endLocalTable                                     .code                                             CallMethod onEndState self::nonevar                     ;@line??                                             Assign::state newState                                  ;@line??                                           CallMethod onBeginState self::nonevar                   ;@line??                                     .endCode                             .endFunction                             .functionGetState                                         .userFlags 0    ;Flags:0x00000000                                         .docString "Function that returns the current state"                                         .returnString                                         .paramTable                                         .endParamTable                                         .localTable                                         .endLocalTable                                         .code                                     Return::state                                 ;@line??                                    .endCode                             .endFunction                         .endState                 .endStateTable         .endObject Просмотрел? Увидел строку CallStatic debug MessageBox ::nonevar "Привет, мир!" ;@line 6 Это и есть интересующее нас место. Что тут менять - это и ежу понятно: "Привет мир!" (кавычки сохраняем - они - техническая часть текста) Ну поменяли. А что дальше? Да всё просто - ассемблируем! стираем из имени файла участок .disassemble и пишем всё то же, что и при дезассемблировании, только без ключа -D : "%gamedir%\Papyrus Compiler\PapyrusAssembler" имя интересующего нас pex файла, только без расширения> Если всё введено правильно то программа выдаст: 0 error(s), 0 warning(s) Assembly succeeded И создаст вожделенный .pex файл, который, ну, используем по назначению.  Всё! Скачать описание: в помощь переводчику.zip И ещё по одной... PapyrusAssembler Использование: PapyrusAssembler файл [-D] [-V] [-Q] [-A] [-S] [-?] Файл имя файла (путь берётся только из "рабочей папки", больше никак), который будет скомпилирован или декомпилирован. файл должен указыватся без расширения! Компилятор ищет файл с расширением ".pas". Декомпилятор ищет расширение ".pex". Внимание! декомпиляция не происходит, если имя файла скрипта не совпадает со стокой, начинающейся с байта 0Х12h в теле скрипта! (в нормальном состоянии строка дублирует имя файла) -D Дезассемблировать объект, если не указан - ассемблирует его. -V Включить подробный режим. (выводит туеву хучу всякой техинфы) -Q Включает тихий режим. (выводятся только сообжения об ошибках) -A Только анализ. Ассемблирование/дезассемблирование не производится. -S Удаляет отладочную информацию из скомпилированного (.pex) файла. Нельзя использовать с -A или -D -? Выводит справочную информацию PapyrusCompiler Использование: PapyrusCompiler файл или папка> [аргументы>] Объект Файл Указывает файл для компиляции. (-all не указан) папка Указывает папку для компиляции. (-all указан) Аргументы Один или несколько из следующих: -debug -d Включает режим отладки компилятора, на экран выводится техническая информация. -optimize -op Включает режим оптимизации кода скрипта. -output -o=путь к каталогу> Указвает каталог для записи скомпилированных скриптов. -import -i=путь к каталогу> Указвыает папки для импорта библиотек (тоже psc файлы) компилятором, разделённые ";". Обязателен для указания. Путь по умолчанию %gamedir%\data\scripts\source\ -flags -f=путь к файлу> Указывает путь к файлу с флагами, определёнными пользователем. Обязателен для указания. "дефолтный" файл флагов лежит по пути %gamedir%\data\scripts\source\TESV_Papyrus_Flags.flg -all -a Задаёт компилятору скомпилировать все psc файлы в заданной папке. (в качестве объекта должна быть заданна папка). -quiet -q Тихий режим. Отображаются сообжения только об ошибках. -noasm Ассемблер не вызывается и не производится ассемблирование скрипта. (короче только анализ) -keepasm Сохраняет ассемблер файл после завершения работы ассембера. (сохраняет pas файл) -asmonly Создаёт ассемблер файл, но не вызывает ассемблер. (создаёт pas файл, но не создаёт pex файл) -? Выводит справочную информацию. Файл TESV_Papyrus_Flags.flg (по умолчанию лежит в %gamedir%\data\scripts\source\TESV_Papyrus_Flags.flg.  Начинка по умолчанию и её описание: /* Формат строк задаётся следующим образом (пробелы игнорируются, index должен содержать 0 - 31 символов): Flag // Флаг применяется для всех типов или: Flag { список скриптов, параметров, переменных или функций> } // флаг применяется только для указанных типов */ // Список флагов для TESV - НЕ РЕДАКТИРОВАТЬ // Флаг прячет скрипт или параметр от игрового редактора. (ну небось типа в редакторе не отображается) Flag Hidden 0 { Script Property } // Флаг на объекте определяет его как скрипт, который будет рассматривать система состояний. // Флаг на переменоой определяет переменную скрипта как исследуемую системой состояний. // Сам нихера не понял, что это значит, но самый близкий перевод. Flag Conditional 1 { Script Variable } Скачать описание: папирус-справка.zip   ® Кащей tesall.ru
  10. Научный трактат для изощренных умов I. Создание новой организации Создать новую организацию в Морровинде просто. Зайдите в Character -> Faction, нажмите кнопку New и введите новый ID, а затем название своей организации в поле Name. То, что вы напишете в Name, будет видно игроку в диалогах и т.д., а ID видно только разработчику в КС. Однако не совсем ясно, зачем понадобилось создавать 2 поля - ID и Name, ведь информация, что в них написана, в оригинальном Морровинде просто дублируется. Однако, если вы проводите какие-то операции с этой организацией в скриптах и т.д., указывайте именно ID, а не имя. Например, ModPCFacRep, 5, "Imperial Legion" (повышает репутацию у игрока на 5 среди членов Имперского легиона). Обратите внимание - если вы начали создавать организацию, а вас что-то не устроило, то даже если вы нажмете на крестик, закрыв окно, ID и Name новой организации все равно останутся. Чтобы удалить организацию, используйте кнопку delete, что рядом с new. Приступаем к заполнению других полей в окне. Галочка Hidden from PC обещает сделать организацию не отображаемой для игрока в процессе игры. С помощью мышки можно выбрать Primary Skill, т.е. характеристики, которые ценятся в новой фракции, а также Favored Skills - навыки. Советую не писать, что левой ноге угодно, или что первое на глаза попалось, а тщательно продумать концепцию организации. В фентезийном мире, как правило, существует 3 направления - воины, маги и воры. Но в принципе в этом есть плацдарм, чтобы развернуться. Между прочим, уже можно записывать неписей в новую фракцию. Это делается через свойства персонажа. Теперь в топике «биография», если вы не написали оригинальную фразу или не повесили на персонажа скрипт с nolore, он будет представляться и называть «своим местом работы» эту новую фракцию. Итак, у нас уже достаточно материала для работы над плагином. На этом можно и остановиться, но если создавать полноценную организацию, то нужно продолжить. Какие черты у полноценных организаций в Морровинде? Конечно, в первую очередь система рангов! Начинаем создавать ранги. Это делается через выделение ячейки в специальном окне и нажатие кнопки F2. Тогда в ячейку можно будет вписать новое имя. Параллельно с надписью Favored Skill располагается несколько полей, куда вписываются значения характеристик, навыков и отношения среди членов фракции, которые необходимы для получения данного ранга. Разумеется, все это сделано для игрока. Обычного персонажа вы всегда можете записать в любые чины, независимо от его данных. Лучше всего сначала вписать все ранги, а потом отредактировать требования для них, чтобы карьерный рост шел равномерно. Если чувствуете, что добавили слишком много рангов, лишние можно удалить: выделите ячейку, нажмите F2 и клавишей back space (стрелочка над клавишей enter) снесите все знаки, - вместе с названием исчезнет весь ранг. В самом низу окна faction находится поле Reaction List, в котором можно указать реакцию (отношение к этой организации) других фракций. Правой клавишей мыши вызывает контекстное меню, нажимаем new, выбираем фракцию и выставляем отношение. Как видно, здесь можно вписать не значение расположения от 1 до 100, а только несколько цифр, так сказать, коэффициент расположения - это цифры -3, -2, -1, 0, 1, 2, 3. Соответственно, -3 обеспечивает самое негативное отношение, а 3 - самое высокое из возможных. Если вписать другие цифры, КС примет их, но при следующей попытке открыть плагин или запустить игру, устроит настоящую истерику по поводу «неправильного размера параметров» с отказом обрабатывать эти значения.   Все это также сделано только для игрока. Так что можно включить в список реагирующих саму новую организацию и выставить значение, как относятся одногруппники к Нереварину, если он состоит в этой же организации. Как правило, отношение у них очень хорошее: 3. Необязательно вписывать все существующие организации Морровинда.  В общем, в итоге у вас должно получиться примерно, как на скриншоте:   Ну, теперь редактирование свойств новой организации можно считать законченным. Остается только создать в мире игры представителей этой организации, их филиалы, книги и другие вещи.   II. Вступление и карьерный рост. Работа с диалогами Приступаем ко второй интересной части этой статьи. Рассмотрим, как можно организовать вступление Нереварина во фракцию и дальнейший карьерный рост. Это дело осуществляется, естественно, по большей части через диалоги. Можно привязать способность назначать должности к конкретным персонажам/высшим чинам во фракции через условия диалога - по ID, а можно, как в Доме Телванни, дать способность увеличивать ранг всем членам определенного ранга, выставив в условиях диалога фракцию и ранг говорящего. Повышение в ранге через скрипт здесь не рассматривается. Итак, создаем диалог с новой темой - предложение присоединиться к такой-то организации. Диалог можно развернуть. Ваш вербовщик может рассказывать о правилах и требованиях, ставить какие-то условия для вступления, выслушать отказ и т.д. Однако, если игрок согласен, нужно написать на этот случай в поле результата диалога - PCJoinFaction "ID_организация", что означает вступление в организацию. Теперь если игрок открыто прибьет кого-нибудь из своих, или если вы при редактировании предметов в интерьере указали extra data владельцем члена той фракции или всю фракцию, а игрока засекут при попытке взять предмет, то появится прекрасное окно с сообщением «Вас изгнали». Для лучшей атмосферы стоит создать несколько топиков, где персонажи смогут рассказать что-нибудь интересное и полезное об организации.  Существует несколько специальных диалоговых функций, которые можно использовать в диалогах и скриптах. Многое из нижеперечисленного работает только при условии, что игрок и непись являются членами указанных организаций: PCJoinFaction "ID_организации" присоединить игрока к организации. %PCRank называет чин игрока в диалоге. %NextPCRank следующий чин игрока по отношению к текущему. %Rank называет чин персонажа. GetPCRank, «ID_организации» в скриптах вычисляет ранг игрока в организации по порядку (то есть GetPCRank, «Blades» == 0 укажет на первый ранг среди Клинков, - Новичок). Значение -1 показывает, что игрок не является членом данной фракции. PCRaiseRank повышает ранг игрока. PCLowerRank понижает ранг игрока. RaiseRank повышает ранг персонажа. LowerRank понижает ранг персонажа. PCExpell "ID_организации" изгоняет игрока. Между прочим, статус «изгнан» не вычеркивает из организации, как вы можете заметить. PCClearExpelled "ID_организации" — восстанавливает положение. ModPCFacRep, 5, "ID_организации" повышает расположение к игроку (в данном случае на 5 единиц) для членов всей организации в целом. Можно написать отрицательное значение. SetPCFacRep, 100, "ID_организации" устанавливает определенное расположение к игроку. ModFactionReaction, "ID_организации1", "ID_организации2", 5 изменяет отношение фракции 1 к членам фракции 2. Разумеется, заметить это может только игрок. ModFactionReaction, "ID_организации1", "ID_организации2", 5 устанавливает расположение членов одной фракции к членам другой. Get/Mod/SetReputation определяет/изменяет/устанавливает значение для репутации игрока. Get/Mod/SetDisposition тоже самое с расположением непися к игроку. Условия в диалогах Faction если говорящий принадлежит к определенной организации. Rank если говорящий имеет ранг в вышеуказанной организации, не менее чем выбранный по условию. PCfaction если игрок принадлежит к определенной фракции. PCRank если игрок имеет определенный ранг. Function -> Same Faction Когда выставляется значение 1, говорящий произнесет фразу только если игрок принадлежит к той же организации, что и он. Function -> Faction Rank Difference используется в диалогах, чтобы вычислить расстояние на карьерной лестнице между говорящим и игроком. См. об этом ниже. Function -> Rank Requirement требования к рангу. Используются при повышении. См. ниже. Для карьерного роста обязательно нужно создать новые фразы в топике Повышение, или создать другой топик со сходным названием. Тут будет решаться карьерный вопрос. Разумеется, говорящий должен состоять в нужной организации и игрок также, а то получится странная картина.   Повышение в сущности зависит от двух факторов, а точнее даже от того, как  эти два фактора соотносятся с требованиями для того или иного ранга. Эти факторы - репутации во фракции (создается через команду ModPCFacRep Число «ID_фракции») и значения навыков игрока, важных для этой организации. Не обязательно для каждого ранга создавать особую фразу. Карьерный рост был автоматизирован разработчиками из Bethesda. Существует функция rank requirement (требования ранга), у которой могут быть значения 0, 1, 2, 3. Ориентируйтесь на нижеприведенную таблицу и располагайте свои фразы в той же последовательности.  № Что случилось Пример фразы Условие в диалог Что пишем в поле result диалога 1 Игрок был изгнан Вы преступили воровские законы чести. Внесите компенсацию, или вам никогда не получить звание %PCNextRank. Function -> PC Expelled == 1 Ничего 2 Если игрока нужно восстановить во фракции Говорят, вы были изгнаны. Я позабочусь об этом для вас Function->PC Expelled== 1 PCClearExpelled «ID_организации» 3 Игрок спрашивает о повышении. Но его репутация пока слишком мала в организации, недостаточно развиты нужные навыки С честью исполняйте приказы и совершенствуйте свои навыки. Вы еще не готовы. Function -> Rank Requirement == 0 Ничего 4 Игрок спрашивает о повышении. Навыки достигли нужного уровня, но репутации мало Ваша техника превосходна, но некоторые ставят под сомнение глубину вашей преданности. Вы должны с честью исполнить еще больше приказов для Мораг Тонга. Эти приказы уже выходят. Function -> Rank Requirement == 1 Ничего 5 Игрок спрашивает о повышении. Репутация на достаточном уровне, но навыки - нет Пока что у вас нет тех качеств, которые мне нужны, %PCName. Может быть, позже. Function -> Rank Requirement == 2 Ничего 6 Игрок получает повышение. И навыки, и репутация на нужном уровне Отлично, %PCName. Теперь вы %PCName %NextPCRank. Function -> Rank Requirement == 3 PCRaiseRank   7 Игрока понижают в ранге Как ты мог вызвать атронахов и плясать с ними на столах в библиотеке, дразня при этом Требониуса?! Что-то должно быть указано в PCFaction и PCRank, а кроме того нужна причина для понижения, отраженная в условиях диалога PCLowerRank   8 Игрока нужно изгнать из фракции Пошел нафиг! Function -> PC Expelled == 0 PCExpell «ID_организации» III. Разные полезные штуки Нарушения или «первый раз прощается, второй раз запрещается». Чтобы не создавалась ситуация, когда игроку за нарушение достаточно поговорить с кем надо, и таким образом нарушать правила бесконечно, можно сделать условия, при которых игрока прощают за нарушение только 1 раз. Затем, если он изгоняется повторно, восстановление невозможно. Создайте новую глобальную переменную типа short под названием типа ExpFaction. Когда восстанавливаете его в первый раз, напишите в результате диалога: PCClearExpelled "ID_организации" Set ExpFaction to 1 Затем создайте новую печальную фразу на случай очередного изгнания с условиями Function -> PC Expelled == 1 Global -> ExpFaction == 1 С содержанием типа - «прости, дорогой, ты уже нарушал правила и был изгнан. Восстановление невозможно». В услуге отказано Можно создать ситуацию, когда некоторые учителя или торговцы отказываются вступать в сделки с игроком, пока он не достигнет высокого звания. Для этого откройте диалоги и во вкладке Persuasion ->Service Refusal создайте для отказника фразу, где он говорит об этом отказе. Нужно указать ранг для говорящего (высокий, ведь «мои услуги зарезервированы только для высших чинов») и условия диалога: Function - Same Faction == 1 Function - Faction Rank Difference - 3 (то есть разница между говорящим и игроком 3 и больше звания. Можно указать другое число). Сундук с припасами Хорошая вещь. Создается через редактирование какого-нибудь стандартного сундука. Чтобы припасы восстанавливались раз в месяц,  поставьте галочку Organic Container и Respawns. Обязательно нажмите флажок extra data и выставите владельца, то есть фракцию. Вашу новую организацию, как и стандартные морровиндские фракции, можно найти в этом списке на букву F (Faction). Рядом можно выставить ранг, при достижении которого дозволяется пользоваться сундуком. Зарплата Неплохим бонусом для молодого Нереварина может послужить ежемесячная зарплата. Причем, она тем больше, чем больше его статус в организации. Такая фича была реализована в западном плагине Salaire Legion Imperiale by BOUCLETTE, адаптированном Winddancer, иначе говоря - зарплата членам Имперского Легиона. Выплаты производятся каждый месяц первого числа. Золото сразу оказывается в инвентаре. Чем выше ранг в Имперском Легионе, тем выше зарплата. А создается эта ситуация всего лишь одним глобальным скриптом. Он вычисляет ранг и месяц. Как только месяц меняется, происходит однократное добавление денег в инвентарь игрока в соответствии с определенным рангом. Посмотрите: Begin SalaireLegionImperiale short currentMonth if (currentMonth != Month) set currentMonth to Month if (getPCRank "Imperial Legion" == 0) Player->AddItem Gold_001 100 endIf if (getPCRank "Imperial Legion" == 1) Player->AddItem Gold_001 230 endIf if (getPCRank "Imperial Legion" == 2) Player->AddItem Gold_001 410 endIf if (getPCRank "Imperial Legion" == 3) Player->AddItem Gold_001 670 endIf if (getPCRank "Imperial Legion" == 4) Player->AddItem Gold_001 990 endIf if (getPCRank "Imperial Legion" == 5) Player->AddItem Gold_001 1340 endIf if (getPCRank "Imperial Legion" == 6) Player->AddItem Gold_001 1710 endIf if (getPCRank "Imperial Legion" == 7) Player->AddItem Gold_001 2150 endIf if ( getPCRank "Imperial Legion" == 8) Player->AddItem Gold_001 2540 endIf if ( getPCRank "Imperial Legion" == 9) Player->AddItem Gold_001 3100 endIf endIf End SalaireLegionImperiale Напоследок несколько советов: Хороший карьерный рост осуществляется только при наличии интересных квестов. Не забывайте в поле result диалога по мере продвижения игрока в карьере периодически прописывать ему повышение отношения и/или репутации. А то как же он будет расти в карьере? Странная была бы ситуация, если бы повышать в высокий ранг могли персонажи любого ранга! Проследите, чтобы тот, кто занимает ранг Новичок, не смог повысить игрока до звания Мастер. Для этого создайте повыше фразу для Новичка с условием PCFaction, PCRank «ранг, выше которого он не может повысить» с содержимым: «Я не могу повысить тебя до звания %PCNextRank, т.к. я только %Rank». Хорошо бы обыгрывать получение самого высокого ранга с отдельным квестом, с особым испытанием для игрока, так чтобы получение этого высшего ранга стало для него достойной наградой за труды. Удачи и творческих успехов! Между прочим, изгнание в Морровинде не стоит всегда воспринимать как позорное изгнание. Эта функция может открыть много перспектив.
  11. Инструкция по созданию бампа в Морровинде, опубликованная в далеком 2007 году. Авторы: Тореро & Ej-12 (ejov3003@mail.ru) Коррекция - TJ, Siegrun Содержание Введение Что такое Бамп и зачем он нужен Особенности работы с Бампом для Морровинда Создание бампа Инструменты для создания бампа За дело! Этап 1. Создание модели Этап 2. Работа над текстурой бампа Этап 3. Алхимия NifScope Этап 4. Настройка бампа Этап 5. Настройка сложных двуслойных моделей Маленькие секреты бампа Немного о TES-шейдере Еще немного о NifScope Как сделать Бамп только Нифскопом Довесочек Приложение Немного о текстурах и их форматах Немного о Мешах (Meshes) Еще немного полезного Введение Что такое Бамп и зачем он нужен. Бампмаппинг – это способ на плоской поверхности имитировать рельефность или неровность, в результате чего изображение становиться более объемным и реалистичным. Этот эффект достигается при помощи сочетания света и тени, путем различной степени освещенности каждого пикселя поверхности на основе значений, зафиксированных в специальной карте высот, которую называют bumpmap. Даэдрическая броня, до и после Особенности работы с бампом для Морровинда. Морровинд - игра, созданная на заре современных технологий, когда о Картах Нормалей, БампМаппинге, ПаралаксМаппинге и прочих текстурных «извращениях» еще знать не знали, слышать не слыхивали, а если и слышали, то только в новостях и в сплетнях, и то далеко не многие. Все было просто - была модель из нескольких полигонов, на ней одна простенькая текстура и куча кайфа от игрового процесса. Но не об этом речь. Казалось бы, что от игрушки тех времен ожидать чего-то большего нельзя, ну, может, модели новые создать не из 10 полигонов, а из 100. Но как, к счастью, выяснилось, все куда интереснее! Морровинд оказался как раз на стыке двух эпох игростроя - современной эры смазливых коммерческих проектов и старых добрых игр от души и для души, которые делались, как говорится, не за страх, а за совесть. Вот и впитал в себя наш «Старичок» все лучшее, что было на тот момент. Атмосферу и сюжет от прошлого поколения и продвинутый движок от надвигающегося. Хотя об этом тогда еще никто не догадывался. Тем паче, что многое еще было сокрыто от глаз геймеров слабыми видеокартами и «добрыми дядями», изрядно «облегчившими» игру. Но семя в лице опередившего свое поколение движка было таки посажено и, благодаря усердным стараниям любителей Игры, принесло плоды, сбором которых мы сейчас и займемся. Понятно, что несмотря на свою продвинутость, движок Морровинда далек от совершенства и тем паче от возможностей современных игровых движков, в частности, своего прямого последователя TES IV: Oblivion. Так что для достижения дополнительных текстурных эффектов (бампа (bump) в данном случае) ему нужна некоторая помощь: Карты Отражений (reflect map) , без которых Bump просто не будет работать и, собственно, текстура рефлекта (отражения), заменяющая моделям источник света, который отрисовывает Bump. Создание бампа Инструменты для создания бампа А) Nifskope, собственно самый главный инструмент в нашей работе. (ищем здесь). Лучше взять старую версию, 0.8.5 от (2006-05-25 00:07), последующие версии больше заточены для работы с мешами Обливиона и с Морровскими моделями не всегда работают корректно, поэтому все нижеследующее относится к 8.5 версии Нифскопа. Б) 3DMax – версии 5.1 или 4. Возможно использование любого другого 3Д редактора, поддерживающего экспорт моделей в формат Морровинда. Т.к. при необходимости карту отражения можно добавить потом, через Нифскоп – об этом ниже. Но все-таки предпочтительнее использовать МАКС. Еще лучше держать все возможные модули, это бывает полезно, хотя при экспорте может возникать некоторая путаница. В) Модули импорта/экспорта формата .nif. Для экспорта лучше всего использовать официальный плагин от Bethesda, т.к. плагин от разработчиков Нифскопа весьма глючен и часто приводит Морровинд в полное расстройство. Хотя, если у вас с ним проблем нет, используйте его. Г) Для создания текстур Бампа нам понадобится Photoshop, любой версии с .DDS-плагином от nVidia (этот) либо поискать более старую версию этого же плагина на других сайтах. Д) TES CS – куда нам без него. Е) Для просмотра графики в .dds-формате (им лучше всего пользоваться для текстурирования см. приложение) понадобится XNView – программа для просмотра. За дело! Этап 1. Создание модели Для начала создадим новую модель или импортируем готовую модель из Морровинда. Например, сделаем такой кирпич. Теперь идем в редактор материалов. Можно нажать «М» на клавиатуре.  Выбираем материал «Blinn» (с ним проще всего работать) или «Blinn» – материал по умолчанию. – с чем работаем. – здесь выбираем материал. – задаем параметры, каким оттенком будет «светиться» наш кубик на свету и в темноте, здесь же задаем уровень (999х76) забликовки, прозрачность (об этом ниже) и цвет самоосвещения. Если поставить что-то кроме черного, у вас получится спецэффект;). – назначаем текстуры. Слот Diffuse – базовая текстура и слот Reflect – то, что у нас будет изображать из себя Свет. Пока здесь все, идем по пути File -> Export -> Nif Format, сохраняем модель и запускаем CS, чтобы посмотреть, что у нас вышло: А вышло у нас следующее, кирпичи в ассортименте: Ну, когда-то и это было очень даже здорово и иногда вызывало прямо-таки поросячий визг от радости достижения нового эффекта в игре, но теперь это в прошлом. Хотя и сейчас вполне может использоваться для разных надобностей. Например, для стеклянных, идеально гладких поверхностей. Насмотрелись? Идем дальше. Этап 2. Работа над текстурой бампа Запускаем Adobe Photoshop. Берем то, из чего мы хотим сделать Бамп (BumpMap) и делаем это с помощью DDS-плагина от Nvidia. Если у вас по каким-то причинам нет этого плагина, вам придется много повозиться с заливками, выделениями и другими инструментами. :( Однако, иногда можно упростить себе работу, использовав в качестве бампа (BumpMap) сильно осветленную текстуру. Чем Светлее — тем выше будет уровень неровностей. Также можно поднять уровень Синего, нажав комбинацию CTRL+M и отредактировав каналы RGB. Cм. рис. 8 сделано по быстрому, но вполне может подойти. Помимо возможности импорта\экспорта, сей плагин добавляет в меню Filter раздел NVDIA TOOL, в котором и сидит нужный нам фильтр. На изображении: уровень сглаживания, насколько будет резкий контур у бампа. высота, чем больше значение, тем более «рваным» будет рельеф, экспериментируйте. метод создания, рекомендуется либо COLORSPACE либо МАХ(R.G.B.) фильтрация альфа-канала. экспериментируйте Сохраняем в .dds-формате ДХТ3 (подробнее см. приложение) и запускаем Nifskope. Этап 3. Алхимия NifScope Приводим его в удобный для себя вид и делаем примерно ниже следующие: Щелкаем мышкой на нашем кирпиче, при этом в окне блоков выделится его NiTriShape, раскрываем + NiTexturingProperty (настройки, свойства текстуры), снова раскрываем + и строку NiSourceTexture (назначенная текстура). Теперь правой кнопкой мыши (ПКМ) - NiSourceTexture, Copy Branch – копировать связь. И сразу же ПКМ – Paste Branch. Внизу окна BLOCK LIST появится еще одна строка, в данном случае №9 (NiSourceTexture), вот его нам сейчас и будет нужно. Снова - ПКМ, только вместо раздела Block выбираем раздел Texture – Choose, ищем через появившееся окно проводника свою текстуру бампа (Bump). Либо кликаем два раза ЛКМ по строке NiSourceTexture в колонке VALUE (значение), она откроется для ручного ввода имени текстуры, куда и забиваем нужное. Путь указывать не нужно. - Это важно! Если у вас будет жестко заданный путь, МW в ряде случаев не находит текстуру, особенно если текстуры упакованы в .BSA. Вообще почти все строчки в NifSkope поддаются ручному вводу по 2ЛКМ. Совет: называйте вашу BumpMap текстуру аналогично базовой. Например ХХХ1.dds – имя базовой текстуры, а ХХХ1_NM.dds - имя Бамп-текстуры, ХХХ1_dt.dds — DetailMap текстура деталей, ХХХ1_g.dds — GlowMap текстура Свечения, ХХХ1_DR.dds — DarkMap текстура «грязи» :) добавочная к DetailMap можно сделать больше темных пятен. Таким образом, вы сможете быстро менять имена текстур, что очень выгодно при обработке многострочных моделей. Этап 4. Настройка бампа Выделяем раздел NiTexturingProperty нашего NiTriShape. Смотрим в окно Block Details (детальное содержимое блока) видим несколько строк с до боли знакомыми названиями, :) нам нужен, понятно - BUMP — строка Bump Map Texture. Раскрываем плюсик и начинаем все менять (все раскрывается двойным кликом левой кнопки мыши (ЛКМ) ). Is Used --- «NO», меняем на «YES»!!!!! (двойной клик) Source --- № строки с текстурой здесь: NiSourceTexture №9 Clamp Mode – рекомендуется 3 (методом научного тыка, получается наиболее ровный Бамп) Filter Mode – 2 (аналогично предыдущему) Texture Set – 2 (см. выше) так или иначе, изменение этих значений весьма заметно, химичьте. Пропускаем ряд строк, можно сделать как на скрине ниже, но это все не так заметно. Bump Map Luma Scale – 1.0000, либо 0.9000 – более мелкий рельеф будет. Или еще как  :) Bump Map Luma Offset – оставить по нолям. Matrix – рекомендуемые: м11, м12 – на 1.0000, тогда м21 и м22 по нулям оставить, либо менять наоборот. Или как на скрине, менять только последние цифры. Это очень важный раздел настроек БАМПА (Bump Map)- задается высота, глубина и резкость текстуры. Экспериментируйте, рис. 11 приведены оптимальные настройки. В принципе, все это базовая настройка добавления Карты Бампа. Жмем «SAVE» и идем в TES 3: CS возрадоваться делом рук своих. Этап 5. Настройка сложных двуслойных моделей Все вышеприведенное, конечно, хорошо и красиво, но иногда хочется чего-то большего, например, задать модели какой-нибудь дополнительный рисунок. Например, чтобы из под облезшей краски поблескивал металл, или по тусклой стали был нанесен рисунок позолотой. Здесь без двухслойного меша не обойтись. Задача, в общем, простая, - нужно текстуре нарисовать альфа-канал, а как это делается, описано во многих пособиях, поэтому я не стану на этом задерживаться. Наша задача - заставить правильно работать Bump с Reflect-ом на этом самом прозрачном меше, а тут не все так просто, особенно у GeForce. Если этого не сделать у вас будет то что на картинке справа: двухслойный меш основа Запускаем Adobe Photoshop! Открываем текстуру, из которой собираемся сделать Bump Map. Выделяем нужные элементы, которые должны быть непрозрачными, загружаем их в альфа-канал и, не снимая выделения, запускаем NVDIA TOOL – создаем, как указано выше, текстуру. Только не забудьте перейти с альфа-канала на RGB-канал. Теперь инвертируем выделение и жмем Delete - должен получится синий рисунок на черном поле. Или наоборот, Черный на Синем. Этот ход — выделение каналов R, G или B с последующей генерацией Бампа и удалением выделенного может применяться и в других случаях. Соответственно, наличие альфа-канала обязательно. По-видимому, такие сложности есть только у GeForce, для видеокарт семейства ATI достаточно просто создать альфа-канал на обеих текстурах. Настройка Двуслойности в 3dsMax. Для тех, кто вдруг не знает. Выделяем модель (участок модели), которой нужен второй слой. Идем в меню правки, ищем CLONE (клонировать), жмем. Или, выделив полигоны, жмем «ПКМ» - DETACH — не забудьте поставить галку напротив AS A CLONE. Теперь скроем все ненужное. ПКМ по модели – HIDE SELECTION (скрыть выделение). Переходим в редактор материалов, где создаем новый или копируем (просто перетащить «ЛКМ» в соседний слот) уже имеющийся материал, задаем материалу новое имя вместо 2 – Default на что-нибудь другое. Это важно. В разделе ПРОЗРАЧНОСТЬ (opacity) вместо 100 ставим 99. Спускаемся в раздел MAP (КАРТA) выбираем DIFFUSE COLOR, «ЛКМ» - попадаем в меню подробных настроек, в самом верху кнопка BitMapParameters, жмем, здесь выбираем текстуру для второго слоя, содержащую альфа-канал. Все, вываливаемся обратно в меню настроек карты, жмем стрелку вверх и возвращаемся в основное меню настроек материала. Если надо, проделываем то же самое с картой отражений, т.е., меняем то, что изображает из себя освещение. Назначаем новый материал клонированному объекту. Теперь «ПКМ» unhide all – показать все. File -> Export -> Nif. Открываем модель нифскопом, долго и упорно кликаем по объекту, чтобы найти, где у него какой слой:). Или ищем его в Block List. Когда очень большая модель, 2-5 сотен строк, проще кликать по объекту, чем просматривать все строки. Маленькие секреты Бампа. Если на готовой текстуре Бампа нарисовать что-то черным цветом, эти места будут затемнены на модели, по ним не будет двигаться рефлект. Текстура должна быть без альфа-канала, либо затемнение должно находиться на непрозрачности. Также можно использовать выделение Каналов с последующим удалением выделенного. См. Рис. 17, 18. Полностью «гладкий» бамп иногда тоже полезен. Генерится из чистого фона (белый, черный). Либо простая заливка Светло-синим, Сиреневым, Голубым цветом. В качестве Бампа можно использовать и базовую текстуру, но в этом случае модель будет очень сильно затемнена, что иногда бывает полезно. Немного о TES-шейдере. Это материал специально для моделей Морровинда. TES-шейдер поддерживает Bump, но не поддерживает Reflect – из-за чего работает он только с зачарованными предметами, на которые движком игры накладывается текстура, изображающая из себя свечение. Он не поддерживает Bump и GlowMap одновременно - это сочетание приводит к вылету Construction Set на рабочий стол, ну, и игры, вестимо. Он поддерживает Detail Map – карту детализации. Он очень хорош для создания кожаных и деревянных элементов для модели. А также для работы с бипедными (содержащими скелетную привязку) моделями (Biped). А для второго слоя часто незаменим, особенно, если нужно нарисовать грязь. Может использовать Displacement. Dark Map – можно сделать очень темные пятна. Для рендеринга текстур в Максе – назначать текстуру на Gloss Map. Decal Map – иногда тоже бывает полезна. Немного о настройках: Для достижения прозрачности, альфу на 0.9. Particle Colors – применять к системам частиц Displacement ставить не выше 10, и при этом в модели должно быть много вертексов. Это применительно ко всем материалам. Еще немного о Nifskope Возможно добавить GlowMap для любого материала с бампом, даже для TES shaders. Базовые настройки: Для остальных слотов Detail Texture, Dark Texture и пр., кроме Bump Map Texture. Is Used --- «NO», меняем на «YES»!!!!! Source --- № строки с текстурой. Создается отдельно. Clamp Mode – рекомендуется 3 Filter Mode – 2Texture Set – не менять, иначе в КС и в окне Nifskope эта текстура не будет отображаться. Игры это не касается. Остальное – экспериментируйте... Важно, при копировании Branch-ей используется глобальный Буферобмен, поэтому если вы начнете копировать имена Текстур, или еще что, информация о линках пропадает! Возможность редактировать, добавлять эффект отражения в готовые модели, не подвергая их истязанию в 3DS Max, что особенно удобно с анимированными моделями, например, луками (см. ниже) А вот это можно увидеть только в TES CS, GlossMap, добавленная через NifScope, в игре не отображается: Как сделать Bump только c помощью NifSkope С большими проблемами, чем с использованием 3DMax`а, но можно. А может, и с большим кайфом :) По настроению. ВАРИАНТ «А» (на случай отсутствия варианта «Б») ПКМ –> Block –> INSERT – жмем на Т ищем – NiTextureEffect (скриншоты ниже) Дублируем уже имеющийся Branch с текстурой (см. выше в добавлении Бампа). Идем в NiTextureEffect и прописываем № выше созданной строки, куда прописываем текстуру для отражения, и ставим нужные параметры. Подсматриваем их в уже готовой модели, для этого рекомендуется держать перед собой второе окно NifScope с уже готовой моделью. Ее можно взять из любого плагина серии BetterArmor или BetterWeapons за авторством тов. EJ-12.  Настроив таким образом Effect, идем в раздел NiNode – собственно, кликнув по модели и поднявшись со строки NiTriShape на NiNode, к которому она принадлежит. Выделив NiNode, смотрим в Block Details, где ищем строки Children и Effects и там и там, ПКМ -> Add empty link – добавить еще одну пустую связь. При этом значение Num Indices должно увеличиться на +1 (для удаления забить на -1 и нажать ПКМ - Update). В появившихся строчках забиваем № строки нашего текстурного эффекта (NiTextureEffect). Все, если вы все сделали правильно, то останется проверить вашу модель через КС и, если он сразу не вылетел, но показал модель во всем блеске, добавьте Бамп, как было указано выше, и приступайте к изготовлению следующей модели. Да, кстати, цифры в NiTextureEffect очень важны - они задают поведение текстуры отражения на модели, иногда можно добиться интересных результатов, но часто это все выглядит как ошибка, или приводит CS к краху. ВАРИАНТ «Б» Открыть перед собой 2 окна Nifskope. Ваша модель и Настроенная модель В готовой модели находим строку с готовым NiTextureEffect. ПКМ по ней. И COPY BRANCH. В вашей модели PASTE BRANCH Делать, как описано в ВАРИАНТЕ “А”, прилинковать ваш Эффект к нужной НОДЕ. Базовые настройки TextureEffect Scale — размер текстуры, насколько она масштабируется. Texture Filtering — 1-2 стандартно Texture Clamping — 3 Texture Type — 2 Coordinate Generation Type — 2 особенно заметны изменения см. рис. 28 Все выше описанное, только в картинках :) Так выглядит модель в КС без Бампа: А вот ниже - уже с Бампом. Использована Базовая текстура, как на Отражение, так и на Бамп. Довесочек О том, как в .nif вставить часть другого .nif`а, или "Одеваем Скелетов"! Здесь работает та же логика, что и в работе с текстурами, т.е., создаем/добавляем что-то новое и привязываем его к уже существующему. Только вместо текстур у нас участвуют части модели. Итак... Открыть перед собой 2 окна NifSkope. Ваша модель и модель из которой вы хотите что-то “выдрать”. В готовой модели находим нужную вам деталь (косточка у скелета, или наплеченик) ПКМ по ее NiNode. Берите всю ноду (а не один NiTriShape), так можно использовать уже имеющиеся на ней эффекты. К тому же, в одной ноде может быть много частей одной детали. COPY BRANCH. В вашей модели PASTE BRANCH. Появится нужная вам нода. Важно, в моделях со скелетной привязкой не копируйте базовую ноду. См ниже. Теперь переходим к линкованию. Кликните по той части вашей модели к которой вы хотите добавить новую часть. Например, одеть шлем на голову скелета. Кликаем по голове и поднимаемся к ее родительской ноде. Т.е., к тому элементу, при раскрытии “+” коего появляется все остальное. Выделите эту NiNode и посмотрите в Block Details строку Children. Убедитесь, что там указан тот NiTriShape, к которому вы добавляете новую деталь. Выделив NiNode, смотрим в Block Details, где ищем строки Children и Effects и там и там, ПКМ -> Add empty link – добавить еще одну пустую связь. При этом значение Num Indices должно увеличиться на +1 (для удаления забить на -1 и нажать ПКМ - Update). Дописываем № свежей вставленной NiNode. Если вы сделали правильно, Новая деталь встанет на указанное ей место. Это если вы работаете с простыми, не содержащими Бипед объектами. Но если вы хотите одеть костлявого в мантию, вам придется прилинковать объект к “NiNode Bip01”, т.к. Мантия уже содержит скелетную привязку. А в самом файле с мантией скопировать “NiNode chest”. Все вышеизложенное относится к Бипедным объектам. Скелеты, святоши, дреморы и прочие прямоходящие товарищи. Но в случае с четвороногими (ползающими, летающими и пр.) существами дело несколько усложняется. Их модели имеют более сложную структуру. В ней видимые части модели являются отдельной от костей группой. В бипедных моделях кости и их оболочки входят в одну группу. Таким образом, новые оболочки приходится линковать не к NiTriShape-ам видимых в окне рендеринга частям модели, а к NiTriShape-ам группы Root Bone. Это несколько затрудняет поиск нужной части (NiNode – Bone X). Однако и это вполне решаемо. Важно: если вы одеваете вашу модель в разносторонние части (Левый и Правый наплечники, например) вам придется сделать вторую деталь с нуля. Иначе она у вас будет перевернута. Также, некоторые детали не встают точно на объект (например Шлем на череп скелета, или Усы для крысы). Их придется подгонять/позиционировать через 3dsMax. БЛАГОДАРНОСТИ. Разработчикам NifSkope, без этой славной утилиты не было бы этой красоты. Bethesda, так любезно оставившей эти возможности движка и выпустившей плагин для 3dsMax. Товарищу Deathruler’у с славного сайта www.fullrest.ru, который первым из Российских модмейкеров нашел эту возможность. Товарищу EJ-12, который стал активно разрабатывать эту золотую жилу, выпустив на момент написания статьи 18 плагинов с использованием этих возможностей. А также активно помогал в написании этой статьи. И всем Модмейкерам, своими трудами не дающими кануть в забвение Великой Игре! Приложение Немного о текстурах и их форматах: Итак, Морровинд понимает три типа текстур: А) *.bmp - самый лажовый Древнющий формат аж со времен Windows 3.11, может быть как с индексированными цветами - 8-мибитный (всего в палитре 256 цветов на все, аналог gif-а), так и полноцветным - 24-х битный (16777216 цветов) и, ко всему прочему, формат абсолютно без сжатия (нет, в случае 8-и битного изображения доступно RLE-сжатие, но не слишком помогает, да и хромает совместимостью) и весит на порядок больше, чем все остальное, не поддерживает прозрачность, не поддерживает mip-level's (о них дальше)... В общем, одни минусы у этого формата, пещерный век, короче. Б) *.tga - более приемлемый Формат видеостанций TrueVision может быть сохранен в виде: 16 бит (65536 цветов) - не используется, кому сейчас нужен этот 16-тибитный цвет времен 2-й кваки? 24 бита - полноцветное изображение без альфа-канала, стало быть, и без информации о прозрачности текстуры 32 бита - полноцветное изображение с альфа-каналом (для игры Morrowind имя альфа-канала обязательно Alpha 1, для других может быть любым, но, в принципе, Alpha 1 - это эталон для всех, просто не задокументированный) Cжатия тоже нет, но метод сохранения данных другой, поэтому вес файлов в разы меньше аналогичных *.bmp Не поддерживает мип-уровни (mip-level's) В) *.dds - форева! Формат DirectX - Direct Draw Surface. Также просмотр возможен с помощью XnView (мега-смотрелка, лучше ACDSee на порядок). Плюсов - масса, минусов - не отмечено. Формат с отличным сжатием за счет удаления некоторой информации, которая глазом не фиксируется (или очень мало фиксируется). В общем, как и jpg, поддерживает создание мип-уровней (mip-level's) mip-maps - это уменьшенные в два раза на каждый уровень копии оригинального изображения. Чем дальше находится объект от игрока, тем меньшая по размерам текстура используется для этого объекта. C одной стороны это уменьшает нагрузку на видеокарту, с другой стороны при уменьшении текстуры происходит ее фильтрация и она будет смотреться сглаженной, а не зернистой. В случае, если большая текстура натянута на маленький объект, у текстуры 1024*1024 - 9 мип-уровней, и если объект расположен на границе видимости, для него будет применена не вся огромная текстура, а последний мип-уровень 2*2, почувствуйте разницу... - поддерживает разные типы сохранения изображения, а главное - альфа-канал, все DXT - это 24 бита на RGB-информацию и отличаются только по сохранению альфа-канала. DXT1 без альфа-канала - сответственно, без прозрачности DXT1 с альфа-каналом - альфа-канал сохраняется как однобитный - либо он есть, либо его нет - четкая граница между прозрачностью и непрозрачностью. DXT3 - четырехбитный альфа-канал - градиент из 16 цветов, подходит для большинства текстур, у которых на краях должен быть небольшой участок полупрозрачности. DXT5 - восьмибитный альфа-канал, градиент из 256 оттенков, может потребоваться для больших объектов с протяженными участками полупрозрачности от максимальной непрозрачности к полной прозрачности. Остальные 20 вариантов сжатия текстуры нам без надобности, у них свои специфические методы применения. Немного о Мешах (Meshes) А) Какой 3DSMax нужен для работы с ними? Плагин экспорта TESExporterMax4 существует в версиях для 3DSMax3 и 3DSMax4, версия для четвертого макса также работает и с пятым максом, НО в пятой версии гарантирован крах с экспортом скелетной анимации (99%) и редко скелетной привязки (одежда), а также возникают ошибки при экспорте анимации морфингом (лица) (от редактора – скелетная привязка как раз лучше в пятом работает, а вот анимация… особенно модификатор Morfer, который применяется для анимации лиц и луков, крайне проблематично - 99-100% вылет макса в Ошибку. Так что 5 - форева, 4-ка - для анимации лиц и оружия.) Б) Как импортировать? Есть только два пути: Первый - NifImport - не может импортировать файлы со скелетной привязкой (не всегда правда, иногда получается), не может импортировать файлы со скелетной анимацией (анимацию никто не может импортировать), частенько глючит на мегаздоровых по размеру файлах, портит UVW-координаты текстур (отражает их по вертикали), путь к текстуре в материале надо прописывать заново, т.к. хранится только имя текстуры и ее путь относительно корневой папки Морровинда Второй - Nifto3ds - конвертирует nif-модель в древний формат 3d-графики *.3DS, который понимается большинством 3d-редакторов - не может импортировать скелетную анимацию, разбивает все объекты сцены на "объекты по материалам" - то есть, если была одна сетка с тремя материалами - будет разбита на три части, каждая из которых имеет свой материал, не сохраняет сами материалы, даже имя текстуры не сохраняет, UVW координаты текстур вроде нормально конвертирует. В) Как исправить UVW-координаты наложения текстуры при импорте NifImport-ом выделить модель применить к ней модификатор Unwrap UVW на командной панели в блоке Parameters модификатора нажать кнопку Edit в открывшtмся окне Edit UVWs выделить все вершины, потом выбрать в меню Tools -> Flip Vertical выбрать инструмент Move Vertical (если нажать на кнопку инструмента Move и удерживать, через секунду появится выбор из трех - Move, Move Vertical, Move Horizontal) и сдвинуть все вершины по высоте на прежнее место, т.к. после отражения они часто смещаются по вертикали относительно своего положения. (С) Взято с сайта Фуллрест Импорт в 3Ds и Obj и экспорт из них можно сделать при помощи Blender 3D – по существу, от его импортера ничего не страдает, кроме анимации - при смене бипеда и вообще скелетных работах бывает повреждение и она не работает после экспорта в nif (еще не совсем проясненный аспект). Текстуры, сетка, материалы – вся информация на месте. Переназначать приходится альфа-канал (см статью "Правка багов"). Еще немного полезного При экспорте, штатным модулем Bethesda: Галочка напротив Controllers напрочь убивает всю анимацию, иногда бывает полезно. БипедСамплРейт – влияет на размер модели в игре, помимо всего прочего. В настройках материала 3DS Max: Изменение фильтрации в настройках текстур часто дают интересные результаты, особенно если у текстуры отражения поставить NONE вместо Pyramidal – по умолчанию. Впрочем этоже можно сделать и через NifScope. См. Выше. Всегда делайте резервные копии моделей, неосторожное обращение с NifSkope портит модель, приводя CS к краху. Перед заменой или добавлением модели сохраняйте ваш плагин. И, прежде чем поместить модель в мир (в окно Рендеринга), сделайте предпросмотр через Preview Window.
  12. Вот и страничка появилась. netflix.com/ru/title/81037868
  13. А не хотите все это вот сюда перенести? http://tesall.ru/tutorials/the-elder-scrolls-online/ob-igre
  14. Босоногий воришка, Какие глупости. В отсутствии ресурсов и необходимости делать это на старте игры. tesall.ru/news/2020-1-17-treiler-novoi-glavi-elder-scrolls-online-i-oficialnii-anons-russkoi-lokalizacii
  15. chosenone2014, с чего бы это? Игра 2016 года получилась весьма добротной и в том же духе, что и самая первая игра.
  16. gkalian

    bandicam 2020 01 26 17 08 40 908

    Пожалуй будет лучше, если вы сделаете отдельную тему на форуме. За прогрессом и публикациями там следить гораздо удобнее.
  17. Ingvar, как будто это что-то плохое.
  18. radioduck, а если верить другим слухам, то игра попала в производственный ад и все силы брошены на ТЕС6. Слухи дело такое, сомнительное.
  19. Aeltorken, Пхахаха.
  20. На сайте Zenimax Jobs появилась вакансия для головной студии Bethesda Games Studios — компания ищет видеоредактора. Согласно описанию, студия ищет опытного, креативного и энергичного сотрудника, который займется созданием трейлеров и других промоматериалов. Помимо опыта монтажа видео, знаний принципов дизайна и современных инструментов видео, должны быть навыки видеосъемки — работа с камерой, выставление света, звук; в  обязанности редактора будет входить помощь в съёмках видео с живыми актёрами. Единственный трейлер Starfield, опубликованный на Е3 2018 Новый сотрудник требуется не в побочные офисы, а в головное подразделение в Роквилле. Именно оно ответственно за разработку номерных частей The Elder Scrolls и Fallout. Напомним, что на прошедшей Е3 были анонсированы две игры — Starfield и Elder Scrolls VI. Вполне возможно, что в скором времени нас ждут новые промоматериалы.
  21. Azazellz, субъективный же список. А DOOM скоро, буквально пару месяцев до него.
  22. Мешковина с кольчугой может быть и выглядит странно, но это не повод хамить.
  23. Продано! Хотя я до сих пор не прошел прошлую игру, надо бы завершить ее для начала что ли.
  24. gkalian

    Факты о Skyrim

    Факты о Skyrim — боевая система, AI_ графика и прочие аспекты игры, собранные на основе новостей и статей до выхода игры Дата выхода: 11.11.11 Движок: Creation Engine Редактор: Creation Set   Содержание: 1. Боевая система 2. Путь Голоса 3. AI 4. Окружающая среда 5. Сюжет 6. События во Вселенной между Обливионом и Скайримом 7. Графика 8. Музыка 9. Животные 10. Уровни и навыки 11. Магия 12. Инвентарь 13. Персонажи 14. Дополнительные функции 15. Под вопросом 16. Источники информации Боевая система Улучшенная боевая система. Специальные анимации убийства. В зависимости от оружия, противника, условий битвы, вы сможете выполнить смертельный завершающий удар, который добивает врагов, жест, украшающий стиль боя Взаимозаменяемое парное оружие и заклинания. Вы можете взять меч в одну руку, а заклинание в другую или в одну руку – меч, в другую – топор или же два заклинания в обе руки! Заклинания нельзя кастовать, если обе руки заняты оружием или щитом. Если же вы будете удерживать кнопку блока, герой попытается нанести удар щитом. Если вы, скажем, застали бандита врасплох ударом во время нападения, это отбросит его назад и вынудит постараться нанести более мощный удар. Используя систему Havok Behavior, разработчики создавали точное подражание неустойчивости, обычной в пылу схватки, добавляя эффекты тряски и дрожания камеры. Специализация на выбранном оружии будет лучшим способом сражаться - поскольку это даст возможность улучшить навыки и получить специальные перки. Например, перк меча увеличит шанс нанесения критического удара, перк топора налагает на врагов штраф истекания кровью после каждого удара, а перк булавы позволяет игнорировать броню противника и наносить сокрушительные удары. Чтобы сделать защиту менее пассивной, Bethesda переключилась на тайминг базового блокирования, который требует от игроков активно пользоваться щитом, чтобы отражать мощные удары. Вы можете ударить противника огненным шаром издалека; удерживая кнопку, вы можете получить нечто похожее на огнемет; положив руну на землю, можете создавать ловушку, которая сработает, когда враг встанет на нее. Так же можете взять в обе руки по заклинанию, чтобы наносить огромный урон огненными шарами, хотя так ваша мана быстро иссякнет. Заклинания электрического шока или холода дают игроку равноценную гибкость в использовании. Если вы кастуете заклинание холода, вы увидите соответствующие эффекты на теле врага. Если - огненные заклинания, такие, как огнемет, то цель будет пылать, нанося урон тому, кто подойдет близко к очагу возгорания. Когда NPC думают, что услышали или увидели что-то, они начинают беспокоиться. У персонажей с более прокачанным навыком скрытности будет больше времени, чтобы вновь скрыться в тенях или зайти за угол. Если вы удачно спрятались возле ничего не подозревающего врага, вы можете нанести ему смертельный удар кинжалом, который был почти бесполезным в предыдущих играх. Кинжал наносит десятикратный урон, кинжал по-прежнему относится к навыку одноручного оружия, перки для него вы найдете в категории стелс.   Если вы используете двуручное оружие, тогда управление левой рукой будет ставить оружие в позицию защиты, а правой - удара. Но если у вас в одной руке будет одноручный меч, а в другой заклинание, то возможность ставить блоки пропадет, так как левая рука занята, и обе позиции будут атакующими. Это сделано для того, чтобы вы тщательно продумывали стратегию сражения. Путь Голоса Норды долгое время использовали вид духовной магии, известной как "Путь Голоса”, основанной на благоговении перед Ветром, как воплощением Кинарет. Норды считают себя детьми неба, и как следствие, их дыхание и голоса - высшая ценность. Используя Голос, духовная сила северянина может быть выражена через ту’ум, крик. Крики используются для заточки клинков и для поражения врагов на расстоянии. Мастера Голоса известны как Языки (The Tongues), и силы их поистине легендарны. Они могут общаться с человеком, находящимся от них на расстоянии в сотни миль, а также перемещаться в пространстве с помощью крика. Наиболее могущественные Языки не могут говорить, не вызывая при этом разрушений. Дабы избежать этого, последние используют для общения язык жестов или рунические письмена. Игрок может выучить эти крики. 20 Драконьих криков. Поглотив душу дракона, игрок может получить - “драконий крик” – заклинание, составленное из трёх слов. С помощью крика можно замедлить время, оттолкнуть врага прочь, призвать дракона, переместиться на огромное расстояние и многое другое. Вы можете замедлять время вокруг вас при помощи крика или использовать специальный драконий шепот для того, чтобы незаметно приблизиться к врагу. Один из криков даже позволит вам призвать дракона. Некоторые драконьи крики можно будет найти в подземельях. AI Новый улучшенный интеллект. Пример работы нового AI: Волки имеют свое логово. Несколько раз в день они покидают его, обходят территорию и охотятся. Если вы зашли в лес, а волки обходят территорию, они будут вас преследовать. Если они кого-то убили, они будут охранять добычу и нападут на вас, если вы приблизитесь. Вы больше не встретите бесцельно слоняющихся по городу людей. Каждый житель занят каким-либо делом. Чтобы придать городам и поселениям больше жизни Bethesda наполнила их фермами, шахтами, которые могут дать NPC определенные задачи. Улучшенная система Radiant AI работает на взаимодействии ваших действий и реакции NPC на нее. Если вы находитесь в хороших отношениях с NPC и зайдете к нему ночью в дом, возможно, он предложит вам ночлег, а не попросит покинуть здание. Если вы достанете меч рядом с NPC, начнете трогать предметы за обеденным столом или же попытаетесь украсть что-то ценное, отношение NPC сразу же сменится на враждебное.   Система «Radiant Story» была сделана под влиянием случайных встреч в Fallout 3. Если вы выбросите оружие рядом с NPC, они среагируют на это, например, ребенок попытается подать вам меч или же двое мужчин будут сражаться за него (за меч). - NPC будут уворачиватся от заклинаний. Когда вы подойдете к NPC, они будут разговаривать с вами на расстоянии, продолжая заниматься своими делами или жестикулировать. Всё зависит от того, какова их личность. Если вы убьете торговца, его семья наследует магазин и, несмотря на то, что они будут злы на вас, все равно смогут выдавать вам задания. Окружающая среда Ландшафты и подземелья уникальны (сделано вручную). 5 крупных городов. Подтвержденные названия отметок на карте: Solitude, Markarth Side, Dawnstar, Winter Hold, Windhelm, Whiterun, Riften, Falkreath. 20 городов поменьше (Каждый содержит 10+ зданий). Порядка 120 подземелий. Размер провинции схож с Киродиилом. В северной части Солитьюда находится Школа Бардов. Этот город является оживленным портом и часто проводит различные мероприятия, например сжигание чучела Короля Олафа. Виндхельм – самый большой город, имеет впечатляющий дворец. Так же это место является базой для Имперской стражи, которая наблюдает за дорогой на Морровинд. Подземелье «Bleak Falls Barrows» - это древние нордские катакомбы, в которых текут реки, пробиваются корни деревьев через потолок, свет падает через трещины в сводах. Хаарфингар является стоянкой для всех кораблей Скайрима, это крупнейший порт. Каждое большое поселение – уникально. Город Маркарт Сайд, например, построен на скалах, некоторые здания стоят прямо на краю пропасти. Селение Riverwood описывается как «несколько зданий, включающих лесопилку». Скайрим поделен на девять зон (холдов). Игрок, совершив преступлении в одном холде, именно в нем и будет объявлен в розыск. Сюжет События в Скайриме происходят спустя 200 лет от событий Обливиона. Вы, возможно, последний Драконнорожденный (это охотники на драконов). Линия Септимов была отдельной ветвью Драконнорожденных и столетиями охранялась Клинками. Но после уничтожения династии Септимов Клинки выслеживались и уничтожались один за другим. Возвращение драконов предсказывалось Древними Свитками, предтечами возвращения стали уничтожение Посоха Хаоса (события Арены), создание Нумидиума (Даггерфолл), битва на Красной Горе (Морровинд) и Обливионский Кризис (Обливион). Остался клинок по имени Эсберн, он и будет обучать вас в течение всей игры. Последнее событие перед возвращением – это гражданская война народа Скайрима (это то, что будет в начале игры). Драконов становится все больше и больше и возможной кульминацией их прихода станет появление Алдуина. И по традиции, вы начинаете игру за заключенного.  События во Вселенной между Обливионом и Скайримом 4E 1 — Завершение кризиса Обливиона Чемпион Киродиила, Мартин Септим и аватара Акатоша останавливают Мехруна Дагона. Как следствие, линия Септимов прервана, Амулет королей уничтожен. Завершается Третья эра. Четвертая эра начинается с того, что на троне Тамриэля некому восседать. Совет Старейшин, руководимый канцлером Окато, пытается удержать Империю от распада. 4E ?? — Империя разваливается. Чернотопье отделяется от Империи, чуть позже за ним отделяется Эльсвейр. 4E ?? — Титус Меде захватывает трон и становится Императором оставшихся частей Империи. 4E ?? — Морровинд завоевывается Аргонией. Вивек исчезает и Министерство Правды становится нестабильным (оно грозится упасть на город). Инжернер Вахон разрабатывает Инжениум. Это устройство питается душами людей и поддерживает положение Министерства в небе. Однако происходит взрыв. И когда устройство взорвалось, Сула, Вахон и других выбрасывает в Обливион, в план Принца Даэдра Клавикуса Вайла. Там Вахон встречает Умбру, вместе они создают новый инжениум – Умбриэль. Сул же, проведя несколько лет в плане, сбегает в другой и позже возвращается обратно в Нирн. 4E 18 — Рождение принца Аттребуса Меде (сын Титуса) 4E 23 — Рождается Аннаиг (героиня «Адского города»). 4E 40s — События «Адского города» Умбриэль, летающий город, пузырь Обливиона в Нирне, появляется на побережье Чернотопья и движется в сторону Морровинда. Город Лилмот, дом Аннаиг, уничтожается. Аттребус Меде на пути к перехвату Умбриэля чуть было не погибает от рук одного из своих людей. Сул и Аттребус противостоят Вахону, в итоге Умбриэль исчезает. 4E 200s — Король Скайрима умирает. 4E 200s — Начинается гражданская война. Графика Динамические тени. Снег падает динамически. Вместо белой текстуры на ландшафты падает реалистичный снег во все уголки и закоулки. Программа анализирует географию района, затем определяет где должен упасть снег. Он падает на деревья, скалы, кустарники. Деревья и ветки двигаются под действием ветра. Вода в игре течет, она не статична. Улучшенные лица и модели (как животных, так и персонажей). Дальность прорисовки ланшдафта значительно улучшилась. Никаких SpeedTree. Havok Behavior - весьма гибкий инструмент анимации, который позволяет разработчику быстро создавать рабочий прототип, просматривать готовые анимации, смешивать их парой кликов мышкой, и с минимизацией поддержки кода. Bethesda использует эти возможности для создания тонких нюансов в движениях персонажей, управления спецэффектами, и даже задавать поведение, скажем, при попадании в неприятности в мире - например, при влипании в паутину. Более реалистичный переход персонажей от ходьбы к легкому бегу и наконец, полноценной скорости, и увеличение разницы между движениями в анимациях группы позволили Bethesda создать лучший баланс в бою и от первого лица и в перспективном виде, от третьего лица путем регулировки затрат времени на удары и блоки в зависимости от выбранного вида. Музыка Джереми Соул является композитором Скайрима; Марк фон Сюдов будет озвучивать Эсберна (Клинок); Драконы могут разговаривать. Животные Подтвержденные животные: зомби (драугры), скелеты, гиганты, волки, лошади, (морозные) тролли, двемерские центурионы (сфера), гигантские пауки, собаки, мамонты, саблезубые кошки, драконы, олени (вапити), ледяные призраки. Одиночный респаун на низких уровнях может привести к парному респауну монстров на высоких уровнях. Сильные противники существуют в мире с начала игры. Драконы встречаются часто. Присутствуют разные типы драконов. Вы не сможете летать на драконах. Ослабевший Дракон не сможет взлететь. Драконьи кличи: Yol Toor - огненное дыхание; Iiz Slen - кристаллы льда; Strun Bah Qo - гроза; Уровни и навыки Никаких классов 18 навыков, в том числе бой, магия, красноречие и скрытность.                                                              Никаких главных/второстепенных навыков. Никаких знаков рождения. Вы получаете перк с каждым уровнем. При повышении уровня вы можете выбрать улучшение выносливости, магии или здоровья. Рост уровня замедляется, начиная с 50, в отличие от Обливиона, где это происходило при достижении 25-30 уровня. Прокачка идет быстрее, чем в прошлых играх. Зачарование/Алхимия/ Приготовление пищи/Сельское хозяйство/Шахтное дело/Рубка леса/Кузнечное дело. Всего 280 перков. Имеется возможность поднять все навыки до 100, но невозможно выбрать все перки. Навыки разбиты следующим образом: Воинские (Кузнец; Тяжелая броня; Блокирование; Двуручное оружие; Одноручное оружие; Стрельба), Магические (Колдовство; Иллюзии; Разрушение; Восстановление; Изменение; Зачарование), Воровские (Легкая броня; Скрытность; ?, ?, Красноречие; Алхимия). Магия 5 магических школ: Восстановление, Изменение, Иллюзии, Колдовство, Разрушение. (Мистицизм убран, заклинания из этой школы разбросаны по другим школам). 85 уникальных заклинаний. В игре будут заклинания - ловушки, "пылающая руна", "огнемёт", "щит против магии". Заклинание "Огненный шар" вызывается однократным нажатием соответствующей кнопки, шар позволит отбросить противника на расстояние. Огонь наносит урон противнику в течение длительного времени, а также взаимодействует с окружением, поджигая его. Заклинания холода замедляют противника и уменьшают его запас сил. Воздействие холода отражается на коже противника. Заклинания электричества уменьшают запас магии противника. Подтвержденные заклинания: "Обнаружение жизни", "ярость" (враги бьются на вашей стороне), "круг защиты" (вышвыривают врага из круга, находящегося вокруг героя), "снежная ловушка" (срабатывает только когда враг наступает на нее), молнии, фаерболы. Некоторое оружие будет зачаровано так, что будет неясно, какого рода магия наложена на него, хотя и будет очевидно, что оно магическое. Что на нем за магия, вам придется определять самостоятельно, особенно это относится к вещам из подземелий - ведь хозяева мертвы или ушли, и некому подсказать вам, что за магия на мече, пока вы не используете его и не догадаетесь сами. Инвентарь HUD появляется, когда вы с кем-то сражаетесь (или в те моменты, когда он реально нужен). Улучшенный вид от третьего лица - Интерфейс 4-хкнопочный (версия для консоли): Вправо: Инвентарь | Влево: Магические предметы | Вниз: Карта и квесты | Вверх: Навыки. Каждый предмет имеет 3D-превью в инвентаре, основанном на Flash, который (предмет) вы можете крутить, поворачивать и прочее. Любой объект из вашего списка заклинаний или предметов может быть добавлен в закладки в меню избранного. Сколько объектов там появится - зависит от самого игрока. Содержимое инвентаря выполнено в виде всплывающей картинки, которую можно вращать/приближать. Персонажи  Невероятный уровень детализации: кровеносные сосуды на коже героев, симуляция ткани, высокодетализированные модели и анимация. Лица более эмоциональные, чем в любой другой предыдущей игры. Углубленное создание персонажа позволит вам выбрать характер телосложения, дать герою бороду и другие детали для вашего героя. Лица для уровневых противников сгенерированы. Будут дети. Ключевые NPC неубиваемы. Бороды доступны как для игрока, так и для NPC. Вы можете быстро бежать (относится к Выносливости). NPC улучшены, теперь они занимаются своими делами, работают. Они могут вам мстить, если вы убили их родственника или друга, например. Люди будут пояснять вам задания и разговаривать более подробно или менее в зависимости от того, насколько вы им нравитесь. Дополнительные функции   Пример работы 'Radiant Story'. Вы получаете квест, в котором вам нужно сходить в подмезелье «Bleak Falls Barrow» , чтобы добыть драконий золотой коготь, а потом отдать коготь торговцу Лукану. Если вы убили Лукана, то квест перейдет к его подруге Камилле. 10 игровых рас. (Возможно, всего будет 20 рас). Фаст-тревел. Не сказано, каким он будет. Может быть как в Обливионе, где вы выбираете точку на карте и перемещаетесь к ней или же как в Морровинде, где вам нужно было либо использовать лодки либо силт-страйдеров. Каждая раса имеет свой уникальный набор брони. Подземелье закрывается на том уровне, на котором вы его посетили (если вы пришли в пещеру на 5 уровне сложности, когда вы придете повторно, там не будет сильных монстров, они будет по уровню близки к 5-ому. Сюжет длится 20 часов. Сотни часов занимают побочные квесты. Вы можете читать книги в 3-D. Больше ловушек и загадок. Рыба может выпрыгивать из воды. В игре будут птицы. Мультиплеера не будет. Будет доступен фриплей после прохождения основного сюжета. - Вы можете покупать дома. Каждый город имеет свою экономическую систему (Если вы сожжёте городскую мельницу, то жители будут вынуждены закупать муку в других городах, поэтому если вы захотите после этого купить у местных торговцев муку, то она будет стоить дороже.) В огонь можно плеснуть масло. Вы можете нанимать компаньонов. Высокий Хротгар имеет 7000 ступеней. Присутствуют фракции, частью новые, частью старые (Гильдия Воров, Колледж Ворожбы (Маги) и Сподвижники (Компаньоны?) (Бойцы), так же были отмечены Темное братство, Расистская фракция Нордов, Некроманты (пока нет официального подтверждения)).     Квестодатели не будут столь точными, как в Обливионе: если в Тамриэле квестодатель гарантировал бы вам за вашу работу 200 золотых, то в Скайриме все больше похоже на реальность - вам обещали бы некую сумму в случае удачного решения проблемы. (Но ее размер, может, будет зависеть от того, как хорошо выполнена работа и какие вещи случались в процессе выполнения задания.)   Таверны будут играть большую роль - в них можно будет узнавать городские сплетни и слухи, как это обычно и бывает в месте, где люди собираются после работы, вы можете подслушать, о чем болтает народ, и узнать побольше о городе или о том, что делается в Cкайриме вообще - вполне естественный способ узнавать новости.   Взлом и проникновение становятся способом добычи информации, правда, неясно, до какой степени - "Мир вокруг открыт, и возможности получить информацию и даже научиться чему-то разнообразны – в том числе, шпионаж, слежка за странно ведущими себя людьми, и даже взлом с проникновением". Доступно 13 видов различных руд для крафтинга. Под вопросом Создание заклинаний. Возможность открытых городов.   Источники информации: Bethblog GameInformer. PC Gamer: Скайрим будет использовать новый движок. PC Gamer: Боевая система Скайрима. Bethsoft Forums: Немецкий журнал. Bethsoft Forums: Французский журнал. Bethsoft Forums: Итальянский журнал. Bethsoft Forums: Английский журнал. Bethsoft Forums: Испанский журнал. Tesall. ESN
×
×
  • Создать...