Admin Connect Name v2.0a

Одобрените от нас плъгини. Моля, докладвайте ако забележите бъг с някой от плъгините в този раздел.
Аватар
gil5587
Извън линия
Foreigner
Foreigner
Мнения: 72
Регистриран на: 01 Сеп 2018, 01:26
Се отблагодари: 77 пъти
Получена благодарност: 3 пъти

Admin Connect Name v2.0a

Мнение от gil5587 » 16 Окт 2018, 19:28

TheRedShoko написа: 11 Окт 2018, 16:01

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

#include <amxmodx>
#include <amxmisc>

#if AMXX_VERSION_NUM < 183
	#include <dhudmessage>
#endif

#define PLUGIN_VERSION "2.0"

enum _: Settings
{
	ACN_ADMIN_FLAG[2],
	Float:ACN_TASK_TIME,
	ACN_CONNECT_SOUND,
	ACN_SOUND_DIR[128],
	ACN_HUD_TYPE,
	ACN_HUD_R_COLOR,
	ACN_HUD_G_COLOR,
	ACN_HUD_B_COLOR,
	Float:ACN_HUD_X_POS,
	Float:ACN_HUD_Y_POS,
	ACN_HUD_EFFECTS,
	Float:ACN_HUD_EFFECTS_TIME,
	Float:ACN_HUD_TIME,
	ACN_HUD_TEXT[192]
}

new g_eSettings[Settings]

public plugin_init()
{
	register_plugin("Admin Connect Name", PLUGIN_VERSION, "Unbr3akable")
	register_cvar("AdminConnectName", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
}

public plugin_precache()
	readfile()
	
readfile()
{
	new szConfigsName[256], szFileName[256]
	get_configsdir(szConfigsName, charsmax(szConfigsName))
	formatex(szFileName, charsmax(szFileName), "%s/AdminConnectName.ini", szConfigsName)
	new iFilePointer = fopen(szFileName, "rt")
	
	if(iFilePointer)
	{
		new szData[160], szKey[32], szValue[128]
		
		while(!feof(iFilePointer))
		{
			fgets(iFilePointer, 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(is_blank(szValue))
						continue
					
					if(equal(szKey, "ACN_ADMIN_FLAG"))
						copy(g_eSettings[ACN_ADMIN_FLAG], charsmax(g_eSettings[ACN_ADMIN_FLAG]), szValue)
					else if(equal(szKey, "ACN_TASK_TIME"))
						g_eSettings[ACN_TASK_TIME] = _:str_to_float(szValue)
					else if(equal(szKey, "ACN_CONNECT_SOUND"))
						g_eSettings[ACN_CONNECT_SOUND] = clamp(str_to_num(szValue), 0, 1)
					else if(equal(szKey, "ACN_SOUND_DIR"))
					{
						copy(g_eSettings[ACN_SOUND_DIR], charsmax(g_eSettings[ACN_SOUND_DIR]), szValue)
						precache_sound(szValue)
					}
					else if(equal(szKey, "ACN_HUD_TYPE"))
						g_eSettings[ACN_HUD_TYPE] = clamp(str_to_num(szValue), 0, 1)
					else if(equal(szKey, "ACN_HUD_R_COLOR"))
						g_eSettings[ACN_HUD_R_COLOR] = clamp(str_to_num(szValue), 0, 255)
					else if(equal(szKey, "ACN_HUD_G_COLOR"))
						g_eSettings[ACN_HUD_G_COLOR] = clamp(str_to_num(szValue), 0, 255)
					else if(equal(szKey, "ACN_HUD_B_COLOR"))
						g_eSettings[ACN_HUD_B_COLOR] = clamp(str_to_num(szValue), 0, 255)
					else if(equal(szKey, "ACN_HUD_X_POS"))
						g_eSettings[ACN_HUD_X_POS] = _:floatclamp(str_to_float(szValue), -1.0, 1.0)
					else if(equal(szKey, "ACN_HUD_Y_POS"))
						g_eSettings[ACN_HUD_Y_POS] = _:floatclamp(str_to_float(szValue), -1.0, 1.0)
					else if(equal(szKey, "ACN_HUD_EFFECTS"))
						g_eSettings[ACN_HUD_EFFECTS] = clamp(str_to_num(szValue), 0, 2)
					else if(equal(szKey, "ACN_HUD_EFFECTS_TIME"))
						g_eSettings[ACN_HUD_EFFECTS_TIME] = _:str_to_float(szValue)
					else if(equal(szKey, "ACN_HUD_TIME"))
						g_eSettings[ACN_HUD_TIME] = _:str_to_float(szValue)
					else if(equal(szKey, "ACN_HUD_TEXT"))
						copy(g_eSettings[ACN_HUD_TEXT], charsmax(g_eSettings[ACN_HUD_TEXT]), szValue)
				}
			}
		}
		
		fclose(iFilePointer)
	}
}
	
public client_authorized(id)
		set_task(g_eSettings[ACN_TASK_TIME], "AdminConnect", id)
		
