Воскресенье, 12.05.2024, 07:25


Главная
Регистрация
Вход
Сайт Великого Легиона ПЗ Приветствую Вас Незнакомец | RSS  
Меню

Категории раздела
Статьи про ПЗ [10]

Мини-чат
200

Наш опрос
Оцените мой сайт
Всего ответов: 173

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа

Главная » Статьи » Статьи про ПЗ

Для модмейкеров
Для квеста требуется 2 файла ( может быть и больше , но в основном 2 ) . Эти файлы *.mq и *.mob - где * название файла , .mob и .mq расширение файла . Название файлов одинаковое , допустим если .mob файл называется z3q1.mob то и .mq будет называться z3q1.mq вот такие пироги :) . Название файла составляется из двух частей zXqY - где X номер квестовой зоны на которой выполняется квест ,а Y номер квеста на зоне , допустим в квесте z3q1 номер зоны 3 , а номер квеста на зоне 1 . Теперь о содержимом этих файлов . В файле .mq находятся диалоги персонажей при взятии квеста , отказе от квеста , выполнении квеста , само описание подмиссий квеста и информация о мини-карте координатох входя выхода , ну я тут многа нагрузил если вы это непонимаете это нестрашно , вам с этим почти непридется сталкиваться так как мы будем использовать шаблоны .mq и вам придется переписать самую малость . Далее .mob - в .mob файлах хранятся записи положения обьектов на карте ( юниты , сундуки , монстры и тп. ) и квестовый скрипт . Квестовый скрипт - это последовательность специальных команд , которая в результате управляет действиями игры . Допустим когда вы открываете сундук в мульплеерном квесте "Сокровищя разбойников" выполянется скриптовая команда , проверяющяя состояние сундука ( открыт или закрыт ) и в случае если сундук открыт она заканчавает квест . Все по этой теме хватит. А нет стоп! :) забыл рассказать где хранятся эти файлы - они хранятся в папке "../Проклятые Земли/Maps/" . Вот теперь все. 

Теперь разберемся с программами которые нам требуются 
Необходимые программы. 



Значит так нам требуются 2 программы , вообще для более сложных квестов может потребоватся еще Дата База ПЗ , но мы ее пока затрагивать небудем . Первая программа которая нам нужна это ResBuild.exe проще говоря Ресбуилдер , посмотрите в раздел моего сайта "Файлы" возможно я уже поместил ее туда , также если вы неумеете обращяться с командной строкой скачайте оболочку для Ресбуилдера ( она тоже должна буть у меня в разделе "Файлы" ) . Вторая программа которая нам потребуется это Mob Reversing Tool , это редактор мобов( моб это файл с расширением .mob мы о них говорили в первой части моего туториала ) также посмотрите в раздел моего сайта "Файлы" возможно я поместил ее туда . Теперь о программах подробнее . Ресбуилдер - это вообще супер-пупер функциональная программа :) она распаковует и запаковует практически все ресурсы ПЗ , она понадобится нам для распаковки и запаковки .mq файлов . Для тех кто низнает значений слова "распаковать" и "запаковать" я сейчас обьясню . Существуют специалные файлы которые могут хванить в себе другие файлы . Вот .mq является таким файлом он хранит в себе несколько других файлов . Распаковать значит вытащить из специального файла простые файлы , а запаковать значит засунуть файлы обратно в специальный файл :) , надеюсь я вас еще сильный незапутал :) . Теперь о Mob Reversing Tool эта программа открывает мобы ( тоеть эта программа открывает моб файлы , также как блокнот открывает текстовые файлы ) через эту программу мы будем редактировать скрипт квеста и немнога подправлять положение обьектов нужных нам для квеста . С этим вопросом закончили . 

теперь приступим к изучению основ програмирования(скриптинга) 

Основы программирования(скриптига) 



