Request on modify VIP plugin (again)

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
Niiicu
Извън линия
Потребител
Потребител
Мнения: 88
Регистриран на: 24 Апр 2020, 10:01
Се отблагодари: 1 път
Получена благодарност: 1 път

Request on modify VIP plugin (again)

Мнение от Niiicu » 17 Май 2020, 13:02

Hello,
I have finally found a perfect VIP plugin for me, but i want to make a small change.

When I have a Happy Hour event, all players who connect to the server have VIPs, and of course they also have a connect chat message because they are VIPs, it is very annoying and there are many messages. I would like that the connect chat messages for VIPs to appear only for those with the flag "a".
Thank you in advance

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

#include <amxmodx>
#include <cstrike>
#include <fakemeta_util>
#include <hamsandwich>
#if AMXX_VERSION_NUM < 183
#include <colorchat>
#endif	

// #### Конфигурационные defines ####
#define VIP_ACCESS ADMIN_LEVEL_H			// Флаг доступа VIP (по дефолту флаг "t" ADMIN_LEVEL_H)
#define CHATTAG "^4[VIP SYSTEM]^1" 		// Префикс перед сообщениями || ^1 - желтый ^3 - цвет команды ^4 - зеленый
#define VIPROUND 3							// C какого раунда можно открыть вип меню
#define AWPM249RND 4						// С какого раунда доступны AWP и пулемет

#define ADDHP_HS 30							// Кол-во HP за убийство в голову
#define ADDHP 15								// Кол-во HP за убийство в тело
#define MAXHP 150							// Максимальное количество HP

#define AUTOVIPMENU							// Автоматически открывать в начале рануда Вип меню (выключено по дефолту)
#define VIPAUTODEAGLE						// В начале каждого раунда давать Дигл
#define VIPAUTOGRENADE						// Давать в начале каждого раунда гранаты
#define VIPTAB								// Показывать статус VIP в таблице на tab
// #### Конфигурационные defines ####

#define is_user_vip(%0) (get_user_flags(%0) & VIP_ACCESS)

new g_roundCount;

new bool:iUseWeapon[33], bool:bDefuse, bool:g_iBlockBonus;

new const PRIMARY_WEAPONS_BITSUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90);
new const SECONDARY_WEAPONS_BITSUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE);

new bool:iUserVip[33];

new g_iHudSyncMsg;

public plugin_init()
{
	register_plugin("VIPka", "1.34", "neygomon");
	
	register_event("TextMsg", "eRestart", "a", "2&#Game_C", "2&#Game_w");
	register_event("Damage","eventDamage","b","2!0","3=0","4!0");
	register_event("DeathMsg","eventDeathMsg","a","1>0");
	register_event("HLTV","eRoundStart","a","1=0","2=0");

	#if defined VIPTAB
	if(!engfunc(EngFunc_FindEntityByString,FM_NULLENT,"classname","func_vip_safetyzone"))
		register_message(get_user_msgid("ScoreAttrib"),"MessageScoreAttrib");
	#endif
	if(engfunc(EngFunc_FindEntityByString,FM_NULLENT,"classname","func_bomb_target")) 
		bDefuse = true;
		
	RegisterHam(Ham_Spawn, "player", "Player_Spawn", 1);
	
	register_clcmd("say /vipmenu", "CmdMenu");
	register_clcmd("vipmenu", "CmdMenu");
	register_clcmd("say", "hook_say");
	register_clcmd("say_team", "hook_say");
	
	register_menucmd(register_menuid("Vip Menu"), MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5, "handler");
	
	new iMap_Name[32], iMap_Prefix[][] = { "awp_", "aim_", "35hp" };
	get_mapname(iMap_Name, charsmax(iMap_Name))
	for(new i; i < sizeof iMap_Prefix; i++)
	{
		if(containi(iMap_Name, iMap_Prefix[i]) != -1)
			g_iBlockBonus = true
	}
	 
	g_iHudSyncMsg = CreateHudSyncObj();
}	

public client_putinserver(id) 
{
	if(!is_user_vip(id)) return;
	static name[32]; get_user_name(id, name, charsmax(name));
	client_print_color(0, 0, "%s ^3[VIP] ^1%s connects on the server ...", CHATTAG, name);
}
	
public eRestart()
	g_roundCount = 0;

public eRoundStart()
{
	g_roundCount++;
	
	arrayset(iUseWeapon, false, 33);
}

