Редактиране на Happy Hour for Free VIP.

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Потребителски аватар

Автор на темата
iv69
Потребител
Потребител
Мнения: 392
Регистриран: 17 мар 2018, 15:34
Се отблагодари: 108 пъти
Получена благодарност: 10 пъти

Редактиране на Happy Hour for Free VIP.

Мнение от iv69 » 21 май 2019, 12:23

Може ли този плъгин за даване на Free VIP да се редактира така, че освен да дава VIP-флага на всички играчи при настъпването на Happy Hour time и да го "отнема" при изтичане на времето, но също така при началото да рестартира най-напред картата на която се играе на de_dust2, (т.е. да се изпълнява някаква команда от рода amx_map de_dust2) и още - да излиза на всички HUD-съобщение горе вляво с инфо за началото и края на Happy Hour for Free VIP, например:
HH Free VIP Start 23h
HH Free VIP End 10h
със място и цвят на съобщението: HUD_MESSAGE_POSITION = 0.01 0.04 и HUD_MESSAGE_COLOR = 127 255 212
, а с изтичане на времето: HUD-съобщението да се маха и пак отново да сменя картата на de_dust2 ?
Плъгина ми е необходим за CSDM-сървър със ботове, ако може да бъдат игнорирани, понеже сега им дава и на тях ВИП.

Sma-Кода:

Код: Избери всички

#include < amxmodx >
#include < engine >
#include < hamsandwich >

#define VIP_FLAG ADMIN_LEVEL_G

new g_iCvars[ 3 ];

new bool:g_bFreeVipTime;

public plugin_init( )
{
    register_plugin( "Free VIP", "1.0", "DoNii" );

    register_event( "HLTV", "OnNewRound", "a", "1=0", "2=0" );

    RegisterHam( Ham_Spawn, "player", "fw_HamSpawnPost", 1 );
    
    g_iCvars[ 0 ] = register_cvar( "free_vip_on", "1" );
    g_iCvars[ 1 ] = register_cvar( "free_vip_start_time", "23" );
    g_iCvars[ 2 ] = register_cvar( "free_vip_end_time", "10" );
}

public plugin_natives( )
{
    register_library( "free_vip" );
    register_native( "is_free_vip_time", "native_is_free_vip_time", 0 );
}

public client_PostThink( id )
{
    if( g_bFreeVipTime )
    {
        set_user_flags( id, VIP_FLAG );
    }
}

public OnNewRound( )
{
    if( ! get_pcvar_num( g_iCvars[ 0 ] ) )
    return PLUGIN_CONTINUE;

    if( IsVipHour( get_pcvar_num( g_iCvars[ 1 ] ), get_pcvar_num( g_iCvars[ 2 ] ) ) )
    g_bFreeVipTime = true;
    
    else
    g_bFreeVipTime = false;
    
    if( g_bFreeVipTime )
    {
        new szPlayers[ 32 ], iNum;
        get_players( szPlayers, iNum );

        static iTempID;
        
        for( new i; i < iNum; i++ )
        {
            iTempID = szPlayers[ i ];
            
            set_user_flags( iTempID, VIP_FLAG );
        }
    }
    return PLUGIN_CONTINUE;
}

public fw_HamSpawnPost( id )
{
    if( ! get_pcvar_num( g_iCvars[ 0 ] ) )
    return HAM_IGNORED;
    
    if( g_bFreeVipTime )
    {
        set_user_flags( id, VIP_FLAG );
    }
    return HAM_IGNORED;
}

public native_is_free_vip_time( iPlugin, iParams )
{
    return g_bFreeVipTime;
}

bool:IsVipHour( iStart, iEnd )
{
    new iHour; time( iHour );
    return bool:( iStart < iEnd ? ( iStart <= iHour < iEnd ) : ( iStart <= iHour || iHour < iEnd ) )
}
Благодаря.

Потребителски аватар

blazz3rzbg NSFW
AMXX Скриптър
AMXX Скриптър
Мнения: 40
Регистриран: 22 фев 2019, 14:38
Местоположение: Стара Загора
Се отблагодари: 10 пъти
Получена благодарност: 13 пъти
Години: 18

Редактиране на Happy Hour for Free VIP.

Мнение от blazz3rzbg NSFW » 22 май 2019, 01:13

Код: Избери всички

#include < amxmodx >
#include < engine >
#include < hamsandwich >

#define VIP_FLAG ADMIN_LEVEL_G

#define DEFAULT_FLAG ADMIN_USER

#define HUD_POSITION_X		-1.0
#define HUD_POSITION_Y		0.0

#define HUD_COLOR_RED		0
#define HUD_COLOR_GREEN		200
#define HUD_COLOR_BLUE		0

new g_iCvars[ 3 ];

new bool:g_bFreeVipTime;

public plugin_init( )
{
	register_plugin( "Free VIP", "1.0", "DoNii" );

	register_event( "HLTV", "OnNewRound", "a", "1=0", "2=0" );

	RegisterHam( Ham_Spawn, "player", "fw_HamSpawnPost", 1 );
	
	g_iCvars[ 0 ] = register_cvar( "free_vip_on", "1" );
	g_iCvars[ 1 ] = register_cvar( "free_vip_start_time", "23" );
	g_iCvars[ 2 ] = register_cvar( "free_vip_end_time", "10" );
	
	set_task(1.0, "show_hud", _, .flags = "b");
}

public plugin_natives( )
{
	register_library( "free_vip" );
	register_native( "is_free_vip_time", "native_is_free_vip_time", 0 );
}

public client_PostThink( id )
{
	if( g_bFreeVipTime )
	{
		set_user_flags( id, VIP_FLAG );
	}
	else
		set_user_flags( id, DEFAULT_FLAG );
}

public OnNewRound( )
{
	if( ! get_pcvar_num( g_iCvars[ 0 ] ) )
	return PLUGIN_CONTINUE;

	if( IsVipHour( get_pcvar_num( g_iCvars[ 1 ] ), get_pcvar_num( g_iCvars[ 2 ] ) ) )
	g_bFreeVipTime = true;
	
	else
	g_bFreeVipTime = false;
	
	if( g_bFreeVipTime )
	{
		new szPlayers[ 32 ], iNum;
		get_players( szPlayers, iNum );

		static iTempID;
		
		for( new i; i < iNum; i++ )
		{
			iTempID = szPlayers[ i ];
			
			set_user_flags( iTempID, VIP_FLAG );
		}
	}
	else
	{
		new szPlayers[ 32 ], iNum;
		get_players( szPlayers, iNum );

		static iTempID;
		
		for( new i; i < iNum; i++ )
		{
			iTempID = szPlayers[ i ];
			
			set_user_flags( iTempID, DEFAULT_FLAG );
		}
	}
	
	check_vip_time();
	
	return PLUGIN_CONTINUE;
}

