Преправяне на becomevip

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
devilchy
Извън линия
Потребител
Потребител
Мнения: 223
Регистриран на: 03 Фев 2017, 14:08
Местоположение: Burgas
Се отблагодари: 3 пъти
Получена благодарност: 6 пъти
Обратна връзка:

Преправяне на becomevip

Мнение от devilchy » 30 Апр 2022, 14:41

Някой ако ми направи този viewtopic.php?f=21&t=2996 плъгин да бъде така че след 15 дни или така казано след х дни (настроен от мен) да бъдат флагове премахнати.?

Аватар
bustA
Извън линия
Потребител
Потребител
Мнения: 264
Регистриран на: 20 Юни 2020, 11:47
Се отблагодари: 42 пъти
Получена благодарност: 27 пъти
Обратна връзка:

Преправяне на becomevip

Мнение от bustA » 30 Апр 2022, 17:06

Ant1Lamer написа: 23 Сеп 2019, 18:50 Ами искам на определен период от време които аз му задам да речем правя го 14 дена да седи даденият флаг и да се маха и да трябва наново да ги правят тези килове, но това да е индивидуално за всеки играч тоест прави да речем 1000 кила даденият играч и след 14 дена автоматично му се маха флага и започва наново 1000 кила, но това да не зависи от топа дали ще е реснат или не и примерно да изписва колко време му остава докато флагът се махне

mi0 написа: 23 Сеп 2019, 20:05 Ето ти кода, не съм го тествал

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

#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],
	DAYS_TO_SAVE
}

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

new g_eSettings[Settings],
	g_ePlayerData[33][PlayerData],
	g_iObject,
	g_iVault,
	bool:g_bShouldSaveDate[33]

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_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])
					}
					else if(equal(szKey, "DAYS_TO_SAVE"))
						g_eSettings[DAYS_TO_SAVE] = str_to_num(szValue)
				}
			}
		}
		
		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)
	else
		g_bShouldSaveDate[id] = true
}
	
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
	
	new szData[32]
	if(bSave)
	{
		get_time("%y %j", szData, charsmax(szData))
		format(szData, charsmax(szData), "%d %s", g_ePlayerData[id][Kills], szData)
		nvault_set(g_iVault, szInfo, szData)
	}
	else
	{
		nvault_get(g_iVault, szInfo, szData, charsmax(szData))
		if (contain(szData, " "))
		{
			new szKills[16], szOldYear[3], szOldDay[3]
			parse(szData, szKills, charsmax(szKills), szOldYear, charsmax(szOldYear), szOldDay, charsmax(szOldDay))
			g_ePlayerData[id][Kills] = str_to_num(szKills)
			
			if (g_ePlayerData[id][Kills] > g_eSettings[KILLS_NEEDED])
			{
				new szDate[64], szNewYear[3], szNewDay[3]
				get_time("%y %j", szDate, charsmax(szDate))
				parse(szDate, szNewYear, charsmax(szNewYear), szNewDay, charsmax(szNewDay))

				new iOldYear = str_to_num(szOldYear), iOldDay = str_to_num(szOldDay), iNewYear = str_to_num(szNewYear), iNewDay = str_to_num(szNewDay)
				new iOldYearDays = floatround(iOldYear * 365.25, floatround_ceil) + iOldDay
				new iNewYearDays = floatround(iNewYear * 365.25, floatround_ceil) + iNewDay
				if (iNewYearDays - iOldYearDays > g_eSettings[DAYS_TO_SAVE])
				{
					g_ePlayerData[id][Kills] = 0
				}
			}
		}
		else
		{
			g_ePlayerData[id][Kills] = str_to_num(szData)
		}

		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")
}

public _becomevip_get_flags(iPlugin, iParams)
	return g_eSettings[VIP_FLAGS_BIT]

public _becomevip_get_kills_needed(iPlugin, iParams)
	return g_eSettings[KILLS_NEEDED]
	
public _becomevip_get_save_type(iPlugin, iParams)
	return g_eSettings[SAVE_TYPE]
	
public _becomevip_get_user_kills(iPlugin, iParams)
	return g_ePlayerData[get_param(1)][Kills]
	
public bool:_becomevip_is_hud_enabled(iPlugin, iParams)
	return g_eSettings[HUD_MESSAGE_ENABLED]

public bool:_becomevip_user_has_flags(iPlugin, iParams)
	return has_vip_flags(get_param(1))
