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

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

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

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

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

Вопрос нуба: Помощь в модификации класса

Есть такой мод MoreDoors, автор разрешает его репак и модификацию, возникло желание запретить вешать CodeLock (разрешить только велосипедные замки), на одну из дверей, а именно ShantyDoor, для этого клонирую class MoreDoorBase:

	class MoreDoorBase1 : Fence {
		scope = private;
		displayName = "Door";
		descriptionShort = "$STR_CfgVehicles_Fence1";
		bounding = "BSphere";
		overrideDrawArea = 3.0;
		forceFarBubble = "true";
		handheld = "false";
		lootCategory = "Crafted";
		carveNavmesh = 1;
		weight = 10000;
		itemSize[] = {2, 3};
		hiddenSelections[] = {"door1", "door2", "door3", "door4"};
		physLayer = "item_large";
		createProxyPhysicsOnInit = "false";
		createdProxiesOnInit[] = {"Deployed"};
		rotationFlags = 2;
		
		class DamageSystem {
			class GlobalHealth {
				class Health {
					hitpoints = 100;
					healthLevels[] = {{1, {""}}, {0.7, {""}}, {0.5, {""}}, {0.3, {""}}, {0, {""}}};
				};
			};
			
			class GlobalArmor {
				class Projectile {
					class Health {
						damage = 0;
					};
					
					class Blood {
						damage = 0;
					};
					
					class Shock {
						damage = 0;
					};
				};
				
				class Melee {
					class Health {
						damage = 0;
					};
					
					class Blood {
						damage = 0;
					};
					
					class Shock {
						damage = 0;
					};
				};
				
				class FragGrenade {
					class Health {
						damage = 0;
					};
					
					class Blood {
						damage = 0;
					};
					
					class Shock {
						damage = 0;
					};
				};
			};
		};
		attachments[] = {"Att_CombinationLock"};
		
		class GUIInventoryAttachmentsProps {
			class Base {
				name = "$STR_CfgVehicles_Fence_Att_Category_Base";
				description = "";
				attachmentSlots[] = {"Att_CombinationLock"};
				icon = "cat_bb_base";
				selection = "wall";
			};
			
			class Attachments {
				name = "$STR_CfgVehicles_Fence_Att_Category_Attachments";
				description = "";
				attachmentSlots[] = {"Wall_Camonet", "Wall_Barbedwire_1", "Wall_Barbedwire_2"};
				icon = "cat_bb_attachments";
				selection = "wall";
			};
			
			class Material {
				name = "$STR_CfgVehicles_Fence_Att_Category_Materials";
				description = "";
				attachmentSlots[] = {"Material_Nails", "Material_WoodenPlanks", "Material_MetalSheets", "Material_MetalWire"};
				icon = "cat_bb_material";
				selection = "wall";
			};
		};
		
		class AnimationSources {
			class AnimSourceShown {
				source = "user";
				animPeriod = 0.01;
				initPhase = 0;
			};
			
			class AnimSourceHidden {
				source = "user";
				animPeriod = 0.01;
				initPhase = 1;
			};
			
			class AnimRotate {
				source = "user";
				component = "Door1";
				animPeriod = 1;
				initPhase = 0;
				initOpened = 0.5;
			};
			
			class Wall_Interact_Rotate : AnimRotate {};
			
			class Wall_Barbedwire_1_Mounted_Rotate : AnimRotate {};
			
			class Wall_Barbedwire_2_Mounted_Rotate : AnimRotate {};
			
			class Wall_Camonet_Rotate : AnimRotate {};
			
			class Wall_Gate_Rotate : AnimRotate {};
			
			class Wall_Base_Down_Rotate : AnimRotate {};
			
			class Wall_Base_Up_Rotate : AnimRotate {};
			
			class Wall_Wood_Down_Rotate : AnimRotate {};
			
			class Wall_Wood_Up_Rotate : AnimRotate {};
			
			class Wall_Metal_Down_Rotate : AnimRotate {};
			
			class Wall_Metal_Up_Rotate : AnimRotate {};
			
			class Material_WoodenLogs : AnimSourceHidden {};
			
			class Material_MetalWire : AnimSourceHidden {};
			
			class Wall_Barbedwire_1 : AnimSourceHidden {};
			
			class Wall_Barbedwire_1_Mounted : AnimSourceHidden {};
			
			class Wall_Barbedwire_2 : AnimSourceHidden {};
			
			class Wall_Barbedwire_2_Mounted : AnimSourceHidden {};
			
			class Wall_Camonet : AnimSourceHidden {};
			
			class Deployed : AnimSourceHidden {};
			
			class Base : AnimSourceHidden {};
			
			class Wall_Platform : AnimSourceHidden {};
			
			class Wall_Platform_Stairs_Left : AnimSourceHidden {};
			
			class Wall_Platform_Stairs_Right : AnimSourceHidden {};
			
			class Wall_Gate : AnimSourceHidden {};
			
			class Wall_Base_Down : AnimSourceHidden {};
			
			class Wall_Base_Up : AnimSourceHidden {};
			
			class Wall_Metal_Down : AnimSourceHidden {};
			
			class Wall_Metal_Up : AnimSourceHidden {};
			
			class Wall_Wood_Down : AnimSourceHidden {};
			
			class Wall_Wood_Up : AnimSourceHidden {};
		};
		
		class Construction {
			class wall {
				class wall_gate {
					name = "$STR_CfgVehicles_Construction_Part_Gate";
					is_gate = 1;
					id = 5;
					required_parts[] = {};
					conflicted_parts[] = {};
					collision_data[] = {};
					build_action_type = 1;
					dismantle_action_type = 1;
					material_type = 5;
				};
			};
		};
		
		class PointLights {
			class PointLight {
				color[] = {1, 1, 1, 0.05};
				ambient[] = {0.01, 0.01, 0.01, 0.01};
				position = "light";
				hitpoint = "bulb";
				selection = "bulb";
				size = 0;
				radius = 5;
				brightness = 0.001;
				dayLight = 1;
				heatHazeRadius = 0;
				heatHazePower = 0;
				fireEffect = 0;
				fireEffectOctaves = 0;
				fireEffectPersistence = 0;
				fireEffectFract = 0;
			};
		};
	};

 

Возникает вопрос, как в новом классе прописать только использование CombinationLock" и "Att_CombinationLock4"?

 

Подозреваю, что атач прописан строкой attachments[] = {"Att_CombinationLock"};, но что это за Att_CombinationLockне могу найти 😞

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


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

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

  • 0

attachments[] = {"Att_CombinationLock"};
Это велосипедный замок на 3 или 4 цифры, а также CodeLock модовский все к одному слоту привязано.
Чтобы убрать аттач CodeLock достаточно про модифицировать скрипт CodeLock.c вместо оригинального кода сделать следующий. AddAction - добавляет действие, а RemoveAction убирает его полностью. Правда это будет работать для всех модовских и ванильных дверей, заборов, ворот и тд, то бишь глобально уберет действие крепежа CodeLock к таких предметам .
 

class CodeLock : ItemBase {
	 override void SetActions() {
        super.SetActions();

        AddAction(ActionAttachCodeLockToFence);
        AddAction(ActionAttachCodeLockToTent);
    }
}
modded class CodeLock : ItemBase {
	 override void SetActions() {
        super.SetActions();

        RemoveAction(ActionAttachCodeLockToFence);
        RemoveAction(ActionAttachCodeLockToTent);
    }
}


 

 

Изменено пользователем AKuznecov (история изменений)

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


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





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

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

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

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

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

Войти

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

Войти сейчас

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

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

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