public eventDamage(id)
{
	static attID; attID = get_user_attacker(id);	
	if(is_user_connected(attID) && iUserVip[attID])
	{	
		set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1);
		ShowSyncHudMsg(attID, g_iHudSyncMsg, "%i^n", read_data(2));
	}
}

public eventDeathMsg()
{
	static	killerID; killerID = read_data(1);
	if(iUserVip[killerID])
	{
		static	killer_HP, addHP;
		killer_HP = get_user_health(killerID);
		addHP = ((read_data(3) == 1)) ? ADDHP_HS : ADDHP;
		fm_set_user_health(killerID, ((killer_HP += addHP) > MAXHP)? MAXHP : killer_HP);
		set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1);
		ShowSyncHudMsg(killerID, g_iHudSyncMsg, "Added +%d HP", addHP);
	}
}

public Player_Spawn(id)
{
	if(g_iBlockBonus || !is_user_alive(id)) return 0;
	
	if(is_user_vip(id)) iUserVip[id] = true;
	else return iUserVip[id] = false;
	
	#if defined VIPAUTOGRENADE
	fm_give_item(id, "weapon_hegrenade");
	fm_give_item(id, "weapon_flashbang");
	fm_give_item(id, "weapon_smokegrenade");
	cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
	#endif
	#if defined VIPAUTODEAGLE
	give_item_ex(id,"weapon_deagle",35,1)
	cs_set_user_bpammo(id, CSW_DEAGLE, 35);
	#endif
	cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);
	if(bDefuse && cs_get_user_team(id) == CS_TEAM_CT) cs_set_user_defuse(id, 1);
		
	#if defined AUTOVIPMENU
	return CmdMenu(id);
	#else
	return 0;
	#endif
}

public hook_say(id)
{
	static szMsg[128]; read_args(szMsg, 127); remove_quotes(szMsg);

	if(szMsg[0] != '/') return 0;

	static const szChoosedWP[][] = { "/ak47", "/m4a1", "/famas", "/awp", "/b51" };
	for(new a; a < sizeof szChoosedWP; a++)
	{
		if(!strcmp(szMsg, szChoosedWP[a]))
		{
			if(!is_allow_use(id)) break;
			if(a > 2 && g_roundCount < AWPM249RND) 
			return handler(id, a);
		}
	}
	return 0;
}	

public CmdMenu(id)
{
	if(!is_allow_use(id)) return 0;
	
	static szMenu[512], iLen, iKey;

	iKey = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3;
	iLen = formatex(szMenu, 511, "\yVIP MENU \w(choose your weapons)^n^n\y1. \wAK47 + Deagle^n\y2. \wM4A1 + Deagle^n\y3. \wFamas + Deagle^n");

	if(g_roundCount < AWPM249RND) 
		iLen += formatex(szMenu[iLen], 511 - iLen, "\y4. \dAWP + Deagle \r[ after %d rounds]^n\y5. \dMachine Gun + Deagle \r[after %d rounds]^n^n", AWPM249RND, AWPM249RND);
	else
	{
		iKey |= MENU_KEY_4|MENU_KEY_5;
		iLen += formatex(szMenu[iLen], 511 - iLen, "\y4. \wAWP + Deagle^n\y5. \wMachine Gun + Deagle^n^n");
	}
	formatex(szMenu[iLen], 511 - iLen, "\y0. \wExit.");
	set_pdata_int(id, 205, 0);
	return show_menu(id, iKey, szMenu, -1, "Vip Menu");
}

public handler(id, iKey)
{
	if(iKey > 4 || iUseWeapon[id]) return 0;
	
	static const szChoosedBP[] = { 90, 90, 90, 30, 250 };
	static const szChoosedWP[][] = { "weapon_ak47", "weapon_m4a1", "weapon_famas", "weapon_awp", "weapon_m249" };

	iUseWeapon[id] = true;

	return give_item_ex(id, szChoosedWP[iKey], szChoosedBP[iKey], 1);
}