Первое что хочу сказать по этой теме "НЕБОЙТЕСЬ СЛОВА ПРОГРАМИРОВАНИЕ !" тут нет нечего страшного . Програмирование это такойже язык как допустим русский только оно намного проще и изза его простоты нам его трудней учить :) . Теперь о основах программирования(скриптинга) , а нет я необьяснил чем отличается программирование от скриптигра - да ни чем :) только скриптовый это чаще всего более простой язык чем язык программирования . Итак основные составляющие программирования(скриптига) это : ПЕРЕМЕННАЯ , ФУНКЦИЯ , ВЕТВЛЕНИЯ ... для скрипта ПЗ нам хватит этого . Итак о ПЕРЕМЕННЫХ я расскажу позже так как в скрипте ПЗ можно сделать квест и без их использования о переменных читайте во втором туториале "Туториал по созданию квестов - а мы уже созрели для ЭТОГО :)" . Такс теперь о функциях функция представляет собой несколько скриптовых команд обьединенных в месте , допустим нам необходимо сложить 2+2+2+2+2+2 а потом еще раз и еще раз и еще раз . чтобы этого неделать мы можем написать функцию - образно это выглядит так имя функции ( 2+2+2+2+2+2 ) . Теперь в любой части скрипта мы можем вызывать функцию ( вызывать значит использовать ) вот так - образно имя функции() . Теперь о ветвлениях ветвления это простейшая логика - например есть у меня в кармане 2 яблока значит я одно съем одно оставлю , а если одно значит я его оставлю . В этом примере проверялось условие "сколько яблок у меня в кармане" если колличество яблок соответствует двум то выполняется действие 1 "съесть одно яблоко , а второе оставить" а если же яблоко одно значит выполняется условие 2 "оставить яблоко" . Вроде все :) . 

теперь о синтаксисе(правописании) скриптов ПЗ 
Синтаксис 


Начнем с того о чем мы говорили в предыдущей части о ВЕТВЛЕНИЯХ и ФУНКЦИЯХ . Сначала о функциях , кстати имейте ввиду что такой синтаксис который здесь описан характерен только для скриптов ПЗ в другиз играх и языках програмирования синтаксис может отличаться ! . Итак синтаксис записи функции в ПЗ такой : 
Script имя_функции 

скрипт_функции 

имя_функции - любое какое в голову взбредет( НО ТОЛЬКО ИСПОЛЬЗОВАТЬ РАЗРЕШЕНО ТОЛЬКО ЛАТИНСКИЕ(АНГЛИЙСКИЕ) БУКВЫ И ЦИФРЫ И ЗНАК # , НЕРАЗРЕШЕНО ИСПОЛЬЗОВАТЬ ПРОБЕЛЫ !!!) , 
скрипт_функции -тут пишется скрипт этой функции . А Скобки обозначают границы функции все что находится в скобка принадлежит этой функции . 
Далее -> каждуюю функции необходимо обьявить прежде чем ее использовать обявляются функции так : 
DeclareScript имя_функции ( аргументы ) 
что такое имя_функции мы уже рассмотрели , 
аргуметы функции это данные передаваемые функции(понимать это пока необязательно), чаще всего вы вас небудет это беспокоить , подавляющему число фунций в скрипте ПЗ аргументы ненужны , но всероно но есть один аргумент который надо использовать всегда , в подавляющем большенстве случаев функция обьявляется так : 
DeclareScript имя_функции ( this : object ) 
this : object это и есть тот самый аргумент о котором я вам говорил , вам ненадо задумываться что он означает просто пишите его и все. В общем если наша функция будет называться pipec то ее обьявление и сама она будет выглядеть так : 
DeclareScript pipec ( this : object ) 

Script pipec 



вот так , я надеюсь что вы все поняли , неправда ли легко ? Теперь о ветвлениях . Что такое ветвление мы рассмотрели в предыдущих статьях , теперь о синтаксисе его записи в ПЗ скриптах . В ПЗ скриптах витвление обозначается командой if . Синтаксис записания ветвления : 
if 

условие 

then 

действие(скрипт) 

теперь как это все работает :) - а я сам незнаю - шучу :) . вообщем работает это так - проверяется условие если оно правдиво выполняется действие если нет , в нашем случае нифига невыполняется :) . Итак команда if это служебная команда мы ее так и пишем и команда then тоже служебная . С англицкого эти команды переводятся как if(если) then(то) , получается ЕСЛИ-ТО ,тоесть ЕСЛИ-яблок=2-ТО-сьесть одно и одно оставить ( помните пример с яблоками :) ) . 
Теперь об общем синтаксисе написания скриптов ПЗ . Скрипт пз имеет такой синтаксис : 

