Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
  • 0
222Orbita

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

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

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

Share this post


Link to post
Share on other sites

14 answers to this question

Recommended Posts

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

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

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

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

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

Share this post


Link to post
Share on other sites



  • 0

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

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

Share this post


Link to post
Share on other sites
  • 0

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

Share this post


Link to post
Share on other sites
  • 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


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

Share this post


Link to post
Share on other sites
  • 0

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

Share this post


Link to post
Share on other sites
  • 0
5 минут назад, skadjna сказал:

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

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

Share this post


Link to post
Share on other sites
  • 0
Только что, 222Orbita сказал:

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

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

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

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

Share this post


Link to post
Share on other sites
  • 0

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

Share this post


Link to post
Share on other sites
  • 0
08.05.2023 в 22:35, 222Orbita сказал:

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

Освоил?

Share this post


Link to post
Share on other sites
  • 0

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

Share this post


Link to post
Share on other sites
  • 0
4 часа назад, 222Orbita сказал:

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

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

  

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

Share this post


Link to post
Share on other sites
  • 0
Posted (edited)

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

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

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

  

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

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

Edited by 222Orbita
Исправление ошибок (see edit history)

Share this post


Link to post
Share on other sites
  • 0
Только что, 222Orbita сказал:

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

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

Share this post


Link to post
Share on other sites
  • 0
15 минут назад, 222Orbita сказал:

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

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

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.