public AdminConnect(id)
{
	new szAdminName[32], szMessage[sizeof g_eSettings[ACN_HUD_TEXT]];
	copy(szMessage, charsmax(szMessage), g_eSettings[ACN_HUD_TEXT]);
	get_user_name(id, szAdminName, charsmax(szAdminName))	
	replace_all(szMessage, charsmax(szMessage), "<name>", szAdminName)
	
	if(has_flag(id, g_eSettings[ACN_ADMIN_FLAG]))
	{
		if(g_eSettings[ACN_CONNECT_SOUND])
			client_cmd(0, "spk %s", g_eSettings[ACN_SOUND_DIR])
			
		if(!g_eSettings[ACN_HUD_TYPE])
		{
			set_hudmessage(g_eSettings[ACN_HUD_R_COLOR], g_eSettings[ACN_HUD_G_COLOR], g_eSettings[ACN_HUD_B_COLOR],
			g_eSettings[ACN_HUD_X_POS], g_eSettings[ACN_HUD_Y_POS], g_eSettings[ACN_HUD_EFFECTS],
			g_eSettings[ACN_HUD_EFFECTS_TIME], g_eSettings[ACN_HUD_TIME])
			show_hudmessage(0, szMessage)
		}
		else
		{
			set_dhudmessage(g_eSettings[ACN_HUD_R_COLOR], g_eSettings[ACN_HUD_G_COLOR], g_eSettings[ACN_HUD_B_COLOR],
			g_eSettings[ACN_HUD_X_POS], g_eSettings[ACN_HUD_Y_POS], g_eSettings[ACN_HUD_EFFECTS],
			g_eSettings[ACN_HUD_EFFECTS_TIME], g_eSettings[ACN_HUD_TIME])
			show_dhudmessage(0, szMessage)
		}
	}
}
	
bool:is_blank(szString[])
	return szString[0] == EOS ? true : false
Try like this.
My mistake. sorry.
actually, this is working great! I forgot that I removed the ini. file when it didn't work well at first time, that's why it didn't work as well when I tried what you sent.. sorry again
JackEyedJones написа: 14 Окт 2018, 09:16

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

#include <amxmodx>
#include <amxmisc>

#if AMXX_VERSION_NUM < 183
	#include <dhudmessage>
#endif

#define PLUGIN_VERSION "2.0"

enum _:Settings
{
	ACN_ADMIN_FLAG[33],
	Float:ACN_TASK_TIME,
	ACN_CONNECT_SOUND,
	ACN_SOUND_DIR[128],
	ACN_HUD_TYPE,
	ACN_HUD_R_COLOR,
	ACN_HUD_G_COLOR,
	ACN_HUD_B_COLOR,
	Float:ACN_HUD_X_POS,
	Float:ACN_HUD_Y_POS,
	ACN_HUD_EFFECTS,
	Float:ACN_HUD_EFFECTS_TIME,
	Float:ACN_HUD_TIME,
	ACN_HUD_TEXT[192]
}

new g_eSettings[Settings]

public plugin_init()
{
	register_plugin("Admin Connect Name", PLUGIN_VERSION, "Unbr3akable")
	register_cvar("AdminConnectName", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
}

public plugin_precache()
	readfile()
	
readfile()
{
	new szConfigsName[256], szFileName[256]
	get_configsdir(szConfigsName, charsmax(szConfigsName))
	formatex(szFileName, charsmax(szFileName), "%s/AdminConnectName.ini", szConfigsName)
	new iFilePointer = fopen(szFileName, "rt")
	
	if(iFilePointer)
	{
		new szData[256], szKey[64], szValue[160]
		
		while(!feof(iFilePointer))
		{
			fgets(iFilePointer, 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(is_blank(szValue))
						continue
					
					if(equal(szKey, "ACN_ADMIN_FLAG"))
						copy(g_eSettings[ACN_ADMIN_FLAG], charsmax(g_eSettings[ACN_ADMIN_FLAG]), szValue)
					else if(equal(szKey, "ACN_TASK_TIME"))
						g_eSettings[ACN_TASK_TIME] = _:str_to_float(szValue)
					else if(equal(szKey, "ACN_CONNECT_SOUND"))
						g_eSettings[ACN_CONNECT_SOUND] = _:clamp(str_to_num(szValue), 0, 1)
					else if(equal(szKey, "ACN_SOUND_DIR"))
					{
						copy(g_eSettings[ACN_SOUND_DIR], charsmax(g_eSettings[ACN_SOUND_DIR]), szValue)
						precache_sound(szValue)
					}
					else if(equal(szKey, "ACN_HUD_TYPE"))
						g_eSettings[ACN_HUD_TYPE] = _:clamp(str_to_num(szValue), 0, 1)
					else if(equal(szKey, "ACN_HUD_R_COLOR"))
						g_eSettings[ACN_HUD_R_COLOR] = _:clamp(str_to_num(szValue), 0, 255)
					else if(equal(szKey, "ACN_HUD_G_COLOR"))
						g_eSettings[ACN_HUD_G_COLOR] = _:clamp(str_to_num(szValue), 0, 255)
					else if(equal(szKey, "ACN_HUD_B_COLOR"))
						g_eSettings[ACN_HUD_B_COLOR] = _:clamp(str_to_num(szValue), 0, 255)
					else if(equal(szKey, "ACN_HUD_X_POS"))
						g_eSettings[ACN_HUD_X_POS] = _:floatclamp(str_to_float(szValue), -1.0, 1.0)
					else if(equal(szKey, "ACN_HUD_Y_POS"))
						g_eSettings[ACN_HUD_Y_POS] = _:floatclamp(str_to_float(szValue), -1.0, 1.0)
					else if(equal(szKey, "ACN_HUD_EFFECTS"))
						g_eSettings[ACN_HUD_EFFECTS] = _:clamp(str_to_num(szValue), 0, 2)
					else if(equal(szKey, "ACN_HUD_EFFECTS_TIME"))
						g_eSettings[ACN_HUD_EFFECTS_TIME] = _:str_to_float(szValue)
					else if(equal(szKey, "ACN_HUD_TIME"))
						g_eSettings[ACN_HUD_TIME] = _:str_to_float(szValue)
					else if(equal(szKey, "ACN_HUD_TEXT"))
						copy(g_eSettings[ACN_HUD_TEXT], charsmax(g_eSettings[ACN_HUD_TEXT]), szValue)
				}
			}
		}
		
		fclose(iFilePointer)
	}
}
	
public client_putinserver(id)
{
	if(!is_user_bot(id))
		set_task(g_eSettings[ACN_TASK_TIME], "AdminConnect", id);
}
		
public AdminConnect(id)
{
	new szAdminName[32]
	get_user_name(id, szAdminName, charsmax(szAdminName))	
	replace_all(g_eSettings[ACN_HUD_TEXT], charsmax(g_eSettings[ACN_HUD_TEXT]), "<name>", szAdminName)
	
	if(has_flag(id, g_eSettings[ACN_ADMIN_FLAG]))
	{
		if(g_eSettings[ACN_CONNECT_SOUND])
			client_cmd(0, "spk %s", g_eSettings[ACN_SOUND_DIR])
			
		if(!g_eSettings[ACN_HUD_TYPE])
		{
			set_hudmessage(g_eSettings[ACN_HUD_R_COLOR], g_eSettings[ACN_HUD_G_COLOR], g_eSettings[ACN_HUD_B_COLOR],
			g_eSettings[ACN_HUD_X_POS], g_eSettings[ACN_HUD_Y_POS], g_eSettings[ACN_HUD_EFFECTS],
			g_eSettings[ACN_HUD_EFFECTS_TIME], g_eSettings[ACN_HUD_TIME])
			show_hudmessage(0, g_eSettings[ACN_HUD_TEXT])
		}
		else
		{
			set_dhudmessage(g_eSettings[ACN_HUD_R_COLOR], g_eSettings[ACN_HUD_G_COLOR], g_eSettings[ACN_HUD_B_COLOR],
			g_eSettings[ACN_HUD_X_POS], g_eSettings[ACN_HUD_Y_POS], g_eSettings[ACN_HUD_EFFECTS],
			g_eSettings[ACN_HUD_EFFECTS_TIME], g_eSettings[ACN_HUD_TIME])
			show_dhudmessage(0, g_eSettings[ACN_HUD_TEXT])
		}
	}
}
	
bool:is_blank(szString[])
	return szString[0] == EOS;

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1026\\ f0\\ fs16 \n\\ par }
*/
Changes made:
1. Changed size of ACN_ADMIN_FLAG[2] = > ACN_ADMIN_FLAG[33]. It now correctly reads the flag from the file.
2. All clamp(str_to_num(szValue), 0, 255) values are now _:clamp(str_to_num(szValue), 0, 255). All clamp values are also _:
3. return szString[0] == EOS ? true : false is now changed to return szString[0] == EOS;
4. Changed client_authorized(id) to client_putinserver(id) and added checking for is_user_bot(id)

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

public client_putinserver(id)
{
	if(!is_user_bot(id))
		set_task(g_eSettings[ACN_TASK_TIME], "AdminConnect", id);
}
It now should be working as expected.
Should I use what you sent? is it better? can you tell me what's the difference between this and shoko's? (shoko's working)

Аватар
TheRedShoko
Извън линия
Модератор
Модератор
Мнения: 1016
Регистриран на: 06 Окт 2016, 07:42
Местоположение: Бургас
Се отблагодари: 5 пъти
Получена благодарност: 84 пъти

Admin Connect Name v2.0a

Мнение от TheRedShoko » 16 Окт 2018, 20:45

No you should not. The given version is not fixed. It still has the same problem as the original.

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

Обратно към “Одобрени плъгини”

Кой е на линия

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