GlobalVars ( 
NULL : object, 
VSS#i#val : object, 
i : object 


Тут обьявляем функции 

Тут записываем все функции 

WorldScript 

Sleep(2) 
Тут вызываем те функции , которые хотим чтоб работали все время . 


вот и все для начала сложно но ничего просто переписываем все к себе и заменяем "Тут обьявляем функции" на обьявление своих функций , "Тут записываем все функции" заменяем на скрипт своих функций ,а "Тут вызываем те функции , которые хотим чтоб работали все время ." на вызовы своих функций . сейчас это может показаться вам сложным но в дальнейшем вы поймете , конечно я сейчас приведу пример все про туже функцию pipec : 

GlobalVars ( 
NULL : object, 
VSS#i#val : object, 
i : object 


DeclareScript pipec ( this : object ) 

Script pipec 

if 



then 





WorldScript 

Sleep(2) 
pipec( NULL ) 


вот правльный скрипт правда он нечего сщуственного неделает :) обьясню поподробнее в блоке GlobalVars создаются переменные , мы договорились их пока нетрогать . далее обьявляем функцию pipec в ней у нас ветвление , затем WorldScript в этом блоке вызываются нужные функции и в подавляющем большенстве слечаем мы передаем им аргумент NULL тоесть этого вам тоже ненадо понимать как говориться NULL есть NULL , просто передавайте его и все :) - теперь обьясню для чего это надо , если функцию невызывать то она несработает тоесть вы напишете ее а она останется неиспользованной , в блоке WorldScript вызов происходит переодически тоесть через определеный период времени функция вызывается заного и заного .Тыкс теперь о встроенных функциях - в ПЗ имеются встроеные функции тоесть уже обьявленные . Вы их можете вызывать , это надо для того чтобы управлять игрой ,допустим функция Attack( Unit1 : object , Unit2 : object ) заставляет атаковать Unit1 -> Unit2 а object обозначает тип аргумента об этом чуть позже . Справочник по встроенным функциям вы можете найти на моем сайте . Также функции могут возвращять значени , что это такое ? щяс обьясню . Возвращять значени значит отдавать результат скрипта , пример с темиже яблоками :) : друг спросил у тебя "сколько яблок у тебя в кармане ?" ты ему отвечаеш " два яблока " , когда друг тебя спрашивает - это и есть вызов функции , а когда ты проверяеш сколько яблок у тебя в кармане это действие скрипта ( просто действие ) ,а когда та ему говориш сколько у тебя яблок - это и есть возвратить значение . 

Теперь о типах аргументов (да и данных вообще ) в ПЗ. 


Типы данных 


В ПЗ имеется 4 типа данных - они называются Float(число) , 
String(строка, проще говоря Текст ) , 
Object (игровой обьект) , 
Group ( группа данных типа Object ) . 
Теперь поподробнее о каждом типе . 
Float - это просто число , что еще можно сказать :) пример : 5 , 100 , 12.4 . 
String - строка или проще говоря текст это текст любого вида допустим : "ПЕТЯ ПУПКИН" , "60 ЛЕТ КПСС" все это строки , обратите внимание что данные типа строка всегда заключаются в кавычки . 
Object - обьект , это любой игровой обьект - персонаж , дерево , сункдук , враг и тд. . 
Group - это группа обьектов типа Object тоесть это Ваша команда или группа монстров . Подробнее о типах данных можно почитать в туториале Чейза который есть на моем сайте , но пока я вам читать это несоветую только ,извините за выражение "засрете мозги" почитаете потом когда вникните более полно . 


Примеры создания квестов 



Допустим миссия Белый волк, в предгорьях. 
Для начала нужно выбрать стандартный квест, на основе которого мы будем делать новый. Здесь исходим из соображений практичности - если квест просто на убийство волка на зоне Предгорья, то надо выбрать максимально на него похожий. Это z3q2.mob (z3 - Зона Предгорий, q2 - квест номер два), т.е. Жаба-людоед. Открываем данный квест Mob Rev. Tool''ом и ищем в основной ветке ID_SS_TEXT, ветку со скриптами. Нас интересует следующее: 
CODE 
Script VTriger#2#1 