Добавяш в конфиг файла.

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

DAYS_TO_SAVE = 15
Note - Чак сега се сещам, че NVault има TimeStamp, ако някой иска да го преработи.
Cs-Plovdiv.com - Aim Attack - 93.123.16.4:27022 :gamer1:

Аватар
devilchy
Извън линия
Потребител
Потребител
Мнения: 223
Регистриран на: 03 Фев 2017, 14:08
Местоположение: Burgas
Се отблагодари: 3 пъти
Получена благодарност: 6 пъти
Обратна връзка:

Преправяне на becomevip

Мнение от devilchy » 12 Май 2022, 14:41

Настроил съм го на 1 ден и випа за съжаление не се маха ?


Аватар
devilchy
Извън линия
Потребител
Потребител
Мнения: 223
Регистриран на: 03 Фев 2017, 14:08
Местоположение: Burgas
Се отблагодари: 3 пъти
Получена благодарност: 6 пъти
Обратна връзка:

Преправяне на becomevip

Мнение от devilchy » 18 Май 2022, 20:52

Аре бе няма ли кой да го погледне това ту има вип в сървъра ту няма, Май и този сайт ще е като на фен сайта замира... Вече няма кой да помага и тук ...

Аватар
Siska
Извън линия
Потребител
Потребител
Мнения: 771
Регистриран на: 03 Дек 2019, 22:29
Местоположение: Bedrock
Се отблагодари: 157 пъти
Получена благодарност: 48 пъти
Обратна връзка:

Преправяне на becomevip

Мнение от Siska » 18 Май 2022, 21:42

Извън темата
Предполагам си забелязал , че много от amx сайтовете са или без поддръжка или са станали платени. Въпроса е , че не може цял живот едни и същи хора да помагат. То омръзва, то човек си има и друга работа и т.н. Сега сме ние наред. Трябва да учим този компютърен език и всичко покрай него и после ние да сме следващите , които ще помагат и ще поддържат българския цс. Това , обаче , едва ли ще стане поради ред причини...
Търсих врага и го открих : това съм аз , трябва да се победя...
Изображение
WWW.CSMEGAGAMING.COM Изображение Изображение Skype : Sisi-1_1

Аватар
devilchy
Извън линия
Потребител
Потребител
Мнения: 223
Регистриран на: 03 Фев 2017, 14:08
Местоположение: Burgas
Се отблагодари: 3 пъти
Получена благодарност: 6 пъти
Обратна връзка:

Преправяне на becomevip

Мнение от devilchy » 19 Май 2022, 00:11

Siska написа: 18 Май 2022, 21:42
Извън темата
Предполагам си забелязал , че много от amx сайтовете са или без поддръжка или са станали платени. Въпроса е , че не може цял живот едни и същи хора да помагат. То омръзва, то човек си има и друга работа и т.н. Сега сме ние наред. Трябва да учим този компютърен език и всичко покрай него и после ние да сме следващите , които ще помагат и ще поддържат българския цс. Това , обаче , едва ли ще стане поради ред причини...
То аз съм съгласен и да платя както и било до сега но и такива ги няма, просто играта замира тва е...

Аватар
Siska
Извън линия
Потребител
Потребител
Мнения: 771
Регистриран на: 03 Дек 2019, 22:29
Местоположение: Bedrock
Се отблагодари: 157 пъти
Получена благодарност: 48 пъти
Обратна връзка:

Преправяне на becomevip

Мнение от Siska » 19 Май 2022, 00:39

Ако търсиш платени услуги то във всички руски сайтове се предлагат такива. Във елиед също има хора , които предлагат същото. Също и българи са ми казвали , че може евентуално да се заемат, но там е само евентуално, а руснаците като гледам от това живеят. В елиед също , както написах вече има хора , които ще ти напишат всичко , което си поискаш. И един съвет искам да дам, но по принцип ти разбираш повече от мен тъй , че може и да е излишно да ти напомням да потърсиш хубаво в нета и да се опиташ сам и чрез вече написани плъгини и теми да се справиш. Ето аз например търсих нещо повече от половин година и накрая го намерих. Освен това имах късмета много хубави хора да ми помогнат със сложните плъгини , които по 10 години никой не е пипал и няма кой да ги редактира и да ги направи да работят.
Търсих врага и го открих : това съм аз , трябва да се победя...
Изображение
WWW.CSMEGAGAMING.COM Изображение Изображение Skype : Sisi-1_1

