View Single Post
Author Message
Fuck For Fun
Veteran Member
Join Date: Nov 2013
Old 02-28-2020 , 09:32   Does not load the vips are connected
Reply With Quote #1

I'm trying to test that as soon as PLAYER connects to the server it will get/set FLAGS and then print/show up on LOG AMX but for some reason it doesn't work properly

Code:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

// Flags
#define FLAG_A (1<<0)
#define FLAG_B (1<<1)
#define FLAG_C (1<<2)
#define FLAG_D (1<<3)
#define FLAG_E (1<<4)
#define FLAG_K (1<<10)

enum _:DATA_PREM {
	auth[50],
	password[50],
	accessflags,
	flags
};

new amx_password_field_string[32];
new g_iUserFlags[MAX_PLAYERS + 1];
new g_aPremium[DATA_PREM];
new Array:g_aDataPremiums;

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	get_cvar_string("amx_password_field", amx_password_field_string, charsmax(amx_password_field_string));
}

public client_putinserver(id) {
	set_flags(id);
}

public plugin_cfg() {
	reload_vips();
}
	
public set_flags(id) {
	static szAuthId[31], szIp[31], szName[32], szPassword[30];
	get_user_authid(id, szAuthId, charsmax(szAuthId));
	get_user_ip(id, szIp, charsmax(szIp), 1);
	get_user_name(id, szName, charsmax(szName));
	get_user_info(id, amx_password_field_string, szPassword, charsmax(szPassword));
	
	g_iUserFlags[id] = 0
	for(new i; i < ArraySize(g_aDataPremiums); i++) {
		ArrayGetArray(g_aDataPremiums, i, g_aPremium);
		
		if(g_aPremium[flags] & FLAG_D) 
		{
			if(equal(szIp, g_aPremium[auth])) 
			{
				if(~g_aPremium[flags] & FLAG_E)
				{
					if(equal(szPassword, g_aPremium[password]))
						g_iUserFlags[id] = g_aPremium[accessflags];
					else if(g_aPremium[flags] & FLAG_A) {
						server_cmd("kick #%d ^"Ivalid password!^"", get_user_userid(id));
						break;
					}
				}
				else 
					g_iUserFlags[id] = g_aPremium[accessflags];
				
				log_amx("%s become Premium. (SteamID: ^"%s^") (IP: ^"%s^") (Flags: ^"%s^")", szName, szAuthId, szIp, get_flags_string(g_aPremium[accessflags]));
				break;
			}
		}
		else if(g_aPremium[flags] & FLAG_C) 
		{
			if(equal(szAuthId, g_aPremium[auth])) 
			{
				if(~g_aPremium[flags] & FLAG_E)
				{
					if(equal(szPassword, g_aPremium[password]))
						g_iUserFlags[id] = g_aPremium[accessflags];
					else if(g_aPremium[flags] & FLAG_A) {
						server_cmd("kick #%d ^"Ivalid password!^"", get_user_userid(id));
						break;
					}
				}
				else
					g_iUserFlags[id] = g_aPremium[accessflags];
				
				log_amx("%s become Premium. (SteamID: ^"%s^") (IP: ^"%s^") (Flags: ^"%s^")", szName, szAuthId, szIp, get_flags_string(g_aPremium[accessflags]));
				break;
			}
		}
		else 
		{
			if(g_aPremium[flags] & FLAG_K) {
				if((g_aPremium[flags] & FLAG_B && contain(szName, g_aPremium[auth]) != -1) || equal(szName, g_aPremium[auth])) 
				{
					if(~g_aPremium[flags] & FLAG_E)
					{
						if(equal(szPassword, g_aPremium[password]))
							g_iUserFlags[id] = g_aPremium[accessflags];
						else if(g_aPremium[flags] & FLAG_A) 
						{
							server_cmd("kick #%d ^"Ivalid password!^"", get_user_userid(id));
							break;
						}
					}
					else 
						g_iUserFlags[id] = g_aPremium[accessflags];
					
					log_amx("%s become Premium. (SteamID: ^"%s^") (IP: ^"%s^") (Flags: ^"%s^")", szName, szAuthId, szIp, get_flags_string(g_aPremium[accessflags]));
					break;
				}
			}
			else 
			{
				if((g_aPremium[flags] & FLAG_B && containi(szName, g_aPremium[auth]) != -1) || equali(szName, g_aPremium[auth])) 
				{
					if(~g_aPremium[flags] & FLAG_E)
					{
						if(equal(szPassword, g_aPremium[password]))
							g_iUserFlags[id] = g_aPremium[accessflags];
						else if(g_aPremium[flags] & FLAG_A) {
							server_cmd("kick #%d ^"Ivalid password!^"", get_user_userid(id));
							break;
						}
					}
					else 
						g_iUserFlags[id] = g_aPremium[accessflags];
					
					log_amx("%s become Premium. (SteamID: ^"%s^") (IP: ^"%s^") (Flags: ^"%s^")", szName, szAuthId, szIp, get_flags_string(g_aPremium[accessflags]));
					break;
				}
			}
		}
	}
	return 1;
}

public reload_vips() {
	new szBuffer[256], szArg[2][8], iFile = fopen("addons/amxmodx/configs/premium.ini", "a+");
	if(!iFile) 
		return set_fail_state("File ^"addons/amxmodx/configs/premium.ini^" not found");
	
	if(g_aDataPremiums) 
		ArrayDestroy(g_aDataPremiums);
	g_aDataPremiums = ArrayCreate(DATA_PREM);
	
	while(!feof(iFile)) {
		fgets(iFile, szBuffer, charsmax(szBuffer));
		trim(szBuffer);
		if(!szBuffer[0] || szBuffer[0] == ';')
			continue;
		
		if(parse(szBuffer,
			g_aPremium[auth], charsmax(g_aPremium[auth]),
			g_aPremium[password], charsmax(g_aPremium[password]),
			szArg[0], charsmax(szArg[]),
			szArg[1], charsmax(szArg[])
		))
			continue;
			
		g_aPremium[accessflags] = read_flags(szArg[0]);
		g_aPremium[flags] = read_flags(szArg[1]);
	}
	return 1;
}

stock get_flags_string(iFlags) {
	new szBuffer[16];
	get_flags(iFlags, szBuffer, charsmax(szBuffer));
	return szBuffer;
}
Quote:
after someone here explains to me the problem I would love to explain to me how I can define that I can give by command and not by anyone who comes in server flags

Last edited by Fuck For Fun; 02-28-2020 at 12:35.
Fuck For Fun is offline
Send a message via Skype™ to Fuck For Fun