if 


then 

KillScript( ) 
QStart( "z3q2" ) 
QObjSeeUnit( "GetObject(1000324)" ) 
QObjKillUnit( "GetObject(1000324)" ) 
QFinish( ) 


Строка QSTART( "z3q2" ) - это строка старта скрипта. Если ты разбираешься с брифингами на базе, то здесь проблем быть не должно. 
Строка QObjKillUnit объявляет нам, что для выполнения квеста надо уничтожить юнит. В скобках - ID юнита. Ничего, кроме z3q2 здесь менять не нужно. 
Открываем ветку OBJECT_SECTION. 
Проверяем все ID_UNIT - в строке ID_UNIT_PROTOTYPE должно стоять LMP Unique Toad Cannibal 5 - имя жабы-людоеда в базе данных игры. Обычно это довольно трудоемкая задача, найти нужного монстра, но что бы не копаться скажу - шестая ветка ID_UNIT снизу. В вышеупомянутой строке ID_UNIT_PROTOTYPE меняем жабу на LMP Wolf White 5. 
Далее в строке ID_UNIT_SPELLS убираем все, что там написано (это отвечает за заклинания). 
В строке ID_OBJTYPE заменяем 51 на 52 (это отвечает за тип объекта), 
в строке ID_OBJTEMPLATE меняем на unanwiwo (это отвечает за модель объекта), 
в строке ID_OBJPRIMTXTR меняем на Wolf00 или на Wolf01 (это отвечает за текстуру, первое значение для текстуры серого волка, а второе для белого). 
В строке ID_OBJPOSITION - позиция юнита. Меняем ее на угодное нам (можно оставить без изменений). 
И последнее - ID_OBJCOMPLECTION. Там телосложение объекта - меняйте там, каким вы хотите видеть вашего волка, мясистым и здоровым или заморенным щенком. 
Теперь выберем ID_OBJSECTXTR и сотрем там все , тут пишется второстепенная текстура . 
Затем сохраняйте... Далее идет работа с файлами квестов. Если знаешь, то хорошо, если нет, то потом поясню. 
Теперь остановимся поподробней на ветви ID_SS_TEXT, которая отвечает за скрипты на карте. Рассмотрим каждый элемент: 
GlobalVars ( // Объявление глобальных переменных. Конкретно в этом 
NULL : object, // квесте это не несет практически ни какой полезной 
VSS#i#val : object, // информации, просто запишите это. 
i : object 

CODE 
DeclareScript VTriger#2#1 ( this : object ) // объявлене скриптовых блоков. О 
DeclareScript VTriger#2#2 ( this : object ) // них ниже. 
CODE 
Script VTriger#2#1 // Это скриптовый блок. Каждый подобный блок состоит из 
( // блоков if () и then (). В первом записываются условия, при которых 
if // выполняется блок. Во втором - сами действия скрипта, т.е. старт 
( // скрипта, убийство, завершение и т.д. 
) // 
then 

KillScript( ) // уничтожить скрипт конкретно здесь (по выполнение) 
QStart( "z3q2" ) // Старт квеста для игрока (из меню квестов, где карта) 
QObjSeeUnit( "GetObject(1000324)" ) // Когда игрок увидит монстра 
QObjKillUnit( "GetObject(1000324)" ) // Когда игрок убьет монстра 
QFinish( ) // Завершить квест 


Script VTriger#2#2 // Это название второго блока 

if 


then 

KillScript( ) 
ActivateTrap( Pyramid, 0 ) // Отключить оркскую пирамиду. 


WorldScript // Глобальные скрипты 

Sleep( 2 ) // 
VTriger#2#1( NULL ) // 
VTriger#2#2( NULL ) // 

MRT 


Здесь я выложу некоторые обозначения, используемые в MRT, но непонятные для начинающих модмейкеров. 

Типы объектов: 
~~~~~~~~~~~~~~~~~~~ 
50|люди/орки 
51|монстры 
52|животные 
53|дерево/пень 
54|бочки,ящики,горшки,ковры,фургоны,колёса... 
58|костры(Torch) 
59|Магич. ловушка(magic_trap) 
60|используемые объекты (рычаги)(levers) 
================================ 
object_section: 
================================ 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Объект 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
OBJBODYPARTS STR_SAR Части тела 
OBJ_PLAYER BYTE Номер игрока 
NID DWORD ID объекта 
OBJTYPE DWORD Тип объекта 
OBJNAME STRING Объект в скрипте 
OBJTEMPLATE STRING 3D объект 
PARENTTEMPLATE STRING Имя юнита или объекта 
OBJPRIMTXTR STRING Текстура 1 
OBJSECTXTR STRING Текстура 2 
OBJCOMMENTS STRING Комментарии 
OBJPOSITION PLOT Координаты начального положения юнита или объекта 
OBJROTATION QUATERNION Повороты и наклоны объекта 
OBJ_USE_IN_SCRIPT BYTE Квестовый юнит 
OBJ_IS_SHADOW BYTE Тени(CheckBox) 
OBJ_PARENT_ID DWORD неазвестна 
OBJ_QUEST_INFO STRING Принадлежит квесту... 
OBJCOMPLECTION PLOT Комплекция 1,2,3 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Юнит 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
UNIT_NEED_IMPORT BYTE Параметры брать из...(база/mob) 
UNIT_PROTOTYPE STRING Прототип юнита из базы 
UNIT_ARMORS STR_SAR Одежда у юнита 
UNIT_WEAPONS STR_SAR Оружие у юнита 
UNIT_SPELLS STR_SAR Заклинания у юнита 
UNIT_QUICK_ITEMS STR_SAR Зелья у юнита 
UNIT_QUEST_ITEMS STR_SAR Ключевые предметы у юнита 
UNIT_STATS STR_S06 Параметры юнита из mobа 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Используемый объект 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
L_SCIENCE_STATS_NEW BINARY Требуемая ловкость рук? 
LEVER_CUR_STATE BYTE CheckBox 
LEVER_TOTAL_STATE BYTE неизвестна 
LEVER_IS_CYCLED BYTE Напрашивается сравнение с поведением юнита;)(CheckBox?) 
LEVER_IS_DOOR BYTE Дверь(CheckBox) 
LEVER_RECALC_GRAPH BYTE (CheckBox) 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Магическая ловушка 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
MT_DIPLOMACY DWORD Дипломатия(-1) 
MT_SPELL STRING Заклинание 
MT_CAST_INTERVAL DWORD Интервалы между исп. закл. 
LEVER_CAST_ONCE BYTE Кастовать один раз?(CheckBox) 
MT_AREAS STR_S01 Область(X,Y,Z) 
MT_TARGETS STR_S02 Цели 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Костры,факелы 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
TORCH_PTLINK PLOT Координаты 
TORCH_STRENGHT FLOAT Мощность огня 
TORCH_SOUND STRING Звуковой файл 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
PARTICL 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
PARTICL_ID DWORD ID объекта 
PARTICL_POSITION PLOT Координаты размещения 
PARTICL_NAME STRING Имя в скрипте 
PARTICL_COMMENTS STRING Комментарии 
PARTICL_TYPE DWORD ТИП(всегда "8193") 
PARTICL_SCALE FLOAT Масштаб? 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Объект освещения 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
LIGHT_ID DWORD ID объкта 
LIGHT_SHADOW BYTE Тень(CheckBox,всегда"да=1") 
LIGHT_POSITION PLOT Координаты размещения 
LIGHT_COLOR PLOT Цвет RGB от 0 до 1 (?,?,?) 
LIGHT_RANGE FLOAT Область распространения(радиус) 
LIGHT_NAME STRING Имя в скрипте 
LIGHT_COMMENTS STRING Комментарии 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
SOUND 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
SOUND_RESNAME STR_SAR Звуковой файл 
SOUND_ID DWORD ID 
SOUND_POSITION PLOT Координаты 
SOUND_RANGE DWORD Область распр. 
SOUND_RANGE2 DWORD Обл. Распространения 2 
SOUND_NAME STRING Имя в скрипте 
SOUND_COMMENTS STRING Комментарии 
SOUND_MIN DWORD Всегда 1500 
SOUND_MAX DWORD всегда 3000 
SOUND_AMBIENT BYTE Окружиющий звук?(CheckBOX, Всегда"0") 
SOUND_IS_MUSIC BYTE Музыка.CHECKBOX.Всегда"0" 
З.Ы. 
Вообще-то использовать все это надо с умом, 
а не с тем, на чем сидишь. И тогда (только 
тогда) у тебя может быть что-нибудь и получ 
ится! 








Графические файлы проклятых земель 

Замена текстуры предмета: 


Необходимые библиотеки: 
1. MMP Studio v 1.1 
2. Adobe Photoshop 6(рекомендуется версией 7) 
3. dds plugin - это надо положить в <папка с Фотошопом>/Plugin-ins/File formats/ 
4. WinRar 
5. Для MMPS mfc70.dll и msvcr70.dll (положите их в папку,куда установите MMPS) 6. DirectX 9.0-это поищите сами 
7. Modcreator_vea 


ДЕЙСТВИЯ 
1)Запускаем Modcreator ,щелкаем по программе правой клавишей мыши утилиты resbuild, появляется табличка... В первой строчке выбираем файл, который надо распаковать(для этого туториала-redress.res из С:Program FilesПроклятые землиRES Во второй строчке выбираем папке,куда надо распаковать(создадите новую в любом месте) 
2)Выбираем"extract files from resourse(распаковать)" 
Ждем пока не пропадет "ДОСовская"табличка. 
Запускаем ММРS, жмём "..." выбираем папку,куда будем конвертировать(создать новую),в "Convert" выбираем из папки,куда распаковали Redress.res, выбирайте любой файл и конвертируйте. 
4)Включаем Фотошоп, открываем из папки, куда совершали действия из "3)",файл unhumahl_13.cd.0.dds 
5)Меняем его текстуру,(Не залезая за шаблон ) 
6)Сохраняем файл под тем же названием и в том же формате (*.dds)-в появившейся ужасной табличке ставим такие параметры: 
32 bit 
No mip maps 
...и выбираем "Save" 
8)Возвращаемся к MMPS "..." выбираем папку, куда в действиях 1) и 2)распаковывали redress.res.В "Convert" выбираем измененные файлы. 
9)Возвращаемся к Modcreator-у...меняем в табличке ResBuild-а "распаковка" на "упаковка". 
10)Идем в ПЗ и наслаждаемся!!! 

