Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
  • 0
222Orbita

Серверостроение – фикс к модам

Приветствую! Ребята, подкиньте идею, как написать config на прописку фикса для любого/конкретного мода на слоты со стройматериалами, такие как – листы металла, деревянные доски и пр., например, слоты в ящиках фурнитуры.

Пример: Есть ящик для стройматериалов в моде Furniture, с определёнными слотами под вышесказанные материалы, которые становятся не активные из-за работы другого мода, в частности RUSForma_vehicles, т.е. в слот под доски, нельзя положить доски, в слот листов металла, нельзя положить металл, соответственно. Хотелось бы вот это всё исправить. И так для любого мода. Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендованные сообщения

  • 0
3 минуты назад, 222Orbita сказал:

@skadjna Класс! Но это я умею делать. Я так рюкзаки делал. Меня интересуют слоты под стройматериалы и плюсом – родительский pbo мода забинарен, его PBO-менеджер не распаковывает.

Ну так слоты где перечисляются? В config.cpp перечисляются. И сами слоты, что есть у предмета ( attachments[]=) и те, куда этот предмет можно сунуть ( inventorySlot[]=)
Соответственно у досок в inventorySlot не прописаны attachments из мода. Создаешь реконфигурацию ванильных досок, перечисляя в inventorySlot названия слотов из мода, пакуешь, создаешь мод, подключаешь, радуешься жизни. 

Твоя проблема лежит в плоскости конфигураций, ковыряй конфигурации.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
MagicByte MagicByte MagicByte
  • 0

в config.cpp в required addons указываете внутреннее виртуальное имя той пбо, какую модифицируете. Ну и по стандарту в скриптах, modded class, override void  и т.п.

Если брать конфиги в cpp то только через создание своего класса на базе базового, вроде подругому никак.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

@123new Ничего не понятно, но очень интересно. А можно пример, хотя бы маленький? Понял только – в config.cpp в required addons указываете внутреннее виртуальное имя той пбо, какую модифицируете. Остальное ни допёрло. Уж извините. )))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Привет
Суть попробую изложить
Предположим у тебя есть вещь какая-нибудь, пусть это будет шмотка из мода WeaponExpansion . Предположим ACR. Допустим стоит задача сделать его меньше в габаритах в инвентаре, чтобы он занимал не 8x3 клеток, а 6x3. 
Первое, что тебе надо понять-вообще всё содержимое игры находится в .pbo, хоть ванильное, хоть модовое. Тут тебе надо изучать самые основы модостроения. Не устану рекомендовать плейлист от @Warcat06 на Youtube, очень доходчиво и постепенно. https://www.youtube.com/@Kramtsov 
После того как с этим разберешься будет более менее понятно то, что будет написано ниже. 

Открываем PBO любым удобным тебе способом, ищем ACR, ищем конфиг, разбинариваем с помощью cfgConvert, открываем через Notepad++ или чем удобнее.
Предстает следующая картина 

{
	class WE_ACR
	{
		units[]={};
		weapons[]=
		{
			"WE_ACR"
		};
		requiredVersion=0.1;
		requiredAddons[]=
		{
			"DZ_Data",
			"DZ_Weapons_Firearms",
			"DZ_Weapons_Ammunition",
			"DZ_Weapons_Magazines",
			"DZ_Weapons_Muzzles",
			"DZ_Weapons_Optics",
			"AmmunitionExpansion"
		};
	};
};
///код-код-код


