Как сделать AcceptEntityInput через TargetName или HammerID энтити ?

x330122

Участник
Сообщения
357
Реакции
152
Всем привет народ, мне нужна помощь по энтити.
Хочу сделать меню управлением картой, но во время его написания, заметил что EntityID у дверей меняется и смысла делать
C-подобный:
FindEntityByClassName(-1, "func_door");
нету смысла.
Ну так вот, как я смогу замутить что-то с энтити зная его targetname или его HammerID ?
 
Последнее редактирование модератором:

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
759
PHP:
decl String:strName[50];
GetEntPropString(index, Prop_Data, "m_iName", strName, sizeof(strName));
if(strcmp(strName, "entity_targetname") == 0)
{
     
}
Ну думаю с циклом и т.д. сам разберёшься.
 

x330122

Участник
Сообщения
357
Реакции
152
PHP:
decl String:strName[50];
GetEntPropString(index, Prop_Data, "m_iName", strName, sizeof(strName));
if(strcmp(strName, "entity_targetname") == 0)
{
    
}
Ну думаю с циклом и т.д. сам разберёшься.
Да но на что я смогу задействовать AcceptEntityInput(ничто, "Enable"); ? :dntknw:
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
на что я смогу задействовать AcceptEntityInput(ничто, "Enable"); ?
PHP:
#include <sdktools_functions>


decl String:EntityName[50];
new entity = MaxClients + 1;
while ((entity = FindEntityByClassname(entity, "func_door")) != -1)
{
	GetEntPropString(entity, Prop_Data, "m_iName", EntityName, sizeof(EntityName));
	if (strcmp(EntityName, "Известное имя объекта") == 0)
	{
		AcceptEntityInput(entity, "Enable");
		break;
	}
}
 

x330122

Участник
Сообщения
357
Реакции
152
PHP:
#include <sdktools_functions>


decl String:EntityName[50];
new entity = MaxClients + 1;
while ((entity = FindEntityByClassname(entity, "func_door")) != -1)
{
    GetEntPropString(entity, Prop_Data, "m_iName", EntityName, sizeof(EntityName));
    if (strcmp(EntityName, "Известное имя объекта") == 0)
    {
        AcceptEntityInput(entity, "Enable");
        break;
    }
}
Спасибо большое тебе. Хотелось бы задействовать функцию с энити через его HammerID, поскольку на некоторых картах бывает что есть несколько энтити с таким-же таргетнеймом и они конкретные энтити не хотят открыватся/закрыватся.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Не видел такого, это условность для самого Hammer'а.
несколько энтити с таким-же таргетнеймом
Порядок создания вроде одинаковый на картах. Т.е., одна дверь имеет всегда самый низкий индекс, другая - повыше, третья - самый высокий. Таким образом, можно считать совпадения и открывать нужную по их известному количеству.
PHP:
#include <sdktools_functions>


decl String:EntityName[50];
new entity = MaxClients + 1, number;
while ((entity = FindEntityByClassname(entity, "func_door")) != -1)
{
    GetEntPropString(entity, Prop_Data, "m_iName", EntityName, sizeof(EntityName));
    if (strcmp(EntityName, "Известное имя объекта") == 0)
    {
        if (++number == 2) AcceptEntityInput(entity, "Enable"); //Использовать номер 2.
        break;
    }
}
 

x330122

Участник
Сообщения
357
Реакции
152
Не видел такого, это условность для самого Hammer'а.Порядок создания вроде одинаковый на картах. Т.е., одна дверь имеет всегда самый низкий индекс, другая - повыше, третья - самый высокий. Таким образом, можно считать совпадения и открывать нужную по их известному количеству.
PHP:
#include <sdktools_functions>


decl String:EntityName[50];
new entity = MaxClients + 1, number;
while ((entity = FindEntityByClassname(entity, "func_door")) != -1)
{
    GetEntPropString(entity, Prop_Data, "m_iName", EntityName, sizeof(EntityName));
    if (strcmp(EntityName, "Известное имя объекта") == 0)
    {
        if (++number == 2) AcceptEntityInput(entity, "Enable"); //Использовать номер 2.
        break;
    }
}
А возможно сделать так если есть несколько энтитей с одним и тем же targetname'ом, то все они задействуются AcceptEntityInput ? :aikido:
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Сверху Снизу