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
Sign in to follow this  
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));	
						
					}

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

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

Share this post


Link to post
Share on other sites

2 answers to this question

Recommended Posts

  • 1

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

Share this post


Link to post
Share on other sites







  • 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());
					}
				}
			}
		
	}

	

}

 

Edited by kkac9kk (see edit history)

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
Sign in to follow this  

×
×
  • 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.