телепортирваш като насочваш мерника си

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
Kolikoli
Извън линия
Потребител
Потребител
Мнения: 5
Регистриран на: 22 Сеп 2020, 00:44

телепортирваш като насочваш мерника си

Мнение от Kolikoli » 15 Яну 2021, 13:26

здравейте ! бих искал да ви помоля за малко помощ търся си плъгин който като натиснеш [e] и насочиш мерника си да се телепортирваш.. :huh:

Аватар
zolfeca
Извън линия
Модератор
Модератор
Мнения: 156
Регистриран на: 10 Окт 2016, 23:48
Се отблагодари: 22 пъти
Получена благодарност: 32 пъти

телепортирваш като насочваш мерника си

Мнение от zolfeca » 15 Яну 2021, 13:39


Аватар
blazz3rzbg
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 49
Регистриран на: 22 Фев 2019, 14:38
Местоположение: Стара Загора
Се отблагодари: 12 пъти
Получена благодарност: 16 пъти

телепортирваш като насочваш мерника си

Мнение от blazz3rzbg » 21 Яну 2021, 08:40

Скоро нямаше какво да правя и бях направил такъв плъгин.. (Изисква ReAPI)

Код за потвърждение: Избери целия код

#pragma semicolon 1
#pragma ctrlchar '#'

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <reapi>

#define PLUGIN "[ReAPI] Aim Teleport"
#define VERSION "1.0.0"

#define TELEPORT_FLAG ADMIN_BAN
#define TELEPORT_DELAY 1.5

#define TR_STARTSOLID (1<<0)
#define TR_ALLSOLID (1<<1)

new const Float:g_flSizes[][3] = 
{
	{0.0, 0.0, 1.0}, {0.0, 0.0, -1.0}, {0.0, 1.0, 0.0}, {0.0, -1.0, 0.0}, {1.0, 0.0, 0.0}, {-1.0, 0.0, 0.0}, {-1.0, 1.0, 1.0}, {1.0, 1.0, 1.0}, {1.0, -1.0, 1.0}, {1.0, 1.0, -1.0}, {-1.0, -1.0, 1.0}, {1.0, -1.0, -1.0}, {-1.0, 1.0, -1.0}, {-1.0, -1.0, -1.0},
	{0.0, 0.0, 2.0}, {0.0, 0.0, -2.0}, {0.0, 2.0, 0.0}, {0.0, -2.0, 0.0}, {2.0, 0.0, 0.0}, {-2.0, 0.0, 0.0}, {-2.0, 2.0, 2.0}, {2.0, 2.0, 2.0}, {2.0, -2.0, 2.0}, {2.0, 2.0, -2.0}, {-2.0, -2.0, 2.0}, {2.0, -2.0, -2.0}, {-2.0, 2.0, -2.0}, {-2.0, -2.0, -2.0},
	{0.0, 0.0, 3.0}, {0.0, 0.0, -3.0}, {0.0, 3.0, 0.0}, {0.0, -3.0, 0.0}, {3.0, 0.0, 0.0}, {-3.0, 0.0, 0.0}, {-3.0, 3.0, 3.0}, {3.0, 3.0, 3.0}, {3.0, -3.0, 3.0}, {3.0, 3.0, -3.0}, {-3.0, -3.0, 3.0}, {3.0, -3.0, -3.0}, {-3.0, 3.0, -3.0}, {-3.0, -3.0, -3.0},
	{0.0, 0.0, 4.0}, {0.0, 0.0, -4.0}, {0.0, 4.0, 0.0}, {0.0, -4.0, 0.0}, {4.0, 0.0, 0.0}, {-4.0, 0.0, 0.0}, {-4.0, 4.0, 4.0}, {4.0, 4.0, 4.0}, {4.0, -4.0, 4.0}, {4.0, 4.0, -4.0}, {-4.0, -4.0, 4.0}, {4.0, -4.0, -4.0}, {-4.0, 4.0, -4.0}, {-4.0, -4.0, -4.0},
	{0.0, 0.0, 5.0}, {0.0, 0.0, -5.0}, {0.0, 5.0, 0.0}, {0.0, -5.0, 0.0}, {5.0, 0.0, 0.0}, {-5.0, 0.0, 0.0}, {-5.0, 5.0, 5.0}, {5.0, 5.0, 5.0}, {5.0, -5.0, 5.0}, {5.0, 5.0, -5.0}, {-5.0, -5.0, 5.0}, {5.0, -5.0, -5.0}, {-5.0, 5.0, -5.0}, {-5.0, -5.0, -5.0}
};

new Float:g_flLastTele[MAX_PLAYERS + 1];

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, "blazz3r^_x"); 
	
	register_clcmd("amx_aim_tele", "@Teleport", .flags = TELEPORT_FLAG);
}

@Teleport(id, iLevel, iCid)
{
	if (!cmd_access(id, iLevel, iCid, 0))
		return;

	if (!is_user_alive(id))
	{
		client_print_color(id, id, "#x04[AMXX]#x01 Cannot teleport while dead!");
		return;
	}

	if (get_gametime() - g_flLastTele[id] < TELEPORT_DELAY)
	{
		client_print_color(id, id, "#x04[AMXX]#x01 Cannot teleport that quickly, try in a moment!");
		return;
	}

	new iOrigin[3];
	get_user_origin(id, iOrigin, 3);

	new Float:flOrigin[2][3];
	IVecFVec(iOrigin, flOrigin[0]);

	new iContents = PointContents(flOrigin[0]);
	if (iContents == CONTENTS_SKY)
	{
		client_print_color(id, id, "#x04[AMXX]#x01 Cannot teleport to the skies!");
		return;
	}

	new Float:flMins[3], iHull, i;
	iHull = get_entvar(id, var_flags) & FL_DUCKING ? HULL_HEAD : HULL_HUMAN;

	if (is_user_stuck(flOrigin[0], iHull, id))
	{
		get_entvar(id, var_mins, flMins);
		flOrigin[1][2] = flOrigin[0][2];

		for (i = 0; i < sizeof(g_flSizes); ++i)
		{
			flOrigin[1][0] = flOrigin[0][0] - flMins[0] * g_flSizes[i][0];
			flOrigin[1][1] = flOrigin[0][1] - flMins[1] * g_flSizes[i][1];
			flOrigin[1][2] = flOrigin[0][2] - flMins[2] * g_flSizes[i][2];

			if (!is_user_stuck(flOrigin[1], iHull, id))
			{
				entity_set_origin(id, flOrigin[1]);
				set_entvar(id, var_velocity, {0.0, 0.0, 0.0});

				break;
			}
		}
	}
	else
		entity_set_origin(id, flOrigin[0]);

	g_flLastTele[id] = get_gametime();
}

bool:is_user_stuck(const Float:flOrigin[3], iHull, id) 
{
	static iTraceResult;
	iTraceResult = trace_hull(flOrigin, iHull, id);

	if (!(iTraceResult & TR_STARTSOLID) || !(iTraceResult & TR_ALLSOLID))
		return false;
	
	return true;
}

public client_disconnected(id)
	g_flLastTele[id] = 0.0;

Аватар
Marinovv
Извън линия
Потребител
Потребител
Мнения: 410
Регистриран на: 19 Сеп 2017, 10:01
Местоположение: USA
Се отблагодари: 242 пъти
Получена благодарност: 7 пъти
Обратна връзка:

телепортирваш като насочваш мерника си

Мнение от Marinovv » 28 Апр 2021, 19:31

blazz3rzbg написа:
21 Яну 2021, 08:40
Скоро нямаше какво да правя и бях направил такъв плъгин.. (Изисква ReAPI)

Код за потвърждение: Избери целия код

#pragma semicolon 1
#pragma ctrlchar '#'

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <reapi>

#define PLUGIN "[ReAPI] Aim Teleport"
#define VERSION "1.0.0"

#define TELEPORT_FLAG ADMIN_BAN
#define TELEPORT_DELAY 1.5

#define TR_STARTSOLID (1<<0)
#define TR_ALLSOLID (1<<1)

new const Float:g_flSizes[][3] = 
{
	{0.0, 0.0, 1.0}, {0.0, 0.0, -1.0}, {0.0, 1.0, 0.0}, {0.0, -1.0, 0.0}, {1.0, 0.0, 0.0}, {-1.0, 0.0, 0.0}, {-1.0, 1.0, 1.0}, {1.0, 1.0, 1.0}, {1.0, -1.0, 1.0}, {1.0, 1.0, -1.0}, {-1.0, -1.0, 1.0}, {1.0, -1.0, -1.0}, {-1.0, 1.0, -1.0}, {-1.0, -1.0, -1.0},
	{0.0, 0.0, 2.0}, {0.0, 0.0, -2.0}, {0.0, 2.0, 0.0}, {0.0, -2.0, 0.0}, {2.0, 0.0, 0.0}, {-2.0, 0.0, 0.0}, {-2.0, 2.0, 2.0}, {2.0, 2.0, 2.0}, {2.0, -2.0, 2.0}, {2.0, 2.0, -2.0}, {-2.0, -2.0, 2.0}, {2.0, -2.0, -2.0}, {-2.0, 2.0, -2.0}, {-2.0, -2.0, -2.0},
	{0.0, 0.0, 3.0}, {0.0, 0.0, -3.0}, {0.0, 3.0, 0.0}, {0.0, -3.0, 0.0}, {3.0, 0.0, 0.0}, {-3.0, 0.0, 0.0}, {-3.0, 3.0, 3.0}, {3.0, 3.0, 3.0}, {3.0, -3.0, 3.0}, {3.0, 3.0, -3.0}, {-3.0, -3.0, 3.0}, {3.0, -3.0, -3.0}, {-3.0, 3.0, -3.0}, {-3.0, -3.0, -3.0},
	{0.0, 0.0, 4.0}, {0.0, 0.0, -4.0}, {0.0, 4.0, 0.0}, {0.0, -4.0, 0.0}, {4.0, 0.0, 0.0}, {-4.0, 0.0, 0.0}, {-4.0, 4.0, 4.0}, {4.0, 4.0, 4.0}, {4.0, -4.0, 4.0}, {4.0, 4.0, -4.0}, {-4.0, -4.0, 4.0}, {4.0, -4.0, -4.0}, {-4.0, 4.0, -4.0}, {-4.0, -4.0, -4.0},
	{0.0, 0.0, 5.0}, {0.0, 0.0, -5.0}, {0.0, 5.0, 0.0}, {0.0, -5.0, 0.0}, {5.0, 0.0, 0.0}, {-5.0, 0.0, 0.0}, {-5.0, 5.0, 5.0}, {5.0, 5.0, 5.0}, {5.0, -5.0, 5.0}, {5.0, 5.0, -5.0}, {-5.0, -5.0, 5.0}, {5.0, -5.0, -5.0}, {-5.0, 5.0, -5.0}, {-5.0, -5.0, -5.0}
};

new Float:g_flLastTele[MAX_PLAYERS + 1];

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, "blazz3r^_x"); 
	
	register_clcmd("amx_aim_tele", "@Teleport", .flags = TELEPORT_FLAG);
}

@Teleport(id, iLevel, iCid)
{
	if (!cmd_access(id, iLevel, iCid, 0))
		return;

	if (!is_user_alive(id))
	{
		client_print_color(id, id, "#x04[AMXX]#x01 Cannot teleport while dead!");
		return;
	}

	if (get_gametime() - g_flLastTele[id] < TELEPORT_DELAY)
	{
		client_print_color(id, id, "#x04[AMXX]#x01 Cannot teleport that quickly, try in a moment!");
		return;
	}

	new iOrigin[3];
	get_user_origin(id, iOrigin, 3);

	new Float:flOrigin[2][3];
	IVecFVec(iOrigin, flOrigin[0]);

	new iContents = PointContents(flOrigin[0]);
	if (iContents == CONTENTS_SKY)
	{
		client_print_color(id, id, "#x04[AMXX]#x01 Cannot teleport to the skies!");
		return;
	}

	new Float:flMins[3], iHull, i;
	iHull = get_entvar(id, var_flags) & FL_DUCKING ? HULL_HEAD : HULL_HUMAN;

	if (is_user_stuck(flOrigin[0], iHull, id))
	{
		get_entvar(id, var_mins, flMins);
		flOrigin[1][2] = flOrigin[0][2];

		for (i = 0; i < sizeof(g_flSizes); ++i)
		{
			flOrigin[1][0] = flOrigin[0][0] - flMins[0] * g_flSizes[i][0];
			flOrigin[1][1] = flOrigin[0][1] - flMins[1] * g_flSizes[i][1];
			flOrigin[1][2] = flOrigin[0][2] - flMins[2] * g_flSizes[i][2];

			if (!is_user_stuck(flOrigin[1], iHull, id))
			{
				entity_set_origin(id, flOrigin[1]);
				set_entvar(id, var_velocity, {0.0, 0.0, 0.0});

				break;
			}
		}
	}
	else
		entity_set_origin(id, flOrigin[0]);

	g_flLastTele[id] = get_gametime();
}

bool:is_user_stuck(const Float:flOrigin[3], iHull, id) 
{
	static iTraceResult;
	iTraceResult = trace_hull(flOrigin, iHull, id);

	if (!(iTraceResult & TR_STARTSOLID) || !(iTraceResult & TR_ALLSOLID))
		return false;
	
	return true;
}

public client_disconnected(id)
	g_flLastTele[id] = 0.0;
Невероятен! Леко недоизпипан плъгин обаче! При всеки телепорт, в конзолата ти изкарва съобщение, че няма такава команда amx_aim_tele.

За незнаещите, ще се наложи да бинднете копче в конзолата на играта.

bind копче "amx_aim_tele"
пример: bind e "amx_aim_tele"
► Покажи скъсения текст
Помагам на не бедни или богати, помагам на хората! Специалност: Software.
Има два начина да направиш софтуерен дизайн. Първият е да го направиш толкова прост, че очевидно да няма недостатъци. Вторият е да го направиш толкова сложен, че да няма очевидни недостатъци.

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Заявки за плъгини”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 4 госта