Получить имя объекта и его характеристики

iamdss

Участник
Сообщения
126
Реакции
12
Здравствуйте. Как можно получить имя любого объекта на карте (например, на которого наведён прицел) и любое из его свойств? Инструменты вроде GetEdictClassname и GetEntProp* не дают желаемого результата, если в прицеле энтити worldspawn, то желаемого достичь не удаётся. Как можно иначе получить произвольные свойства выбранного объекта, например, его имя или модель/текстуру?

Добавлено через 4 минуты
Поясню задачу. Нужно различать, какой материал перед нами - металл, дерево, камень, металлическая бочка, деревянная бочка и т.п.
 
Последнее редактирование:

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #2
Модель так:

PHP:
GetEntPropString(entity, Prop_Data, "m_ModelName", szModelPath, sizeof(szModelPath));
Про материал что-то читал, щас не найду, днем поищу
 

iamdss

Участник
Сообщения
126
Реакции
12
Спасибо, а есть ли у объектов поле вроде имени класса, только описывающее его более подробно? То есть, в группе объектов класса wordspawn наверняка есть субклассы, грубо говоря, это бочка, это унитаз и т.п. Ибо материалов много, но их можно сгруппировать по одному общему признаку - это дерево, это металл, это вода... В плагине я проверяю, что возвращает TR_GetPointContents - MASK_WATER, CONTENTS_WINDOW, вот что-то подобное хочу реализовать, но более широко.

И как получить имя энтити под прицелом?

C-подобный:
GetEntPropString(ent, Prop_Data, "m_iName", name, 128);

Возвращает пустую строку для практически любого объекта... Насчёт m_iName что-то не так понял, наверное? Смотрел в результатах sm_dump_datamaps и sm_dump_netprops.
 

Стас Учувадов

Участник
Сообщения
8
Реакции
0
C-подобный:
public OnPluginStart()
{
	RegConsoleCmd("sm_itpropis", lol)
}

public Action:lol(client,args)
{
	int target = GetClientAimTarget(client, false)
	if(IsClientInGame(target))
	{
		PrintToChat(client, "[InkCore] Объект является игроком")
	}
	else
	{
		decl String:name[256];
		GetEntPropString(target, Prop_Data, "m_iName", name, 128);
		PrintToChat(client, "[InkCore] Название объекта: %s", name)
	}
}

Вроде должна работать(Если постоянно пишет, что это игрок, убери проверку на наличие клиента в игре)
Команда: sm_itpropis ; !itpropis

--------------------------------------

нет, не работает, я только что проверил. Щас попробую через Classname
 
Сверху Снизу