Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Функция CreateLableToActor

Darge

Умник




Автор: Darge (Антон Стяжкин - Я).

Описание: функция создает 3D текст над актером.

Параметры: (actorid, bodypart, color, text[], Float:DrawDistance, testLOS=0)

Параметр:Обозначение:Пояснение:
actoridНомер актераНа какого актера будет задействована функция
bodypartЧасть телаГде именно будет показан текст.
Если 1, то над головой.
Если 2, то по стандарту
colorЦветЦвет текста
textТекст-
DrawDistanceДистанцияНа каком расстоянии будет виден текст
testLOSВидимостьЕсли 0, то текст не видно за предметом.
Если 1, то за предметом виден текст

Пример использования:

PHP:
public OnGameModeInit()
{
	// ...

	// У этого актера текст будет над головой
	CreateLableToActor(0, 1, 0xFFFFFFAA, "Актёр № 0", 50.0, 1);
	// У этого актера текст будет по стандарту(по середине)
	CreateLableToActor(1, 2, 0xFFFFFFAA, "Актёр № 1", 50.0, 1);

	return 1;
}
В конец мода:

PHP:
stock CreateLableToActor(actorid, bodypart, color, text[], Float:DrawDistance, testLOS=0)
{ // специально для Pawno-Info.Ru \\ by Darge
	new
		Float: actor_x, Float: actor_y, Float: actor_z, actor_world;
		
	actor_world = GetActorVirtualWorld(actorid);
	GetActorPos(actorid, actor_x, actor_y, actor_z);

	if(bodypart == 1)
	{
		Create3DTextLabel(text, color, actor_x, actor_y, actor_z+0.9, DrawDistance, actor_world, testLOS);
	}
	else if (bodypart == 2)
	{
		Create3DTextLabel(text, color, actor_x, actor_y, actor_z, DrawDistance, actor_world, testLOS);
	}
}
PHP:
static FHM3DTextActorID[MAX_3DTEXT_GLOBAL] = {INVALID_ACTOR_ID, ...};

stock Text3D:Create3DTextLabelActor(actorid, text[], color, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:distance = 10.0, worldid = 0, testlos = 0)
{
	new Text3D:text_ID = Text3D:INVALID_3DTEXT_ID;
	if(IsValidActor(actorid))
	{
		new Float:x, Float:y, Float:z;
		GetActorPos(actorid, x, y, z),\
		text_ID = Create3DTextLabel(text, color, x + fOffsetX, y + fOffsetY, (z + 0.8) + fOffsetZ, distance, worldid, testlos);
		if(text_ID != Text3D:INVALID_3DTEXT_ID){ FHM3DTextActorID[_:text_ID] = actorid; }
	}
	return text_ID;
}

stock Delete3DTextLabelActor(Text3D:text_ID)
{
	if(text_ID != Text3D:INVALID_3DTEXT_ID)
	{
		FHM3DTextActorID[_:text_ID] = INVALID_ACTOR_ID,\
		return Delete3DTextLabel(text_ID);
	}
	return 0;
}
Пример использования:

PHP:
fhmActor = CreateActor(255, 0.0, 0.0, 10.0, 90.0);
fhmCreate3DTextActor = Create3DTextLabelActor(fhmActor, "Привет, мир!", 0xFFFFFFFF, 0.0, 0.0, 0.3, 10.0, 0);
Дальше я думаю не стоит рассказывать.
Можешь мой пример тоже в первый пост прикрепить, если хочешь конечно.
 
Последнее редактирование модератором:
Сверху Снизу