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

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

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

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

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

Найти обьект человека в определенной зоне

Помогите пжл. найти обьект человека в определенной зоне. 

Есть вот такое но он собирает все обьекты кроме человека

 

vector m_ArenaPositions = "973 10 249";
				vector orientation = Vector(0, 0, 0);
				vector edgeLength = Vector(1000, 1000, 1000);
				array<Object> excludedObjects = new array<Object>;
				array<Object> collidedObjects = new array<Object>;
				if (GetGame().IsBoxColliding(m_ArenaPositions, orientation, edgeLength, excludedObjects, collidedObjects))
				{
					
					for (int p = 0; p < excludedObjects.Count(); p++)
					{
					
					string objectClassEX = excludedObjects.Get(p).GetType();
					Print(objectClassEX);
					}
					
				for (int o = 0; o < collidedObjects.Count(); o++)
					{
						
					
						if( (collidedObjects.Get(o)).IsMan())
						{
							Print("Debug1");
							if ( (collidedObjects.Get(o)).IsKindOf("SurvivorBase") )
							{
								
								Print("Debug2");
							PlayerBase m_player_arena = collidedObjects.Get(o);
							
							ItemBase m_Check_Team_InventoriOne =  ItemBase.Cast(m_player_arena.GetAttachmentByConfigTypeName("Armband_Blue"));
							
							ItemBase m_Check_Team_InventoriTwo =  ItemBase.Cast(m_player_arena.GetAttachmentByConfigTypeName("Armband_Red"));
							
							
							if(m_Check_Team_InventoriOne == NULL)
								{
								TeamTwoArena = TeamTwoArena + 1;
								
								}
								else
								{
								TeamOneArena = TeamOneArena + 1;
								}
							}
						}
						string objectClass = collidedObjects.Get(o).GetType();

						if (objectClass.Contains("ZmbF_") || objectClass.Contains("ZmbM_"))
							GetGame().ObjectDelete(collidedObjects.Get(o));	
						
					}

В данном случае он удаляет определяя класс зомби. Но мне нужно найти человека и проверить его на наличие повязки определенной.

Так как делаю арену и осталось только сделать баланс за счет подсчета тимейтов. По признаку повязки.

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


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

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

  • 1

Здравствуйте. А почему при поиске вы используете IsBoxColliding()? Для этого есть функция GetObjectsAtPosition3D(). А там уже проверите, PlayerBase это или нет.

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


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



  • 0
04.06.2022 в 21:36, SharkAttack сказал:

Здравствуйте. А почему при поиске вы используете IsBoxColliding()? Для этого есть функция GetObjectsAtPosition3D(). А там уже проверите, PlayerBase это или нет.


Огромное спасибо. Так как решил проблему с поиском людей другими способами не понадобилось в решении данной проблемы. 

Ноооо, вы помогли мне сделать зону зачистки от трупов на арене за что вам огромное спасибо)))

 

modded class PlayerBase
{
	
	float m_Tick = 0;
	
	override void OnScheduledTick(float deltaTime)
	{
		super.OnScheduledTick(deltaTime);
		m_Tick += deltaTime;
		if (m_Tick >= 60) //Prevents server from fps dropping
		{
			m_Tick = 0;
			ArenaDeletDeadPlayer();
		}
	}
	
	void ArenaDeletDeadPlayer()
	{
		
	
	
	vector m_ArenaPositions = "5000 333 5000";
	
	private array<Object> CallObject = new array<Object>;
	private array<CargoBase> CallObject_Base = new array<CargoBase>;
	
		GetGame().GetObjectsAtPosition3D(m_ArenaPositions, 200, CallObject, CallObject_Base)
		
			
			
			for (int p = 0; p < CallObject.Count(); p++)
			{
				if(CallObject.Get(p).IsKindOf("SurvivorBase"))
				{
					Object m_SelectPlayer = CallObject.Get(p);
					if(m_SelectPlayer.GetHealth() <= 0)
					{
						float m_CountHealth = m_SelectPlayer.GetHealth();
						Print("У человека столька хп -" + m_CountHealth.ToString());
					}
				}
			}
		
	}

	

}

 

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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