Гранаты

Hejter

xor ebx, ebx
Сообщения
1,759
Реакции
393
1. Возможно ли у флеш гранаты, убрать ослепление и заменить его на взрывную гранату с огнем?
2. Возможно ли у взрываной гранаты убрать свойство наносить урон и заменить на отталкивание.
Пример: Оффтоп
Если да, то как?
 

Vit_ amin

Добрая душа
Сообщения
1,525
Реакции
688
1. Возможно ли у флеш гранаты, убрать ослепление и заменить его на взрывную гранату с огнем?
2. Возможно ли у взрываной гранаты убрать свойство наносить урон и заменить на отталкивание.
Пример: Оффтоп
Если да, то как?

Чисто теоретически:
1. Убираем ослепление, создание env_explosion и env_fire, задаем им необходимые KeyValues, делаем перехват на flashbang_detinate и посылаем input Expode и ... (забыл у env_fire input)
Ну с практики я голову еще не чесал (
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
1. Возможно ли у флеш гранаты, убрать ослепление и заменить его на взрывную гранату с огнем?
2. Возможно ли у взрываной гранаты убрать свойство наносить урон и заменить на отталкивание.
Куда проще поменять их местами. Взрывной просто поджигать противников при уроне (всего 1 событие + огненный хвост в полете, если требуется), а флешке убрать её свойства и добавить отталкивание.
 

Hejter

xor ebx, ebx
Сообщения
1,759
Реакции
393
Куда проще поменять их местами. Взрывной просто поджигать противников при уроне (всего 1 событие + огненный хвост в полете, если требуется), а флешке убрать её свойства и добавить отталкивание.

Тоже вариант и просто сменить модель на сервере.
Подскажешь как реализовать флешку?
С гранатой я уже сделал.

Добавлено через 46 секунд
Чисто теоретически:
1. Убираем ослепление, создание env_explosion и env_fire, задаем им необходимые KeyValues, делаем перехват на flashbang_detinate и посылаем input Expode и ... (забыл у env_fire input)
Ну с практики я голову еще не чесал (

Оффтоп
 
Последнее редактирование:

AlmazON

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

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
759
AlmazON, нужно же направить толчок относительно гранаты.
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #8
Primo, получаешь координаты гранаты, координаты игрока, считаешь в каком направлении находится игрок от гранаты и в этом направлении его толкаешь.
 

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
759
R1KO, всё я должен вытягивать :D
Оффтоп
 

Hejter

xor ebx, ebx
Сообщения
1,759
Реакции
393
Очень просто так: это (альтернатива) + TeleportEntity(entity, const Float:origin[3], const Float:angles[3], const Float:velocity[3]); - меняешь последнее и получаешь отталкивание указанного игрока (вместо entity).

Понятно, спасибо.
Но, только одно не понял. В этом случае если флешка попадет в игрока он отлетит? или в радиусе действия его откинет.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
в радиусе действия его откинет
PHP:
public Event_FlashgrenadeDetonate(Handle:event, const String:name[], bool:dontBroadcast)
{
	decl Float:origin[3], Float:vector[3];
	origin[0] = GetEventFloat(event, "x");
	origin[1] = GetEventFloat(event, "y");
	origin[2] = GetEventFloat(event, "z");
	for (new i = 1; i <= MaxClients; i++)
	{
		if (IsClientInGame(i) && IsPlayerAlive(i))
		{
			GetClientAbsOrigin(i, vector);
			if (GetVectorDistance(origin, vector) < 500.0)
			{
				//Расстояние от взрыва гранаты до игрока менее 500.0
			}
		}
	}
}
Правда сработает, даже если игрок за глухой стеной.
 

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
759
Hejter, он тебе просто сказал, как толкнуть игрока, чтобы оттолкнуть в нужном направлении, нужно найти вектор.

C-подобный:
new Float:Push[3];
MakeVectorFromPoints(grenadexyz, clientxyz, Push);
NormalizeVector(Push, Push);
Push[0] = (FloatMul(-50.0, Cosine(DegToRad(EyeAngles[1]))));
Push[1] = (FloatMul(-50.0, Sine(DegToRad(EyeAngles[1]))));
Push[2] = (FloatMul(-50.0, Sine(DegToRad(EyeAngles[0]))));
ScaleVector(Push, 50.0);

TeleportEntity(client, NULL_VECTOR, NULL_VECTOR, Push);

что-то вроде такого
 

Hejter

xor ebx, ebx
Сообщения
1,759
Реакции
393
PHP:
public Event_FlashgrenadeDetonate(Handle:event, const String:name[], bool:dontBroadcast)
{
	decl Float:origin[3], Float:vector[3];
	origin[0] = GetEventFloat(event, "x");
	origin[1] = GetEventFloat(event, "y");
	origin[2] = GetEventFloat(event, "z");
	for (new i = 1; i <= MaxClients; i++)
	{
		if (IsClientInGame(i) && IsPlayerAlive(i))
		{
			GetClientAbsOrigin(i, vector);
			if (GetVectorDistance(origin, vector) < 500.0)
			{
				//Расстояние от взрыва гранаты до игрока менее 500.0
			}
		}
	}
}
Правда сработает, даже если игрок за глухой стеной.

Мне это и нужно.
 
Сверху Снизу