public check_vip_time() {
	
	if(!g_bFreeVipTime)
		return;
	
	new map[33];
	get_mapname(map, charsmax(map));
	server_cmd("changelevel %s", map);
}

public show_hud(){
	
	set_hudmessage(HUD_COLOR_RED, HUD_COLOR_GREEN, HUD_COLOR_BLUE, HUD_POSITION_X, HUD_POSITION_Y, 0, 6.0, 1.1);
	show_hudmessage(0, "Happy Hour > Free VIP Start: %dh^n\
						Happy Hour > Free VIP End: %dh", get_pcvar_num(g_iCvars[ 1 ]), get_pcvar_num(g_iCvars[ 2 ]));
}

public fw_HamSpawnPost( id )
{
	if( ! get_pcvar_num( g_iCvars[ 0 ] ) )
	return HAM_IGNORED;
	
	if( g_bFreeVipTime )
	{
		set_user_flags( id, VIP_FLAG );
	}
	else
		set_user_flags( id, DEFAULT_FLAG );
	
	return HAM_IGNORED;
}

public native_is_free_vip_time( iPlugin, iParams )
{
	return g_bFreeVipTime;
}

bool:IsVipHour( iStart, iEnd )
{
	new iHour; time( iHour );
	return bool:( iStart < iEnd ? ( iStart <= iHour < iEnd ) : ( iStart <= iHour || iHour < iEnd ) )
}
Тествай, обаче да знаеш че плъгина който ползваш е "грозно" написан...

Потребителски аватар

Автор на темата
iv69
Потребител
Потребител
Мнения: 392
Регистриран: 17 мар 2018, 15:34
Се отблагодари: 108 пъти
Получена благодарност: 10 пъти

Редактиране на Happy Hour for Free VIP.

Мнение от iv69 » 22 май 2019, 12:27

blazz3rzbg написа:
22 май 2019, 01:13

Код: Избери всички

#include < amxmodx >
#include < engine >
#include < hamsandwich >

#define VIP_FLAG ADMIN_LEVEL_G

#define DEFAULT_FLAG ADMIN_USER

#define HUD_POSITION_X		-1.0
#define HUD_POSITION_Y		0.0

#define HUD_COLOR_RED		0
#define HUD_COLOR_GREEN		200
#define HUD_COLOR_BLUE		0

new g_iCvars[ 3 ];

new bool:g_bFreeVipTime;

public plugin_init( )
{
	register_plugin( "Free VIP", "1.0", "DoNii" );

	register_event( "HLTV", "OnNewRound", "a", "1=0", "2=0" );

	RegisterHam( Ham_Spawn, "player", "fw_HamSpawnPost", 1 );
	
	g_iCvars[ 0 ] = register_cvar( "free_vip_on", "1" );
	g_iCvars[ 1 ] = register_cvar( "free_vip_start_time", "23" );
	g_iCvars[ 2 ] = register_cvar( "free_vip_end_time", "10" );
	
	set_task(1.0, "show_hud", _, .flags = "b");
}

public plugin_natives( )
{
	register_library( "free_vip" );
	register_native( "is_free_vip_time", "native_is_free_vip_time", 0 );
}

public client_PostThink( id )
{
	if( g_bFreeVipTime )
	{
		set_user_flags( id, VIP_FLAG );
	}
	else
		set_user_flags( id, DEFAULT_FLAG );
}

public OnNewRound( )
{
	if( ! get_pcvar_num( g_iCvars[ 0 ] ) )
	return PLUGIN_CONTINUE;

	if( IsVipHour( get_pcvar_num( g_iCvars[ 1 ] ), get_pcvar_num( g_iCvars[ 2 ] ) ) )
	g_bFreeVipTime = true;
	
	else
	g_bFreeVipTime = false;
	
	if( g_bFreeVipTime )
	{
		new szPlayers[ 32 ], iNum;
		get_players( szPlayers, iNum );

		static iTempID;
		
		for( new i; i < iNum; i++ )
		{
			iTempID = szPlayers[ i ];
			
			set_user_flags( iTempID, VIP_FLAG );
		}
	}
	else
	{
		new szPlayers[ 32 ], iNum;
		get_players( szPlayers, iNum );

		static iTempID;
		
		for( new i; i < iNum; i++ )
		{
			iTempID = szPlayers[ i ];
			
			set_user_flags( iTempID, DEFAULT_FLAG );
		}
	}
	
	check_vip_time();
	
	return PLUGIN_CONTINUE;
}

public check_vip_time() {
	
	if(!g_bFreeVipTime)
		return;
	
	new map[33];
	get_mapname(map, charsmax(map));
	server_cmd("changelevel %s", map);
}

public show_hud(){
	
	set_hudmessage(HUD_COLOR_RED, HUD_COLOR_GREEN, HUD_COLOR_BLUE, HUD_POSITION_X, HUD_POSITION_Y, 0, 6.0, 1.1);
	show_hudmessage(0, "Happy Hour > Free VIP Start: %dh^n\
						Happy Hour > Free VIP End: %dh", get_pcvar_num(g_iCvars[ 1 ]), get_pcvar_num(g_iCvars[ 2 ]));
}

public fw_HamSpawnPost( id )
{
	if( ! get_pcvar_num( g_iCvars[ 0 ] ) )
	return HAM_IGNORED;
	
	if( g_bFreeVipTime )
	{
		set_user_flags( id, VIP_FLAG );
	}
	else
		set_user_flags( id, DEFAULT_FLAG );
	
	return HAM_IGNORED;
}

public native_is_free_vip_time( iPlugin, iParams )
{
	return g_bFreeVipTime;
}