stock give_item_ex(id,currWeaponName[],ammoAmount,dropFlag=0)
{
	static	weaponsList[32], weaponName[32], weaponsNum, currWeaponID;		
	currWeaponID = get_weaponid(currWeaponName);
	if(dropFlag)
	{	
		weaponsNum = 0;
		get_user_weapons(id,weaponsList,weaponsNum);
		for (new i;i < weaponsNum;i++)
		{
			if(((1 << currWeaponID) & PRIMARY_WEAPONS_BITSUM && (1 << weaponsList[i]) & PRIMARY_WEAPONS_BITSUM) | ((1 << currWeaponID) & SECONDARY_WEAPONS_BITSUM && (1 << weaponsList[i]) & SECONDARY_WEAPONS_BITSUM))
			{
				get_weaponname(weaponsList[i],weaponName,charsmax(weaponName));
				engclient_cmd(id,"drop",weaponName);
			}
		}
	}
	fm_give_item(id,currWeaponName);
	cs_set_user_bpammo(id,currWeaponID,ammoAmount);
	return 1;
}

bool:is_allow_use(id)
{
	if(!iUserVip[id])
	{

		return false;
	}
	if(!is_user_alive(id))
	{

		return false;
	}
	if(!g_roundCount)
	{

		return false;
	}
	if(iUseWeapon[id])
	{

		return false;
	}
	if(g_roundCount < VIPROUND)
	{

		return false;
	}
	return true;
}

#if defined VIPTAB
public MessageScoreAttrib(iMsgId, iDest, iReceiver)
{
	if(is_user_vip(get_msg_arg_int(1)) && !get_msg_arg_int(2))
		set_msg_arg_int(2, ARG_BYTE, 4);
}
#endif
CS.AVENGERSCS.RO - Classic

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Request on modify VIP plugin (again)

Мнение от OciXCrom » 17 Май 2020, 14:55

When is this happy hour? I don't see it in the code.

Аватар
Niiicu
Извън линия
Потребител
Потребител
Мнения: 88
Регистриран на: 24 Апр 2020, 10:01
Се отблагодари: 1 път
Получена благодарност: 1 път

Request on modify VIP plugin (again)

Мнение от Niiicu » 17 Май 2020, 15:38

For the Happy Hour i have this plugin and each time when Happy Hour it's active, i have a lot of messages on the chat, and i would like to change that like i said above if is possible.

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

client_print_color(0, 0, "%s ^3[VIP] ^1%s connects on the server ...", CHATTAG, name);
Happy Hour plugin

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

#include <amxmodx> 
#include <colorchat>

new const theCvar[] = "amx_default_access"

new g_Start,g_End, g_iFlag , g_iStart, g_iEnd
public plugin_init() { 
    register_plugin("Happy VIP Hour", "1.0", "Just In Case") 
    
    g_Start = register_cvar("hfh_start","19")
    g_iStart = get_pcvar_num(g_Start)
    
    g_End = register_cvar("hfh_end","23")
    g_iEnd = get_pcvar_num(g_End)
    
    g_iFlag = register_cvar("hfh_flag", "t")
    
    register_logevent("logevent_round_start", 2, "1=Round_Start") 
} 
public logevent_round_start()
{
    CheckTime()
}
public CheckTime() 
{
    static szString[2]
    get_pcvar_string(g_iFlag, szString, charsmax(szString))
    if(is_happy_hour(g_iStart, g_iEnd))
    {
        ColorChat(0,RED,"^4[HAPPY HOUR ACTIVE] ^1Now it's FREE VIP Event ^4****** ^1START: ^3%i ^4| ^1END : ^3%i ^4******", g_iStart, g_iEnd)
        set_cvar_string(theCvar, szString)
    }
    else {
        set_cvar_string(theCvar, "z")
    }
     server_cmd("amx_reloadadmins");
}     

bool:is_happy_hour(const iStart, const iEnd) {
    new iHour; time(iHour)
    return bool:(iStart < iEnd ? (iStart <= iHour < iEnd) : (iStart <= iHour || iHour < iEnd))
}  
CS.AVENGERSCS.RO - Classic

Аватар
Niiicu
Извън линия
Потребител
Потребител
Мнения: 88
Регистриран на: 24 Апр 2020, 10:01
Се отблагодари: 1 път
Получена благодарност: 1 път

Request on modify VIP plugin (again)

Мнение от Niiicu » 18 Май 2020, 22:13

Can someone help me with this plugin?
CS.AVENGERSCS.RO - Classic

Аватар
atmax
Извън линия
Потребител
Потребител
Мнения: 492
Регистриран на: 22 Мар 2018, 15:06
Се отблагодари: 37 пъти
Получена благодарност: 43 пъти

