Call of Duty: Black Ops III

Call of Duty: Black Ops III

Nedostatek hodnocení
КАК СТРОИТЬ КАРТЫ В BLACK OPS III | РУКОВОДСТВО ДЛЯ CЛОНИКОВ 🐘
Vytvořil: Zyhramov
Данное произведение создаётся и редактируется в первую очередь для себя любимого в процессе создания новой, не особо затратной по силам карты, чтобы в случае если я вновь пропаду из редактора освежить память как им пользоваться и делать простые скриптики, а обычный народ смог разобраться хотя бы чуть-чуть в сие чудо аппарате от Treyarch как Radiant, APE и языке GSC на родном языке.
Я не являюсь 100% источником правдивой информации и оперирую тем, что нашёл, натыкал и узнал.

РУКОВОДСТВО БУДЕТ ОБНОВЛЯТЬСЯ НА ПРОТЯЖЕНИИ НЕОПРЕДЕЛЁННОГО СРОКА
Можете добавить в избранное и проверять его время от времени.
Интересующие вопросы и запросы на гайд в комментариях приветствуются.

Мои контакты: https://zyhramov.carrd.co
   
Ocenit
Přidat do oblíbených
Oblíbeno
Odebrat z oblíbených
📌КАК ПРАВИЛЬНО УСТАНОВИТЬ СОФТ ДЛЯ СОЗДАНИЯ КАРТ
Сперва нам нужно установить всё необходимое для создания карт. Для этого нам нужен инструмент созданный разработчиками в Steam.
Первым делом в библиотеке выставляем галочки на разделе "Инструменты" и "Приложения"

Далее в поиске либо ручками находим - Call of Duty: Black Ops III - Mod Tools

Перед тем как устанавливать, при помощи ПРАВОЙ КНОПКИ МЫШИ заходим в свойства этого приложения и переходим в раздел с ДОПОЛНИТЕЛЬНЫМ КОНТЕНТОМ и ставим галочку чтобы докачать весь контент редактора чтобы не словить баги, лаги и прочую нечесть.

После шагов описанных выше заходим в панель управления Windows и ищем раздел "Часы и регион" - "Изменение форматов даты, времени и чисел"

В разделе "Форматы" нужна кнопка "Дополнительные параметры"

Разделитель целой и дробной части используем "." (точку) Применяем и закрываем.

Устанавливаем!


После установки - запускаем и ждём пока наша база данных прогрузится, если всё сделано верно то в логах будет написано примерно следующее:

Далее ОБЯЗАТЕЛЬНО выставляем все языки в редакторе как у меня чтобы при запуске карты на отличных от вас языках она не вылетала


Дальше закрываем полностью лаунчер и скачиваем дополнительные микро-плюшки для него ТУТ[mega.nz] чтобы облегчить жизнь в редакторе.
Установка простая:
  • Скачать архив
  • Открыть архив
  • Открыть папку "Ultra Dark" и перенести всё содержимое в главную папку Black Ops III

📝НЕБОЛЬШОЕ ВВЕДЕНИЕ ПО СОДЕРЖИМОМУ В MOD TOOLS
Radiant
Программа которая позволяет нам строить нашу карту, добавлять на неё триггеры и ключевые объекты для связи их со скриптом через код карты.


APE
Программа которая позволяет нам просматривать ассеты которые имеет наш редактор, такие как - анимации, оружия, текстуры, модели, персонажи и им подобное.
🧶КАК СОЗДАТЬ КАРТУ И ЗАПУСТИТЬ ЕЁ
В лаунчере заходим во вкладку "File" и выбираем пункт "New"

"Template" используем "ZM Mod Level" и пишем название обязательно начинающееся на "zm_" и нажимаем "OK"


Чтобы запустить карту в редакторе выбираем её в меню лаунчера чтобы она горела оранжевым и нажимаем на кнопку с буквой R и ждём полной загрузки

Welcome! =)
🏃🏻‍♂️ОСНОВНОЕ УПРАВЛЕНИЕ RADIANT
Space - Клонирование
Backspace - Удалить объект
ПКМ - Горизонтальное перемещение
Ctrl + ПКМ - Вертикальное перемещение
Ctrl + Shift + ПКМ - Свободный обзор
N - Параметры энтити
S - Параметры текстур
H - Скрыть объект
Shift + H - Показать скрытые объекты
B - Браузер энтити
M - Браузер моделей
T - Браузер текстур
F - Фильтр объектов
R - Разворот объектов
F5-F9 - Изменение освещения
Ctrl + Tab - Изменение перспективы
🎈ПОЛЕЗНОСТИ
Дополнительный софт:
Visual Studio Code - Программа для редактирования кода[code.visualstudio.com]
Плагин для Visual Studio Code обеспечивающий удобства в скриптинге[marketplace.visualstudio.com]
Плагин для Visual Studio Code обеспечивающий удобства в редактировании кода звуков[marketplace.visualstudio.com]

Годные сайты с ассетами и информацией:
Devraw[www.devraw.net]
Devraw Legacy[docs.google.com]
T7Wiki[www.t7wiki.com]
Wiki ModMe[wiki.modme.co]
Kingslayer Kyle's Assets[sites.google.com]
API документация по GSC языку от ZeRoY[scripts.zeroy.com]

Крупные дискорды по созданию кастомных карт:
Devraw Discord[discord.gg]
ModTools Discord[discord.gg]
✨АССЕТЫ: ДОБАВЛЕНИЕ ПЕРКОВ
ПАК ПЕРКОВ КАЧАТЬ ТУТ[mega.nz]
После скачки пака с перками делаем следующее:
Перенести выделенные папки из архива в главную папку с БО3 с заменой

Далее в архиве открываем путь (usermaps - OPEN ME\YOUR_MAP_NAME) и содержимое перекидываем в папку вашей карты

Далее скачиваем два архива:
Библиотека визуальных эффектов[mega.nz]
Скрипты для компиляции кастомного худа[mega.nz]
Переносим все папки из архива с эффектами (hb21_fx_library) в главную папку с БО3 с заменой

В архиве с L3ak Mod будет .dll файл, его кидаем по следующему пути (Call of Duty Black Ops III\bin)

Далее переходим в папку нашей карты и ищем файл "имянашейкарты.gsc" в папке "scripts" (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\scripts\zm\zm_zperma_city.gsc)

В коде ищем раздел //Perks и после "#using scripts\zm\_zm_perk_staminup;" вставляем следующее:

#using scripts\zm\_zm_perk_electric_cherry;
#using scripts\zm\_zm_perk_widows_wine;
#using scripts\zm\_zm_perk_vulture_aid;
#using scripts\zm\_zm_perk_whoswho;
#using scripts\zm\_zm_perk_tombstone;
#using scripts\zm\_zm_perk_phdflopper;
#using scripts\zm\_zm_perk_elemental_pop;
#using scripts\zm\_zm_perk_random;




Тоже самое делаем в файле .csc нашей карты (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\scripts\zm\zm_zperma_city.csc)

После чего открываем в архиве с перками следующий путь (EXAMPLE MAP!!!!!!!!!!!!!!!!!!!!\usermaps\zm_ultimate_perks\ui\uieditor) и открываем следующий путь в папке нашей карты (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\ui\uieditor) и переносим "menus" из архива.


После чего мы снова открываем наш .csc файл (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\scripts\zm\zm_zperma_city.csc) и в функции "main" вставляем следующую строку

luiLoad( "ui.uieditor.menus.hud.t7hud_zm_custom" );