bool:IsVipHour( iStart, iEnd )
{
	new iHour; time( iHour );
	return bool:( iStart < iEnd ? ( iStart <= iHour < iEnd ) : ( iStart <= iHour || iHour < iEnd ) )
}
Тествай, обаче да знаеш че плъгина който ползваш е "грозно" написан...
Пробвах, но нещо се обърква със смяната на картата? Просто плъгина тръгва, рестартира сървъра, зарежда се всичко , и на всеки 5 sek - прави нов рестарт на картата? Може би искането за тази смяна на карта е невъзможна мисия, или грешно, или напълно излишно ? Не знам , но идеята за такъв рестарт е с едновременно със започване или завършване на времето за Happy Hour - да започва и завършва ефективно функциониране на плъгина върху играчите, а не ако картата не се сменя - да се чака смяна - за да влезе в сила или да се отмени действието на плъгина?
Примерно: Не знам , на какъв принцип го е направил Крома но ползвам плъгина му crx_becomevip.amxx : там точно на момента като направиш броя убийства и веднага изписва , че си добил дадения флаг и започва действието на плъгина(не се чака дори нов рунд или нова карта...) , та идеята тук бе нещо такова да действа , Но... , може би не става, и ако трябва и прецениш - поправи или пък моля те просто махни функцията за смяната на картата - ще си нагласявам времената на картата да изтичат в интервала на това "щастливо" време ?

p.s. А за самия плъгин : Ми не знам колко добре е написан(щото и грам не разбирам :) ), но работеше там някак си криво ляво, но първо: че дава "флагове и на ботовете(предполагам , че си поправил това :) да ги игнорира ) и второ: не изписваше никъде информация за началото и края на това "весело" време :). Ако мислиш, че ще е по-лесно и по-добре, напиши нов, твой, по-лек по-оптимизиран, не разбирам, но ..... ако е нужно и съвсем отначало, но аз мислех, че ще е някаква помощ готов, само да се редактира :confused:

Потребителски аватар

JackEyedJones
Потребител
Потребител
Мнения: 205
Регистриран: 10 сеп 2018, 17:26
Местоположение: Plovdiv, Bulgaria, Europe, Entire World
Се отблагодари: 3 пъти
Получена благодарност: 34 пъти
Години: 26
Контакти:

Редактиране на Happy Hour for Free VIP.

Мнение от JackEyedJones » 22 май 2019, 12:55

Като използваш плъгина на Крома, дай неговия за да ти преработи което искаш и темата да се реши за 2 3 поста. Вместо такива дълги объркващи текстове. И защо този плъгин искаш преработен, а не неговия ? Защо да е по-трудно като може да е лесно ? (В кръга на реториката).

Потребителски аватар

Автор на темата
iv69
Потребител
Потребител
Мнения: 392
Регистриран: 17 мар 2018, 15:34
Се отблагодари: 108 пъти
Получена благодарност: 10 пъти

Редактиране на Happy Hour for Free VIP.

Мнение от iv69 » 22 май 2019, 13:14

JackEyedJones написа:
22 май 2019, 12:55
Като използваш плъгина на Крома, дай неговия за да ти преработи което искаш и темата да се реши за 2 3 поста. Вместо такива дълги объркващи текстове. И защо този плъгин искаш преработен, а не неговия ? Защо да е по-трудно като може да е лесно ? (В кръга на реториката).
Извинявам се за дългите и объркващи текстове. Но за плъгина на Кром, може би не си ме разбрал: Дадох го за пример, как действа като активиране. Ако знаеш как и можеш - редактирай ТИ плъгина на Кром-а да дава и "весело време" с двете ми искания към него и да си функционира с всичко останало... Аз мисля, че плъгина на Кром е за нещо съвсем друго и не е удачно да се смесва със плъгин за Happy Hour ? Не разбирам толкова много като теб например, но ако ти смяташ, че е и лесно и бързо и правилно.... да искам редакция на crx_becomevip.amxx , то хубаво, ще ти бъда благодарен - редактирай ми го да дава и Happy Hour с условията от първия пост.
А ето ти и кода, който ползвам, за който според теб(цитирам): "...може да е лесно ? (В кръга на реториката)..." :

Код: Избери всички

#include <amxmodx>
#include <amxmisc>
#include <cromchat>
#include <hamsandwich>
#include <nvault>

#define PLUGIN_VERSION "2.1"
#define ARG_RANDOM -1
#define RANDOM_COLOR random_num(50, 255) 
#define FLAGS_DELAY 0.1

#if defined client_disconnected
	#define client_disconnect client_disconnected
#endif

enum _:Settings
{
	SAVE_TYPE,
	KILLS_NEEDED,
	VIP_FLAGS_BIT,
	VIP_FLAGS_STR[32],
	IGNORE_BOTS,
	VIP_SUCCESS_MESSAGE,
	bool:HUD_MESSAGE_ENABLED,
	HUD_MESSAGE_COLOR[3],
	Float:HUD_MESSAGE_POSITION[2],
	Float:HUD_MESSAGE_DURATION,
	HUD_MESSAGE_EFFECTS,
	Float:HUD_MESSAGE_TIME[3]
}

enum _:PlayerData
{
	Name[32],
	Info[35],
	Kills
}

new g_eSettings[Settings],
	g_ePlayerData[33][PlayerData],
	g_iObject,
	g_iVault

