Спрайты для Hexen 2
Хотите добавить объекты в виде спрайтов к примеру из Heretic в Hexen 2? Отлично начнем, но сперва нам придется покопаться в коде игры, что-бы добавить новый объект в игру. Добавим в Hexen 2 колонну из Heretic.
Добавляем новый объект в игру.
Для тестов сначала сделайте карту в виде комнаты и расположите там какой либо стандартный entity объект, к примеру obj_fountain. Зайдите в его свойства и измените classname с obj_fountain на новый obj_BrownPillar . Запомните это название, сохраните карту, компилируйте. Теперь перейдем к кодингу.
Качаем нужное.
Идем на сайт http://uhexen2.sourceforge.net/download.html и в разделе "Sources for the 1.5.9 version:" качаем hexen2source-gamecode-1.5.9.tgz ,а также в разделе "Windows 32 bit (x86) zip files for the 1.5.9 version:"(если другая ос ищем другое) и качаем hexen2-utils-1.5.9
В папке с hexen 2 Создаем папку для мода testmod, в создаем еще одну папку - hcode. Открываем архив hexen2source-gamecode-1.5.9 и распкаковываем содержимое из "hexen2source-gamecode-1.5.9.tgz\hexen2source-gamecode-1.5.9.tar\gamecode-1.29b\hc\portals\" в созданную папку hcode.
Распаковываем из архива hexen2-utils-1.5.9 файл hcc.exe в нашу папку hcode. Для теста можем запустить hcc.exe и если все сделали правильно, то в папке hcode пойвится файл progs.dat. Удаляем его. Теперь будем добавлять новое.
progs.src
в нем изменяем строчку
на
это позволит создать файл в папке мода testmod
переходим в конец файла и добавляем новую строку
spawn.hc
Здесь ищем строку
Код
float ENT_DRAGLION = 91;
после нее начинаем новую строку и пишем
Код
float ENT_BROWN_PILLLAR = 92;
Теперь находим строку
Код
float entity_spawnvalues[552] =//6 per entity
и добавляем к числу 552 шестерку.
Код
float entity_spawnvalues[558] =//6 per entity
ниже находим такое:
Код
100, 200, 0, 3, 1, 1 // ENT_DRAGLION
};//Health Mass Movetype Solid Thingtype DamageType
и после ENT_DRAGLION добавляем новую строку для нашего объекта
Код
100, 200, 0, 3, 1, 1, // ENT_DRAGLION
1000, 0, 0, 3, 1, 1 // ENT_BROWN_PILLLAR
};//Health Mass Movetype Solid Thingtype DamageType
чуть ниже видим
Код
vector entity_box[184] =
изменяем на
Код
vector entity_box[186] =
ниже находим (размер незримой коробки)
Код
' -25 -25 0', ' 25 25 62' // ENT_DRAGLION
};
и меняем на
Код
' -25 -25 0', ' 25 25 62', // ENT_DRAGLION
' -24 -24 0', ' 24 24 80' // ENT_BROWN_PILLLAR
};
Теперь создаем файл heretic.hc и там пишем:
Код
void obj_BrownPillar (void)
{
precache_model2("models/BRPLA0.spr");
CreateEntityNew(self,ENT_BROWN_PILLLAR,"models/BRPLA0.spr",chunk_death);
}
obj_BrownPillar - тот самый который будет располагаться в редакторе карт.
BRPLA0.spr - будущий спрайт который мы создадим далее.
ENT_BROWN_PILLLAR - новое свойство объекта добавленное нами в spawn.hc
Сохраняем и запускаем hcc.exe , если все прошло без ошибок, то в папке мода testmod создастся progs.dat
На данный момент у нас должно быть так: в папке с игрой создана папка testmod. В ней:
Папка Hcode - папка где лежит игровой код и hcc.exe;
Файл Progs.dat - файл скомпилированный из папки Hcode
Можно попробовать протестировать запустив игру но объект не появится на карте т.к. еще нет спрайта