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

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

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

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

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

CodeLock & Raid

Доброго времени суток. При рейде построек с кодлоком, кодлок остается висеть на столбах. Как сделать так чтобы он спадал при  рейде?

 

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


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

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

  • 0

Ну я написал чтоб он удалялся у меня, а чтоб выпадал сам сделаешь))

Там вместо удаления просто нужно с кодлока ванилы оторвать текст и сделать функцию дропа

modded class Fence
{
	
	
	  CodeLock GetCodeLock()
	{
	  CodeLock code_lock = CodeLock.Cast( FindAttachmentBySlotName( ATTACHMENT_SLOT_COMBINATION_LOCK ) );
	  return code_lock;
	 }
	 
	 
	override void OnPartDestroyedServer( Man player, string part_name, int action_id, bool destroyed_by_connected_part = false )
	{
	  super.OnPartDestroyedServer( player, part_name, action_id );
	  
	  //check gate state
	  ConstructionPart constrution_part = GetConstruction().GetConstructionPart( part_name );
	  if ( constrution_part.IsGate() && destroyed_by_connected_part ) //avoids attachment dropping on regular hinges destruction
	  {
	  //drop regular attachments

	  HandleDropAttachment(GetCodeLock());
	  
	  //rotate back to place
	  if ( IsOpened() )
	  CloseFence();
	  }
	  if ( part_name == "wall_base_down" )
	  {

	  HandleDropAttachment(GetCodeLock());
	  }
	  if ( part_name == "wall_base_up" )
	  {

	  HandleDropAttachment(GetCodeLock());
	}
	}
	 
	 
	override   void HandleDropAttachment(ItemBase item)
	{
	  
	  
	  BarbedWire wire;
	  CodeLock lock;
	  if (Class.CastTo(wire,item)) //special barbed wire beh.
	  {
	  wire.SetMountedState( false );
	  GetInventory().DropEntity(InventoryMode.SERVER, this, wire);
	  }
	  else if (Class.CastTo(lock,item))
	  {
	  GetGame().ObjectDelete(lock);
	  }
	  else
	  {
	  super.HandleDropAttachment(item)
	  }
  }
	 
}

 

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

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


Ссылка на сообщение
Поделиться на других сайтах
MagicByte MagicByte MagicByte
  • 0
29.08.2022 в 23:21, kkac9kk сказал:

Ну я написал чтоб он удалялся у меня, а чтоб выпадал сам сделаешь))

Там вместо удаления просто нужно с кодлока ванилы оторвать текст и сделать функцию дропа

modded class Fence { CodeLock GetCodeLock() { CodeLock code_lock = CodeLock.Cast( FindAttachmentBySlotName( ATTACHMENT_SLOT_COMBINATION_LOCK ) ); return code_lock; } override void OnPartDestroyedServer( Man player, string part_name, int action_id, bool destroyed_by_connected_part = false ) { super.OnPartDestroyedServer( player, part_name, action_id ); //check gate state ConstructionPart constrution_part = GetConstruction().GetConstructionPart( part_name ); if ( constrution_part.IsGate() && destroyed_by_connected_part ) //avoids attachment dropping on regular hinges destruction { //drop regular attachments HandleDropAttachment(GetCodeLock()); //rotate back to place if ( IsOpened() ) CloseFence(); } if ( part_name == "wall_base_down" ) { HandleDropAttachment(GetCodeLock()); } if ( part_name == "wall_base_up" ) { HandleDropAttachment(GetCodeLock()); } } override void HandleDropAttachment(ItemBase item) { BarbedWire wire; CodeLock lock; if (Class.CastTo(wire,item)) //special barbed wire beh. { wire.SetMountedState( false ); GetInventory().DropEntity(InventoryMode.SERVER, this, wire); } else if (Class.CastTo(lock,item)) { GetGame().ObjectDelete(lock); } else { super.HandleDropAttachment(item) } } }


modded class Fence
{
	
	
	  CodeLock GetCodeLock()
	{
	  CodeLock code_lock = CodeLock.Cast( FindAttachmentBySlotName( ATTACHMENT_SLOT_COMBINATION_LOCK ) );
	  return code_lock;
	 }
	 
	 
	override void OnPartDestroyedServer( Man player, string part_name, int action_id, bool destroyed_by_connected_part = false )
	{
	  super.OnPartDestroyedServer( player, part_name, action_id );
	  
	  //check gate state
	  ConstructionPart constrution_part = GetConstruction().GetConstructionPart( part_name );
	  if ( constrution_part.IsGate() && destroyed_by_connected_part ) //avoids attachment dropping on regular hinges destruction
	  {
	  //drop regular attachments

	  HandleDropAttachment(GetCodeLock());
	  
	  //rotate back to place
	  if ( IsOpened() )
	  CloseFence();
	  }
	  if ( part_name == "wall_base_down" )
	  {

	  HandleDropAttachment(GetCodeLock());
	  }
	  if ( part_name == "wall_base_up" )
	  {

	  HandleDropAttachment(GetCodeLock());
	}
	}
	 
	 
	override   void HandleDropAttachment(ItemBase item)
	{
	  
	  
	  BarbedWire wire;
	  CodeLock lock;
	  if (Class.CastTo(wire,item)) //special barbed wire beh.
	  {
	  wire.SetMountedState( false );
	  GetInventory().DropEntity(InventoryMode.SERVER, this, wire);
	  }
	  else if (Class.CastTo(lock,item))
	  {
	  GetGame().ObjectDelete(lock);
	  }
	  else
	  {
	  super.HandleDropAttachment(item)
	  }
  }
	 
}

 

 

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


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

А куда этот скрипт вставлять?

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


Ссылка на сообщение
Поделиться на других сайтах
  • 0
11.10.2022 в 21:34, __combat_ сказал:

 

А куда этот скрипт вставлять?

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


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

А куда этот скрипт вставлять?

Есть готовый скрипт (мод) который решит твою проблему. Пиши в ЛС.

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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

Поддержка