public plugin_init()
{
	register_plugin("BecomeVIP Plus", PLUGIN_VERSION, "OciXCrom")
	register_cvar("CRXBecomeVIP", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
	register_dictionary("BecomeVIP.txt")
	register_event("DeathMsg", "OnPlayerKilled", "a")
	register_concmd("becomevip_give_kills", "Cmd_GiveKills", ADMIN_BAN, "<nick|#userid> <kills>")
	register_concmd("becomevip_reset_kills", "Cmd_ResetKills", ADMIN_BAN, "<nick|#userid>")
	ReadFile()
}

public plugin_end()
{ 
    nvault_prune(g_iVault, 0, get_systime()) 
    nvault_close(g_iVault) 
}  

ReadFile()
{
	new szConfigsName[256], szFilename[256]
	get_configsdir(szConfigsName, charsmax(szConfigsName))
	formatex(szFilename, charsmax(szFilename), "%s/BecomeVIP.ini", szConfigsName)
	new iFilePointer = fopen(szFilename, "rt")
	
	if(iFilePointer)
	{
		new szData[96], szValue[64], szKey[32], szTemp[4][5], i
		
		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(equal(szKey, "PLUGIN_PREFIX"))
						CC_SetPrefix(szValue)
					else if(equal(szKey, "SAVE_TYPE"))
						g_eSettings[SAVE_TYPE] = str_to_num(szValue)
					else if(equal(szKey, "KILLS_NEEDED"))
						g_eSettings[KILLS_NEEDED] = str_to_num(szValue)
					else if(equal(szKey, "VIP_FLAGS"))
					{
						copy(g_eSettings[VIP_FLAGS_STR], charsmax(g_eSettings[VIP_FLAGS_STR]), szValue)
						g_eSettings[VIP_FLAGS_BIT] = read_flags(szValue)
					}
					else if(equal(szKey, "IGNORE_BOTS"))
						g_eSettings[IGNORE_BOTS] = str_to_num(szValue) 
					if(equal(szKey, "CHECK_KILLS_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, "Cmd_CheckKills")
								formatex(szData, charsmax(szData), "say_team %s", szKey)
								register_clcmd(szData, "Cmd_CheckKills")
							}
							else register_clcmd(szData, "Cmd_CheckKills")
						}
					}
					else if(equal(szKey, "VAULT_FILE"))
						g_iVault = nvault_open(szValue)
					else if(equal(szKey, "VIP_SUCCESS_MESSAGE"))
						g_eSettings[VIP_SUCCESS_MESSAGE] = str_to_num(szValue)
					else if(equal(szKey, "HUD_MESSAGE_ENABLED"))
					{
						g_eSettings[HUD_MESSAGE_ENABLED] = bool:str_to_num(szValue)
						
						if(g_eSettings[HUD_MESSAGE_ENABLED])
						{
							g_iObject = CreateHudSyncObj()
							RegisterHam(Ham_Spawn, "player", "OnPlayerSpawn", 1)
						}
					}
					else if(equal(szKey, "HUD_MESSAGE_COLOR"))
					{
						parse(szValue, szTemp[0], charsmax(szTemp[]), szTemp[1], charsmax(szTemp[]), szTemp[2], charsmax(szTemp[]))
						
						for(i = 0; i < 3; i++)
							g_eSettings[HUD_MESSAGE_COLOR][i] = str_to_num(szTemp[i])
					}
					else if(equal(szKey, "HUD_MESSAGE_POSITION"))
					{
						parse(szValue, szTemp[0], charsmax(szTemp[]), szTemp[1], charsmax(szTemp[]))
						
						for(i = 0; i < 2; i++)
							g_eSettings[HUD_MESSAGE_POSITION][i] = _:str_to_float(szTemp[i])
					}
					else if(equal(szKey, "HUD_MESSAGE_DURATION"))
						g_eSettings[HUD_MESSAGE_DURATION] = _:str_to_float(szValue)
					else if(equal(szKey, "HUD_MESSAGE_EFFECTS"))
					{
						parse(szValue, szTemp[0], charsmax(szTemp[]), szTemp[1], charsmax(szTemp[]), szTemp[2], charsmax(szTemp[]), szTemp[3], charsmax(szTemp[]))
						g_eSettings[HUD_MESSAGE_EFFECTS] = str_to_num(szTemp[0])
						
						for(i = 0; i < 3; i++)
							g_eSettings[HUD_MESSAGE_TIME][i] = _:str_to_float(szTemp[i + 1])
					}
				}
			}
		}
		
		fclose(iFilePointer)
	}
}

public client_authorized(id)
{
	if(ignore_bot(id))
		return

	switch(g_eSettings[SAVE_TYPE])
	{
		case 0:
		{
			get_user_name(id, g_ePlayerData[id][Info], charsmax(g_ePlayerData[][Info]))
			strtolower(g_ePlayerData[id][Info])
		}
		case 1: get_user_ip(id, g_ePlayerData[id][Info], charsmax(g_ePlayerData[][Info]), 1)
		case 2: get_user_authid(id, g_ePlayerData[id][Info], charsmax(g_ePlayerData[][Info]))
	}
	
	get_user_name(id, g_ePlayerData[id][Name], charsmax(g_ePlayerData[][Name]))
	use_vault(id, false, g_ePlayerData[id][Info])
}

public client_disconnect(id)
{
	if(ignore_bot(id))
		return

	use_vault(id, true, g_ePlayerData[id][Info])
}
	
public client_infochanged(id)
{
	if(ignore_bot(id))
		return

	static szNewName[32], szOldName[32]
	get_user_info(id, "name", szNewName, charsmax(szNewName))
	get_user_name(id, szOldName, charsmax(szOldName))
	
	if(!equal(szNewName, szOldName))
	{
		if(!g_eSettings[SAVE_TYPE])
		{
			use_vault(id, true, szOldName)
			use_vault(id, false, szNewName)
			copy(g_ePlayerData[id][Info], charsmax(g_ePlayerData[][Info]), szNewName)
			strtolower(g_ePlayerData[id][Info])
		}
		
		set_task(FLAGS_DELAY, "refresh_status", id)
		copy(g_ePlayerData[id][Name], charsmax(g_ePlayerData[][Name]), szNewName)
	}
}

public OnPlayerSpawn(id)
{
	if(!is_user_alive(id) || has_vip_flags(id) || ignore_bot(id))
		return
		
	set_hudmessage
	(
		g_eSettings[HUD_MESSAGE_COLOR][0] == ARG_RANDOM ? RANDOM_COLOR : g_eSettings[HUD_MESSAGE_COLOR][0],
		g_eSettings[HUD_MESSAGE_COLOR][1] == ARG_RANDOM ? RANDOM_COLOR : g_eSettings[HUD_MESSAGE_COLOR][1],
		g_eSettings[HUD_MESSAGE_COLOR][2] == ARG_RANDOM ? RANDOM_COLOR : g_eSettings[HUD_MESSAGE_COLOR][2],
		g_eSettings[HUD_MESSAGE_POSITION][0], g_eSettings[HUD_MESSAGE_POSITION][1],	g_eSettings[HUD_MESSAGE_EFFECTS],
		g_eSettings[HUD_MESSAGE_TIME][0], g_eSettings[HUD_MESSAGE_DURATION], g_eSettings[HUD_MESSAGE_TIME][1], g_eSettings[HUD_MESSAGE_TIME][2]
	)
	
	ShowSyncHudMsg(id, g_iObject, "%L", id, "BECOMEVIP_HUD_MSG", g_eSettings[KILLS_NEEDED], g_ePlayerData[id][Kills])
}

public OnPlayerKilled()
{
	new iAttacker = read_data(1), iVictim = read_data(2)
		
	if(is_user_connected(iAttacker) && iAttacker != iVictim && !ignore_bot(iAttacker))
	{
		g_ePlayerData[iAttacker][Kills]++
		check_status(iAttacker, true)
	}
}

