Become VIP Plus

Одобрените от нас плъгини. Моля, докладвайте ако забележите бъг с някой от плъгините в този раздел.
Аватар
Ant1Lamer
Извън линия
Потребител
Потребител
Мнения: 217
Регистриран на: 08 Окт 2016, 00:03
Се отблагодари: 18 пъти
Получена благодарност: 3 пъти

Become VIP Plus

Мнение от Ant1Lamer » 23 Сеп 2019, 23:01

Тоест ако е направил киловете времето ще тече само когато е в сървъра както е с флаговете ? Затова си написал да го направят с TimeStamp с него дори и да не в сървъра ще си тече времето ако правилно съм разбрал ? Ако е така ще се надявам някой да го направи с TimeStamp
НАУЧИ ПРАВИЛАТА, ЗА ДА ЗНАЕШ КАК ПОРЯДЪЧНО ДА ГИ НАРУШАВАШ!!!

Аватар
mi0
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 534
Регистриран на: 09 Дек 2016, 22:02
Се отблагодари: 97 пъти
Получена благодарност: 120 пъти
Обратна връзка:

Become VIP Plus

Мнение от mi0 » 24 Сеп 2019, 00:27

... Нищо такова не съм казвал. Казах, че хората които ВЕЧЕ са випове(демек са випове, преди ти да замениш плъгина с тази версия, която им маха правата след 15 дена). Тези 15 дена ще почнат да се броят за тях, следващия път когато влязат. За TimeStamp-а ти казах, че съм го написал, ако някой от другите Scripter-и реши да преработи плъгина също, да го направи с него, понеже ще е по-леко и НЯМА абсолиутно никаква разлика, освен в скороста на Performence-а.
aka kurdokoleno
Catch Mod - 87.121.112.232:27021

Аватар
Ant1Lamer
Извън линия
Потребител
Потребител
Мнения: 217
Регистриран на: 08 Окт 2016, 00:03
Се отблагодари: 18 пъти
Получена благодарност: 3 пъти

Become VIP Plus

Мнение от Ant1Lamer » 24 Сеп 2019, 00:55

Ясно
НАУЧИ ПРАВИЛАТА, ЗА ДА ЗНАЕШ КАК ПОРЯДЪЧНО ДА ГИ НАРУШАВАШ!!!

Аватар
iv69
Извън линия
Потребител
Потребител
Мнения: 744
Регистриран на: 17 Мар 2018, 15:34
Се отблагодари: 214 пъти
Получена благодарност: 39 пъти

Become VIP Plus

Мнение от iv69 » 24 Сеп 2019, 11:40

...btw, а има ли как mi0 - да се модифицира плъгина така, получения флаг да стои върху играча, само докато той самия не даде "retry" или трайно не напусне сървъра, същото да е и за отчетените за него убийства до добиване на флага - т.е излезе ли от сървъра - започва всичко отначало всичко? Възможно ли е да се направи така ?
Тоест и аз мисля, че е малко незаслужено плъгина да дава "вечно" право върху някой флаг за един играч, та ако ще и 100 000 кила да направи... ?!

Аватар
mi0
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 534
Регистриран на: 09 Дек 2016, 22:02
Се отблагодари: 97 пъти
Получена благодарност: 120 пъти
Обратна връзка:

Become VIP Plus

Мнение от mi0 » 24 Сеп 2019, 13:44

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

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

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

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

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

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, "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, "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
	
	get_user_name(id, g_ePlayerData[id][Name], charsmax(g_ePlayerData[][Name]))
}

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

	g_ePlayerData[id][Kills] = 0
}
	
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))
	{
		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])

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_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_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))
Ето ти плъгина, въпреки това ще е хубаво да се обръщаш към автора на темата и плъгина за такива промени.
aka kurdokoleno
Catch Mod - 87.121.112.232:27021

Аватар
JackEyedJones
Извън линия
Потребител
Потребител
Мнения: 399
Регистриран на: 10 Сеп 2018, 17:26
Местоположение: Plovdiv, Bulgaria, Europe, Entire World
Се отблагодари: 4 пъти
Получена благодарност: 69 пъти
Обратна връзка:

Become VIP Plus

Мнение от JackEyedJones » 24 Сеп 2019, 17:35

iv69 написа: 24 Сеп 2019, 11:40 ...btw, а има ли как mi0 - да се модифицира плъгина така, получения флаг да стои върху играча, само докато той самия не даде "retry" или трайно не напусне сървъра, същото да е и за отчетените за него убийства до добиване на флага - т.е излезе ли от сървъра - започва всичко отначало всичко? Възможно ли е да се направи така ?
Тоест и аз мисля, че е малко незаслужено плъгина да дава "вечно" право върху някой флаг за един играч, та ако ще и 100 000 кила да направи... ?!
И като му изгубиш интереса, че си е изгубил флаговете, после защо не се задържат хората.
Ако играча има прогрес, то най-добре е той да се пази за колкото се може по-дълго. Така ще знае, че влезе ли той има там развито нещо и така интереса му ще остане за да влиза по-често. Друг е въпроса дали ще го направиш много трудно за да си прави труда да влиза и пак да се бъхти.