Request on modify VIP plugin (again)

Мнение от atmax » 19 Май 2020, 11:41

?

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

#include <amxmodx>
#include <cstrike>
#include <fakemeta_util>
#include <hamsandwich>
#if AMXX_VERSION_NUM < 183
#include <colorchat>
#endif	

// #### Конфигурационные defines ####
#define VIP_ACCESS ADMIN_LEVEL_H			// Флаг доступа VIP (по дефолту флаг "t" ADMIN_LEVEL_H)
#define CHATTAG "^4[VIP SYSTEM]^1" 		// Префикс перед сообщениями || ^1 - желтый ^3 - цвет команды ^4 - зеленый
#define VIPROUND 3							// C какого раунда можно открыть вип меню
#define AWPM249RND 4						// С какого раунда доступны AWP и пулемет

#define ADDHP_HS 30							// Кол-во HP за убийство в голову
#define ADDHP 15								// Кол-во HP за убийство в тело
#define MAXHP 150							// Максимальное количество HP

#define AUTOVIPMENU							// Автоматически открывать в начале рануда Вип меню (выключено по дефолту)
#define VIPAUTODEAGLE						// В начале каждого раунда давать Дигл
#define VIPAUTOGRENADE						// Давать в начале каждого раунда гранаты
#define VIPTAB								// Показывать статус VIP в таблице на tab
// #### Конфигурационные defines ####

#define is_user_vip(%0) (get_user_flags(%0) & VIP_ACCESS)

new g_roundCount;

new bool:iUseWeapon[33], bool:bDefuse, bool:g_iBlockBonus;

new const PRIMARY_WEAPONS_BITSUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90);
new const SECONDARY_WEAPONS_BITSUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE);

new bool:iUserVip[33];

new g_iHudSyncMsg;

public plugin_init()
{
	register_plugin("VIPka", "1.34", "neygomon");
	
	register_event("TextMsg", "eRestart", "a", "2&#Game_C", "2&#Game_w");
	register_event("Damage","eventDamage","b","2!0","3=0","4!0");
	register_event("DeathMsg","eventDeathMsg","a","1>0");
	register_event("HLTV","eRoundStart","a","1=0","2=0");

	#if defined VIPTAB
	if(!engfunc(EngFunc_FindEntityByString,FM_NULLENT,"classname","func_vip_safetyzone"))
		register_message(get_user_msgid("ScoreAttrib"),"MessageScoreAttrib");
	#endif
	if(engfunc(EngFunc_FindEntityByString,FM_NULLENT,"classname","func_bomb_target")) 
		bDefuse = true;
		
	RegisterHam(Ham_Spawn, "player", "Player_Spawn", 1);
	
	register_clcmd("say /vipmenu", "CmdMenu");
	register_clcmd("vipmenu", "CmdMenu");
	register_clcmd("say", "hook_say");
	register_clcmd("say_team", "hook_say");
	
	register_menucmd(register_menuid("Vip Menu"), MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5, "handler");
	
	new iMap_Name[32], iMap_Prefix[][] = { "awp_", "aim_", "35hp" };
	get_mapname(iMap_Name, charsmax(iMap_Name))
	for(new i; i < sizeof iMap_Prefix; i++)
	{
		if(containi(iMap_Name, iMap_Prefix[i]) != -1)
			g_iBlockBonus = true
	}
	 
	g_iHudSyncMsg = CreateHudSyncObj();
}	

public client_putinserver(id) 
{
	if(get_user_flags(id) & ADMIN_IMMUNITY) return;
	static name[32]; get_user_name(id, name, charsmax(name));
	client_print_color(0, 0, "%s ^3[VIP] ^1%s connects on the server ...", CHATTAG, name);
}
	
public eRestart()
	g_roundCount = 0;

public eRoundStart()
{
	g_roundCount++;
	
	arrayset(iUseWeapon, false, 33);
}

public eventDamage(id)
{
	static attID; attID = get_user_attacker(id);	
	if(is_user_connected(attID) && iUserVip[attID])
	{	
		set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1);
		ShowSyncHudMsg(attID, g_iHudSyncMsg, "%i^n", read_data(2));
	}
}