создание нового материала 
Данный туториал распространяется только на мультиплеер 
Перед прочтением данного туториала необходимо ознакомиться с предыдущим Файлы: Все, какие были в предыдущем туториале impdatabase 
-Приготовления - распакуйте impdatabase в папку с Modcreator`ом 
-Действия: 
1)Откройте файл Materials по пути ...Modcreator_vea/evilislands_impdatabase/Items. В конце записей пропишите название материала(в данном случае это Mramor) 
2)Откройте Modcreator. 


Укажите путь к папке evilislands_impdatabase Активизируйте её . Откройте"Materials" Откройте"Mramor"Пропишите параметры материала(см."описание параметров материала",в Material Code name напишите mr)Сохраните изменения(есть такая кнопка в Modcreator`е) 
3)С помощью Modcreator`а распакуйте в отдельную папку файл textures.res из папки RES в папке ПЗ(распаковка идентична распаковке redress.res в туториале1)Откройте MMPS. Конвертируйте из папки распакованного textures.res файл material0018.mmp в любую другую папку в material0018.dds (о конвентации читайте в туториале1) 
4)Откройте в Photoshop`е material0018.dds.Перерисуйте в этом файле текстуру 
камня на текстуру мрамора(как он выглядит,думаю,знают все)(о том,как перерисовывать текстуру предмета/материала,читайте в туториале 1). 
Сохраните(параметры указаны в туториале 1) 
Переименуйте файл material0018.dds в material0036.dds и конвертируйте его обратно в формат mmp. Должен получиться файл material0036.mmp.Положите его в папку с распакованным textures.res. Возвращаемся к Modcrestor`у:запакуйте из папки с распакованным в оригинальный файл textures.res(и об этом написано в туториале 1 на примере redress.res) 
*Если очень хотите,сходите в ПЗ в магазин Бабура и посмотрите своё творение 
5)Распакуйте Modcreator`ом в отдельную папку redress.res(конкретно об этом написано в туториале 1)Конвертируйте с помощью ММРS из папки с распакованным redress файлы "unhufeax_01.rc.0.mmp","unhufebw_01.rc.0.mmp" 
"unhufedg_01.rc.0.mmp","unhufesw_01.rc.0.mmp","unhufeax_02.rc.0.mmp", 
"unhufehm_03.rc.0.mmp","unhufehm_02.rc.0.mmp","unhufesp_01.rc.0.mmp"в другое место из mmp в dds. Откройте Photoshop`ом все распакованные файлы. Перерисуйте текстуры, как описано в туториале 1.Сохраните.Сохраните файл 
unhufehm_03.rc.0 под именами unhufehm.mr.0,unhumahm_03.mr.0, 
unorfehm_03.mr.0,unormahm_3.mr.0;файл unhufeax_02.rc.0 как unhufeax_02.mr.0,unhumaax_02.mr.0,unorfeax_02.mr.0,unormaax_02.mr.0; 
unhufedg_01.rc.0 как unhufedg_01.mr.0,unhumadg_01.mr.0,unorfedg_01.mr.0, 
unormadg_01.mr.0;unhufesp_01.rc.0 как unhufesp_01.mr.0,unhumasp_01.mr.0, 
unorfesp_01.mr.0,unormasp_01.mr.0;unhufebw_01.rc.0 как unhufebw_01.mr.0, 
unhumabw_01.mr.0,unorfebw_01.mr.0,unormabw_01.mr.0;unhufesw_01.rc.0 как 
unhufesw_01.mr.0,unhumasw_01.mr.0,unorfesw_01.mr.0,unormasw_01.mr.0; 
unhufehm_02.rc.0 как unhufehm_02.mr.0,unhumahm_02.mr.0,unorfehm_02.mr.0 
,unormahm_02.mr.0;unhufeax_01.rc.0 как unhufeax_01.mr.0,unhumaax_01.mr.0 
,unorfeax_01.mr.0,unormaax_01.mr.0.Запакуйте Modcreator`ом redress.res. Можете удалить папку с распакованным redress.res. 
Можете сходить в ПЗ и посмотреть новое оружие 
6)Добавлять новый материал не интересно без описаний Далее описывается, как это сделать: 
Распакуйте в отдельную папку texts.res.Скопируйте в отдельную папку файлы 
"Material Rock","MATSHORT Rock","WEAPON Stone_Short_Bow Rock", 
"WEAPON Stone_Axe Rock", 
"WEAPON Stone_Sword Rock", 
"WEAPON Stone_Dagger Rock", 
"WEAPON Stone_Battle_Axe Rock", 
"WEAPON Stone_Hammer Rock", 
"WEAPON Stone_Battle_hammer Rock", 
"WEAPON Stone_Spear Rock", 
"QITEM Wand_1 Rock" 
Все эти файлы открываются блокнотом. Переименуйте их все, поменяв в названиях "Rock" на "Mramor" 
Пропуски в названиях материалов недопустимы! 
Откройте переименованные файлы блокнотом, поменяйте описания и сохраните. 
Переместите их в папку с распакованным texts.res. Запакуйте texts.res. Можете удалить папку с распакованным texts.res. 
7) Извлеките в другую папку из папки с распакованным textures.res файлы 
"qitem0026.rc.mmp"и"qitem0034.rc.mmp".Замените в их названии "rc"на"mr". 
Откройте Photoshop`ом. Перерисуйте. Сохраните(так же, как и бронь , оружие, материалы).Переместите в папку с распакованным textures.res. 
Запакуйте textures.res. 
Можете удалить папку с распакованным textures.res. 
*Идите в ПЗ и наслаждайтесь полноценным материалом! 
Можно сдеть его УНИКАЛЬНЫМ тоесть за выполнение мисси какой-нибудь дается! .

<
СКОРО Я ЗАЛЮЬ НА САЙТ РЕДАКТОР mob ФАЙЛОВ 

Категория: Статьи про ПЗ | Добавил: Демон (31.10.2007)
Просмотров: 2724 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

  • Copyright MyCorp © 2024Используются технологии uCoz