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

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

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

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

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

Работа противогазов 1 14

Пытался пропатчить пак модовских газиков под 1 14, но столкнулся с проблемой. Фильтра работают только если они экипированы в дефолтный слот "GasMaskFilter", то есть в кастомных слотах не работают. Пытался покопать дефолтные скрипты газиков\фильтров но упоминания слота не нашел. Где моя ошибка?

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


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

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

  • 0

Всё работает и на модовских противогазов, да нужно фильтр делать так:
 

class CfgVehicles
{
	class GasMask_Filter;
	
	class CivilGasMask_Filter : GasMask_Filter 
	{
		scope = 2;
		inventorySlot[] = {"GasMaskFilter"};
	};
};

Для противогазов так:

class CfgVehicles {
	class GP5GasMask;

	class CivilGasMask : GP5GasMask {
		scope = 2;
		attachments[]={"GasMaskFilter"};
	};
};

Ну и скрипт нужен для фильтра куда же без него. Просто модифицировать скрипт стандартного фильтра нужно
 

modded class GasMask_Filter extends ItemBase
{
	override void OnQuantityChanged(float delta)
	{
		super.OnQuantityChanged(delta);
		
		if (GetQuantity() == 0)
		{
			SetHealth("","",0);
		}
	}
	
	override void EEHealthLevelChanged(int oldLevel, int newLevel, string zone)
	{
		if (GetGame().IsServer())
		{
			if( newLevel == GameConstants.STATE_RUINED )
			{
				SetQuantity(0);
			}
		}
	}
	
	override bool CanPutAsAttachment( EntityAI parent )
	{
		if(!super.CanPutAsAttachment(parent)) {return false;}
		if (parent.IsKindOf("GP5GasMask") || parent.IsKindOf("AirborneMask"))
		{
			return true;
		}
		
		return false;
	}
}

class CivilGasMask_Filter extends GasMask_Filter {
	
	override bool CanPutAsAttachment( EntityAI parent )
	{
		if(!super.CanPutAsAttachment(parent)) {return false;}
		if (parent.IsKindOf("CivilGasMask"))
		{
			return true;
		}
		
		return false;
	}
};

Ну и скрипт маски стандартной ГП-5 также надо модифицировать:
 

modded class GP5GasMask extends MaskBase
{
	override bool CanPutAsAttachment( EntityAI parent )
	{
		if(!super.CanPutAsAttachment(parent)) {return false;}
		bool headgear_present = false;
		
		if ( parent.FindAttachmentBySlotName( "Headgear" ) )
		{
			headgear_present = parent.FindAttachmentBySlotName( "Headgear" ).ConfigGetBool( "noMask" );
		}
		
		if ( ( GetNumberOfItems() == 0 || !parent || parent.IsMan() ) && !headgear_present )
		{
			return true;
		}
		return false;
	}
	
	override bool IsObstructingVoice()
	{
		return true;
	}
	
	override int GetVoiceEffect()
	{
		return VoiceEffectObstruction;
	}
	
}

class CivilGasMask extends GP5GasMask {};

И всё будет работать

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


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

@AKuznecov ...итересно,попробую. А не копали защиту для ванильных токсик-зон в плане настройки одежды и прочего?

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


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

@AKuznecov ...итересно,попробую. А не копали защиту для ванильных токсик-зон в плане настройки одежды и прочего?

Сами скрипты просматривал, но чего-то нужного ещё не находил, может быть BorrizK знает где это лежит в скриптах, спроси у него в личке

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


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

@AKuznecov Вот что я склепал по твоему совету, к сожалению все равно не хочет работать

modded class GasMask_Filter extends ItemBase
{
	override void OnQuantityChanged(float delta)
	{
		super.OnQuantityChanged(delta);
		
		if (GetQuantity() == 0)
		{
			SetHealth("","",0);
		}
	}
	
	override void EEHealthLevelChanged(int oldLevel, int newLevel, string zone)
	{
		if (GetGame().IsServer())
		{
			if( newLevel == GameConstants.STATE_RUINED )
			{
				SetQuantity(0);
			}
		}
	}
	
	override bool CanPutAsAttachment( EntityAI parent )
	{
		if(!super.CanPutAsAttachment(parent)) {return false;}
		if (parent.IsKindOf("GP5GasMask") || parent.IsKindOf("AirborneMask"))
		{
			return true;
		}
		
		return false;
	}
};

class AVC_AoD_GasMask_Filter_Base extends GasMask_Filter {
	
	override bool CanPutAsAttachment( EntityAI parent )
	{
		if(!super.CanPutAsAttachment(parent)) {return false;}
		if (parent.IsKindOf("AVC_AoD_GasMask"))
		{
			return true;
		}
		
		return false;
	}
};