public eventDeathMsg()
{
	static	killerID; killerID = read_data(1);
	if(iUserVip[killerID])
	{
		static	killer_HP, addHP;
		killer_HP = get_user_health(killerID);
		addHP = ((read_data(3) == 1)) ? ADDHP_HS : ADDHP;
		fm_set_user_health(killerID, ((killer_HP += addHP) > MAXHP)? MAXHP : killer_HP);
		set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1);
		ShowSyncHudMsg(killerID, g_iHudSyncMsg, "Added +%d HP", addHP);
	}
}

public Player_Spawn(id)
{
	if(g_iBlockBonus || !is_user_alive(id)) return 0;
	
	if(is_user_vip(id)) iUserVip[id] = true;
	else return iUserVip[id] = false;
	
	#if defined VIPAUTOGRENADE
	fm_give_item(id, "weapon_hegrenade");
	fm_give_item(id, "weapon_flashbang");
	fm_give_item(id, "weapon_smokegrenade");
	cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
	#endif
	#if defined VIPAUTODEAGLE
	give_item_ex(id,"weapon_deagle",35,1)
	cs_set_user_bpammo(id, CSW_DEAGLE, 35);
	#endif
	cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);
	if(bDefuse && cs_get_user_team(id) == CS_TEAM_CT) cs_set_user_defuse(id, 1);
		
	#if defined AUTOVIPMENU
	return CmdMenu(id);
	#else
	return 0;
	#endif
}

public hook_say(id)
{
	static szMsg[128]; read_args(szMsg, 127); remove_quotes(szMsg);

	if(szMsg[0] != '/') return 0;

	static const szChoosedWP[][] = { "/ak47", "/m4a1", "/famas", "/awp", "/b51" };
	for(new a; a < sizeof szChoosedWP; a++)
	{
		if(!strcmp(szMsg, szChoosedWP[a]))
		{
			if(!is_allow_use(id)) break;
			if(a > 2 && g_roundCount < AWPM249RND) 
			return handler(id, a);
		}
	}
	return 0;
}	

public CmdMenu(id)
{
	if(!is_allow_use(id)) return 0;
	
	static szMenu[512], iLen, iKey;

	iKey = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3;
	iLen = formatex(szMenu, 511, "\yVIP MENU \w(choose your weapons)^n^n\y1. \wAK47 + Deagle^n\y2. \wM4A1 + Deagle^n\y3. \wFamas + Deagle^n");

	if(g_roundCount < AWPM249RND) 
		iLen += formatex(szMenu[iLen], 511 - iLen, "\y4. \dAWP + Deagle \r[ after %d rounds]^n\y5. \dMachine Gun + Deagle \r[after %d rounds]^n^n", AWPM249RND, AWPM249RND);
	else
	{
		iKey |= MENU_KEY_4|MENU_KEY_5;
		iLen += formatex(szMenu[iLen], 511 - iLen, "\y4. \wAWP + Deagle^n\y5. \wMachine Gun + Deagle^n^n");
	}
	formatex(szMenu[iLen], 511 - iLen, "\y0. \wExit.");
	set_pdata_int(id, 205, 0);
	return show_menu(id, iKey, szMenu, -1, "Vip Menu");
}

public handler(id, iKey)
{
	if(iKey > 4 || iUseWeapon[id]) return 0;
	
	static const szChoosedBP[] = { 90, 90, 90, 30, 250 };
	static const szChoosedWP[][] = { "weapon_ak47", "weapon_m4a1", "weapon_famas", "weapon_awp", "weapon_m249" };

	iUseWeapon[id] = true;

	return give_item_ex(id, szChoosedWP[iKey], szChoosedBP[iKey], 1);
}

stock give_item_ex(id,currWeaponName[],ammoAmount,dropFlag=0)
{
	static	weaponsList[32], weaponName[32], weaponsNum, currWeaponID;		
	currWeaponID = get_weaponid(currWeaponName);
	if(dropFlag)
	{	
		weaponsNum = 0;
		get_user_weapons(id,weaponsList,weaponsNum);
		for (new i;i < weaponsNum;i++)
		{
			if(((1 << currWeaponID) & PRIMARY_WEAPONS_BITSUM && (1 << weaponsList[i]) & PRIMARY_WEAPONS_BITSUM) | ((1 << currWeaponID) & SECONDARY_WEAPONS_BITSUM && (1 << weaponsList[i]) & SECONDARY_WEAPONS_BITSUM))
			{
				get_weaponname(weaponsList[i],weaponName,charsmax(weaponName));
				engclient_cmd(id,"drop",weaponName);
			}
		}
	}
	fm_give_item(id,currWeaponName);
	cs_set_user_bpammo(id,currWeaponID,ammoAmount);
	return 1;
}

