Мод на оружие в майнкрафт любая версия. Моды на оружие

Доброго времени суток, уважаемые участники форума!
Сегодня я расскажу как реализовать свое оружие для Counter Strike 1.6 и помогу вам научится работать с программой FragMotion.

Что понадобится сегодня?


  • fragMOTION - лучше не старше 1.1.
  • MilkShape 3D - у самого 1.7.6.
  • GUI StudioMDL - последнюю.
  • Прямые руки - с рождения.

(Перед прохождением урока, возьмите v_deagle.mdl и v_knife.mdl, и положите в отдельные папочки, для удобства).

Часть первая. Подготовка к работе.

1. Для начала откройте MilkShape 3D, затем вкладочку Tools, и Kratisto"s Half-Life MDL Decompiler v.1.x (x=версия) .
2. Нажимаем кнопочку обзор, ту, которая находится справа от слов MDL File...

3. Открываем обычный v_deagle.mdl, который находится в специально подготовленной папочке.
4. Жмем ОК, и ждем пока процесс завершится.
5. Готово! Откройте папочку, и найдите в ней.smd, .bmp и.qc файлы.
6. Открываем наш fragMOTION, жмем File --> Open..., выбираем ref_deonly.smd.
7. Мы получим так называемый "референс" дигла. Сейчас нам нужно удалить все кости, кроме меша (модели).

Но прежде чем что-то сделать, откройте Edit --> Customize User Interface. Если все стоит по-дефолту, кликните на строчку, и выберите Mouse Configurations.
Перед вами есть настройки Default. По ним, кстати, очень сложно работать.
Нажмите правой кнопкой по вкладке MouseConfigurations --> New... --> MouseConfig.
Появится новый конфиг. Щелкаем на нем левой кнопкой мыши, и настраиваем все как у меня.

Все сделали? Жмем File --> Save Changes.

8. Как же удалить эти кости? Легко. Зажмите правую кнопку, и обведите все, что есть вокруг пистолета. Жмем клавишу Delete. Готово.
9. Осталось подготовить пистолет для дальнейшего использования.
Щелкаем на Transform --> Transform Options...
Выкатывается окошечко.

Убираем галочку со Scale. Ставим галку на Position, затем кнопку Apply.
Наш пистолет выравнивается по центру.
Теперь нужно его повернуть для того, чтобы он ровно лег в руках...
В руках? В руках?! Что же мы делаем такое?
А делаем мы вот что.

Часть вторая. Запекание костей.

10. Теперь нужно его повернуть для того, чтобы он ровно лег в руках...
Жмем на галочку Rotate, в поле Y вводим - 90,0000, и жмем Apply два раза.
Стираем в поле Y девятку, оставляем 0,0000. Теперь вводим 90,0000 в поле Z.
Жмем на Apply три раза.
11. Убираем галочку с Rotate и ставим галочку на Position. Оставляем все как есть. Жмем один раз Apply.
Примечание: Если вдруг пушка улетела куда не надо, нажимайте Apply до того, пока пистолет не ляжет в середину .

Так, я же не рассказал одну вещь.
Жмем View --> Layout --> 4 corners. Так очень удобно ориентироваться в дальнейшем.
Чтобы летать в 3D виде, зажмите кнопку на колесике мыши. Чтобы разворачивать камеру, зажмите Shift + Mouse3 (колесико мыши). Приближать, я думаю, умеете.

После всех операций, описанных выше, у вас должно получиться нечто такое.

12. Жмем File --> Merge..., открываем reference.smd от вашего декомпилированного ножа. Ничего не выделяя, просто жмем ОК.
В сцену попадают руки и нож.

13. Теперь нам надо уничтожить остатки ножа, и вставить пистолет.
Пушку мы не трогаем, сейчас займемся ножиком.

14. Зажимаем Shift+ЛКМ (левая кнопка мыши), и обводим не нужный нож.
Жмем клавишу Delete. Ого, кусочки остались!

15. Теперь на видах Left, Top, Front проделайте тоже самое, удаляя последние остатки ножа.

