Garry's Mod. Создание NPC
Создаём NPC
Для примера возьмём Gordon Freeman NPC.
Понадобится:
Adobe Photoshop или Paint.NET
Блокнот
Мозг
Собственно процесс:Для начала создаём папки: создаём папку My NPC(например), в ней создаём папки lua, models, materials и файл info.txt.Начнёс с lua: создаём в ней папку autorun, а в ней файл с расширением lua, например Freeman.lua. Пишем в этом файле:
local Category = "Humans+Resistance"
local NPC = { Name = "Gordon Freeman",
Class = "npc_citizen",
Model = "models/katharsmodels/gordon_freeman/gordon_freeman.mdl",
Health = "100",
KeyValues={citizentype=4},
Category = Category }
list.Set( "NPC", "npc_freeman", NPC )
Разберём этот lua файл:
local Category = "Humans+Resistance"-категория NPC, в которой окажется наш Фримен
local NPC = { Name = "Gordon Freeman",-имя NPC, отображающееся под картинкой
Class = "npc_citizen",-класс NPC
Model = "models/katharsmodels/gordon_freeman/gordon_freeman.mdl",-путь к модели
Health = "100",-здоровье NPC, от 1 до бесконечности
KeyValues={citizentype=4},-обязательная строка
Category = Category }-обязательная строка
list.Set( "NPC", "npc_freeman", NPC )-команда для вызова NPC через консоль
Закончили. Теперь кидаем модели в папку models(Путь должен соответствовать указанному в lua!!!Слэш в lua должен быть /, а не . Это важно!!!)и текстуры в папку materials. Нельзя создать NPC из любого рэгдолла!!! Модель должна содержать все необходимые анимации, иначе NPC просто будет стоять столбом!!!
Теперь нашему NPC понадобится иконка для спавнменю. А нам для этого понадобится фотошоп или пэйнт.нет(я бы посоветовал последний) с установленным vtf-плагином.
Включаем игру, вызываем нашего NPC, делаем скриншот, открываем редактор, загружаем скриншот, обрезаем-обжимаем до размера 150x150 сохраняем в vtf(называем freeman.vtf к примеру). В папке materials создаём папку VGUI, а в ней папку entities, туда и кидаем нашу иконку. Создаём рядом с ней файл расширения vmt Имя файла должно соответствовать имени lua!!! Вписваем туда:
"UnlitGeneric"
{
"$basetexture" "vgui/entities/freeman"
"$vertexcolor" 1
"$vertexalpha" 1
"$nolod" 1
}
"$basetexture" "vgui/entities/freeman"-путь к иконке
Сохраняем файл.
Открываем info.txt и пишем туда: