Counter-Strike 1.6
CS1.BG | DUST2 NOSHTA GARMI [RANKED PLAY] #1
45.144.155.113:27015
de_dust2
Играчи: 30/32
de_dust2
Counter-Strike 1.6
Cs-PlovdiV.com - Aim Attack 93.123.16.4:27022 aim_aztec Играчи: 0/16

Редакция на GlowMenu

Въпроси и проблеми свързани с AMXModX.
Аватар
HeatoN
Извън линия
Потребител
Потребител
Мнения: 232
Регистриран на: 04 Фев 2022, 16:16
Местоположение: Elhovo - Las Vegas
Се отблагодари: 35 пъти
Получена благодарност: 2 пъти
Обратна връзка:

Редакция на GlowMenu

Мнение от HeatoN » 07 Яну 2023, 04:15

Здравейте, бих искал ако може кода по долу да се направи за респаун сървър така че след като умреш glow-a да не изчезва

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

/* Sublime AMXX Editor v2.2 */

/*
	Credits to OciXCrom: took his way of configuring everything without hardcoding.
*/

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cromchat>

#pragma semicolon 1

#define PLUGIN  "Advanced Glow Menu [AGM]"
#define VERSION "2.1.1"
#define AUTHOR  "NapoleoN#"

#if AMXX_VERSION_NUM < 183
	const MAX_PLAYERS = 32;
	const MAX_NAME_LENGTH = 32;
	const MAX_FMT_LENGTH = 256;
#endif

enum _:g_eSettings
{
	PREFIX_STR[MAX_PLAYERS + 1],
	ACCESS_FLAGS_BIT,
	ACCESS_FLAGS_STR[MAX_PLAYERS + 1],
	AIM_FLAGS_BIT,
	AIM_FLAGS_STR[MAX_PLAYERS + 1],
	bool:CHAT_MSG_ENABLED,
	bool:RESET_GLOW_ROUNDSTART,
};

new g_szSettings[g_eSettings];

new Array:g_aColorInfo;
new g_iColorSize;

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR);

	register_dictionary("AGMML.txt");

	register_logevent("roundStart", 2, "1=Round_Start");

	g_aColorInfo = ArrayCreate(50);

	readConfigFile(); // Changing any settings requires the map to be changed or the server to be restarted.
	readColors(); // Changing any settings requires the map to be changed or the server to be restarted.
}

public plugin_end()
{
	ArrayDestroy(g_aColorInfo);
}

public setGlowTarget(id)
{
	if(has_aim_access(id))
	{
		new iTarget, iBody;
		get_user_aiming(id, iTarget, iBody);

		log_amx("Access granted.");
		
		if(iTarget)
		{
			log_amx("Valid target found.");

			switch(get_user_team(iTarget))
			{
				case 1: set_user_rendering(iTarget, kRenderFxGlowShell, 255, 0, 0, kRenderNormal, 25); // Terrorists
				case 2: set_user_rendering(iTarget, kRenderFxGlowShell, 0, 0, 255, kRenderNormal, 25); // CT
			}
		}
	}
}

public removeGlowTarget(id)
{
	if(has_aim_access(id))
	{
		new iTarget, iBody;
		get_user_aiming(id, iTarget, iBody);
		
		if(iTarget)
		{
			set_user_rendering(iTarget);
		}
	}
}

public openGlowMenu(id)
{
	if(!has_agm_access(id))
	{
		if(g_szSettings[CHAT_MSG_ENABLED])
		{
			ColorChat(id, GREEN, "%L", id, "MSG_NO_ACCESS", g_szSettings[PREFIX_STR]);
		}
		return PLUGIN_HANDLED;
	}

	displayColorMenu(id);
	return PLUGIN_HANDLED;
}

displayColorMenu(id)
{
	new szTemp[64];
	formatex(szTemp, charsmax(szTemp), "%s Set glow color", g_szSettings[PREFIX_STR]);
	new iColorMenu = menu_create(szTemp, "colorMenuHandler");

	new szColor[32], szCode[32], szColorData[MAX_FMT_LENGTH];
	for(new i; i < g_iColorSize; i++) {
		ArrayGetString(g_aColorInfo, i, szColorData, charsmax(szColorData));

		split(szColorData, szColor, charsmax(szColor), szCode, charsmax(szCode), " ");
		remove_quotes(szColor);

		formatex(szColorData, charsmax(szColorData), "%s %s", szCode, szColor);
		menu_additem(iColorMenu, szColor, szColorData);
	}
	menu_display(id, iColorMenu);
}

public colorMenuHandler(id, iMenu, iItem)
{
	if(is_user_alive(id))
	{
		new szCode[50], szR[4], szG[4], szB[4], szItem[38], iRed, iGreen, iBlue;
		new iAccess, iCallBack;
		menu_item_getinfo(iMenu, iItem, iAccess, szCode, charsmax(szCode), _, _, iCallBack);

		parse(szCode, szR, charsmax(szR), szG, charsmax(szG), szB, charsmax(szB), szItem, charsmax(szItem));

		iRed = str_to_num(szR);
		iGreen = str_to_num(szG);
		iBlue = str_to_num(szB);

		set_user_rendering(id, kRenderFxGlowShell, iRed, iGreen, iBlue, kRenderNormal, 25);

		if(g_szSettings[CHAT_MSG_ENABLED] && (iItem != MENU_EXIT))
		{
			new szName[32]; get_user_name(id, szName, charsmax(szName));
			ColorChat(id, GREEN, "%L", id, "MSG_SET_GLOW", g_szSettings[PREFIX_STR], szName, szItem);
		}
	}
	menu_destroy(iMenu);
}

public roundStart()
{
	if(g_szSettings[RESET_GLOW_ROUNDSTART])
	{
		new iPlayers[MAX_PLAYERS], iNum;
		get_players(iPlayers, iNum, "ch");

		for(new i; i < iNum; i++)
		{
			set_user_rendering(iPlayers[i]);
		}
	}
}

bool:has_agm_access(const id)
{
	 return ((get_user_flags(id) & g_szSettings[ACCESS_FLAGS_BIT]) == g_szSettings[ACCESS_FLAGS_BIT]);
}

bool:has_aim_access(const id)
{
	return ((get_user_flags(id) & g_szSettings[AIM_FLAGS_BIT]) == g_szSettings[AIM_FLAGS_BIT]);
}

readConfigFile()
{
	new szConfigsDir[MAX_FMT_LENGTH], szFileName[MAX_FMT_LENGTH];
	get_configsdir(szConfigsDir, charsmax(szConfigsDir));
	formatex(szFileName, charsmax(szFileName), "%s/AGMConfig.ini", szConfigsDir);

	new iPointer = fopen(szFileName, "rt");

	if(iPointer)
	{
		new szData[96], szValue[64], szKey[32];

		while(!feof(iPointer))
		{
			fgets(iPointer, szData, charsmax(szData));
			trim(szData);

			switch(szData[0])
			{
				case EOS, '#', ';': continue;
				default:
				{
					strtok(szData, szKey, charsmax(szKey), szValue, charsmax(szValue), '=');
					trim(szKey);
					trim(szValue);

					if(equal(szKey, "CHAT_PREFIX"))
					{
						copy(g_szSettings[PREFIX_STR], charsmax(g_szSettings[PREFIX_STR]), szValue);
					}

					else if(equal(szKey, "ACCESS_FLAGS"))
					{
						copy(g_szSettings[ACCESS_FLAGS_STR], charsmax(g_szSettings[ACCESS_FLAGS_STR]), szValue);
						g_szSettings[ACCESS_FLAGS_BIT] = read_flags(szValue);
					}

					else if(equal(szKey, "AIM_FLAGS"))
					{
						copy(g_szSettings[AIM_FLAGS_STR], charsmax(g_szSettings[AIM_FLAGS_STR]), szValue);
						g_szSettings[AIM_FLAGS_BIT] = read_flags(szValue);
					}

					else if(equal(szKey, "CHAT_MSG_ENABLED"))
					{
						g_szSettings[CHAT_MSG_ENABLED] = bool:str_to_num(szValue);
					}

					else if(equal(szKey, "RESET_GLOW"))
					{
						g_szSettings[RESET_GLOW_ROUNDSTART] = bool:str_to_num(szValue);
					}

					if(equal(szKey, "GLOWMENU_COMMANDS"))
					{
						while(szValue[0] != 0 && strtok(szValue, szKey, charsmax(szKey), szValue, charsmax(szValue), ','))
						{
							trim(szKey);
							trim(szValue);

							if(szKey[0] == '/' || szKey[0] == '!')
							{
								formatex(szData, charsmax(szData), "say %s", szKey);
								register_clcmd(szData, "openGlowMenu");
								formatex(szData, charsmax(szData), "say_team %s", szKey);
								register_clcmd(szData, "openGlowMenu");
							}
							else 
							{
								register_clcmd(szData, "openGlowMenu");
							}
						}
					}

					if(equal(szKey, "TARGET_AIM_SET_GLOW"))
					{
						while(szValue[0] != 0 && strtok(szValue, szKey, charsmax(szKey), szValue, charsmax(szValue), ','))
						{
							trim(szKey);
							trim(szValue);

							formatex(szData, charsmax(szData), "%s", szKey);
							register_clcmd(szData, "setGlowTarget");
						}
					}

					if(equal(szKey, "TARGET_AIM_REMOVE_GLOW"))
					{
						while(szValue[0] != 0 && strtok(szValue, szKey, charsmax(szKey), szValue, charsmax(szValue), ','))
						{
							trim(szKey);
							trim(szValue);

							formatex(szData, charsmax(szData), "%s", szKey);
							register_clcmd(szData, "removeGlowTarget");
						}
					}
				}
			}
		}
		fclose(iPointer);
	}
}

readColors()
{
	new szConfigsDir[MAX_FMT_LENGTH], szFileName[MAX_FMT_LENGTH];
	get_configsdir(szConfigsDir, charsmax(szConfigsDir));
	formatex(szFileName, charsmax(szFileName), "%s/AGMColors.ini", szConfigsDir);

	new iPointer = fopen(szFileName, "rt");
	new szLine[50];

	while(fgets(iPointer, szLine, charsmax(szLine))) 
	{
		trim(szLine);

		if(szLine[0] == EOS || szLine[0] == ';' || (szLine[0] == '/' && szLine[1] == '/') || szLine[0] == '#') 
		{
			continue;
		}

		ArrayPushString(g_aColorInfo, szLine);
		g_iColorSize = ArraySize(g_aColorInfo);
		log_amx(szLine);
	}
	fclose(iPointer);
}
Здравейте, Ние сме Dark-Star Counter-Strike базирана верига стремяща се да предостави качествени сървъри на своитепотребители
〢☆ При нас може да намерите:
〢☆ активен и помагащ STAFF
〢☆ Качествени сървъри.
〢☆ 24/7 поддръжка.
〢☆ Нашият дискорд: https://discord.gg/cPw8xauRPq
Изображение

Аватар
Dennis
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 177
Регистриран на: 25 Дек 2018, 04:14
Се отблагодари: 4 пъти
Получена благодарност: 10 пъти

Re: Редакция на GlowMenu

Мнение от Dennis » 07 Яну 2023, 15:47

Change this

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

public setGlowTarget(id)
{
	if(has_aim_access(id) && is_user_alive(id))
	{
If that dosn't update, create a task with set_task and check the same way if the player is alive. Just make sure the

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

} else {
set_user_rendering(iTarget, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 0);

Аватар
HeatoN
Извън линия
Потребител
Потребител
Мнения: 232
Регистриран на: 04 Фев 2022, 16:16
Местоположение: Elhovo - Las Vegas
Се отблагодари: 35 пъти
Получена благодарност: 2 пъти
Обратна връзка:

Re: Редакция на GlowMenu

Мнение от HeatoN » 17 Яну 2023, 17:27

Hi, I did it like this but it didn't work, where do you think I'm doing wrong?

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

/* Sublime AMXX Editor v2.2 */

/*
	Credits to OciXCrom: took his way of configuring everything without hardcoding.
*/

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cromchat>

#pragma semicolon 1

#define PLUGIN  "Advanced Glow Menu [AGM]"
#define VERSION "2.1.1"
#define AUTHOR  "NapoleoN#"

#if AMXX_VERSION_NUM < 183
	const MAX_PLAYERS = 32;
	const MAX_NAME_LENGTH = 32;
	const MAX_FMT_LENGTH = 256;
#endif

enum _:g_eSettings
{
	PREFIX_STR[MAX_PLAYERS + 1],
	ACCESS_FLAGS_BIT,
	ACCESS_FLAGS_STR[MAX_PLAYERS + 1],
	AIM_FLAGS_BIT,
	AIM_FLAGS_STR[MAX_PLAYERS + 1],
	bool:CHAT_MSG_ENABLED,
	bool:RESET_GLOW_ROUNDSTART,
};

new g_szSettings[g_eSettings];

new Array:g_aColorInfo;
new g_iColorSize;

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR);

	register_dictionary("AGMML.txt");

	register_logevent("roundStart", 2, "1=Round_Start");

	g_aColorInfo = ArrayCreate(50);

	readConfigFile(); // Changing any settings requires the map to be changed or the server to be restarted.
	readColors(); // Changing any settings requires the map to be changed or the server to be restarted.
}

public plugin_end()
{
	ArrayDestroy(g_aColorInfo);
}

public setGlowTarget(id)
{
	if(has_aim_access(id) && is_user_alive(id))
	{
		new iTarget, iBody;
		get_user_aiming(id, iTarget, iBody);

		log_amx("Access granted.");
		
		if(iTarget)
		{
			log_amx("Valid target found.");

			switch(get_user_team(iTarget))
			{
				case 1: set_user_rendering(iTarget, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 0); // Terrorists
				case 2: set_user_rendering(iTarget, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 0); // CT
			}
		}
	}
}

public removeGlowTarget(id)
{
	if(has_aim_access(id))
	{
		new iTarget, iBody;
		get_user_aiming(id, iTarget, iBody);
		
		if(iTarget)
		{
			set_user_rendering(iTarget);
		}
	}
}

public openGlowMenu(id)
{
	if(!has_agm_access(id))
	{
		if(g_szSettings[CHAT_MSG_ENABLED])
		{
			ColorChat(id, GREEN, "%L", id, "MSG_NO_ACCESS", g_szSettings[PREFIX_STR]);
		}
		return PLUGIN_HANDLED;
	}

	displayColorMenu(id);
	return PLUGIN_HANDLED;
}

displayColorMenu(id)
{
	new szTemp[64];
	formatex(szTemp, charsmax(szTemp), "%s Set glow color", g_szSettings[PREFIX_STR]);
	new iColorMenu = menu_create(szTemp, "colorMenuHandler");

	new szColor[32], szCode[32], szColorData[MAX_FMT_LENGTH];
	for(new i; i < g_iColorSize; i++) {
		ArrayGetString(g_aColorInfo, i, szColorData, charsmax(szColorData));

		split(szColorData, szColor, charsmax(szColor), szCode, charsmax(szCode), " ");
		remove_quotes(szColor);

		formatex(szColorData, charsmax(szColorData), "%s %s", szCode, szColor);
		menu_additem(iColorMenu, szColor, szColorData);
	}
	menu_display(id, iColorMenu);
}

public colorMenuHandler(id, iMenu, iItem)
{
	if(is_user_alive(id))
	{
		new szCode[50], szR[4], szG[4], szB[4], szItem[38], iRed, iGreen, iBlue;
		new iAccess, iCallBack;
		menu_item_getinfo(iMenu, iItem, iAccess, szCode, charsmax(szCode), _, _, iCallBack);

		parse(szCode, szR, charsmax(szR), szG, charsmax(szG), szB, charsmax(szB), szItem, charsmax(szItem));

		iRed = str_to_num(szR);
		iGreen = str_to_num(szG);
		iBlue = str_to_num(szB);

		set_user_rendering(id, kRenderFxGlowShell, iRed, iGreen, iBlue, kRenderNormal, 25);

		if(g_szSettings[CHAT_MSG_ENABLED] && (iItem != MENU_EXIT))
		{
			new szName[32]; get_user_name(id, szName, charsmax(szName));
			ColorChat(id, GREEN, "%L", id, "MSG_SET_GLOW", g_szSettings[PREFIX_STR], szName, szItem);
		}
	}
	menu_destroy(iMenu);
}

public roundStart()
{
	if(g_szSettings[RESET_GLOW_ROUNDSTART])
	{
		new iPlayers[MAX_PLAYERS], iNum;
		get_players(iPlayers, iNum, "ch");

		for(new i; i < iNum; i++)
		{
			set_user_rendering(iPlayers[i]);
		}
	}
}

bool:has_agm_access(const id)
{
	 return ((get_user_flags(id) & g_szSettings[ACCESS_FLAGS_BIT]) == g_szSettings[ACCESS_FLAGS_BIT]);
}

bool:has_aim_access(const id)
{
	return ((get_user_flags(id) & g_szSettings[AIM_FLAGS_BIT]) == g_szSettings[AIM_FLAGS_BIT]);
}

readConfigFile()
{
	new szConfigsDir[MAX_FMT_LENGTH], szFileName[MAX_FMT_LENGTH];
	get_configsdir(szConfigsDir, charsmax(szConfigsDir));
	formatex(szFileName, charsmax(szFileName), "%s/AGMConfig.ini", szConfigsDir);

	new iPointer = fopen(szFileName, "rt");

	if(iPointer)
	{
		new szData[96], szValue[64], szKey[32];

		while(!feof(iPointer))
		{
			fgets(iPointer, szData, charsmax(szData));
			trim(szData);

			switch(szData[0])
			{
				case EOS, '#', ';': continue;
				default:
				{
					strtok(szData, szKey, charsmax(szKey), szValue, charsmax(szValue), '=');
					trim(szKey);
					trim(szValue);

					if(equal(szKey, "CHAT_PREFIX"))
					{
						copy(g_szSettings[PREFIX_STR], charsmax(g_szSettings[PREFIX_STR]), szValue);
					}

					else if(equal(szKey, "ACCESS_FLAGS"))
					{
						copy(g_szSettings[ACCESS_FLAGS_STR], charsmax(g_szSettings[ACCESS_FLAGS_STR]), szValue);
						g_szSettings[ACCESS_FLAGS_BIT] = read_flags(szValue);
					}

					else if(equal(szKey, "AIM_FLAGS"))
					{
						copy(g_szSettings[AIM_FLAGS_STR], charsmax(g_szSettings[AIM_FLAGS_STR]), szValue);
						g_szSettings[AIM_FLAGS_BIT] = read_flags(szValue);
					}

					else if(equal(szKey, "CHAT_MSG_ENABLED"))
					{
						g_szSettings[CHAT_MSG_ENABLED] = bool:str_to_num(szValue);
					}

					else if(equal(szKey, "RESET_GLOW"))
					{
						g_szSettings[RESET_GLOW_ROUNDSTART] = bool:str_to_num(szValue);
					}

					if(equal(szKey, "GLOWMENU_COMMANDS"))
					{
						while(szValue[0] != 0 && strtok(szValue, szKey, charsmax(szKey), szValue, charsmax(szValue), ','))
						{
							trim(szKey);
							trim(szValue);

							if(szKey[0] == '/' || szKey[0] == '!')
							{
								formatex(szData, charsmax(szData), "say %s", szKey);
								register_clcmd(szData, "openGlowMenu");
								formatex(szData, charsmax(szData), "say_team %s", szKey);
								register_clcmd(szData, "openGlowMenu");
							}
							else 
							{
								register_clcmd(szData, "openGlowMenu");
							}
						}
					}

					if(equal(szKey, "TARGET_AIM_SET_GLOW"))
					{
						while(szValue[0] != 0 && strtok(szValue, szKey, charsmax(szKey), szValue, charsmax(szValue), ','))
						{
							trim(szKey);
							trim(szValue);

							formatex(szData, charsmax(szData), "%s", szKey);
							register_clcmd(szData, "setGlowTarget");
						}
					}

					if(equal(szKey, "TARGET_AIM_REMOVE_GLOW"))
					{
						while(szValue[0] != 0 && strtok(szValue, szKey, charsmax(szKey), szValue, charsmax(szValue), ','))
						{
							trim(szKey);
							trim(szValue);

							formatex(szData, charsmax(szData), "%s", szKey);
							register_clcmd(szData, "removeGlowTarget");
						}
					}
				}
			}
		}
		fclose(iPointer);
	}
}

readColors()
{
	new szConfigsDir[MAX_FMT_LENGTH], szFileName[MAX_FMT_LENGTH];
	get_configsdir(szConfigsDir, charsmax(szConfigsDir));
	formatex(szFileName, charsmax(szFileName), "%s/AGMColors.ini", szConfigsDir);

	new iPointer = fopen(szFileName, "rt");
	new szLine[50];

	while(fgets(iPointer, szLine, charsmax(szLine))) 
	{
		trim(szLine);

		if(szLine[0] == EOS || szLine[0] == ';' || (szLine[0] == '/' && szLine[1] == '/') || szLine[0] == '#') 
		{
			continue;
		}

		ArrayPushString(g_aColorInfo, szLine);
		g_iColorSize = ArraySize(g_aColorInfo);
		log_amx(szLine);
	}
	fclose(iPointer);
}


Последно издигане HeatoN от 17 Яну 2023, 17:27
Здравейте, Ние сме Dark-Star Counter-Strike базирана верига стремяща се да предостави качествени сървъри на своитепотребители
〢☆ При нас може да намерите:
〢☆ активен и помагащ STAFF
〢☆ Качествени сървъри.
〢☆ 24/7 поддръжка.
〢☆ Нашият дискорд: https://discord.gg/cPw8xauRPq
Изображение

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

Обратно към “Поддръжка / Помощ”

Кой е на линия

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