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
Eternal

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

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

Share this post


Link to post
Share on other sites

7 answers to this question

Recommended Posts

  • 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 {};

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

Share this post


Link to post
Share on other sites



  • 0

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

Share this post


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

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

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

Share this post


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

 

Share this post


Link to post
Share on other sites
  • 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д модели не были забинарены

Share this post


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

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

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

Share this post


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

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

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

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.