Become VIP Plus
-
Ant1Lamer
Извън линия - Потребител
- Мнения: 217
- Регистриран на: 08 Окт 2016, 00:03
- Се отблагодари: 18 пъти
- Получена благодарност: 3 пъти
Become VIP Plus
Тоест ако е направил киловете времето ще тече само когато е в сървъра както е с флаговете ? Затова си написал да го направят с TimeStamp с него дори и да не в сървъра ще си тече времето ако правилно съм разбрал ? Ако е така ще се надявам някой да го направи с TimeStamp
НАУЧИ ПРАВИЛАТА, ЗА ДА ЗНАЕШ КАК ПОРЯДЪЧНО ДА ГИ НАРУШАВАШ!!!
-
mi0
Извън линия - AMXX Скриптър
- Мнения: 534
- Регистриран на: 09 Дек 2016, 22:02
- Се отблагодари: 97 пъти
- Получена благодарност: 120 пъти
- Обратна връзка:
Become VIP Plus
... Нищо такова не съм казвал. Казах, че хората които ВЕЧЕ са випове(демек са випове, преди ти да замениш плъгина с тази версия, която им маха правата след 15 дена). Тези 15 дена ще почнат да се броят за тях, следващия път когато влязат. За TimeStamp-а ти казах, че съм го написал, ако някой от другите Scripter-и реши да преработи плъгина също, да го направи с него, понеже ще е по-леко и НЯМА абсолиутно никаква разлика, освен в скороста на Performence-а.
aka kurdokoleno
Catch Mod - 87.121.112.232:27021
Catch Mod - 87.121.112.232:27021
-
iv69
Извън линия - Потребител
- Мнения: 744
- Регистриран на: 17 Мар 2018, 15:34
- Се отблагодари: 214 пъти
- Получена благодарност: 39 пъти
Become VIP Plus
...btw, а има ли как mi0 - да се модифицира плъгина така, получения флаг да стои върху играча, само докато той самия не даде "retry" или трайно не напусне сървъра, същото да е и за отчетените за него убийства до добиване на флага - т.е излезе ли от сървъра - започва всичко отначало всичко? Възможно ли е да се направи така ?
Тоест и аз мисля, че е малко незаслужено плъгина да дава "вечно" право върху някой флаг за един играч, та ако ще и 100 000 кила да направи... ?!
Тоест и аз мисля, че е малко незаслужено плъгина да дава "вечно" право върху някой флаг за един играч, та ако ще и 100 000 кила да направи... ?!
-
mi0
Извън линия - AMXX Скриптър
- Мнения: 534
- Регистриран на: 09 Дек 2016, 22:02
- Се отблагодари: 97 пъти
- Получена благодарност: 120 пъти
- Обратна връзка:
Become VIP Plus
Код за потвърждение: Избери целия код
#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
Catch Mod - 87.121.112.232:27021
-
JackEyedJones
Извън линия - Потребител
- Мнения: 399
- Регистриран на: 10 Сеп 2018, 17:26
- Местоположение: Plovdiv, Bulgaria, Europe, Entire World
- Се отблагодари: 4 пъти
- Получена благодарност: 69 пъти
- Обратна връзка:
Become VIP Plus
И като му изгубиш интереса, че си е изгубил флаговете, после защо не се задържат хората.iv69 написа: ↑24 Сеп 2019, 11:40 ...btw, а има ли как mi0 - да се модифицира плъгина така, получения флаг да стои върху играча, само докато той самия не даде "retry" или трайно не напусне сървъра, същото да е и за отчетените за него убийства до добиване на флага - т.е излезе ли от сървъра - започва всичко отначало всичко? Възможно ли е да се направи така ?
Тоест и аз мисля, че е малко незаслужено плъгина да дава "вечно" право върху някой флаг за един играч, та ако ще и 100 000 кила да направи... ?!
Ако играча има прогрес, то най-добре е той да се пази за колкото се може по-дълго. Така ще знае, че влезе ли той има там развито нещо и така интереса му ще остане за да влиза по-често. Друг е въпроса дали ще го направиш много трудно за да си прави труда да влиза и пак да се бъхти.
-
iv69
Извън линия - Потребител
- Мнения: 744
- Регистриран на: 17 Мар 2018, 15:34
- Се отблагодари: 214 пъти
- Получена благодарност: 39 пъти
Become VIP Plus
Мда, разбирам "накъде биеш" и ще призная, че до известна степен си прав! НО... , точно поради доводите с които ме обори аз мнооого много отдавна съм сложил Ранк-системката на Крома . Там има точно и всичко което изреди... няколко "нива на трудност" със съответните му флагове екстри и екстрички... За тях всеки се "бъхти" добре и и получава добре...и то как трайно се бъхти така и трайно получава.................................. Точно според това - както си описал репликата си, така съм си и направил ранк-системата.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
Здравейте,да попитам как точно мога да дам на определен "играч" убийства със 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
Кое не се получава? Какво си написал?
Не виждам как с "квар" (настройка) ще дадеш убийства на някого.
-
metamod
Извън линия - Потребител
- Мнения: 63
- Регистриран на: 07 Апр 2018, 11:06
- Се отблагодари: 4 пъти
- Обратна връзка:
Become VIP Plus
Във чата ли трябва да напиша това becomevip_give_kills ? Защото когато го напиша не дава определените фрагове къде точно се пише това и как ?
CS-DOWN.bg # RespawN IP: 93.123.18.42:27015
Кой е на линия
Потребители разглеждащи този форум: 0 регистрирани и 22 госта