16. Ура! Ножа нет, и теперь можно приступить к запеканию костей.
Нажмите ЛКМ два раза по ref_deonly.

Теперь ЛКМ передвиньте пушку к синей точке, которая находится на месте удаленного ножа. Дулом вперед, соответственно.

У вас должно получиться нечто похожее.

Примечание: У вас нет на руках текстур? Не волнуйтесь! Это совсем не важно. Текстуры у меня остались со старых экспортов.

17. Теперь выделяем ПКМ синюю точку, которая находится у нас на дуле.
Примечание: Пистолет должен быть обязательно выделен, и быть красным.

18. Теперь Bone --> Assign Selected Vertices to Bone.
Вуаля! Кость прилепилась к пушке! Чтобы снять выделение, нажмите ПКМ на сцене, и сочетание клавиш Ctrl+Shift+N.

Проверяем.

19. Давайте посмотрим, что у нас вышло. Нажмите File --> Merge Animations... и выберите, например, draw.smd от ножа. Ничего не выделяя, жмем ОК.
Теперь в правом верхнем углу маленькая кнопочка Anim..., жмем. Получаем такую картину.

Выбираем анимацию draw, и ниже дергаем ползунок.

Если все получилось, то, я очень за вас рад!

Часть третья. Добавление оружия в игру.

20. Создайте отдельную папочку под названием Deagle Knife.

21. Нажмите на анимацию draw, и щелкните клавишу Delete. Анимации нет, и значит, у нас в руках, так называемый, референс.

21. Нажмите File --> Export..., сохраняйте с названием reference, и ниже с форматом Half-Life SMD Files (.smd).

Оставьте точечку на Mesh.

22. Теперь, кстати, самое легкое, но, скажем так, очень нудное.
Жмем File --> Merge Animations..., и выбираем, например, draw.smd.
Ничего не трогаем, жмем ОК.
Затем File --> Export..., в спец. папочку Deagle Knife, вводим название анимации draw, формат.smd.
Выкатывает окошечеко. Щелкаем на точечку Animation, и ниже выбираем draw. ОК,

Теперь нужно проделать тоже самое с idle, midslash1, midslash2, slash1, slash2, stab, stab_miss.
Примечание: Не трогаем reference! Мы уже подготовили его в самом начале.

23. Открываем папочку, проверяем наличие таких файлов.

24. Если все на месте, сейчас мы познакомимся с новой для нас программой - GUI StudioMDL.

25. Перекиньте v_knife.qc из папки с декомпилированным ножом, в папку Deagle Knife. Так же, текстуру knifeskin.bmp.
Примечание: Почему? А чтобы не заморачиваться с изменением кода.qc, оставим текстуру. Она не мешает.

26. Из папки с декомпилированным диглом достаем DE_slide1.bmp, DE_handle.bmp, DE_slide2_eagle.bmp, view_glove.bmp, view_skin.BMP, view_finger.bmp, и кидаем в нашу папку Deagle Knife.

27. Перенесите папку Deagle Knife в директорию C:/, чтобы программа GUI StudioMDL не конфликтовала с кириллицей.

28. Открываем GUI StudioMDL, жмем File --> Load QC File.
После чего ставим галку на Dump Hitboxes, и потом, восторженно кликаем на Compile.
Если все прошло успешно, в папке Deagle Knife появится v_knife.mdl.

Примечание по всему уроку: Вставить в руку можно не только тот же самый дигл, вставьте туда ножовку, отвертку, ведро, да все что угодно!

Но вот третья часть подошла к концу, да и вообще весь урок. Если у кого, что не получается, пишите, помогу, чем смогу. Спасибо за внимание, с вами был Валентин.
В следующем уроке я расскажу как сделать свое огнестрельное оружие, и мы серьезно поговорим о аттачинге костей.

Так же хочу поблагодарить Михаила , за его подробные объяснения на эту тему, и весь портал GCC за моральную поддержку.

Сперва заходим в папку addons - D:\Games\Red Garry"s Mod\Game\garrysmod\addons
Создаём новую папку,переименовываем его название на своё,к примеру SWEP.