Аватар
Radeon
Извън линия
Потребител
Потребител
Мнения: 143
Регистриран на: 04 Апр 2021, 11:30
Се отблагодари: 2 пъти
Получена благодарност: 34 пъти
Обратна връзка:

Преправяне на becomevip

Мнение от Radeon » 19 Май 2022, 14:34

Пробвай този плъгин, само си настрой нещата от тук. Ако работи, тогава може да му сменим съобщенията че сега са само hud.

("amx_kills", "500"); // Необходими убийства
("amx_kills_flags", "bi"); // Флагове които ще се получат при достигане на убийствата
("amx_kills_savetype", "3"); //Запазване на убийствата по [1 - by name / 2 - by IP / 3 - by SteamID]
("amx_kills_expiredays", "10"); // След колко дни да се маха вип флага


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

#include <amxmodx>
#include <cstrike>
#include <hamsandwich>
#include <nvault>

// #define VIP_MODELS
// #define DHUDMESSAGE

#if defined DHUDMESSAGE
#include <dhudmessage>
#endif

new g_vault;

new g_iMaxPlayers;

new bool:g_bConnected[33];
new bool:g_bFlags[33];

new g_szFlags[22];

new g_kills[33];
new g_szSave[33][32];

new p_kills_for_vip, p_vip_flags;
new p_savetype, p_expire;

public plugin_init()
{
register_plugin("Pro Become VIP", "2.0", "didoWEE");

g_vault = nvault_open("pb_vip");
g_iMaxPlayers = get_maxplayers();

register_event("DeathMsg", "eDeath", "a")
RegisterHam(Ham_Spawn, "player", "fwdSpawn", 1);

p_kills_for_vip = register_cvar("amx_kills", "500"); // Needed kill to become VIP
p_vip_flags = register_cvar("amx_kills_flags", "bi"); // The flags which you get when you become VIP
p_savetype = register_cvar("amx_kills_savetype", "3"); // Save type [1 - by name / 2 - by IP / 3 - by SteamID]
p_expire = register_cvar("amx_kills_expiredays", "10"); // Expire days
}

public plugin_cfg()
{
nvault_prune(g_vault, 0, get_systime() - (86400 * get_pcvar_num(p_expire)));
get_pcvar_string(p_vip_flags, g_szFlags, charsmax(g_szFlags));
}

#if defined VIP_MODELS
public plugin_precache()
{
precache_model("models/player/VIP/Tvip/Tvip.mdl");
precache_model("models/player/VIP/CTvip/CTvip.mdl");
}
#endif

LoadData(id)
{
new data[16];
if(nvault_get(g_vault, g_szSave[id], data, charsmax(data))) g_kills[id] = str_to_num(data);
else g_kills[id] = 0;
}

SaveData(id)
{
new data[16];
num_to_str(g_kills[id], data, charsmax(data));
nvault_set(g_vault, g_szSave[id], data);
}

ShowHud(id)
{
#if defined DHUDMESSAGE
set_dhudmessage(195, 195, 0, 0.25, 0.50, 0, 3.0, 5.0, 0.0, 0.0);
show_dhudmessage(id, "Reach %i kills and become VIP^nYour have: %i kills", get_pcvar_num(p_kills_for_vip), g_kills[id]);
#else
set_hudmessage(195, 195, 0, 0.25, 0.50, 0, 3.0, 5.0, 0.0, 0.0, -1);
show_hudmessage(id, "Reach %i kills and become VIP^nYour have: %i kills", get_pcvar_num(p_kills_for_vip), g_kills[id]);
#endif
}

FlaggingFunc(id)
{
set_user_flags(id, read_flags(g_szFlags));
g_bFlags[id] = true;
}

public eDeath()
{
new killer = read_data(1);

if(killer && killer <= g_iMaxPlayers)
{
if(g_bConnected[killer])
{
if(killer != read_data(2))
{
if(!g_bFlags[killer])
{
g_kills[killer]++;

if(g_kills[killer] < get_pcvar_num(p_kills_for_vip)) ShowHud(killer);
else
if(g_kills[killer] == get_pcvar_num(p_kills_for_vip))
{
FlaggingFunc(killer);

#if defined DHUDMESSAGE
set_dhudmessage(235, 0, 235, 0.25, 0.65, 1, 7.5, 15.0, 0.0, 0.0);
show_dhudmessage(killer, "Congratilations^nYou are VIP");
#else
set_hudmessage(235, 0, 235, 0.25, 0.65, 1, 7.5, 15.0, 0.0, 0.0, -1);
show_hudmessage(killer, "Congratilations^nYou are VIP");
#endif
}
}
}
}
}
}

public fwdSpawn(id)
{
if(g_bConnected[id])
{
if (g_kills[id] < get_pcvar_num(p_kills_for_vip)) ShowHud(id);

#if defined VIP_MODELS
{
if(g_bFlags[id])
{
new CsTeams:team = cs_get_user_team(id);
switch(team)
{
case CS_TEAM_T: cs_set_user_model(id, "Tvip");
case CS_TEAM_CT: cs_set_user_model(id, "CTvip");
}
}
}
#endif
}
}

public client_connect(id)
{
if(!(is_user_bot(id) && is_user_hltv(id)))
{
g_bConnected[id] = true;

new savetype = get_pcvar_num(p_savetype);
switch(savetype)
{
case 1: get_user_name(id, g_szSave[id], charsmax(g_szSave[]));
case 2: get_user_ip(id, g_szSave[id], charsmax(g_szSave[]));
case 3: get_user_authid(id, g_szSave[id], charsmax(g_szSave[]));
}

LoadData(id);

if(get_user_flags(id) & read_flags(g_szFlags)) g_bFlags[id] = true;
else
{
if(g_kills[id] >= get_pcvar_num(p_kills_for_vip)) FlaggingFunc(id);
else g_bFlags[id] = false;
}
}
}

public client_disconnected(id)
{
if(!(is_user_bot(id) && is_user_hltv(id)))
{
g_bConnected[id] = false;
if(g_kills[id] > 0) SaveData(id);
}
}

public plugin_end()
{
for(new id=1; id <= g_iMaxPlayers; id++)
{
if(g_bConnected[id])
{
if(!(is_user_bot(id) && is_user_hltv(id)))
{
if(g_kills[id] > 0) SaveData(id);
}
}
}
nvault_close(g_vault);
}

Аватар
devilchy
Извън линия
Потребител
Потребител
Мнения: 223
Регистриран на: 03 Фев 2017, 14:08
Местоположение: Burgas
Се отблагодари: 3 пъти
Получена благодарност: 6 пъти
Обратна връзка:

Преправяне на becomevip

Мнение от devilchy » 20 Май 2022, 02:50

Radeon написа: 19 Май 2022, 14:34 Пробвай този плъгин, само си настрой нещата от тук. Ако работи, тогава може да му сменим съобщенията че сега са само hud.

("amx_kills", "500"); // Необходими убийства
("amx_kills_flags", "bi"); // Флагове които ще се получат при достигане на убийствата
("amx_kills_savetype", "3"); //Запазване на убийствата по [1 - by name / 2 - by IP / 3 - by SteamID]
("amx_kills_expiredays", "10"); // След колко дни да се маха вип флага


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

#include <amxmodx>
#include <cstrike>
#include <hamsandwich>
#include <nvault>

// #define VIP_MODELS
// #define DHUDMESSAGE

#if defined DHUDMESSAGE
#include <dhudmessage>
#endif

new g_vault;

new g_iMaxPlayers;

new bool:g_bConnected[33];
new bool:g_bFlags[33];

new g_szFlags[22];

new g_kills[33];
new g_szSave[33][32];

new p_kills_for_vip, p_vip_flags;
new p_savetype, p_expire;

public plugin_init()
{
register_plugin("Pro Become VIP", "2.0", "didoWEE");

g_vault = nvault_open("pb_vip");
g_iMaxPlayers = get_maxplayers();

register_event("DeathMsg", "eDeath", "a")
RegisterHam(Ham_Spawn, "player", "fwdSpawn", 1);

p_kills_for_vip = register_cvar("amx_kills", "500"); // Needed kill to become VIP
p_vip_flags = register_cvar("amx_kills_flags", "bi"); // The flags which you get when you become VIP
p_savetype = register_cvar("amx_kills_savetype", "3"); // Save type [1 - by name / 2 - by IP / 3 - by SteamID]
p_expire = register_cvar("amx_kills_expiredays", "10"); // Expire days
}

public plugin_cfg()
{
nvault_prune(g_vault, 0, get_systime() - (86400 * get_pcvar_num(p_expire)));
get_pcvar_string(p_vip_flags, g_szFlags, charsmax(g_szFlags));
}

#if defined VIP_MODELS
public plugin_precache()
{
precache_model("models/player/VIP/Tvip/Tvip.mdl");
precache_model("models/player/VIP/CTvip/CTvip.mdl");
}
#endif

LoadData(id)
{
new data[16];
if(nvault_get(g_vault, g_szSave[id], data, charsmax(data))) g_kills[id] = str_to_num(data);
else g_kills[id] = 0;
}

SaveData(id)
{
new data[16];
num_to_str(g_kills[id], data, charsmax(data));
nvault_set(g_vault, g_szSave[id], data);
}

ShowHud(id)
{
#if defined DHUDMESSAGE
set_dhudmessage(195, 195, 0, 0.25, 0.50, 0, 3.0, 5.0, 0.0, 0.0);
show_dhudmessage(id, "Reach %i kills and become VIP^nYour have: %i kills", get_pcvar_num(p_kills_for_vip), g_kills[id]);
#else
set_hudmessage(195, 195, 0, 0.25, 0.50, 0, 3.0, 5.0, 0.0, 0.0, -1);
show_hudmessage(id, "Reach %i kills and become VIP^nYour have: %i kills", get_pcvar_num(p_kills_for_vip), g_kills[id]);
#endif
}

FlaggingFunc(id)
{
set_user_flags(id, read_flags(g_szFlags));
g_bFlags[id] = true;
}

public eDeath()
{
new killer = read_data(1);

if(killer && killer <= g_iMaxPlayers)
{
if(g_bConnected[killer])
{
if(killer != read_data(2))
{
if(!g_bFlags[killer])
{
g_kills[killer]++;

if(g_kills[killer] < get_pcvar_num(p_kills_for_vip)) ShowHud(killer);
else
if(g_kills[killer] == get_pcvar_num(p_kills_for_vip))
{
FlaggingFunc(killer);

#if defined DHUDMESSAGE
set_dhudmessage(235, 0, 235, 0.25, 0.65, 1, 7.5, 15.0, 0.0, 0.0);
show_dhudmessage(killer, "Congratilations^nYou are VIP");
#else
set_hudmessage(235, 0, 235, 0.25, 0.65, 1, 7.5, 15.0, 0.0, 0.0, -1);
show_hudmessage(killer, "Congratilations^nYou are VIP");
#endif
}
}
}
}
}
}

public fwdSpawn(id)
{
if(g_bConnected[id])
{
if (g_kills[id] < get_pcvar_num(p_kills_for_vip)) ShowHud(id);

#if defined VIP_MODELS
{
if(g_bFlags[id])
{
new CsTeams:team = cs_get_user_team(id);
switch(team)
{
case CS_TEAM_T: cs_set_user_model(id, "Tvip");
case CS_TEAM_CT: cs_set_user_model(id, "CTvip");
}
}
}
#endif
}
}

public client_connect(id)
{
if(!(is_user_bot(id) && is_user_hltv(id)))
{
g_bConnected[id] = true;

new savetype = get_pcvar_num(p_savetype);
switch(savetype)
{
case 1: get_user_name(id, g_szSave[id], charsmax(g_szSave[]));
case 2: get_user_ip(id, g_szSave[id], charsmax(g_szSave[]));
case 3: get_user_authid(id, g_szSave[id], charsmax(g_szSave[]));
}

LoadData(id);

if(get_user_flags(id) & read_flags(g_szFlags)) g_bFlags[id] = true;
else
{
if(g_kills[id] >= get_pcvar_num(p_kills_for_vip)) FlaggingFunc(id);
else g_bFlags[id] = false;
}
}
}

public client_disconnected(id)
{
if(!(is_user_bot(id) && is_user_hltv(id)))
{
g_bConnected[id] = false;
if(g_kills[id] > 0) SaveData(id);
}
}

public plugin_end()
{
for(new id=1; id <= g_iMaxPlayers; id++)
{
if(g_bConnected[id])
{
if(!(is_user_bot(id) && is_user_hltv(id)))
{
if(g_kills[id] > 0) SaveData(id);
}
}
}
nvault_close(g_vault);
}
Тествах го обаче след като сменя мапа флага се маха иначе си го аддва като достигнеш лимита но след мапа се маха ...

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

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

Кой е на линия

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