Аватар
iv69
Извън линия
Потребител
Потребител
Мнения: 744
Регистриран на: 17 Мар 2018, 15:34
Се отблагодари: 214 пъти
Получена благодарност: 39 пъти

Become VIP Plus

Мнение от iv69 » 25 Сеп 2019, 00:35

JackEyedJones написа: 24 Сеп 2019, 17:35
iv69 написа: 24 Сеп 2019, 11:40 ...btw, а има ли как mi0 - да се модифицира плъгина така, получения флаг да стои върху играча, само докато той самия не даде "retry" или трайно не напусне сървъра, същото да е и за отчетените за него убийства до добиване на флага - т.е излезе ли от сървъра - започва всичко отначало всичко? Възможно ли е да се направи така ?
Тоест и аз мисля, че е малко незаслужено плъгина да дава "вечно" право върху някой флаг за един играч, та ако ще и 100 000 кила да направи... ?!
И като му изгубиш интереса, че си е изгубил флаговете, после защо не се задържат хората.
Ако играча има прогрес, то най-добре е той да се пази за колкото се може по-дълго. Така ще знае, че влезе ли той има там развито нещо и така интереса му ще остане за да влиза по-често. Друг е въпроса дали ще го направиш много трудно за да си прави труда да влиза и пак да се бъхти.
Мда, разбирам "накъде биеш" и ще призная, че до известна степен си прав! НО... , точно поради доводите с които ме обори аз мнооого много отдавна съм сложил Ранк-системката на Крома :) . Там има точно и всичко което изреди... няколко "нива на трудност" със съответните му флагове екстри и екстрички... За тях всеки се "бъхти" добре и и получава добре...и то как трайно се бъхти така и трайно получава.................................. Точно според това - както си описал репликата си, така съм си и направил ранк-системата.
Отговора ми удовлетворява ли ?
Ще се осмеля да добавя без да се боя че ще те засегна или обидя: Не е лошо да се репликира, но ако се знаят и съобразяват с подробностите репликиращите?! Не е ли така !? Иначе си репликираме само лаф да става, без да има полза !? Не е ли така ? ( Казавам го - защото ако знаеше например , че си имам в сървъра Ранк-системата мисля, че нито ти щеше да пишеш излишно репликата си и да ми обясняваш точно кое как трябва да е .... - нито аз шях да си губя времето да отговарям подробно ясно и изчерпателно сега :) не е ли така :) ???
По темата накрая : Поправката ми трябва не за тези хора за които досега и двамата си губим време да коментираме, а за онези които например сядат рядко но малко за по-дълго: Например на съботата сядам и играя поне 2-3 а дори и 4 часа !? И ако в някой сървър например мога след 1, 1:1/2 - 2 часа добра и непрекъсната игра - да добия флаг с някоя благинка - и после да си доиграя до края на тези 3-4 часа с тази екстричка- бих влязал точно в такъв сървър?! А ти - например ??? Ама честно ?

Аватар
metamod
Извън линия
Потребител
Потребител
Мнения: 63
Регистриран на: 07 Апр 2018, 11:06
Се отблагодари: 4 пъти
Обратна връзка:

Become VIP Plus

Мнение от metamod » 01 Окт 2019, 14:57

Здравейте,да попитам как точно мога да дам на определен "играч" убийства със becomevip_give_kills не се получава нищо имали някакъв квар или нещо друго ?
CS-DOWN.bg # RespawN IP: 93.123.18.42:27015

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

Become VIP Plus

Мнение от OciXCrom » 01 Окт 2019, 16:30

metamod написа: 01 Окт 2019, 14:57 Здравейте,да попитам как точно мога да дам на определен "играч" убийства със becomevip_give_kills не се получава нищо имали някакъв квар или нещо друго ?
Кое не се получава? Какво си написал?
Не виждам как с "квар" (настройка) ще дадеш убийства на някого.

Аватар
metamod
Извън линия
Потребител
Потребител
Мнения: 63
Регистриран на: 07 Апр 2018, 11:06
Се отблагодари: 4 пъти
Обратна връзка:

Become VIP Plus

Мнение от metamod » 01 Окт 2019, 16:39

OciXCrom написа: 01 Окт 2019, 16:30
metamod написа: 01 Окт 2019, 14:57 Здравейте,да попитам как точно мога да дам на определен "играч" убийства със becomevip_give_kills не се получава нищо имали някакъв квар или нещо друго ?
Кое не се получава? Какво си написал?
Не виждам как с "квар" (настройка) ще дадеш убийства на някого.
Във чата ли трябва да напиша това becomevip_give_kills ? Защото когато го напиша не дава определените фрагове къде точно се пише това и как ?
CS-DOWN.bg # RespawN IP: 93.123.18.42:27015

Публикувай отговор

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

Кой е на линия

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