Топаем по пути (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\zone_source\zm_zperma_city.zone) и открываем .zone файл в котором вставляем следующую строку прямо над "xmodel,skybox_default_day"

include,hb21_perks



Направляемся по пути (Call of Duty Black Ops III\share\zone_source) и открываем "hb21_perks.zpkg". Туда вставляем строку указанную ниже. Куда её вписать указано на скриншоте

rawfile, ui/ uieditor/ menus/ hud/ t7hud_zm_custom .lua (уберите пробел перед .lua и после слешей, а то стим думает что ссылка, пример на скриншоте)


И напоследок добавляем звуки. Ищем файл .szc (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\sound\zoneconfig\zm_zperma_city.szc) и открываем его.

После этих строк
{
"Type" : "ALIAS",
"Name" : "user_aliases",
"Filename" : "user_aliases.csv",
"Specs" : [ ]
},


Вставляем наши:
{
"Type" : "ALIAS",
"Name" : "perk_sounds",
"Filename" : "perk_sounds.csv",
"Specs" : [ ]
},
{
"Type" : "ALIAS",
"Name" : "wonderfizz_sounds",
"Filename" : "wonderfizz_sounds.csv",
"Specs" : [ ]
},



Находим наши перки в редакторе карт в браузере префабов (ПКМ по пустому месту редактора) Ставим на карту, компилируем, радуемся! (Если нет звуков перекомпилируйте карту ещё раз либо проверьте шаги выше)


Рекомендуется не использовать перки как Who is Who, Mule Kick, Thombstone и Elemental Pop. Причина - Mule Kick может вызывать античит игры и при падении забирать все оружия и деньги, как исправить ещё не понял. Who is Who максимально сломан при взаимодействии с крафт столами, респавнами и прочим, в топку. Thombstone аналогичен Who is Who. Elemental Pop вызывает хоть и смертных но невидимых зомби.
✨АССЕТЫ: ДОБАВЛЕНИЕ ЯЩИКОВ
ПАК ЯЩИКОВ КАЧАЕМ ТУТ[drive.google.com]
После скачки пака с ящиками делаем следующее:
Перенести выделенные папки из архива в главную папку с БО3 с заменой

Далее в архиве открываем путь (usermaps - OPEN ME\YOUR_MAP_NAME) и содержимое перекидываем в папку вашей карты

Далее переходим в папку нашей карты и ищем файл "имянашейкарты.gsc" в папке "scripts" (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\scripts\zm\zm_zperma_city.gsc)
Ищем в коде строку "#using scripts\zm\zm_usermap;" и после неё вставляем следующее:

#using scripts\zm\_hb21_zm_magicbox;

Тоже самое проделываем и в .csc файле нашей карты. (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\scripts\zm\zm_zperma_city.csc)

Топаем по пути (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\zone_source\zm_zperma_city.zone) и открываем .zone файл в котором вставляем следующую строку прямо над "xmodel,skybox_default_day"

include,hb21_mystery_boxes

И напоследок добавляем звуки. Ищем файл .szc (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\sound\zoneconfig\zm_zperma_city.szc) и открываем его.

После этих строк
{
"Type" : "ALIAS",
"Name" : "user_aliases",
"Filename" : "user_aliases.csv",
"Specs" : [ ]
},


Вставляем наши:
{
"Type" : "ALIAS",
"Name" : "mysterybox_sounds",
"Filename" : "mysterybox_sounds.csv",
"Specs" : [ ]
},

Находим наши коробки в редакторе карт в браузере префабов (ПКМ по пустому месту редактора) Ставим на карту, компилируем, радуемся! (Если нет звуков перекомпилируйте карту ещё раз либо проверьте шаги выше)
✨АССЕТЫ: ДОБАВЛЕНИЕ ОРУЖИЙ
ПАК ОРУЖИЙ КАЧАЕМ ТУТ (ИСПОЛЬЗОВАЛСЯ БО4 ПАК)[mega.nz]
После скачки пака с оружием делаем следующее:
Перенести выделенные папки из архива в главную папку с БО3 с заменой


Топаем по пути (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\zone_source\zm_zperma_city.zone) и открываем .zone файл в котором вставляем следующие строки прямо над "xmodel,skybox_default_day"

stringtable,gamedata/weapons/zm/zm_levelcommon_weapons.csv

weapon,t8_abr223
weapon,t8_abr223_up

weapon,t8_auger_dmr
weapon,t8_auger_dmr_up

weapon,t8_cordite
weapon,t8_cordite_up

weapon,t8_escargot
weapon,t8_escargot_up

weapon,t8_essex_m07
weapon,t8_essex_m07_up

weapon,t8_zweihander
weapon,t8_zweihander_up

weapon,t8_gks
weapon,t8_gks_up

weapon,t8_hades
weapon,t8_hades_up

weapon,t8_hellion_salvo
weapon,t8_hellion_salvo_up

weapon,t8_hitchcock_m9
weapon,t8_hitchcock_m9_up

weapon,t8_icr7
weapon,t8_icr7_up

weapon,t8_kn57
weapon,t8_kn57_up

weapon,t8_koshka
weapon,t8_koshka_up

weapon,t8_m1897
weapon,t8_m1897_up

weapon,t8_m1927
weapon,t8_m1927_up

weapon,t8_maddox_rfb
weapon,t8_maddox_rfb_up

weapon,t8_mog12
weapon,t8_mog12_up

weapon,t8_mozu
weapon,t8_mozu_up

weapon,t8_mx9
weapon,t8_mx9_up

weapon,t8_outlaw
weapon,t8_outlaw_up

weapon,t8_overkill_zm
weapon,t8_overkill_launcher_zm
weapon,t8_overkill_up_zm
weapon,t8_overkill_launcher_up_zm

weapon,t8_paladin_hb50
weapon,t8_paladin_hb50_up

weapon,t8_rampart17
weapon,t8_rampart17_up

weapon,t8_rk7
weapon,t8_rk7_up

weapon,t8_saug9mm
weapon,t8_saug9mm_up

weapon,t8_sdm
weapon,t8_sdm_up

weapon,t8_sg12
weapon,t8_sg12_up

weapon,t8_spitfire
weapon,t8_spitfire_up

weapon,t8_strife
weapon,t8_strife_up

weapon,t8_swordfish
weapon,t8_swordfish_up

weapon,t8_titan
weapon,t8_titan_up

weapon,t8_vapr_xkg
weapon,t8_vapr_xkg_up

weapon,t8_vkm750
weapon,t8_vkm750_up

weapon,t8_daemon3xb
weapon,t8_daemon3xb_up

weapon,t8_grav
weapon,t8_grav_up

weapon,t8_kap45
weapon,t8_kap45_up

weapon,t8_rampage
weapon,t8_rampage_up

weapon,t8_swat_rft
weapon,t8_swat_rft_up

weapon,t8_switchblade_x9
weapon,t8_switchblade_x9_up

weapon,t8_vendetta
weapon,t8_vendetta_up

weapon,t8_welling
weapon,t8_welling_up



Потом дуем по пути (Call of Duty Black Ops III\share\raw\sound\aliases) и открываем файл "user_aliases" и вставляем в него строки из документа который лежит в архиве "ADD TO USER_ALIASES" (стим не даст вставить это сюда) Это добавит звуки оружий:


И последнее что нам нужно - копируем папку gamedata которая у нас находится по пути (Call of Duty Black Ops III\share\raw) и вставляем её в папку с нашей картой.


Удаляем в папке gamedata всё кроме папки "weapons-zm-zm_levelcommon_weapons.csv"
Открываем "zm_levelcommon_weapons.csv" и вставляем туда следующее предварительно удалив прошлые записи.