public Cmd_CheckKills(id)
{
	if(has_vip_flags(id))
		CC_SendMessage(id, "%L", id, "BECOMEVIP_INFO_YES", g_eSettings[KILLS_NEEDED], g_eSettings[VIP_FLAGS_STR])
	else
		CC_SendMessage(id, "%L", id, "BECOMEVIP_INFO_NO", g_eSettings[KILLS_NEEDED] - g_ePlayerData[id][Kills], g_ePlayerData[id][Kills], g_eSettings[VIP_FLAGS_STR])
		
	return PLUGIN_HANDLED
}

public Cmd_GiveKills(id, iLevel, iCid)
{
	if(!cmd_access(id, iLevel, iCid, 3))
		return PLUGIN_HANDLED
		
	new szPlayer[32]
	read_argv(1, szPlayer, charsmax(szPlayer))
	
	new iPlayer = cmd_target(id, szPlayer, CMDTARGET_ALLOW_SELF)
	
	if(!iPlayer)
		return PLUGIN_HANDLED
		
	new szName[2][32], szAmount[8]
	get_user_name(id, szName[0], charsmax(szName[]))
	get_user_name(iPlayer, szName[1], charsmax(szName[]))
	read_argv(2, szAmount, charsmax(szAmount))
	
	new iAmount = str_to_num(szAmount)
	g_ePlayerData[iPlayer][Kills] += iAmount
	check_status(iPlayer, true)
	
	CC_LogMessage(0, _, "%L", LANG_PLAYER, iAmount >= 0 ? "BECOMEVIP_GIVE_KILLS" : "BECOMEVIP_TAKE_KILLS", szName[0], iAmount, szName[1])
	return PLUGIN_HANDLED
}

public Cmd_ResetKills(id, iLevel, iCid)
{
	if(!cmd_access(id, iLevel, iCid, 2))
		return PLUGIN_HANDLED
		
	new szPlayer[32]
	read_argv(1, szPlayer, charsmax(szPlayer))
	
	new iPlayer = cmd_target(id, szPlayer, CMDTARGET_ALLOW_SELF|CMDTARGET_OBEY_IMMUNITY)
	
	if(!iPlayer)
		return PLUGIN_HANDLED
		
	new szName[2][32]
	get_user_name(id, szName[0], charsmax(szName[]))
	get_user_name(iPlayer, szName[1], charsmax(szName[]))
	g_ePlayerData[iPlayer][Kills] = 0
	CC_LogMessage(0, _, "%L", LANG_PLAYER, "BECOMEVIP_RESET_KILLS", szName[0], szName[1])
	return PLUGIN_HANDLED
}

public refresh_status(id)
	check_status(id, false)

bool:check_status(const id, const bool:bAnnounce)
{
	if(has_vip_flags(id) || ignore_bot(id))
		return
		
	if(g_ePlayerData[id][Kills] >= g_eSettings[KILLS_NEEDED])
		set_vip_flags(id, bAnnounce)
}
	
set_vip_flags(const id, const bool:bAnnounce)
{
	set_user_flags(id, g_eSettings[VIP_FLAGS_BIT])
	
	if(bAnnounce)
	{
		switch(g_eSettings[VIP_SUCCESS_MESSAGE])
		{
			case 1: CC_SendMessage(id, "%L", id, "BECOMEVIP_SUCCESS_PLR", g_eSettings[VIP_FLAGS_STR], g_eSettings[KILLS_NEEDED])
			case 2: CC_SendMessage(0, "%L", LANG_PLAYER, "BECOMEVIP_SUCCESS_ALL", g_ePlayerData[id][Name], g_eSettings[VIP_FLAGS_STR], g_eSettings[KILLS_NEEDED])
		}
	}
}

bool:ignore_bot(const id)
	return (g_eSettings[IGNORE_BOTS] && is_user_bot(id))

bool:has_vip_flags(const id)
	return ((get_user_flags(id) & g_eSettings[VIP_FLAGS_BIT]) == g_eSettings[VIP_FLAGS_BIT])

use_vault(const id, const bool:bSave, const szInfo[])
{
	if(!szInfo[0])
		return
	
	if(bSave)
	{
		static szKills[10]
		num_to_str(g_ePlayerData[id][Kills], szKills, charsmax(szKills))
		nvault_set(g_iVault, szInfo, szKills)
	}
	else
	{
		g_ePlayerData[id][Kills] = nvault_get(g_iVault, szInfo)
		set_task(FLAGS_DELAY, "refresh_status", id)
	}
}

public plugin_natives()
{
	register_library("becomevip")
	register_native("becomevip_get_flags", "_becomevip_get_flags")
	register_native("becomevip_get_kills_needed", "_becomevip_get_kills_needed")
	register_native("becomevip_get_save_type", "_becomevip_get_save_type")
	register_native("becomevip_get_user_kills", "_becomevip_get_user_kills")
	register_native("becomevip_is_hud_enabled", "_becomevip_is_hud_enabled")
	register_native("becomevip_user_has_flags", "_becomevip_user_has_flags")
}
Последна промяна от iv69 на 22 май 2019, 13:21, променено общо 1 път.

Потребителски аватар

JackEyedJones
Потребител
Потребител
Мнения: 205
Регистриран: 10 сеп 2018, 17:26
Местоположение: Plovdiv, Bulgaria, Europe, Entire World
Се отблагодари: 3 пъти
Получена благодарност: 34 пъти
Години: 26
Контакти:

Редактиране на Happy Hour for Free VIP.

Мнение от JackEyedJones » 22 май 2019, 13:19

Код: Избери всички

#include < amxmodx >
#include < amxmisc > 
#include < engine >
#include < hamsandwich >

#define VIP_FLAG ADMIN_LEVEL_G

#define DEFAULT_FLAG ADMIN_USER

#define HUD_POSITION_X		-1.0
#define HUD_POSITION_Y		0.0

#define HUD_COLOR_RED		0
#define HUD_COLOR_GREEN		200
#define HUD_COLOR_BLUE		0

new g_iCvars[ 3 ];

new bool:g_bFreeVipTime;