bool:is_allow_use(id)
{
	if(!iUserVip[id])
	{

		return false;
	}
	if(!is_user_alive(id))
	{

		return false;
	}
	if(!g_roundCount)
	{

		return false;
	}
	if(iUseWeapon[id])
	{

		return false;
	}
	if(g_roundCount < VIPROUND)
	{

		return false;
	}
	return true;
}

#if defined VIPTAB
public MessageScoreAttrib(iMsgId, iDest, iReceiver)
{
	if(is_user_vip(get_msg_arg_int(1)) && !get_msg_arg_int(2))
		set_msg_arg_int(2, ARG_BYTE, 4);
}
#endif
Rest in peace my friend I always will remember you! 🖤👊

Аватар
Niiicu
Извън линия
Потребител
Потребител
Мнения: 88
Регистриран на: 24 Апр 2020, 10:01
Се отблагодари: 1 път
Получена благодарност: 1 път

Request on modify VIP plugin (again)

Мнение от Niiicu » 19 Май 2020, 21:30

Hi, i've tested the plugin tonight and is not working, i can still see the connect message for those that have flag t.
CS.AVENGERSCS.RO - Classic

Аватар
sf4n
Извън линия
Потребител
Потребител
Мнения: 311
Регистриран на: 08 Яну 2018, 11:25
Се отблагодари: 25 пъти
Получена благодарност: 14 пъти

Request on modify VIP plugin (again)

Мнение от sf4n » 19 Май 2020, 21:36

Try this

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

#include <amxmodx>
#include <cstrike>
#include <fakemeta_util>
#include <hamsandwich>
#if AMXX_VERSION_NUM < 183
#include <colorchat>
#endif	

// #### Конфигурационные defines ####
#define VIP_ACCESS ADMIN_LEVEL_H			// Флаг доступа VIP (по дефолту флаг "t" ADMIN_LEVEL_H)
#define CHATTAG "^4[VIP SYSTEM]^1" 		// Префикс перед сообщениями || ^1 - желтый ^3 - цвет команды ^4 - зеленый
#define VIPROUND 3							// C какого раунда можно открыть вип меню
#define AWPM249RND 4						// С какого раунда доступны AWP и пулемет

#define ADDHP_HS 30							// Кол-во HP за убийство в голову
#define ADDHP 15								// Кол-во HP за убийство в тело
#define MAXHP 150							// Максимальное количество HP

#define AUTOVIPMENU							// Автоматически открывать в начале рануда Вип меню (выключено по дефолту)
#define VIPAUTODEAGLE						// В начале каждого раунда давать Дигл
#define VIPAUTOGRENADE						// Давать в начале каждого раунда гранаты
#define VIPTAB								// Показывать статус VIP в таблице на tab
// #### Конфигурационные defines ####

#define is_user_vip(%0) (get_user_flags(%0) & VIP_ACCESS)

new g_roundCount;

new bool:iUseWeapon[33], bool:bDefuse, bool:g_iBlockBonus;

new const PRIMARY_WEAPONS_BITSUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90);
new const SECONDARY_WEAPONS_BITSUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE);

new bool:iUserVip[33];

new g_iHudSyncMsg;

public plugin_init()
{
	register_plugin("VIPka", "1.34", "neygomon");
	
	register_event("TextMsg", "eRestart", "a", "2&#Game_C", "2&#Game_w");
	register_event("Damage","eventDamage","b","2!0","3=0","4!0");
	register_event("DeathMsg","eventDeathMsg","a","1>0");
	register_event("HLTV","eRoundStart","a","1=0","2=0");

	#if defined VIPTAB
	if(!engfunc(EngFunc_FindEntityByString,FM_NULLENT,"classname","func_vip_safetyzone"))
		register_message(get_user_msgid("ScoreAttrib"),"MessageScoreAttrib");
	#endif
	if(engfunc(EngFunc_FindEntityByString,FM_NULLENT,"classname","func_bomb_target")) 
		bDefuse = true;
		
	RegisterHam(Ham_Spawn, "player", "Player_Spawn", 1);
	
	register_clcmd("say /vipmenu", "CmdMenu");
	register_clcmd("vipmenu", "CmdMenu");
	register_clcmd("say", "hook_say");
	register_clcmd("say_team", "hook_say");
	
	register_menucmd(register_menuid("Vip Menu"), MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5, "handler");
	
	new iMap_Name[32], iMap_Prefix[][] = { "awp_", "aim_", "35hp" };
	get_mapname(iMap_Name, charsmax(iMap_Name))
	for(new i; i < sizeof iMap_Prefix; i++)
	{
		if(containi(iMap_Name, iMap_Prefix[i]) != -1)
			g_iBlockBonus = true
	}
	 
	g_iHudSyncMsg = CreateHudSyncObj();
}	
	