Дальше создаём текстовый файл addon.txt.
Вписываем в него:
"AddonInfo"
{
"name" "Swep" // Вместо Swep впишите своё название аддона.
"author_name" "Author" //Вместо Author впишите свой ник.
"author_url" "Url" //Тут можно написать страницу своего сайта.Пример -
"info" "Swep" // Тут вписываем информацию о своём оружие.
}
В принципе можно оставить всё как есть.
Дальше создаём папку lua.

Как и что?

Вот теперь можно создавать оружие.
Открываем наш.lua файл,и вписываем в самом начале вот этот код:

SWEP.PrintName = "Chair Thrower" // Это название нашего оружия.
SWEP.Author = "I am athor" // Тут можно указать ник автора. Впишите свой ник в кавычках.
SWEP.Instructions = "Left mouse to fire a chair!" // Это инструкция по аддону.

SWEP.Spawnable = true // Тут можно вписать разрешение простому игроку,если там = true как в нашем случае,то игроку разрешается использовать это оружие,если = false то игроку запрещается использовать его.
SWEP.AdminOnly = true // То же самое как и в случае сверху,только тут разрешение/запрещение оружие даётся админу.

SWEP.Primary.ClipSize = -1 // Это функция отвечает за количество патрон в магазине,если значение = -1 как в нашем случае,то патронов в магазине бесконечно.
SWEP.Primary.DefaultClip = -1 // Количество патрон при получения оружия.
SWEP.Primary.Automatic = true // Тип оружия автомат или винтовка.В нашем случае = true это автомат,при случае = false это винтовка.
SWEP.Primary.Ammo = "none" // Тип патрон.

SWEP.Secondary.ClipSize = -1 // Вот тут всё то же самое как и в верхних
// функциях.
SWEP.Secondary.DefaultClip = -1
SWEP.Secondary.Automatic = false
SWEP.Secondary.Ammo = "none"


SWEP.AutoSwitchTo = false // Авто переключение оружия.
SWEP.AutoSwitchFrom = false

SWEP.Slot = 1 // Слот оружия,если = 1,то наше оружие будет в первом слоте рядом с монтировкой.
SWEP.SlotPos = 2 // Позиция оружия в слоте.
SWEP.DrawAmmo = false // Скрытие количества патрон в hud"е,если = false,то патроны скрываются,если = true то патроны остаются.
SWEP.DrawCrosshair = true // Скрытие прицела.

SWEP.ViewModel = "models/weapons/v_pistol.mdl" // ВАЖНО:Тут прописываем путь к оружию.Это модель которую будет держать игрок.
SWEP.WorldModel = "models/weapons/w_pistol.mdl" // ВАЖНО:Тут прописываем путь к оружию.Это модель которая будет лежать в не подобранном состоянии.

local ShootSound = Sound("Metal.SawbladeStick") // Звук при выстреле.

Теперь переходим к главным функциям.

function SWEP:PrimaryAttack() // ВАЖНО:Эта функция отвечает за свойства выстрела из левой кнопки мыши.

self.Weapon:SetNextPrimaryFire(CurTime() + 0.5) // Тут указано, когда произойдёт следующий выстрел. 0.5 вы можете изменить по своему вкусу.

self:ThrowChair("models/props/cs_office/Chair_office.mdl") // Функция атаки стульями.Если у вас не работает установите контент Counter-Strike Source или переименуйте модель в models/props_c17/FurnitureChair001a.mdl

function SWEP:SecondaryAttack() // Функция отвечает за выстрел из правой кнопки мыши.

self:ThrowChair("models/props_c17/FurnitureChair001a.mdl") // Функция атаки стульями.

function SWEP:ThrowChair(model_file) // Вот и сама функция стула.

self:EmitSound(ShootSound) // Проигрывание звука оружия.

if (CLIENT) then return end

local ent = ents.Create("prop_physics")

if (!IsValid(ent)) then return end

ent:SetModel(model_file) // Путь к модели,в данном случае ничего не указываем поскольку модели уже были указаны в функциях выстрела.