public plugin_init( )
{
	register_plugin( "Free VIP", "1.0", "DoNii" );

	register_event( "HLTV", "OnNewRound", "a", "1=0", "2=0" );

	RegisterHam( Ham_Spawn, "player", "fw_HamSpawnPost", 1 );
	
	g_iCvars[ 0 ] = register_cvar( "free_vip_on", "1" );
	g_iCvars[ 1 ] = register_cvar( "free_vip_start_time", "10" );
	g_iCvars[ 2 ] = register_cvar( "free_vip_end_time", "23" );
	
	set_task(1.0, "show_hud", _, .flags = "b");
}

public plugin_natives( )
{
	register_library( "free_vip" );
	register_native( "is_free_vip_time", "native_is_free_vip_time", 0 );
}

public client_PostThink( id )
{
	if(!is_user_alive(id))
		return;

	set_user_flags( id, g_bFreeVipTime ? VIP_FLAG : DEFAULT_FLAG );
}

public OnNewRound( )
{
	if( ! get_pcvar_num( g_iCvars[ 0 ] ) )
		return PLUGIN_CONTINUE;

	new g_iCondition = IsVipHour( get_pcvar_num( g_iCvars[ 1 ] ), get_pcvar_num( g_iCvars[ 2 ] ) );

	g_bFreeVipTime = g_iCondition ? true : false;
	
	new szPlayers[ 32 ], iNum, iTempID;
	get_players( szPlayers, iNum );
		
	for( new i; i < iNum; i++ )
	{
		iTempID = szPlayers[ i ];
			
		set_user_flags( iTempID, g_bFreeVipTime ? VIP_FLAG : DEFAULT_FLAG);
	}
	
	return PLUGIN_CONTINUE;
}

public show_hud()
{
	if(!g_bFreeVipTime)
		return;
	
	set_hudmessage(HUD_COLOR_RED, HUD_COLOR_GREEN, HUD_COLOR_BLUE, HUD_POSITION_X, HUD_POSITION_Y, 0, 6.0, 1.1);
	show_hudmessage(0, "Happy Hour > Free VIP Start: %dh^n\Happy Hour > Free VIP End: %dh", get_pcvar_num(g_iCvars[ 1 ]), get_pcvar_num(g_iCvars[ 2 ]));
}

public fw_HamSpawnPost( id )
{
	if(!is_user_alive(id) || is_user_bot(id))
		return;
	
	set_user_flags( id, g_bFreeVipTime ? VIP_FLAG : DEFAULT_FLAG);
}

public native_is_free_vip_time( iPlugin, iParams )
{
	return bool:g_bFreeVipTime;
}

bool:IsVipHour( iStart, iEnd )
{
	new iHour; time( iHour );
	return bool:( iStart < iEnd ? ( iStart <= iHour < iEnd ) : ( iStart <= iHour || iHour < iEnd ) )
}
Рестартира картата на кратък период понеже командата се изпълнява при всяко начало на рунд.
Часа за начало трябва да е по-малък от часа за край на периода. Поне така е условието.

Потребителски аватар

Автор на темата
iv69
Потребител
Потребител
Мнения: 392
Регистриран: 17 мар 2018, 15:34
Се отблагодари: 108 пъти
Получена благодарност: 10 пъти

Редактиране на Happy Hour for Free VIP.

Мнение от iv69 » 22 май 2019, 13:22

JackEyedJones написа:
22 май 2019, 13:19

Код: Избери всички

#include < amxmodx >
#include < amxmisc > 
#include < engine >
#include < hamsandwich >

#define VIP_FLAG ADMIN_LEVEL_G

#define DEFAULT_FLAG ADMIN_USER

#define HUD_POSITION_X		-1.0
#define HUD_POSITION_Y		0.0

#define HUD_COLOR_RED		0
#define HUD_COLOR_GREEN		200
#define HUD_COLOR_BLUE		0

new g_iCvars[ 3 ];

new bool:g_bFreeVipTime;

public plugin_init( )
{
	register_plugin( "Free VIP", "1.0", "DoNii" );

	register_event( "HLTV", "OnNewRound", "a", "1=0", "2=0" );

	RegisterHam( Ham_Spawn, "player", "fw_HamSpawnPost", 1 );
	
	g_iCvars[ 0 ] = register_cvar( "free_vip_on", "1" );
	g_iCvars[ 1 ] = register_cvar( "free_vip_start_time", "10" );
	g_iCvars[ 2 ] = register_cvar( "free_vip_end_time", "23" );
	
	set_task(1.0, "show_hud", _, .flags = "b");
}

public plugin_natives( )
{
	register_library( "free_vip" );
	register_native( "is_free_vip_time", "native_is_free_vip_time", 0 );
}

public client_PostThink( id )
{
	if(!is_user_alive(id))
		return;

	set_user_flags( id, g_bFreeVipTime ? VIP_FLAG : DEFAULT_FLAG );
}

public OnNewRound( )
{
	if( ! get_pcvar_num( g_iCvars[ 0 ] ) )
		return PLUGIN_CONTINUE;

	new g_iCondition = IsVipHour( get_pcvar_num( g_iCvars[ 1 ] ), get_pcvar_num( g_iCvars[ 2 ] ) );

	g_bFreeVipTime = g_iCondition ? true : false;
	
	new szPlayers[ 32 ], iNum, iTempID;
	get_players( szPlayers, iNum );
		
	for( new i; i < iNum; i++ )
	{
		iTempID = szPlayers[ i ];
			
		set_user_flags( iTempID, g_bFreeVipTime ? VIP_FLAG : DEFAULT_FLAG);
	}
	
	return PLUGIN_CONTINUE;
}

public show_hud()
{
	if(!g_bFreeVipTime)
		return;
	
	set_hudmessage(HUD_COLOR_RED, HUD_COLOR_GREEN, HUD_COLOR_BLUE, HUD_POSITION_X, HUD_POSITION_Y, 0, 6.0, 1.1);
	show_hudmessage(0, "Happy Hour > Free VIP Start: %dh^n\Happy Hour > Free VIP End: %dh", get_pcvar_num(g_iCvars[ 1 ]), get_pcvar_num(g_iCvars[ 2 ]));
}

public fw_HamSpawnPost( id )
{
	if(!is_user_alive(id) || is_user_bot(id))
		return;
	
	set_user_flags( id, g_bFreeVipTime ? VIP_FLAG : DEFAULT_FLAG);
}

public native_is_free_vip_time( iPlugin, iParams )
{
	return bool:g_bFreeVipTime;
}