modded class GP5GasMask extends MaskBase
{
	override bool CanPutAsAttachment( EntityAI parent )
	{
		if(!super.CanPutAsAttachment(parent)) {return false;}
		bool headgear_present = false;
		
		if ( parent.FindAttachmentBySlotName( "Headgear" ) )
		{
			headgear_present = parent.FindAttachmentBySlotName( "Headgear" ).ConfigGetBool( "noMask" );
		}
		
		if ( ( GetNumberOfItems() == 0 || !parent || parent.IsMan() ) && !headgear_present )
		{
			return true;
		}
		return false;
	}
	
	override bool IsObstructingVoice()
	{
		return true;
	}
	
	override int GetVoiceEffect()
	{
		return VoiceEffectObstruction;
	}
	
};
class AVC_AoD_GasMask_Filter extends AVC_AoD_GasMask_Filter_Base{};
modded class AVC_AoD_GasMask extends GP5GasMask{};

 

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


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

@AKuznecov Вот что я склепал по твоему совету, к сожалению все равно не хочет работать

modded class GasMask_Filter extends ItemBase { override void OnQuantityChanged(float delta) { super.OnQuantityChanged(delta); if (GetQuantity() == 0) { SetHealth("","",0); } } override void EEHealthLevelChanged(int oldLevel, int newLevel, string zone) { if (GetGame().IsServer()) { if( newLevel == GameConstants.STATE_RUINED ) { SetQuantity(0); } } } override bool CanPutAsAttachment( EntityAI parent ) { if(!super.CanPutAsAttachment(parent)) {return false;} if (parent.IsKindOf("GP5GasMask") || parent.IsKindOf("AirborneMask")) { return true; } return false; } }; class AVC_AoD_GasMask_Filter_Base extends GasMask_Filter { override bool CanPutAsAttachment( EntityAI parent ) { if(!super.CanPutAsAttachment(parent)) {return false;} if (parent.IsKindOf("AVC_AoD_GasMask")) { return true; } return false; } }; modded class GP5GasMask extends MaskBase { override bool CanPutAsAttachment( EntityAI parent ) { if(!super.CanPutAsAttachment(parent)) {return false;} bool headgear_present = false; if ( parent.FindAttachmentBySlotName( "Headgear" ) ) { headgear_present = parent.FindAttachmentBySlotName( "Headgear" ).ConfigGetBool( "noMask" ); } if ( ( GetNumberOfItems() == 0 || !parent || parent.IsMan() ) && !headgear_present ) { return true; } return false; } override bool IsObstructingVoice() { return true; } override int GetVoiceEffect() { return VoiceEffectObstruction; } }; class AVC_AoD_GasMask_Filter extends AVC_AoD_GasMask_Filter_Base{}; modded class AVC_AoD_GasMask extends GP5GasMask{};


modded class GasMask_Filter extends ItemBase
{
	override void OnQuantityChanged(float delta)
	{
		super.OnQuantityChanged(delta);
		
		if (GetQuantity() == 0)
		{
			SetHealth("","",0);
		}
	}
	
	override void EEHealthLevelChanged(int oldLevel, int newLevel, string zone)
	{
		if (GetGame().IsServer())
		{
			if( newLevel == GameConstants.STATE_RUINED )
			{
				SetQuantity(0);
			}
		}
	}
	
	override bool CanPutAsAttachment( EntityAI parent )
	{
		if(!super.CanPutAsAttachment(parent)) {return false;}
		if (parent.IsKindOf("GP5GasMask") || parent.IsKindOf("AirborneMask"))
		{
			return true;
		}
		
		return false;
	}
};

class AVC_AoD_GasMask_Filter_Base extends GasMask_Filter {
	
	override bool CanPutAsAttachment( EntityAI parent )
	{
		if(!super.CanPutAsAttachment(parent)) {return false;}
		if (parent.IsKindOf("AVC_AoD_GasMask"))
		{
			return true;
		}
		
		return false;
	}
};

modded class GP5GasMask extends MaskBase
{
	override bool CanPutAsAttachment( EntityAI parent )
	{
		if(!super.CanPutAsAttachment(parent)) {return false;}
		bool headgear_present = false;
		
		if ( parent.FindAttachmentBySlotName( "Headgear" ) )
		{
			headgear_present = parent.FindAttachmentBySlotName( "Headgear" ).ConfigGetBool( "noMask" );
		}
		
		if ( ( GetNumberOfItems() == 0 || !parent || parent.IsMan() ) && !headgear_present )
		{
			return true;
		}
		return false;
	}
	
	override bool IsObstructingVoice()
	{
		return true;
	}
	
	override int GetVoiceEffect()
	{
		return VoiceEffectObstruction;
	}
	
};
class AVC_AoD_GasMask_Filter extends AVC_AoD_GasMask_Filter_Base{};
modded class AVC_AoD_GasMask extends GP5GasMask{};

 

Дай всё от мода я тебе сделаю сборку, желательно чтобы и сами 3д модели не были забинарены

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


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

Дай всё от мода я тебе сделаю сборку, желательно чтобы и сами 3д модели не были забинарены

Это патч к фри версии ареа оф дикей из воркшопа, модели я даже не доставал, ковырял только конфиги, которые даже не до конца прописаны, ибо пытался разобраться хотя бы на примере одного газика

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


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

Это патч к фри версии ареа оф дикей из воркшопа, модели я даже не доставал, ковырял только конфиги, которые даже не до конца прописаны, ибо пытался разобраться хотя бы на примере одного газика

Вот пусть авторы и переделывают под патч 1.14, пример как это сейчас работает я тебе дал, так что изучай

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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

Поддержка