public eRestart()
	g_roundCount = 0;

public eRoundStart()
{
	g_roundCount++;
	
	arrayset(iUseWeapon, false, 33);
}

public eventDamage(id)
{
	static attID; attID = get_user_attacker(id);	
	if(is_user_connected(attID) && iUserVip[attID])
	{	
		set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1);
		ShowSyncHudMsg(attID, g_iHudSyncMsg, "%i^n", read_data(2));
	}
}

public eventDeathMsg()
{
	static	killerID; killerID = read_data(1);
	if(iUserVip[killerID])
	{
		static	killer_HP, addHP;
		killer_HP = get_user_health(killerID);
		addHP = ((read_data(3) == 1)) ? ADDHP_HS : ADDHP;
		fm_set_user_health(killerID, ((killer_HP += addHP) > MAXHP)? MAXHP : killer_HP);
		set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1);
		ShowSyncHudMsg(killerID, g_iHudSyncMsg, "Added +%d HP", addHP);
	}
}

public Player_Spawn(id)
{
	if(g_iBlockBonus || !is_user_alive(id)) return 0;
	
	if(is_user_vip(id)) iUserVip[id] = true;
	else return iUserVip[id] = false;
	
	#if defined VIPAUTOGRENADE
	fm_give_item(id, "weapon_hegrenade");
	fm_give_item(id, "weapon_flashbang");
	fm_give_item(id, "weapon_smokegrenade");
	cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
	#endif
	#if defined VIPAUTODEAGLE
	give_item_ex(id,"weapon_deagle",35,1)
	cs_set_user_bpammo(id, CSW_DEAGLE, 35);
	#endif
	cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);
	if(bDefuse && cs_get_user_team(id) == CS_TEAM_CT) cs_set_user_defuse(id, 1);
		
	#if defined AUTOVIPMENU
	return CmdMenu(id);
	#else
	return 0;
	#endif
}

public hook_say(id)
{
	static szMsg[128]; read_args(szMsg, 127); remove_quotes(szMsg);

	if(szMsg[0] != '/') return 0;

	static const szChoosedWP[][] = { "/ak47", "/m4a1", "/famas", "/awp", "/b51" };
	for(new a; a < sizeof szChoosedWP; a++)
	{
		if(!strcmp(szMsg, szChoosedWP[a]))
		{
			if(!is_allow_use(id)) break;
			if(a > 2 && g_roundCount < AWPM249RND) 
			return handler(id, a);
		}
	}
	return 0;
}	

public CmdMenu(id)
{
	if(!is_allow_use(id)) return 0;
	
	static szMenu[512], iLen, iKey;

	iKey = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3;
	iLen = formatex(szMenu, 511, "\yVIP MENU \w(choose your weapons)^n^n\y1. \wAK47 + Deagle^n\y2. \wM4A1 + Deagle^n\y3. \wFamas + Deagle^n");

	if(g_roundCount < AWPM249RND) 
		iLen += formatex(szMenu[iLen], 511 - iLen, "\y4. \dAWP + Deagle \r[ after %d rounds]^n\y5. \dMachine Gun + Deagle \r[after %d rounds]^n^n", AWPM249RND, AWPM249RND);
	else
	{
		iKey |= MENU_KEY_4|MENU_KEY_5;
		iLen += formatex(szMenu[iLen], 511 - iLen, "\y4. \wAWP + Deagle^n\y5. \wMachine Gun + Deagle^n^n");
	}
	formatex(szMenu[iLen], 511 - iLen, "\y0. \wExit.");
	set_pdata_int(id, 205, 0);
	return show_menu(id, iKey, szMenu, -1, "Vip Menu");
}