ent:SetPos(self.Owner:EyePos() + (self.Owner:GetAimVector() * 16)) // Указывает где появится модель.
ent:SetAngles(self.Owner:EyeAngles())
ent:Spawn() // Спавнит наше оружие

local phys = ent:GetPhysicsObject()
if (!IsValid(phys)) then ent:Remove() return end

local velocity = self.Owner:GetAimVector()
velocity = velocity * 100 // Сила выстрела,вы можете указать 7000,чтобы стулья летели со скорости пули.
velocity = velocity + (VectorRand() * 10)
phys:ApplyForceCenter(velocity)

cleanup.Add(self.Owner, "props", ent) // Функция удаление стула,как вы видите код относит его к категории пропс.

undo.Create("Thrown_Chair") // Главная функция удаления стула при нажатии кнопки z.
undo.AddEntity(ent)
undo.SetPlayer(self.Owner)
undo.Finish()
end

//Вот и всё.Ваше оружие готово,вы можете изменить свойства по своему вкусу.
//Искать в категории оружия Other.

Создайте луа файл, например: weapon_scripted_357.lua в папке 357 Scripted SWEP/lua/weapons.

Теперь соответственно напишем сам код.
Там где кавычки, нужно указывать названия в кавычках.

SWEP.Author = "Hds46" // Ник автора свепа.Нужно указывать в кавычках.
SWEP.PrintName = "357 Magnum" // Название свепа которое будет отображаться.
SWEP.Contact = "Your site or mail" // Контактная информация по которой вам будут писать об ошибках и предложениях.
SWEP.Purpose = "357 Scripted Weapon" // Краткая информация об оружии.
SWEP.Instructions = "Shoot" // Инструкция об том,как использовать наш свеп.
SWEP.Category = "My Weapons" // Категория, где будет лежать оружие.
SWEP.Spawnable = true // Если false то оружие нельзя заспавнить,если true то можно.
SWEP.AdminOnly = false // Если false то оружие может использовать каждый,если true то только админы.

SWEP.ViewModelFOV = 64 // Тут можно указать приближать/отдалять модель оружия от экрана игрока.
SWEP.AutoSwitchTo = true // Если true то игрок автоматически переключается на это оружие(если подбирает его),если false то нет.
SWEP.AutoSwitchFrom = false // То же самое,но с другими свепами.
SWEP.Slot = 1 // Позиция оружия в Hud"е.
SWEP.SlotPos = 3 // Позиция оружия в Hud"е.(в нижней части)
SWEP.Weight = 5 // Вес оружия.
SWEP.DrawCrosshair = true // Если true то показывается прицел,если false то нет.
SWEP.DrawAmmo = true // Если true то показывается индикатор патрон магазина игрока,если false то нет.

SWEP.ViewModel = "models/weapons/c_357.mdl" // Директория модели от первого лица.
SWEP.WorldModel = "models/weapons/w_357.mdl" // Директория модели от третьего лица.

SWEP.Primary.Sound = "Weapon_357.Single" // Звук выстрела.Можно указывать директорию,а можно и указывать звуки прописанные в папке script.
SWEP.Primary.Tracer = "Tracer" // Название трассы(следа) пули.
SWEP.Primary.TakeAmmo = 1 // Количество патрон которое расходуется при каждом выстреле
SWEP.Primary.Spread = 0.01 // Точность оружие,чтобы оружие стреляло точно как слонобой из кс,напишите 0 или 0.01
SWEP.Primary.Delay = 1 // Скорострельность оружие(можно сделать автомат или пулемет)
SWEP.Primary.Recoil_pitch = -8 // Значение необходимое для отдачи оружия(Отдача наверх)
SWEP.Primary.Recoil_yaw_min = -2 // Минимальное значение для кода math.Rand
SWEP.Primary.Recoil_yaw_max = 2 // Максимальное значение для кода math.Rand,он будет выбирать случайное десятичное число в диапазоне от -2 до 2. Значение необходимое для отдачи оружия(Отдача вправо и влево)
SWEP.Primary.Recoil_roll = 0 // Значение необходимое для отдачи оружия(Отдача спереди)
SWEP.Primary.Damage = 65 // Урон наносимый оружием.
SWEP.Primary.NumberofShots = 1 // Количество пуль выпускаемых при каждом выстреле(Дробовик)
SWEP.Primary.ClipSize = 6 // Максимальное количество пуль в магазине.
SWEP.Primary.DefaultClip = 6 // Максимальное количество пуль в магазине при подборе оружия.
SWEP.Primary.Automatic = true // Если true то можно будет удерживать кнопку мыши и стрелять не останавливаясь,если false то нужно нажать кнопку атаки еще раз.
SWEP.Primary.Ammo = "357" // Название используемых боеприпасов.
SWEP.HoldType = "revolver" // Тип анимаций которые воспроизводит игрок.

