Создание/изменение миссий в ПЗ:ЗвА
Доброго времени суток!!
Если вы зашли сюда, то скорей всего вам это интересно!!!
Разбираюсь в скриптах ПЗ плоховато, но простенькую миссию смогу спокйно сделать!
Сейчас восвращаю Затерянным в Астрале Мультиплеер, чтобы можно было варганить свой миссии!!
Да и еще!
Уважаемый НИВАЛ огромнная просьба, и думаю не только от меня, а вообще от всех ПЗ-шников.
Выложите редактор карт и ландшафтов, ведь к, и без того хорошей игре, повысится интерес.!! Ходя слухи что вы предоставили GipatGroup такой редактор, но почему бы не предоставить возможность каждому рядовому геймеру создать свой совершенно новый аллод (тем более сейчас, когда объявлен конкурс "Новый Аллод") . Или хотя бы предоставьте его за выйгрыш в конкурсе. Все вам будут очень благодарны!!
Продолжаем изменять игру!!!
Графические файлы Проклятых Земель
Замена текстуры предмета:
Необходимые библиотеки:
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","unh ufeax_02.rc.0.mmp",
"unhufehm_03.rc.0.mmp","unhufehm_02.rc.0.mmp","unh ufesp_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.
*Идите в ПЗ и наслаждайтесь полноценным материалом!
Можно сдеть его УНИКАЛЬНЫМ тоесть за выполнение мисси какой-нибудь дается!
Изменение комплекции (фигуры персонажа)
С помощью консольных команд
Этот способ работает на порядок корректнее, применять следует именно его.
Для того, чтобы играть за персонажа монстра необходимо ввести последовательность консольных команда, команды вводятся поочередно одна за другой.
thingamabob
@createparty(0,"NameParty")
@addunittoparty(0,"NameParty::Hero","NameUnit")
@setcurrentparty(0,"NameParty")
@redeployparty(0)
Данные консольные команды следует вводить когда персонаж находится на одной из баз (гипат, суслангер, ингос, пещера).
В данных командах приняты следующие переменные:
NameParty - название новой партии, может быть любым каким вы захотите;
NameUnit - имя юнита из файла "MonstersPrototypes.txt" из колонки Name, раздела Name;
Имя юнита выбирается исходя из вашего желания, в зависимости от того каким именно монстром/животным вы хотите играть. Важное замечание, имя юнита NameUnit писать в скрипте следует с учетом регистра (большие/маленькие буквы имеют значение), ошибки в написании имени юнита не допускаются, ошибка приведет к критическиому завершению программы.
Пример:
Мы хотим поиграть за дракона, в файле "MonstersPrototypes.txt" необходимо найти имя юнита-дракона, в колонке Name, раздела Name находим например "LMP Unique Dragon Plague Ancient 30" (это дракон повелитель из одноименного квеста в сетевой игре в пещере). Далее следует зайти в игру, создать обычным способом нового персонажа и зайти им на одну из баз (гипат, ингос, суслангер, пещера), ввести в консоли последовательность скриптов:
thingamabob
@createparty(0,"Dragon")
@addunittoparty(0,"Dragon::Hero","LMP Unique Dragon Plague Ancient 30")
@setcurrentparty(0,"Dragon")
@redeployparty(0)
В итоге получаем дракона, причем практически полноценного, с шеей
Неполноценность дракона будет заключаться в том, что он будет без имени, с 1 жизнью и 0 запаса сил, будет медленно перемещаться, при попытке зайти в магазин или в окно инвентаря игра будет вылетать с критической ошибкой.
Как сделать дракону имя мы рассмотрим чуть позже.
Проблема с заходом в магазин решается редактированием датабазы, а именно в файле "RaceModels.txt" в колонке TypeID для персонажа дракона (или любого другого которого вы сделали) необходимо заменить значение monster на human (или animal на human). Скомпилировать датабазу и установить ее в папку /res установленной игры (родную датабазу обязательно сохранить в безопасном месте!!!). Теперь персонаж дракон у вас будет выглядеть неполноценно, но сможет заходить в магазин, что очень важно для того, чтобы решить проблемму с медленным перемещением, 1 жизни и 0 запаса сил. После того как вы сделает в магазине все, что вам необходимо, следует вернуть исходную датабазу (чтобы дракон выглядел как подобает дракону), опять же сохранив исправленную в безопасном месте и в последующем при необходимости воспользоваться магазином менять датабазы.
После решения проблемы с заходом в магазин можно приступать к решению проблемы с медленным перемещением, 1 жизнью и 0 запаса сил. Необходимо войти в магазин, и ввести консольные команды:
thingamabob
give 0 exp 5000
проблема собственно решена, у персонажа появляются все необходимые скорость, жизни, запас сил.
Собственно вот таким вот нехитрым образом все и производится, следует заметить, что все монстры и животные полученные любым из двух способов будут без текстур (белые) с текстурами будут только орки и человеческие персонажи, проблема создания персонажей монстров с тесктурами на данный момент не решена.
Изменение комплекции (фигуры персонажа)
Есть два способа:
а) С помощью датабазы и скриптов
В файле "MonstersPrototypes.txt" в колонке Complection, раздела Graphics Data прописывается изначальная комплекция юнитов, задействованных в сетевой игре. В колонке через запятую стоит три значения например "0.4,0.3,1.1" - первая цифра "0.4" соответствует силе персонажа деленной на 100, т.е. если сила персонажа 40 то значение в колонке будет 40/100=0.4; вторая цифра соответствует ловкости (30/100=0.3); третья росту (110/100=1.1). Необходимо для заранее выбранного персонажа заменить значение на то, которое вам необходимо, например я в свое время делал "1.65,0.35,1.2" что соответствовало персонажу с силой 165, ловкостью 35, ростом 120 и получал этакого мистера олимпия. Далее как обычно собираем датабазу и скриптами делаем персонажа. Вроде ничего сложного.
б) С помощью одной датабазы
В файле "Perks.txt" для perk'a Strength1, устанавливаем в колонке Shown Exp значение 0, в колонке Modifier то занчение которое хотим например 50. Аналогичным образом для perk'a Dexterity1 устанавливаем в колонке Shown Exp значение 0, а в колонке Modifier то значение которое захотелось например 15. Компилируем датабазу, устанавливаем ее, заходим в игру и в окне магазина берем себе навыки сила и ловкость, так как мы устанавили значения Shown Exp=0, то взятие этих навыков не будет стоить нам опыта, а прибавка к силе и ловкости будет 50 и 15. Эти изменения отобразятся на нашем персонаже, он офигурится в момент.
Следует уточнить, что я не люблю второй способ, а пользуюсь исключительно первым, с помощью датабазы и скриптов, так как первый способ не влечет за собой изменения самих параметров силы и ловкости, а только изменение фигуры.
Изменение цвета имени персонажа или цвета отдельных букв в имени персонажа.
Изменение цвета имени персонажа или цвета отдельных букв в имени персонажа.
Цвета изменяются нехитрым способом, а именно введение перед именем вот такой вот конструкции ^1 перед всем именем или перед какой либо буквой в имени. Пример делаем имя опять же с помощью ArtMoney например хххххххххххххххххх, н овместо первых двух символов хх ставим ^1ххххххххххххх в итоге получаем ник синего цвета независимо от того цвета который будет назначаться автоматически при заходе на сервер, а если сделаем так:
^1хххххх^2xxxxx то половина имени будет синяя, половина зеленая . Нетрудно догадаться, что что цифра после ^ означает цвет, предлагаю поэкспериментировать и самим установить какая цифра какому цвету соответствует.
В дополнение следует заметить, что таким образом можно менять цвет не только имени и названия клана, но и просто писать в игровом чате разными цветами, просто перед фразами или буквами вводить конструкцию ^n, где n- цифра, соответствующая определенному цвету
Ссылка на Mob Reversing Tools
Полное описание каждого скрипта в ПЗ
Будет поделено на несколько сообщений, так как читать очень долго, и много усваивать.
А по маленьким частям легче будет новичкам!!!
001 ActivateTrap( Trap : object , Activate : float )
001_ Команда: ActivateTrap - деактивирует: Activate - 0 и активирует: Activate<>0 ловушку: Trap на игровой зоне. Например, на игровой зоне карты: Предгорья следует набрать в консоли команду: @ActivateTrap( GetObjectByID( "4515" ) , 1 ) будет активирована пирамида Орковского племени. Данная ловушка-Пирамида атакует только Дипломатическую группу - 0. Невозможно перенастроить дипломатию для объектов Ловушек с помощью команды: SetDiplomacy.
002 Add( A : float , B : float ) : float
002_ Функция: Add - возвращает сумму из двух чисел типа Float: A и В.
003 AddLoot( nPlayer : float , PartyNameSend : string , PartyNameRecv : string )
003_ Команда: AddLoot - добавляет предметы и деньги из обоза "Партии": PartyNameSend в обоз НЕ текущей "Партии": PartyNameRecv. Обе "Партии" принадлежат "Игроку": nPlayer. Не путать "Обоз" и "Рюкзак". В случае если изменение текущей партии будет происходить на игровой зоне, то предметы из набора "Рюкзак" всегда входящие в набор "Обоза" будут так же скопированы в обоз "Партии": PartyNameRecv. При выполнении команды: RedeployParty "Рюкзак Партии": PartyNameSend обнулится. "Рюкзак" новой партии будет так же пуст, хотя в инфоокне рюкзака останутся предметы, но на самом деле рюкзак предыдущей и текущей Партий будут пусты. Функция: GetLootItemsCount вернет значение 0.
004 AddMob( FileNameMob : string )
004_ Команда: AddMob - загружает файл "Mob" с именем FileNameMob из подкаталога …MAPS. Имя файла указывается с расширением и в кавычках. Файл должен иметь структуру Maps Object (*.mob) из проекта игры ПЗ. Принадлежность: Система.
005 AddObject( grp : group , UnitMap : object )
005_ Команда: AddObject - добавляет объект: Unit в "Игровую" группу, инициализируя глобальную переменную: grp. Команду: AddObject нельзя применять из консоли, так как в ПЗ нет консольных команд создания глобальных переменных групп. Принадлежность: Игровые Группы.
006 AddRectToArea( idArea : float , x1 : float , y1 : float , x2 : float , y2 : float )
006_ Команда: AddRectToArea - добавляет принадлежность участка игровой зоны в квестовую область под кодом: idArea. Область описывается в виде прямоугольника, где (X1,Y1) и (X2,Y2) координаты его двух противоположных углов. (Левый - нижний и верхний - правый) (юго-западный и северо-восточный угол). Стороны прямоугольника всегда расположены параллельно к сторонам света. Если координаты второй точки меньше первой, то зоны не будет. На игровой зоне может существовать множество областей с одинаковым кодом: idArea. Например, команда: QObjArea может установить задачу "Игроку" (команде Игроков): попасть в область под кодом: idArea - как одно из условий выполнения задания объявленного командой: QStart. В таком случае "Игрок", должен попасть в любой из участков области с кодом: idArea.