public handler(id, iKey)
{
	if(iKey > 4 || iUseWeapon[id]) return 0;
	
	static const szChoosedBP[] = { 90, 90, 90, 30, 250 };
	static const szChoosedWP[][] = { "weapon_ak47", "weapon_m4a1", "weapon_famas", "weapon_awp", "weapon_m249" };

	iUseWeapon[id] = true;

	return give_item_ex(id, szChoosedWP[iKey], szChoosedBP[iKey], 1);
}

stock give_item_ex(id,currWeaponName[],ammoAmount,dropFlag=0)
{
	static	weaponsList[32], weaponName[32], weaponsNum, currWeaponID;		
	currWeaponID = get_weaponid(currWeaponName);
	if(dropFlag)
	{	
		weaponsNum = 0;
		get_user_weapons(id,weaponsList,weaponsNum);
		for (new i;i < weaponsNum;i++)
		{
			if(((1 << currWeaponID) & PRIMARY_WEAPONS_BITSUM && (1 << weaponsList[i]) & PRIMARY_WEAPONS_BITSUM) | ((1 << currWeaponID) & SECONDARY_WEAPONS_BITSUM && (1 << weaponsList[i]) & SECONDARY_WEAPONS_BITSUM))
			{
				get_weaponname(weaponsList[i],weaponName,charsmax(weaponName));
				engclient_cmd(id,"drop",weaponName);
			}
		}
	}
	fm_give_item(id,currWeaponName);
	cs_set_user_bpammo(id,currWeaponID,ammoAmount);
	return 1;
}

bool:is_allow_use(id)
{
	if(!iUserVip[id])
	{

		return false;
	}
	if(!is_user_alive(id))
	{

		return false;
	}
	if(!g_roundCount)
	{

		return false;
	}
	if(iUseWeapon[id])
	{

		return false;
	}
	if(g_roundCount < VIPROUND)
	{

		return false;
	}
	return true;
}

#if defined VIPTAB
public MessageScoreAttrib(iMsgId, iDest, iReceiver)
{
	if(is_user_vip(get_msg_arg_int(1)) && !get_msg_arg_int(2))
		set_msg_arg_int(2, ARG_BYTE, 4);
}
#endif
Изображение

Единствен по рода си Zombie BaseBuilder с уникален мод и коректни админи по всяко време в сървъра.
IP: bb.cs-zapad.eu:27013

Respawn сървър.
IP: re.cs-zapad.eu:27015

Furien сървър.
IP: fu.cs-zapad.eu:27016

Нашият Сайт
Нашият Форум

Аватар
atmax
Извън линия
Потребител
Потребител
Мнения: 492
Регистриран на: 22 Мар 2018, 15:06
Се отблагодари: 37 пъти
Получена благодарност: 43 пъти

Request on modify VIP plugin (again)

Мнение от atmax » 19 Май 2020, 21:46

I don't see any message he just removed the message I think :huh:
Just replace these lines in my post:

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

if(get_user_flags(id) & ADMIN_IMMUNITY) return;
	static name[32]; get_user_name(id, name, charsmax(name));
	client_print_color(0, 0, "%s ^3[VIP] ^1%s connects on the server ...", CHATTAG, name);
With this:

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

if(get_user_flags(id) && ADMIN_IMMUNITY)
{
	static name[32]; get_user_name(id, name, charsmax(name));
	client_print_color(0, 0, "%s ^3[VIP] ^1%s connects on the server ...", CHATTAG, name);
} 
Rest in peace my friend I always will remember you! 🖤👊

Аватар
Niiicu
Извън линия
Потребител
Потребител
Мнения: 88
Регистриран на: 24 Апр 2020, 10:01
Се отблагодари: 1 път
Получена благодарност: 1 път

Request on modify VIP plugin (again)

Мнение от Niiicu » 21 Май 2020, 11:41

Hi, i've tested last night and still, is not working
I still have chat messages for VIP with flag "t*
CS.AVENGERSCS.RO - Classic

Аватар
Niiicu
Извън линия
Потребител
Потребител
Мнения: 88
Регистриран на: 24 Апр 2020, 10:01
Се отблагодари: 1 път
Получена благодарност: 1 път

Request on modify VIP plugin (again)

Мнение от Niiicu » 26 Май 2020, 09:09

I still haven't been able to modify this plugin, can someone help me please?
CS.AVENGERSCS.RO - Classic

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

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

Кой е на линия

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