SWEP.UseHands = true // Если true то c_модели используют кастомные руки,если false то нет.

SWEP.Base = "weapon_base" // База для оружия.Нужна чтобы позаимствовать пару нужных фич.
// У нашего оружия нет функций альтернативного выстрела,так что Secodary значения нам не нужны.
SWEP.Secondary.Delay = 0.1
SWEP.Secondary.Recoil = 0
SWEP.Secondary.Damage = 0
SWEP.Secondary.NumberofShots = 1
SWEP.Secondary.ClipSize = 0
SWEP.Secondary.DefaultClip = 0
SWEP.Secondary.Automatic = true
SWEP.Secondary.Ammo = "none"

function SWEP:Initialize() // Инциализация оружия где нужно запрекэкшить звуки и указать тип анимаций.
util.PrecacheSound(self.Primary.Sound)
self:SetWeaponHoldType(self.HoldType)
end

function SWEP:Reload() // Функция при перезарядке
if (self:GetNextPrimaryFire() > CurTime()) then return end // Это нужно чтобы во время выстрела не перезаряжалось.
if (self.Weapon:Clip1() < self.Primary.ClipSize && self.Owner:GetAmmoCount(self.Primary.Ammo) > 0) then // Проверка на патроны.Если у оружия меньше патрон чем обычно и есть патроны у игрока тогда дальше код.
self:SetNextPrimaryFire(CurTime() + 3) // Время следующего выстрела,ведь не будет же игрок стрелять прямо во время перезарядки.
self:DefaultReload(ACT_VM_RELOAD) // Анимация перезарядки(от первого лица)
self.Owner:SetAnimation(PLAYER_RELOAD) // Анимация перезарядки игрока(от третьего лица)
end
end

function SWEP:PrimaryAttack() // Функция выстрела левой кнопки мыши.
if (!self:CanPrimaryAttack()) then return end // Если нет патрон, то оружие не может стрелять.
local tr = self.Owner:GetEyeTrace() // Направление прицела игрока.
local bullet = {} // Структура пули,значения будут использоваться из значений описанных выше,только вместо SWEP - self.
bullet.Num = self.Primary.NumberofShots
bullet.Src = self.Owner:GetShootPos()
bullet.Dir = self.Owner:GetAimVector()
bullet.Spread = Vector(self.Primary.Spread * 0.1 , self.Primary.Spread * 0.1, 0)
bullet.Tracer = self.Primary.Tracer
bullet.Damage = self.Primary.Damage
bullet.AmmoType = self.Primary.Ammo

self:TakePrimaryAmmo(self.Primary.TakeAmmo)

self.Weapon:MuzzleFlash() // Вспышка выстрела.
self.Owner:FireBullets(bullet) // Вот этот код берет все значения от bullet(выше) и позволяет игроку стрелять пулями.
self:EmitSound(Sound(self.Primary.Sound)) // Воспроизводит звук выстрела.
self.Owner:ViewPunch(Angle(self.Primary.Recoil_pitch,math.Rand(self.Primary.Recoil_yaw_min,self.Primary.Rec
oil_yaw_max),self.Primary.Recoil_roll)) // Отдача,берет значения которые я описал выше.
self.Weapon:SendWeaponAnim(ACT_VM_PRIMARYATTACK) // Воспроизводит анимацию выстрела(от первого лица)
self.Owner:SetAnimation(PLAYER_ATTACK1) // Воспроизводит анимацию выстрела(от третьего лица)
self:SetNextPrimaryFire(CurTime() + self.Primary.Delay) // Время следующего выстрела.
end