bool:IsVipHour( iStart, iEnd )
{
	new iHour; time( iHour );
	return bool:( iStart < iEnd ? ( iStart <= iHour < iEnd ) : ( iStart <= iHour || iHour < iEnd ) )
}
Рестартира картата на кратък период понеже командата се изпълнява при всяко начало на рунд.
Часа за начало трябва да е по-малък от часа за край на периода. Поне така е условието.
Благодаря. Ще тествам !

Плъгина тръгва за сега добре, но ще може ли да добавиш функцията за игнориране на ботовете, че сега дава ВИП и на тях? Ще го тествам как сменя и дали сменя карта при изтичане на времето и ще пиша.

Потребителски аватар

JackEyedJones
Потребител
Потребител
Мнения: 205
Регистриран: 10 сеп 2018, 17:26
Местоположение: Plovdiv, Bulgaria, Europe, Entire World
Се отблагодари: 3 пъти
Получена благодарност: 34 пъти
Години: 26
Контакти:

Редактиране на Happy Hour for Free VIP.

Мнение от JackEyedJones » 22 май 2019, 13:39

Код: Избери всички

#include < amxmodx >
#include < amxmisc > 
#include < engine >
#include < hamsandwich >

#define VIP_FLAG ADMIN_LEVEL_G

#define DEFAULT_FLAG ADMIN_USER

#define HUD_POSITION_X		-1.0
#define HUD_POSITION_Y		0.0

#define HUD_COLOR_RED		0
#define HUD_COLOR_GREEN		200
#define HUD_COLOR_BLUE		0

new g_iCvars[ 3 ];

new bool:g_bFreeVipTime;

public plugin_init( )
{
	register_plugin( "Free VIP", "1.0", "DoNii" );

	register_event( "HLTV", "OnNewRound", "a", "1=0", "2=0" );

	RegisterHam( Ham_Spawn, "player", "fw_HamSpawnPost", 1 );
	
	g_iCvars[ 0 ] = register_cvar( "free_vip_on", "1" );
	g_iCvars[ 1 ] = register_cvar( "free_vip_start_time", "10" );
	g_iCvars[ 2 ] = register_cvar( "free_vip_end_time", "23" );
	
	set_task(1.0, "show_hud", _, .flags = "b");
}

public plugin_natives( )
{
	register_library( "free_vip" );
	register_native( "is_free_vip_time", "native_is_free_vip_time", 0 );
}

public client_PostThink( id )
{
	if(!is_user_alive(id) || is_user_bot(id))
		return;
	
	set_user_flags( id, g_bFreeVipTime ? VIP_FLAG : DEFAULT_FLAG );
}

public OnNewRound( )
{
	if( ! get_pcvar_num( g_iCvars[ 0 ] ) )
		return PLUGIN_CONTINUE;

	new g_iCondition = IsVipHour( get_pcvar_num( g_iCvars[ 1 ] ), get_pcvar_num( g_iCvars[ 2 ] ) );

	g_bFreeVipTime = g_iCondition ? true : false;
	
	new szPlayers[ 32 ], iNum, iTempID;
	get_players( szPlayers, iNum );
		
	for( new i; i < iNum; i++ )
	{
		iTempID = szPlayers[ i ];
			
		set_user_flags( iTempID, g_bFreeVipTime ? VIP_FLAG : DEFAULT_FLAG);
	}
	
	return PLUGIN_CONTINUE;
}

public show_hud()
{
	if(!g_bFreeVipTime)
		return;
	
	set_hudmessage(HUD_COLOR_RED, HUD_COLOR_GREEN, HUD_COLOR_BLUE, HUD_POSITION_X, HUD_POSITION_Y, 0, 6.0, 1.1);
	show_hudmessage(0, "Happy Hour > Free VIP Start: %dh^n\Happy Hour > Free VIP End: %dh", get_pcvar_num(g_iCvars[ 1 ]), get_pcvar_num(g_iCvars[ 2 ]));
}

public fw_HamSpawnPost( id )
{
	if(!is_user_alive(id) || is_user_bot(id))
		return;
	
	set_user_flags( id, g_bFreeVipTime ? VIP_FLAG : DEFAULT_FLAG);
}

public native_is_free_vip_time( iPlugin, iParams )
{
	return bool:g_bFreeVipTime;
}

bool:IsVipHour( iStart, iEnd )
{
	new iHour; time( iHour );
	return bool:( iStart < iEnd ? ( iStart <= iHour < iEnd ) : ( iStart <= iHour || iHour < iEnd ) )
}
Коригирано, добавена проверка за бот.

Потребителски аватар

Автор на темата
iv69
Потребител
Потребител
Мнения: 392
Регистриран: 17 мар 2018, 15:34
Се отблагодари: 108 пъти
Получена благодарност: 10 пъти

Редактиране на Happy Hour for Free VIP.

Мнение от iv69 » 22 май 2019, 13:56

JackEyedJones написа:
22 май 2019, 13:39

Код: Избери всички

#include < amxmodx >
#include < amxmisc > 
#include < engine >
#include < hamsandwich >

#define VIP_FLAG ADMIN_LEVEL_G

#define DEFAULT_FLAG ADMIN_USER

#define HUD_POSITION_X		-1.0
#define HUD_POSITION_Y		0.0

#define HUD_COLOR_RED		0
#define HUD_COLOR_GREEN		200
#define HUD_COLOR_BLUE		0

new g_iCvars[ 3 ];

new bool:g_bFreeVipTime;

public plugin_init( )
{
	register_plugin( "Free VIP", "1.0", "DoNii" );

	register_event( "HLTV", "OnNewRound", "a", "1=0", "2=0" );

	RegisterHam( Ham_Spawn, "player", "fw_HamSpawnPost", 1 );
	
	g_iCvars[ 0 ] = register_cvar( "free_vip_on", "1" );
	g_iCvars[ 1 ] = register_cvar( "free_vip_start_time", "10" );
	g_iCvars[ 2 ] = register_cvar( "free_vip_end_time", "23" );
	
	set_task(1.0, "show_hud", _, .flags = "b");
}

public plugin_natives( )
{
	register_library( "free_vip" );
	register_native( "is_free_vip_time", "native_is_free_vip_time", 0 );
}

public client_PostThink( id )
{
	if(!is_user_alive(id) || is_user_bot(id))
		return;
	
	set_user_flags( id, g_bFreeVipTime ? VIP_FLAG : DEFAULT_FLAG );
}

public OnNewRound( )
{
	if( ! get_pcvar_num( g_iCvars[ 0 ] ) )
		return PLUGIN_CONTINUE;

	new g_iCondition = IsVipHour( get_pcvar_num( g_iCvars[ 1 ] ), get_pcvar_num( g_iCvars[ 2 ] ) );

	g_bFreeVipTime = g_iCondition ? true : false;
	
	new szPlayers[ 32 ], iNum, iTempID;
	get_players( szPlayers, iNum );
		
	for( new i; i < iNum; i++ )
	{
		iTempID = szPlayers[ i ];
			
		set_user_flags( iTempID, g_bFreeVipTime ? VIP_FLAG : DEFAULT_FLAG);
	}
	
	return PLUGIN_CONTINUE;
}

public show_hud()
{
	if(!g_bFreeVipTime)
		return;
	
	set_hudmessage(HUD_COLOR_RED, HUD_COLOR_GREEN, HUD_COLOR_BLUE, HUD_POSITION_X, HUD_POSITION_Y, 0, 6.0, 1.1);
	show_hudmessage(0, "Happy Hour > Free VIP Start: %dh^n\Happy Hour > Free VIP End: %dh", get_pcvar_num(g_iCvars[ 1 ]), get_pcvar_num(g_iCvars[ 2 ]));
}

public fw_HamSpawnPost( id )
{
	if(!is_user_alive(id) || is_user_bot(id))
		return;
	
	set_user_flags( id, g_bFreeVipTime ? VIP_FLAG : DEFAULT_FLAG);
}

public native_is_free_vip_time( iPlugin, iParams )
{
	return bool:g_bFreeVipTime;
}

bool:IsVipHour( iStart, iEnd )
{
	new iHour; time( iHour );
	return bool:( iStart < iEnd ? ( iStart <= iHour < iEnd ) : ( iStart <= iHour || iHour < iEnd ) )
}
Коригирано, добавена проверка за бот.
Да не си забравил нещо, VIP-а на ботовете пак си стои?

Е, не става и не става, и времето изтече , и си остават ВИП... Явно плъгина е доста зле написан и му трябва доста яко преработване. Излишно е. Предлагам да заключим темата?! Ще пусна нова за нова изработка на подобен, и на когото му се занимава ще напише отначало нов и по-добър. Благодаря за труда и се извинявам за многото писане.
Заключете моля !
Последна промяна от iv69 на 22 май 2019, 14:10, променено общо 1 път.

Потребителски аватар

JackEyedJones
Потребител
Потребител
Мнения: 205
Регистриран: 10 сеп 2018, 17:26
Местоположение: Plovdiv, Bulgaria, Europe, Entire World
Се отблагодари: 3 пъти
Получена благодарност: 34 пъти
Години: 26
Контакти:

Редактиране на Happy Hour for Free VIP.

Мнение от JackEyedJones » 22 май 2019, 14:08

Код: Избери всички

#include < amxmodx >
#include < amxmisc > 
#include < engine >
#include < hamsandwich >

#define VIP_FLAG ADMIN_LEVEL_G

#define DEFAULT_FLAG ADMIN_USER

#define HUD_POSITION_X		-1.0
#define HUD_POSITION_Y		0.0

#define HUD_COLOR_RED		0
#define HUD_COLOR_GREEN		200
#define HUD_COLOR_BLUE		0

new g_iCvars[ 3 ];

new bool:g_bFreeVipTime;

public plugin_init( )
{
	register_plugin( "Free VIP", "1.0", "DoNii" );

	register_event( "HLTV", "OnNewRound", "a", "1=0", "2=0" );

	RegisterHam( Ham_Spawn, "player", "fw_HamSpawnPost", 1 );
	
	g_iCvars[ 0 ] = register_cvar( "free_vip_on", "1" );
	g_iCvars[ 1 ] = register_cvar( "free_vip_start_time", "10" );
	g_iCvars[ 2 ] = register_cvar( "free_vip_end_time", "23" );
	
	set_task(1.0, "show_hud", _, .flags = "b");
}

public plugin_natives( )
{
	register_library( "free_vip" );
	register_native( "is_free_vip_time", "native_is_free_vip_time", 0 );
}

public client_PostThink( id )
{
	if(!is_user_alive(id) || is_user_bot(id))
		return;
	
	set_user_flags( id, g_bFreeVipTime ? VIP_FLAG : DEFAULT_FLAG );
}

public OnNewRound( )
{
	if( ! get_pcvar_num( g_iCvars[ 0 ] ) )
		return PLUGIN_CONTINUE;

	new g_iCondition = IsVipHour( get_pcvar_num( g_iCvars[ 1 ] ), get_pcvar_num( g_iCvars[ 2 ] ) );

	g_bFreeVipTime = g_iCondition ? true : false;
	
	new szPlayers[ 32 ], iNum, iTempID;
	get_players( szPlayers, iNum );
		
	for( new i; i < iNum; i++ )
	{
		iTempID = szPlayers[ i ];
			
		if(!is_user_bot( iTempID ))
			set_user_flags( iTempID, g_bFreeVipTime ? VIP_FLAG : DEFAULT_FLAG);
	}
	
	return PLUGIN_CONTINUE;
}

public show_hud()
{
	if(!g_bFreeVipTime)
		return;
	
	set_hudmessage(HUD_COLOR_RED, HUD_COLOR_GREEN, HUD_COLOR_BLUE, HUD_POSITION_X, HUD_POSITION_Y, 0, 6.0, 1.1);
	show_hudmessage(0, "Happy Hour > Free VIP Start: %dh^n\Happy Hour > Free VIP End: %dh", get_pcvar_num(g_iCvars[ 1 ]), get_pcvar_num(g_iCvars[ 2 ]));
}

public fw_HamSpawnPost( id )
{
	if(!is_user_alive(id) || is_user_bot(id))
		return;
	
	set_user_flags( id, g_bFreeVipTime ? VIP_FLAG : DEFAULT_FLAG);
}

public native_is_free_vip_time( iPlugin, iParams )
{
	return bool:g_bFreeVipTime;
}

bool:IsVipHour( iStart, iEnd )
{
	new iHour; time( iHour );
	return bool:( iStart < iEnd ? ( iStart <= iHour < iEnd ) : ( iStart <= iHour || iHour < iEnd ) )
}

Заключена

Върни се в “Заявки за плъгини”

Кой е на линия

Потребители, разглеждащи този форум: Google [Bot] и 1 гост