t8_abr223,t8_abr223_up,,1500,rifle,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,rifle,,,
t8_auger_dmr,t8_auger_dmr_up,,1750,rifle,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,rifle,,,
t8_cordite,t8_cordite_up,,1500,smg,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,smg,,,
t8_escargot,t8_escargot_up,,1300,smg,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,smg,,,
t8_essex_m07,t8_essex_m07_up,,500,rifle,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,rifle,,,
t8_zweihander,t8_zweihander_up,,3000,lmg,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,lmg,,,
t8_gks,t8_gks_up,,1300,smg,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,smg,,,
t8_hades,t8_hades_up,,2500,lmg,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,lmg,,,
t8_hellion_salvo,t8_hellion_salvo_up,,3000,launcher,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,launcher,TRUE,,
t8_hitchcock_m9,t8_hitchcock_m9_up,,1750,rifle,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,rifle,,,
t8_icr7,t8_icr7_up,,1550,rifle,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,rifle,,,
t8_kn57,t8_kn57_up,,1400,rifle,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,rifle,,,
t8_koshka,t8_koshka_up,,2000,sniper,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,sniper,,,
t8_m1897,t8_m1897_up,,1500,shotgun,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,shotgun,,,
t8_m1927,t8_m1927_up,,1500,smg,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,smg,,,
t8_maddox_rfb,t8_maddox_rfb_up,,1400,rifle,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,rifle,,,
t8_mog12,t8_mog12_up,,1000,shotgun,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,shotgun,,,
t8_mozu,t8_mozu_up,,1000,pistol,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,pistol,,,
t8_mx9,t8_mx9_up,,1100,smg,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,smg,,,
t8_outlaw,t8_outlaw_up,,1900,sniper,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,sniper,,,
t8_overkill,t8_overkill_up,,7500,lmg,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,lmg,,,
t8_paladin_hb50,t8_paladin_hb50_up,,2500,sniper,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,sniper,,,
t8_rampart17,t8_rampart17_up,,1700,rifle,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,rifle,,,
t8_rk7,t8_rk7_up,,700,pistol,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,pistol,,,
t8_saug9mm,t8_saug9mm_up,,750,smg,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,smg,,,
t8_sdm,t8_sdm_up,,1750,sniper,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,sniper,,,
t8_sg12,t8_sg12_up,,1300,shotgun,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,shotgun,,,
t8_spitfire,t8_spitfire_up,,1400,smg,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,smg,,,
t8_strife,t8_strife_up,,300,pistol,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,pistol,,,
t8_swordfish,t8_swordfish_up,,1600,rifle,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,rifle,,,
t8_titan,t8_titan_up,,2750,lmg,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,lmg,,,
t8_vapr_xkg,t8_vapr_xkg_up,,1550,rifle,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,rifle,,,
t8_vkm750,t8_vkm750_up,,3000,lmg,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,lmg,,,
t8_daemon3xb,t8_daemon3xb_up,,1000,smg,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,smg,,,
t8_grav,t8_grav_up,,1600,rifle,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,rifle,,,
t8_kap45,t8_kap45_up,,750,pistol,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,pistol,,,
t8_rampage,t8_rampage_up,,1600,shotgun,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,shotgun,,,
t8_swat_rft,t8_swat_rft_up,,1650,rifle,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,rifle,,,
t8_switchblade_x9,t8_switchblade_x9_up,,1150,smg,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,smg,,,
t8_vendetta,t8_vendetta_up,,1700,sniper,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,sniper,,,
t8_welling,t8_welling_up,,1300,pistol,,,,,TRUE,FALSE,FALSE,,,FALSE,TRUE,pistol,,,

Компилируем, радуемся! (Если нет звуков перекомпилируйте карту ещё раз либо проверьте шаги выше)
✨АССЕТЫ: ИЗМЕНЕНИЕ ОТРЯДА
ПЕРСОНАЖЕЙ КАЧАЕМ ТУТ (Используется пример на ассетах отряда IW)[drive.google.com]
Переносим две папки из архива в главную папку БО3


Перемещаемся по пути (Call of Duty Black Ops III\zone_source\all\assetlist) и открываем файл "core_common.csv"
Внутри файла ищем строки через Ctrl+F:

xmodel,c_zom_zod_boxer_mpc_fb
xmodel,c_zom_zod_boxer_viewbody
xmodel,c_zom_zod_boxer_viewhands
xmodel,c_zom_zod_boxer_viewlegs
xmodel,c_zom_zod_detective_mpc_fb
xmodel,c_zom_zod_detective_viewbody
xmodel,c_zom_zod_detective_viewhands
xmodel,c_zom_zod_detective_viewlegs
xmodel,c_zom_zod_femme_mpc_fb
xmodel,c_zom_zod_femme_viewbody
xmodel,c_zom_zod_femme_viewhands
xmodel,c_zom_zod_femme_viewlegs
xmodel,c_zom_zod_magician_mpc_fb
xmodel,c_zom_zod_magician_viewbody
xmodel,c_zom_zod_magician_viewhands
xmodel,c_zom_zod_magician_viewlegs
image,uie_t7_zm_hud_score_char5
image,uie_t7_zm_hud_score_char6
image,uie_t7_zm_hud_score_char7
image,uie_t7_zm_hud_score_char8

и комментируем их (//)



Топаем по пути (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\zone_source\zm_zperma_city.zone) и открываем .zone файл в котором вставляем следующие строки прямо над "xmodel,skybox_default_day"

xmodel,c_zom_zod_boxer_mpc_fb
xmodel,c_zom_zod_boxer_viewbody
xmodel,c_zom_zod_boxer_viewhands
xmodel,c_zom_zod_boxer_viewlegs
xmodel,c_zom_zod_detective_mpc_fb
xmodel,c_zom_zod_detective_viewbody
xmodel,c_zom_zod_detective_viewhands
xmodel,c_zom_zod_detective_viewlegs
xmodel,c_zom_zod_femme_mpc_fb
xmodel,c_zom_zod_femme_viewbody
xmodel,c_zom_zod_femme_viewhands
xmodel,c_zom_zod_femme_viewlegs
xmodel,c_zom_zod_magician_mpc_fb
xmodel,c_zom_zod_magician_viewbody
xmodel,c_zom_zod_magician_viewhands
xmodel,c_zom_zod_magician_viewlegs
image,uie_t7_zm_hud_score_char5
image,uie_t7_zm_hud_score_char6
image,uie_t7_zm_hud_score_char7
image,uie_t7_zm_hud_score_char8


Далее переходим в папку нашей карты и ищем файл "имянашейкарты.gsc" в папке "scripts" (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\scripts\zm\zm_zperma_city.gsc)
Открываем файл и ищем функцию main()
и под zm_usermap::main(); вставляем следующее

callback::on_spawned( &set_character_body_type );


Также самом низу файла вставляем новую функцию как на скриншоте

function set_character_body_type()
{
self SetCharacterBodyType( self.characterIndex + 5 );
}


Компилируем, радуемся! (Если нет звуков перекомпилируйте карту ещё раз либо проверьте шаги выше)
✨АССЕТЫ: ИЗМЕНЕНИЕ ЗВУКОВ РАУНДА
СТАНДАРТНЫЙ ПАК ЗВУКОВ ЗДЕСЬ (Звуки можно будет изменить на свои)[mega.nz]

Переносим папки из архива в главную папку БО3


Ищем файл .szc (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\sound\zoneconfig\zm_zperma_city.szc) и открываем его.

После этих строк

{
"Type" : "ALIAS",
"Name" : "user_aliases",
"Filename" : "user_aliases.csv",
"Specs" : [ ]
},


Вставляем наши

{
"Type" : "ALIAS",
"Name" : "mus_round_classified",
"Filename" : "mus_round_classified.csv",
"Specs" : [ ]
},


По пути (Call of Duty Black Ops III\sound_assets\zmb\zmb_blops4\mus\classified) находятся наши звуки.
По пути (Call of Duty Black Ops III\share\raw\sound\aliases) в файле "mus_round_classified" находится код наших звуков

Автор пака использовал повторяющиеся файлы звуков (что можно увидеть на скриншоте зелёным цветом), при возможности сделать гораздо больше звуков


Во первых - нужен звук в особом формате (.wav,48000Hz,16bit) для этого я использовал Sony Vegas, но вы можете использовать другой софт для конвертации ваших звуков в этот формат.

Чтобы добавить свои звуки вы должны понять следующее:
  • Белым цветов выделено название которое используется в коде карты
  • Зелёным цветом указан путь до звука начинающийся с папки "sound_assets"
Я всегда удаляю стандартные звуки из данного пака (Call of Duty Black Ops III\sound_assets\zmb\zmb_blops4\mus\classified), делаю под каждое зелёное имя свой звук (я думаю по их белому названию в коде видно когда и для чего они используются) и вставляю в папку где до этого были стандартные звуки.

Компилируем, радуемся! (Если нет звуков перекомпилируйте карту ещё раз либо проверьте шаги выше)

Вы можете изменить звуки раунда для собак при помощи этих строк:

mus_dogend1_intro,,streamed,zmb/zmb_blops4/mus/classified/dog_round/mus_dogend1_intro.wav,,,,,,,,BUS_MUSIC,grp_music,snp_music,,0,0,99,99,0,10000,10000,allon,default,allon,default,8,priority,8,oldest,0,0,100,100,0,1,no,2d,music_all,,nonlooping,,1,0,0,0,0,0.25,no,yes,,0,,no,,,,,,,,,no,yes,no,0,0,yes,no,,,,,no,no,no,yes,,,,,,,,,,,,,800,3000,,no,no,no,no,no,no,no,,,,

mus_dogstart1_intro,,streamed,zmb/zmb_blops4/mus/classified/dog_round/mus_dogstart1_intro.wav,,,,,,,,BUS_MUSIC,grp_music,snp_music,,0,0,99,99,0,10000,10000,allon,default,allon,default,8,priority,8,oldest,0,0,100,100,0,1,no,2d,music_all,,nonlooping,,1,0,0,0,0,0.25,no,yes,,0,,no,,,,,,,,,no,yes,no,0,0,yes,no,,,,,no,no,no,yes,,,,,,,,,,,,,800,3000,,no,no,no,no,no,no,no,,,,

Если Стим не даёт скопировать данные строчки, откройте как ссылки и скопируйте их оттуда
(Будьте внимательны при использовании пути, я создавал дополнительную папку для собак)
✨АССЕТЫ: ИЗМЕНЕНИЕ ИКОНОК БОНУСОВ
КАЧАЕМ ПАК ИКОНОК ТУТ (Сможете в дальнейшем изменить на свои)[drive.google.com]

По классике переносим файлы из архива в папку БО3


Копируем текст ниже и направляемся по пути (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\zone_source\zm_zperma_city.zone) и открываем .zone файл в котором вставляем следующую строку прямо над "xmodel,skybox_default_day"

image,specialty_giant_killjoy_zombies
image,specialty_giant_2x_zombies
image,specialty_giant_firesale_zombies
image,t7_hud_zm_powerup_giant_deathmachine


Поскольку иконка для мини-гана решила быть особенной среди остальных делаем следующее:
Открываем APE и пишем в строке поиска Name - deathmachine и находим изображение t7_hud_zm_powerup_giant_deathmachine, находим троеточие и выбираем нашу кастомную иконку по пути (Call of Duty Black Ops III\texture_assets\custom\powerups) и выбираем новую иконку мини-гана
В ЭТОЙ ПАПКЕ ЛЕЖАТ ВСЕ НАШИ БОНУСЫ, МОЖЕТЕ ОТКРЫТЬ ИХ ЧЕРЕЗ ФОТОШОП И ИЗМЕНИТЬ КАК ВАМ НУЖНО, ТАК КАК ДАННУЮ ПРОЦЕДУРУ ПОИСКА ЧЕРЕЗ APE ДЛЯ ДРУГИХ БОНУСОВ ДЕЛАТЬ НЕ НУЖНО.


Компилируем, радуемся!
✨АССЕТЫ: ИЗМЕНЕНИЕ ЗВУКОВ БОНУСОВ
КОМПЛЕКТ КАСТОМНОГО АНАУНСЕРА КАЧАЕМ ТУТ (Сможете изменить на свои)[mega.nz]

Из архива перекидываем папки в главную папку БО3


Ищем файл .szc (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\sound\zoneconfig\zm_zperma_city.szc) и открываем его.

После этих строк
{
"Type" : "ALIAS",
"Name" : "user_aliases",
"Filename" : "user_aliases.csv",
"Specs" : [ ]
},


Вставляем наши:

{
"Type" : "ALIAS",
"Name" : "chaos_ancr",
"Filename" : "chaos_ancr.csv",
"Specs" : [ ]
},


Компилируем, радуемся! (Если нет звуков перекомпилируйте карту ещё раз либо проверьте шаги выше)
По пути (Call of Duty Black Ops III\sound_assets\announcer\chaos) можете найти эти звуки и заменить на нужные вам (нужен звук в особом формате (.wav,48000Hz,16bit) для этого я использовал Sony Vegas, но вы можете использовать другой софт для конвертации ваших звуков в этот формат.)
✨АССЕТЫ: СВОЙ КАМУФЛЯЖ ДЛЯ PACK-A-PUNCH
КАЧАЕМ ПРЕСЕТ ДЛЯ КАМУФЛЯЖЕЙ ТУТ[drive.google.com]

Переносим папки из архива в главную папку БО3


Открываем APE и в Type пишем weaponcamo что (при наличии хорошего пака оружий) должно выдать нам текстовые настройки камуфляжей для каждого оружия. Нам нужны файлы с подписью "_ship". Нажимаем на один из таких файлов и справа сверху когда мы вывели содержимое файла в поиске пишем 42 (пасхалко) что даёт нам настройку для стартового PAP-камуфляжа


Листаем ниже и находим 2 подобных пункта (они зачастую с жёлтым знаком внимания) их мы переименовываем в "wpn_t9_camo_madgaz1". Данную процедуру делаем для КАААААЖДОГОООО оружия (более оптимизированного метода не знаю)


Чтобы изменить наш камуфляж делаем это - в поиске по Name ищем "wpn_t9_camo_madgaz1" и выбираем из выпавших элементов с синим кружком (материалом), тыкаемся в его настройках и изменяем как душе угодно


✨АССЕТЫ: ИЗМЕНЕНИЕ ИКОНОК ПЕРКОВ
КАЧАЕМ СТАНДАРТНЫЙ ПРЕСЕТ ТУТ (Сможете в будущем изменить)[mega.nz]

Папку ui из архива переносим в главную папку нашей карты (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city)


Делаем в файле .csc нашей карты (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\scripts\zm\zm_zperma_city.csc) строку

LuiLoad( "ui.uieditor.menus.hud.hud_zm_mapname" );

в функции main над текстом "zm_usermap::main();"


Открываем APE и создаем новую GDT для наших кастомных иконок


Что делать дальше я покажу на примере перка Juggernog
Нажимаем ПКМ по нашей GDT и выбираем New Asset далее задаём название для нашей текстуры и нажимаем ОК


По пути (Call of Duty Black Ops III\texture_assets) создаём папку где буду храниться наши иконки и переносим нужные нам туда (я использовал ЭТОТ ПАК[drive.google.com] а затем менял его под себя)

Выбираем наш созданный ассет и выбираем в нём новую иконку для перка и также делаем настройки как на втором скриншоте



Запоминаем название нашей кастомной текстуры и идём по пути (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\zone_source\zm_zperma_city.zone) и открываем .zone файл в котором вставляем следующую строку прямо над "xmodel,skybox_default_day"

image,ИМЯ_ВАШЕЙ_ИКОНКИ_В_APE


И после добавления всех имён ваших кастомных перков вставляем

rawfile,ui/uieditor/menus/hud/hud_zm_mapname.lua
rawfile,ui/rewrite/ui/uieditor/widgets/hud/zm_perks/ZMPerksContainerFactory.lua

После этого идём по пути (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\ui\rewrite\ui\uieditor\widgets\hud\zm_perks) и открываем файл "ZMPerksContainerFactory". В нём мы вставляем имя нашей кастомной иконки между кавычками в секции нашего перка


Проворачиваем так для каждого перка, компилируем и радуемся!
✨АССЕТЫ: ДОБАВЛЕНИЕ МАРГВ
ПАК МАРГВ КАЧАТЬ ТУТ[mega.nz]
ОБЯЗАТЕЛЬНАЯ БИБЛИОТЕКА ВИЗУАЛЬНЫХ ЭФФЕКТОВ[mega.nz]

Переносим все папки из архива с эффектами (hb21_fx_library) в главную папку с БО3 с заменой


Переносим выделенные папки из архива с маргвами в папку БО3


Идём в архиве по пути (hb21_margwa_v1.0.0\usermaps - OPEN ME\YOUR_MAP_NAME) и все папки переносим в папку с нашей картой


Далее переходим в папку нашей карты и ищем файл "имянашейкарты.gsc" в папке "scripts" (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\scripts\zm\zm_zperma_city.gsc)

В коде ищем раздел //Perks и после "#using scripts\zm\_zm_perk_staminup;" вставляем следующее:

#using scripts\zm\_hb21_zm_ai_margwa;

Тоже самое делаем в файле .csc нашей карты (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\scripts\zm\zm_zperma_city.csc)


Добавляем звуки. Ищем файл .szc (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\sound\zoneconfig\zm_zperma_city.szc) и открываем его.
После этих строк:

{
"Type" : "ALIAS",
"Name" : "user_aliases",
"Filename" : "user_aliases.csv",
"Specs" : [ ]
},


Вставляем наши:

{
"Type" : "ALIAS",
"Name" : "zm_ai_margwa",
"Filename" : "zm_ai_margwa.csv",
"Specs" : [ ]
},


Идём по пути (Call of Duty Black Ops III\zone_source\all\assetlist) и открываем файл core_patch.csv и ищем в файле строчки

scriptparsetree,scripts/shared/ai/margwa.csc
scriptparsetree,scripts/shared/ai/margwa.gsc

и комментируем их


Топаем по пути (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\zone_source\zm_zperma_city.zone) и открываем .zone файл в котором вставляем следующую строку прямо над "xmodel,skybox_default_day"

include,zm_ai_margwa


Открываем редактор, и переносим префаб со спавнерами маргв на 3Д карту и ставим спавнер под карту.


Выбираем спавнер, нажимаем ПКМ->Prefab->Enter Prefab


Выбираем фиолетовую маргву и удаляем её (она багованная) и делаем как один шаг назад (ПКМ->Prefab) но теперь выбираем Leave Prefab.

Дальше переносим префаб из того же раздела со спавнпоинтом маргв на 3Д карту


Выбираем спавнпоинт, заходим в настройки энтити (N) нажимаем Add KVP, даём название (targetname) и значением вводим нашу зону на карте в которой спавнится маргва (я использовал здесь стартовый вольюм поэтому писал (start_zone_spawners)


Компилируем и радуемся ! (Если нет звуков компилируем ещё раз)

ДОПОЛНИТЕЛЬНО
По пути (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\scripts\zm) находим файл _hb21_zm_ai_margwa.gsh в нём лежат дополнительные настройки характеристик магрвы.
✨АССЕТЫ: МУЗЫКАЛЬНАЯ ПАСХАЛКА
ФАЙЛЫ ДЛЯ ПАСХАЛКИ КАЧАЕМ ТУТ (Уберите пробелы, стим кусается)
https://www.me dia fi re.com/file/j3pa79xa3d5w4jh/music_ee.rar

В архиве по пути (music_ee\music_ee\usermaps\your_map\scripts\zm) переносим файл в (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\scripts\zm)

После чего в этом же месте открываем (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\scripts\zm\zm_zperma_city.gsc)
В файле над строчкой

//Traps
#using scripts\zm\_zm_trap_electric;

Вписываем нашу

#using scripts\zm\_zm_easteregg_song;


Чуть ниже найдём функцию main в которой над

//Setup the levels Zombie Zone Volumes
level.zones = [];
level.zone_manager_init_func =&usermap_test_zone_init;

Впишем

thread zm_easteregg_song::init();


Добавляем звуки. Ищем файл .szc (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\sound\zoneconfig\zm_zperma_city.szc) и открываем его.

После этих строк

{
"Type" : "ALIAS",
"Name" : "user_aliases",
"Filename" : "user_aliases.csv",
"Specs" : [ ]
},


Вставляем наши:

{
"Type" : "ALIAS",
"Name" : "music",
"Filename" : "music.csv",
"Specs" : [ ]
},


Топаем по пути (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\zone_source\zm_zperma_city.zone) и открываем .zone файл в котором вставляем следующую строку прямо над "xmodel,skybox_default_day"

scriptparsetree,scripts/zm/_zm_easteregg_song.gsc


И в заключение из архива переносим две папки в главную папку БО3


В папке (Call of Duty Black Ops III\sound_assets) создаём папку "music" и засовываем в неё 3 наших аудиофайла с именами "song_name" "ee_loop_trigger" и "ee_trigger"
Звуком "song_name" будет наш трек
Звуком "ee_loop_trigger" будет амбиент который играет около медведя
Звуком "ee_trigger" будет звук активации медведя
(Нужен звук в особом формате (.wav,48000Hz,16bit) для этого я использовал Sony Vegas, но вы можете использовать другой софт для конвертации ваших звуков в этот формат.)

Открываем редактор и в браузере префабов находим наших медведей, ставим 3 штуки на карту, готово.
(Можно зайти внутрь префаба ПКМ->Enter Prefab и изменить медведя на другую модель)


Конвертируем и радуемся ! (Если звуки отсутствуют то компилируем карту ещё раз)
❌💻СКРИПТИНГ: БАЗОВЫЕ ЗНАНИЯ
❌💻СКРИПТИНГ: КНОПКИ
❌💻СКРИПТИНГ: ЗВУКИ
❌💻СКРИПТИНГ: ТЕЛЕПОРТ ОТРЯДА
💻СКРИПТИНГ: ПРОЛЁТЫ (МИНИ КАТ-СЦЕНЫ)
Создаём 3 функции и называем как нам удобно


В первой функции для демонстрации я сделал вызов уведомления ( level notify("startcam1"); ) по кнопке, вы в свою очередь можете вставлять уведомление в любую вашу часть кода где вам нужно, у меня это будет кнопка


Во второй функции делаем реакцию на уведомление из предыдущей функции при этом активируя третью функцию с распространением на всех игроков


Для третьей функции в редакторе мы должны задать нашу камеру и её ориентир направления.
Открываем Radiant, нажимаем (B) и ищем раздел Script и ставим 2 штуки origin на нашу 3д карту.


Выбираем один из ориджинов и нажимаем (N), в пункте targetname одному ориджину даём название которое будет отвечать у нас за позицию камеры (я назвал camera1)


Второму ориджину присваиваем название которое будет отвечать за ориентацию камеры (направление камеры куда она будет смотреть) я назвал её camera1dir


Теперь мы имеем камеру и точку куда она будет смотреть


Обращайте внимание на стрелочки ориджинов в 2д окне


Когда мы поставили нашу камеры и её ориентир возвращаемся к скрипту.

Первым пунктом идёт строка которая отвечает за неуязвимость персонажей во время работы камеры (зомби потеряют игроков из вида):

self zm_utility::increment_ignoreme();

Далее идёт строка которая замораживает управление игрокам:

self freezecontrols( true );

Затем идёт важная строка которая отвечает за плавность перемещения камеры от игрока к камере (и наоборот). В скобках указано время перехода, нулевое значение моментально телепортирует в камеру:

self StartCameraTween(0);

Активация камеры идёт через данную строку:

self CameraActivate (true);

Теперь прописываем настройку камеры

GetEnt отвечает за определением кодом каким именем в коде будет обладать объект из редактора (но мне удобнее давать им одинаковое имя в коде и в редакторе) Здесь я задаю камеру:

camera1 = GetEnt("camera1", "targetname");

( ИМЯ_ДЛЯ_КОДА = GetEnt("ИМЯ_ОБЪЕКТА_В_РЕДАКТОРЕ(TARGETNAME)", "targetname"); )

Устанавливаем позицию для камеры

self CameraSetPosition (( camera1.origin ));

Снова GetEnt но теперь я определяю ориентир для камеры:

camera1dir = GetEnt("camera1dir", "targetname");

Устанавливаем ориентир для камеры и добавляю время ожидание игрой сколько она будет ждать до отключения вида камеры

self CameraSetLookAt (( camera1dir.origin ));
wait (6);

И наконец заключительные строки:

Переход от камеры к игроку
self StartCameraTween(0);

Отключение вида камеры
self CameraActivate (false);

Включение управления
self freezecontrols( false );

Отключения бессмертия
self zm_utility::decrement_ignoreme();

И наконец добавляем две (НЕ ТРИ! Третья не нуждается в этом) наши функции в функцию main


Полный код и пояснения на рисунке ниже, также после картинки найдёте полноценный скрипт. После всего этого добра компилируем полностью карту и проверяем =)


function camtrigger()
{
takekeyfridge = GetEnt("takekeyfridge", "targetname");
takekeyfridge SetHintString("Press ^9[{+activate}]^7 to take the contents of the refrigerator");
takekeyfridge SetCursorHint("HINT_NOICON");
takekeyfridge waittill("trigger");

level notify("startcam1");
}

function Cameraonecallfunction()
{
level waittill("startcam1");

foreach(player in level.players)
{
player thread Cameraone();
}
}

function Cameraone()
{
self zm_utility::increment_ignoreme();
self freezecontrols( true );

self StartCameraTween(0);
self CameraActivate (true);

camera1 = GetEnt("camera1", "targetname");
self CameraSetPosition (( camera1.origin ));
camera1dir = GetEnt("camera1dir", "targetname");
self CameraSetLookAt (( camera1dir.origin ));
wait (6);

self StartCameraTween(0);
self CameraActivate (false);
self freezecontrols( false );
self zm_utility::decrement_ignoreme();
}
💻СКРИПТИНГ: АНИМАЦИИ
Заранее заготавливаем нашу анимацию и модель.
Идём в папку нашей карты (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city) и создаем там папку animtrees, в ней создаем файл с именем animations в формате .atr


Заполняем файл как на скриншоте (между { и } пишем имя нашей анимации из APE)


Топаем по пути (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\zone_source\zm_zperma_city.zone) и открываем .zone файл в котором вставляем следующую строку прямо над "xmodel,skybox_default_day"

rawfile,animtrees/animations.atr
xanim,ИМЯ_ВАШЕЙ_АНИМАЦИИ_В_APE


Далее переходим в папку нашей карты и ищем файл "имянашейкарты.gsc" в папке "scripts" (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\scripts\zm\zm_zperma_city.gsc)

В нём, над функцией main прекешируем нашу анимацию и наше дерево анимаций при помощи двух строк

#precache( "xanim", "ИМЯ_ВАШЕЙ_АНИМАЦИИ_В_APE");
#using_animtree("animations");


В функции main регистрируем нашу новую функцию которая будет отвечать за анимацию

level thread ВАШЕ_ИМЯ_ФУНКЦИИ();


В редакторе спавним нашу модель через меню моделей (M), открываем меню энтити (B), выбираем нашу модель на карте, во вкладке Scripts перетягиваем model на нашу модель на карте после чего если мы на неё посмотрим через свойства энтити (N) она будет называться script_model


В свойствах энтити в пункте targetname даём нашей модели имя для скриптинга


В самом низу .gsc файла создаем нашу функцию (с тем именем что мы написали в main) и пишем внутри неё код по этим правилам:

ИМЯ_МОДЕЛИ_В_РЕДАКТОРЕ = getEnt("ИМЯ_МОДЕЛИ_В_РЕДАКТОРЕ", "targetname");
ИМЯ_МОДЕЛИ_В_РЕДАКТОРЕ useanimtree(#animtree);
ИМЯ_МОДЕЛИ_В_РЕДАКТОРЕ AnimScripted( "", ИМЯ_МОДЕЛИ_В_РЕДАКТОРЕ.origin , ИМЯ_МОДЕЛИ_В_РЕДАКТОРЕ.angles, %ИМЯ_АНИМАЦИИ_В_APE);


Компилируем, радуемся!
💻СКРИПТИНГ: ЭКРАННЫЙ ВИДЖЕТ
Заходим в любой фото редактор и создаем лист 2048х2048
Закидываем наше изображение на лист
Сохраняем картинку в формате .png


Идём по пути (Call of Duty Black Ops III\texture_assets) и создаём папку где будут лежать наши изменённый под карту изображения.
Открываем Mod Tools и кликаем на иконку обезьяны чтобы открыть APE


Нажимаем File-New GDT


Даём название нашей базе данных и сохраняем


Через GDTs поле ищем базу данных по имени которое мы задали ранее


Нажимаем ПКМ по ней и жмём New Material, даём название текстуре, тыкаем ОК
В настройках материала ставим как на скриншоте


Находим далее пункт Color Map и справа от него тыкаем на картинку, в открывшимся окне тыкаем ОК


Выбираем в открывшейся вкладке путь до нашей картинки которую мы сохраняли ранее и повторяем все настройки со скриншота


Топаем по пути (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\zone_source\zm_zperma_city.zone) и открываем .zone файл в котором вставляем следующие строчки прямо над "xmodel,skybox_default_day"

material,ИМЯ СИНЕГО ШАРИКА
image,ИМЯ КАРТИНКИ

Мой пример



Далее переходим в папку нашей карты и ищем файл "имянашейкарты.gsc" в папке "scripts" (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\scripts\zm\zm_zperma_city.gsc)

Под "#using scripts\zm\zm_usermap;" вставляем это

#precache ("material","ИМЯ ВАШЕГО МАТЕРИЛА");


Далее добавляем в одну из наших функций в момент когда должна появится картинка следующий скрипт (myscriptname будет использоваться тут как скриптовое имя рисунка, myimage будет использоваться как рисунок который мы закинули в precache шагом выше)

myscriptname = NewTeamHudElem( "allies" );

myscriptname.alignX = "left";
myscriptname.alignY = "bottom";
myscriptname.horzAlign = "left";
myscriptname.vertAlign = "bottom";
myscriptname.x = 0;
myscriptname.y = -180;
myscriptname.alpha = 0;
myscriptname FadeOverTime(0.5);
myscriptname.alpha = 1;
myscriptname.color = (1, 1, 1);

myscriptname SetShader( "myimage", 200, 200 );
wait (6);

myscriptname FadeOverTime(0.5);
myscriptname.alpha = 0;
wait (0.5);

myscriptname destroy();

Мой пример реализации этого скрипта в своей функции (банальное появление рисунка после чёрного экрана на старте


Разбор скрипта


Можете экспериментировать со значениями плавных переходов, настройками изображения (они отвечают за местоположение) и цифрами в разделе где даём скриптовому имени изображение (они отвечают за размер)

Компилируем - радуемся !
💻СКРИПТИНГ: ДОБАВЛЕНИЕ ВИДЕО
ПОДГОТАВЛИВАЕМ НАШЕ ВИДЕО В ФОРМАТЕ 720p 30FPS, и звук от этого видео отдельно (если он есть) в формате (.wav,48000Hz,16bit) для этого я использовал Sony Vegas, но вы можете использовать другой софт для конвертации ваших звуков в этот формат.

Качаем конвертор для нашего ролика[github.com] и устанавливаем его.

Перемещаем ролик в нашу программу


Удаляем субтитры


Удаляем аудио


Формат меняем на MKV


Выбираем путь для сохранения


И начинаем конвертацию


Идём по пути (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\zone) и создаем папку video в которую кидаем наши конвертированные ролики

КАК СДЕЛАТЬ ВИДЕО ВО ВЕСЬ ЭКРАН

В нашем .gsc файле карты (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\scripts\zm)

Среди уже имеющихся #using строк вставляем следующую

#using scripts\shared\lui_shared;


Далее топаем в нашу функцию где мы хотим исполнить показ видео (по кнопке, посреди скрипта, не важно) и пишем эту строку

level lui::play_movie_with_timeout("ИМЯ ВАШЕГО ВИДЕО", "fullscreen", СКОЛЬКО СЕКУНД ИДЁТ ВИДЕО, false, false);

Если видео со звуком то вставляем эти строки перед нашим видео

foreach(player in level.players)
player PlaySoundToPlayer("ИМЯ ЗВУКА В ALLIAS", player);

Код звука для alias'а

ИМЯ ЗВУКА В КОДЕ,,,МЕСТОПОЛОЖЕНИЕ ЗВУКА.wav,,,UIN_MOD,,,,,BUS_FX,grp_bink,,,,,100,100,,,,,,,,2,oldest,,,1,1,,,,,,2d,,,NONLOOPING,,,,,,,,,,,,,,,,,,,,,,,,,,,yes,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,




КАК СДЕЛАТЬ ВИДЕО "ТЕЛЕВИЗОР"
Ставим на карту текстуру cinematic_mp4_3d_sgen_server_video

После того как расположили текстуру - выделяем - кнопка S - пункт Both чтобы растянуть по всей площади браша

Среди уже имеющихся #using строк вставляем следующую

#using scripts\shared\lui_shared;


Далее топаем в нашу функцию где мы хотим исполнить показ видео (по кнопке, посреди скрипта, не важно) и пишем эту строку

VideoStart("ИМЯ ВАШЕГО ВИДЕОФАЙЛА",true);
wait (КОЛИЧЕСТВО СЕКУНД ВАШЕГО ВИДЕО);
VideoStop("ИМЯ ВАШЕГО ВИДЕОФАЙЛА");

Если видео со звуком то вставляем эти строки перед нашим "WAIT"

PlaySoundAtPosition("ИМЯ ВАШЕГО ЗВУКА В ALLIAS", (КООРДИНАТЫ ЗВУКА));

Код звука для alias'а

ИМЯ ЗВУКА В КОДЕ,,,МЕСТОПОЛОЖЕНИЕ ЗВУКА.wav,,,UIN_MOD,,,,,BUS_FX,grp_blink,,,,,100,100,500,600,800,,,,,,,,,0,0,100,100,0,1,,3d,,,NONLOOPING,,,,,,,1,,,,,"""OMG""",,,,,,,,,,,,,,,yes,,,,,,,yes,,,,,,,,,,,,,,,,,,,,,,,,,,,


🧱СТРОИТЕЛЬСТВО: РАСШИРЕНИЕ ТЕРРИТОРИИ И СКАЙБОКСА
Если мы зайдём в стартовую карту и выйдем за её территорию то можно обнаружить что всё происходит в небольшом кубе который состоит из нескольких слоёв


Чтобы расширить нашу территорию мы должны сделать следующее
1 - SKY (синие) - Текстуры вытянуть по высоте и длине (построив из них квадрат)
ЗАМЕЧУ ЧТО ЭТО НЕ ОДНА ТЕКСТУРА, А КУБ ПОСТРОЕННЫЙ ИЗ 6 ЧАСТЕЙ (4 СТЕНЫ, КРЫША И ПОЛ)

2 - SUN (картинка солнца) - Текстура которая должна поместиться внутри нашего "домика" построенного из SKY текстур

3 - UMBRA (текстура дробного цвета) - Текстура которая должна поместиться внутри SUN текстуры

4 - FPS TOOL (голубая текстура) - Текстура которая должна поместиться внутри UMBRA текстуры


Как вы можете заметить я не упомянул розовую, VOLUME текстуру, она отвечает за разделение карты на зоны, об этом будет написано в разделе "🧱СТРОИТЕЛЬСТВО: СОЗДАНИЕ ДВЕРЕЙ И ЗОНИНГ" оставляем её на месте

🧱СТРОИТЕЛЬСТВО: ДОБАВЛЕНИЕ СВОЕЙ ТЕКСТУРЫ
Заходим в любой фото редактор и создаем лист 1024х1024
Растягиваем наше изображение по листу
Сохраняем картинку в формате .TIFF


Идём по пути (Call of Duty Black Ops III\texture_assets) и создаём папку где будут лежать наши изменённый под карту изображения.
Открываем Mod Tools и кликаем на иконку обезьяны чтобы открыть APE


Нажимаем File-New GDT


Даём название нашей базе данных и сохраняем


Через GDTs поле ищем базу данных по имени которое мы задали ранее


Нажимаем ПКМ по ней и жмём New Material, даём название текстуре, тыкаем ОК
В настройках материала ставим как на скриншоте


Находим далее пункт Color Map и справа от него тыкаем на картинку, в открывшимся окне тыкаем ОК


Выбираем в открывшейся вкладке путь до нашей картинки которую мы сохраняли ранее


Сохраняемся через Ctrl+S и идём в редактор !

Вызываем меню текстур на букву T и убираем фильтры как на скриншоте


Всё что остаётся это написать название материала которое мы давали в APE и готово!


Ставим текстуру на карту и вот она, перед вами. Если вам нужно растянуть текстуру по размеру текстуры то на клавиатуре жмём букву S вызвав этим меню настройки текстур и нажимаем на BOTH.

🧱СТРОИТЕЛЬСТВО: ДОБАВЛЕНИЕ/УДАЛЕНИЕ СОБАК
Чтобы отключить собак на карте идём по пути (Мой пример: Call of Duty Black Ops III\usermaps\zm_zperma_city\scripts\zm\zm_zperma_city.gsc)

Ищем функцию main и в ней над zm_usermap::main(); вставляем следующую строку

level.dog_rounds_allowed = false;


Также рекомендую удалить спавнеры собак (они имеют тег dog_location внутри Entity Info, буква N)


Чтобы добавить собак, расставляем по карте сколько нам нужно спавнеров собак (один спавнер имеется на стартовой карте по умолчанию)


Жмём в редакторе кнопку B, в Entity Browser ищем пункт Actor-Spawner_Zm_Factory и от туда берём спавнер собак (Zombie_dog), ставим его на карту в любое место в количестве одной штуки.


Выбираем собаку, тыкаем N, ставим в свойствах пса галочку MAKEROOM


Targetname вписываем "zombie_dog_spawner_a", потом тыкаем клавишу в свойствах пса ADD KVP и делаем два следующих параметра



Компилируем карту, тестируем, радуемся !
🧱СТРОИТЕЛЬСТВО: НАСТРОЙКА ОСВЕЩЕНИЯ
Для того чтобы сделать адекватное и красивое освещение на своей карте нам нужно расставить reflection_probe, она находится внизу вкладки если мы нажмём ПКМ по 3Д окну


Появится сфера при нажатии на которую появится её зона, залетаем в неё



Когда мы внутри выделенной сферы, нажимаем с зажатым Ctrl по поверхности и она автоматически протянется до неё. Так заполняем по ширине и высоте наше пространство (Это касается и улиц и помещений)


ВАЖНО! Этими кубами нужно заполнять всё пространство вашей карты чтобы она не выглядела ужасно и имела нормальные отражения и блики (НО НЕ ДЕЛАЙТЕ ЭТО ВСЁ ЗА ОДИН КУБ! ЗАПОЛНЯЙТЕ КАРТЫ ПРОМЕЖУТКАМИ!) Я делаю 1 куб на одну улицу/комнату.

Через Ctrl+Shift сферу можно двигать в кубе чтобы изменить центральную точку ловли отражений.

Через свойства энтити (N) можно убрать галочку box (это делается на тот случай если помещение не квадратное и имеет особую форму)


Для того чтобы придать карте ещё более насыщенный вид, вылетаем за зону карты и заходим в настройки энтити (N) бокса с изображением солнца и ставим ShadowSplitDistance 250


Далее проводим цветокоррекцию, открываем APE и по поиску Name ищем img_luts_t7_zm_factory, открываем её свойства, жмём троеточие и открываем файл lut_curve.tif через фото-редактор в котором будем менять насыщенность, после того как изменили сохраняем с заменой


Добавляем Bloom на карту. В энтити браузере (B) во вкладке Pbg перетаскиваем на 3Д окно box и растягиваем на небольшую площадь карты чтобы присмотреть для себя Bloom в этой территории


В параметрах энтити (N) включаем галочку BLOOM и ниже в пункте VBLOOM выбираем один из файлов Bloom'а и запоминаем имя Bloom'a который на понравится. Удаляем наш Pbg_Box


Отменив все выделения заходим в настройки энтити (N) оно будет выбрано как worldspawn, нажимаем Add KVP и пишем как на скриншоте (во второе поле пишем имя нашего блум файла)

(Также в этом меню вы можете найти пунтк vcolor и тоже поиграться с ним)

И на последок можно добавить тумана. Заходим в энтити браузер (B) во вкладке volume достаем litfog на нашу 3Д карту и растягиваем его по всей карте (не выходя за территорию скайбокса и ему подобных)

Заходим в настройки энтити (N) и в пункте fsi_1 выбираем понравившийся нам туман


Для проверки света нажимаем на молнию.


БЫЛО


СТАЛО



🧱СТРОИТЕЛЬСТВО: СМЕНА СКАЙБОКСА
КАЧАЕМ ПАК СКАЙБОКСОВ ТУТ[mega.nz]

Файлы со скриншота перекидываем в главну папку БО3 и открываем Radiant


Переносимся за границу скайбокса и ищем ту текстуру, на котором есть изображение солнца. Выделяем её, заходим в настройки энтити (N) и ищем пункт ssi1. Кликаем по нему а затем на троеточие и выбираем интересующий нас скайбокс.


Летим во внутрь скайбокса, нажимаем на молнию, ждём, готово!

❌🧱СТРОИТЕЛЬСТВО: СОЗДАНИЕ ДВЕРЕЙ И ЗОНИНГ
❌🧱СТРОИТЕЛЬСТВО: ДОПОЛНИТЕЛЬНЫЕ ПУТИ ДЛЯ ЗОМБИ
🧩ПОДГОТОВКА КАРТЫ К ЗАПУСКУ И ТЕСТАМ
В первую очередь нужно нажать на молнию в редакторе карты и дождаться полного запекания света


Сохраняем проект и закрываем редактор. После этого программа может спросить об экспорте света на что бы отвечаем "Yes" а затем "OK"


В лаунчере ставим галочку около названия карты которую мы хотим скомпилировать, справа от неё ставим галочки на Compile, Light (Выставить режим Medium) и Link, нажимаем "Build", ждём.

Если отсутствовали ошибки в скриптах, не было дубликатов в APE и прочей шушеры и вы всё сделали верно то результат в логах будет примерно таковым

Чтобы запустить карту нужно поставить галочку около её названия, убрать все галочки напротив неё за исключением "Run" и нажимаем "Build"

❌🎀ПУБЛИКАЦИЯ КАРТЫ И ОФОРМЛЕНИЕ СТРАНИЦЫ
🎈ЗАКЛЮЧЕНИЕ
Надеюсь данный гайд вас хотя бы чуть-чуть чему то да научит. Он не идеален но и у вас должна быть голова на плечах.
Разбирайтесь, ковыряйтесь, изучайте, экспериментируйте, используйте мои текста как пример и будет вам успех.
Удачи в начинаниях =)

Мои работы:
https://steamcommunity.com/sharedfiles/filedetails/?id=3275838368
https://steamcommunity.com/sharedfiles/filedetails/?id=3315363974
https://steamcommunity.com/sharedfiles/filedetails/?id=3384632650
Počet komentářů: 8
Zyhramov  [autor] 10. dub. v 5.17 
ЛЕГЕНДА УРА СПАСИБО ЗА ДЕТСТВО !
deexy 10. dub. v 5.16 
наконец то я смогу создать свою карту
Zyhramov  [autor] 25. bře. v 21.04 
Легенда сельского туалета :fifi:
Alex_55YT 25. bře. v 19.40 
Это первое ру руководство. Eбaть ты...:cool_seagull: Легенда получается
Zyhramov  [autor] 22. bře. v 16.52 
К сожалению на пальцах без тонны текста это не пояснить :momozzz:
Когда я читал ЭТО, у меня в голове звучала фраза: «Ты чё ебанутый?»
Zyhramov  [autor] 18. bře. v 7.56 
Хотелось бы верить в их наличие хотя бы в будущем :GDNormal:
MisterCat 18. bře. v 7.55 
С каждым обновлением этого гайда оно будет превращатся в библию для ру модеров(если они вообще существуют)