class WE_ACR: WE_ACR_Base
	{
		scope=2;
		displayName="ACR";
		descriptionShort="The Bushmaster Adaptive Combat Rifle (Bushmaster ACR) is a modular selective-fire rifle designed by Magpul Industries. Chambered in .300 Blackout rounds.";
		model="WeaponExpansion\Rifles\ACR\ACR.p3d";
		attachments[]=
		{
			"weaponOptics",
			"weaponWrap",
			"weaponMuzzleM4",
			"weaponBayonet"
		};
		hiddenSelectionsTextures[]=
		{
			"WeaponExpansion\Rifles\ACR\data\ACR_co.paa",
			"WeaponExpansion\Rifles\ACR\data\ACR_co.paa"
		};
		hiddenSelectionsMaterials[]=
		{
			"WeaponExpansion\Rifles\ACR\data\ACRMetal.rvmat",
			"WeaponExpansion\Rifles\ACR\data\ACRPlastic.rvmat"
		};
		itemSize[]={8,3};
		class DamageSystem
		{
			class GlobalHealth
			{
				class Health
				{
					hitpoints=200;
					healthLevels[]=
					{
						
						{
							1,
							
							{
								"WeaponExpansion\Rifles\ACR\data\ACRMetal.rvmat",
								"WeaponExpansion\Rifles\ACR\data\ACRPlastic.rvmat"
							}
						},
						
						{
							0.69999999,
							
							{
								"WeaponExpansion\Rifles\ACR\data\ACRMetal.rvmat",
								"WeaponExpansion\Rifles\ACR\data\ACRPlastic.rvmat"
							}
						},
						
						{
							0.5,
							
							{
								"WeaponExpansion\Rifles\ACR\data\ACRMetal_damage.rvmat",
								"WeaponExpansion\Rifles\ACR\data\ACRPlastic_damage.rvmat"
							}
						},
						
						{
							0.30000001,
							
							{
								"WeaponExpansion\Rifles\ACR\data\ACRMetal_damage.rvmat",
								"WeaponExpansion\Rifles\ACR\data\ACRPlastic_damage.rvmat"
							}
						},
						
						{
							0,
							
							{
								"WeaponExpansion\Rifles\ACR\data\ACRMetal_destruct.rvmat",
								"WeaponExpansion\Rifles\ACR\data\ACRPlastic_destruct.rvmat"
							}
						}
					};
				};
			};
		};
	};
};

Нас интересует 

itemSize[]={8,3};

Править напрямую в этом pbo мы не можем, поэтому нам нужно создать свой мод, который будет перезаписывать параметр, заданный в этом pbo. 

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

Например вот такimage.png.24dd0192f967df0a99aad7c945decee7.png
Создаем текстовый файл, переименовываем в config.cpp, открываем
image.png.38ee53f5ee31ad970eb88b3cf1234e79.png
 

 Не уверен, что правильно делать как я сейчас опишу, но у меня пока проблем не возникало:
Копируем верхушку cfgPatches с родительского конфига (тот, что в оригинальном моде), вставляем в наш новый config.cpp, переименовываем "WE_ACR" во что-то свое, например в "WE_ACR_Recfg"
Добавляем все классы, объявленные до cfgWeapons
image.png.c1aae61a4ffc8b55031af31fc656523c.png


Далее открываем cfgWeapons. Так как мы делаем не новое оружие, а лишь перезаписываем конфигурацию уже существующего нам не нужно полностью расписывать конфиг этого оружия, нам достаточно только указать перезаписываемые параметры.  Объявляем WE_ACR_Base 

class cfgWeapons
{
	class WE_ACR_Base;
};

Объявляем WE_ACR, которая наследует параметры от базовой версии, открываем фигурные скобки, закрываем. Вписываем интересующие нас параметры, в нашем случае это itemSize

class cfgWeapons
{
	class WE_ACR_Base;
	class WE_ACR: WE_ACR_Base
	{
		itemSize[]={6,3};
	};
};

Почти готово. Теперь, чтобы всё 100% работало нужно сделать так, чтобы наш измененный (хоть и частичный) конфиг загружался после родительского, чтобы перезапись сработала правильно. Для этого в графе 
requiredAddons[]= мы добавляем родительский pbo. В нашем случае оружие хранится в PBO с названием "WE_Rifles":

requiredAddons[]=
		{
			"DZ_Data",
			"DZ_Weapons_Firearms",
			"DZ_Weapons_Ammunition",
			"DZ_Weapons_Magazines",
			"DZ_Weapons_Muzzles",
			"DZ_Weapons_Optics",
			"AmmunitionExpansion",
			"WE_Rifles"
		};
	};

Итого весь конфиг для этой винтовки будет выглядеть примерно так:

class CfgPatches
{
	class WE_ACR_Recfg
	{
		units[]={};
		weapons[]=
		{
			"WE_ACR"
		};
		requiredVersion=0.1;
		requiredAddons[]=
		{
			"DZ_Data",
			"DZ_Weapons_Firearms",
			"DZ_Weapons_Ammunition",
			"DZ_Weapons_Magazines",
			"DZ_Weapons_Muzzles",
			"DZ_Weapons_Optics",
			"AmmunitionExpansion",
			"WE_Rifles"
		};
	};
};
class Mode_Safe;
class Mode_SemiAuto;
class Mode_Burst;
class Mode_FullAuto;
class OpticsInfoRifle;
class cfgWeapons
{
	class WE_ACR_Base;
	class WE_ACR: WE_ACR_Base
	{
		itemSize[]={8,3};
	};
};

Сохраняем, катаем pbo, делаем мод, подключаем на сервер, заходим на сервер, проверяем. 
image.png.d9fe44db389682c9b4ea1ab5c5bb1bb5.png

Очень примечательно, что фактическое и "именное" название pbo спокойно могут не совпадать. Например, в моде что мы только что ковыряли через проводник pbo называется Rifles, в то время как по факту название "WE_Rifles". Как узнать действительное название pbo'шки, которое кушает игра: 
В любой pbo есть её генеральный конфиг. Открываем этот конфиг, читаем. Интересует объявленный в cfgMods класс, в нашем случае это :
 

class CfgMods
{
	class WE_Rifles


Как-то так. Объяснил максимально на пальцах, надеюсь помог

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

@skadjna Класс! Но это я умею делать. Я так рюкзаки делал. Меня интересуют слоты под стройматериалы и плюсом – родительский pbo мода забинарен, его PBO-менеджер не распаковывает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
5 минут назад, skadjna сказал:

Создаешь реконфигурацию ванильных досок

В общем ни фига не понял... ))) Учиться и учиться бабка говорила. Ладно, спасибо. Советы дельные, но не по делу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
Только что, 222Orbita сказал:

В общем ни фига не понял... ))) Учиться и учиться бабка говорила. Ладно, спасибо. Советы дельные, но не по делу.

Тебе на примере предмета было расписано поэтапно как делать реконфигурацию предмета. Абсолютно по делу расписано как решить твой вопрос.

Ещё раз: За то, суётся какой-то предмет в слот или не суётся в конфигурации предмета отвечает параметр InventorySlot, внутри него перечисляются названия слотов, в которые можно пихнуть предмет. 
Делаешь реконфигурацию проклятых досок по инструкции из моего первого сообщения в треде, наслаждаешься тем, что у тебя всё работает.

То, что я тебе готовое решение в виде .pbo не выкатил в тред- ну извиняй, я тебе удочку пытаюсь вручить, а ты рыбу просишь. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

@skadjna Да спасибо огромное. Я же не упрекаю. Буду разбираться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
08.05.2023 в 22:35, 222Orbita сказал:

@skadjna Да спасибо огромное. Я же не упрекаю. Буду разбираться.

Освоил?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

@skadjna Нет, я далёк видимо от этого. Так и не смог открыть забинаренные pbo. Сплошные иероглифы. Все предложенные варианты не помогают никак.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
4 часа назад, 222Orbita сказал:

@skadjna Нет, я далёк видимо от этого. Так и не смог открыть забинаренные pbo. Сплошные иероглифы. Все предложенные варианты не помогают никак.

Видимо как-то неохотно ты варианты разбирал 

  

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

@skadjna Так это и у меня получается, а сам конфиг в иероглифах.

25 минут назад, skadjna сказал:

Видимо как-то неохотно ты варианты разбирал 

  

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

А есть вариант написать фикс? О цене договоримся...

Изменено пользователем 222Orbita
Исправление ошибок (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
Только что, 222Orbita сказал:

@skadjna Так это и у меня получается, а сам конфиг в иероглифах.

image.png.8ed6c94786d5aa9eb3448e7802670e1d.pngДа что-то нет, читаемо вроде.
Если надо сделать и дать готовое-так и скажи, обсудим

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
15 минут назад, 222Orbita сказал:

@skadjna Так это и у меня получается, а сам конфиг в иероглифах.

А есть вариант написать фикс? О цене договоримся...

Личку проверь

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.

Поддержка