function SWEP:SecondaryAttack() // Функция выстрела правой кнопки мыши.(Она нам не понадобится)
end

function SWEP:Deploy() // Функция при подбирании оружия.
self:SetNextPrimaryFire(CurTime() + self.Primary.Delay) // Время следующего выстрела,игрок не будет стрелять,пока не достанет оружие из кобуры.
self.Weapon:SendWeaponAnim(ACT_VM_DRAW) // Анимация подбирания оружия(от первого лица)
return true // Если true то разрешает поднимать оружие,если false то нет.
end

function SWEP:Holster() // Функция при убирании оружия в кобуру.
return true // Если true то разрешает убирать оружие в кобуру,если false то нет.
end

function SWEP:Think() // Функция которая будет воспроизводится когда игрок держит оружие,каждые 0.01 миллисекунд.
end

Хех, я жив
FAQ:

Вопрос: Если еще автор жив, ты можешь дать лог оружия ближнего боя? Очеенннььь надо
Ответ: К сожалению не делал х. оружие, а это всё я сделал ради руководства. Так что извини, могу дать совет напиши в поисковике "How to make simple weapon GMOD" там много вариантов может и х. оружие будет.

Вопрос: Слушай, я вот создал оружие, я теперь спокойной могу заливать его в мастерскую?
Ответ: Да, для этого нужна специальная программа:

Вопрос: Вопрос: можно ли указать кастомный звук "local ShootSound = Sound" ?
Ответ: Вполне, указывайте путь на звук.

Вопрос: Конечно, нормальное руководство, но не существует иного варианта? (Через программу какую либо например)
Ответ: К сожалению программ нет, есть аддон в мастерской, но там можно делать уж слишком простые оружия.

Вопрос: а как сделать lua - файл?
Ответ: Создаёте файл к примеру firstaddon.txt - нажимаете ПКМ по файлу - перемеиновать - и вместо.txt ставите.lua - сохраняем изменения и всё :)

P.S Извиняюсь за задержку, просто не до этого было:)

Моды - это разработанные обычными игроками дополнения, которые добавляют новый контент в МайнКрафт: предметы, техника, биомы и многое другое. Дополнения на новое оружие являются одними из самых популярных среди игроков по всему миру, так как огнестрел значительно разбавляет геймплей игры.

Модификаций, которые добавляют огнестрельное оружие и броню в Майнкрафт на компьютер, большое множество, поэтому Вы без труда найдете то, что придется по душе. Сотни различных моделей популярных пушек из реальной жизни, известные всем стволы из CS и CS:GO. Любите жесткие перестрелки? Возьмите пулемет и выпустите пару обойм по противнику. Больше по душе тихие скрытые убийста? Быстро хватаем в руки снайперскую винтовку с оптическим прицелом и выносим врага с одного попадания.

Какие виды оружия добавляют моды?

Как было сказано выше, моделей огромное количество. Ниже я попробую разделить все их на некоторые категории и приведу по несколько примеров.

  • Штурмовые винтовки (Оружие из CS) : Калаш 47, M4A1, Фамас F1, Galil;
  • Пистолеты и револьверы : Colt, Deagle, ТТ;
  • Дробовики : Mossberg, Remington, двустволки;
  • Снайперские винтовки : AWP, винтовка Мосина, Remington 700 LTR;
  • Взрывающееся оружие : Гранаты, мины, базуки.

Это лишь малая часть оружия из модов для МайнКрафта, с которой Вам предстоит познакомиться.

Огнестрельное оружие на сайт

На нашем сайте Вы сможете бесплатно скачать самые крутые и новые моды на оружие. В каждому моду будет подробное описание, скриншоты и ссылки на прямую загрузку.

Понравилась статья? Поделиться с друзьями: