Become VIP Plus

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
cgozzie
Извън линия
Потребител
Потребител
Мнения: 1318
Регистриран на: 13 Окт 2016, 22:10
Местоположение: Варна
Се отблагодари: 244 пъти
Получена благодарност: 42 пъти

Become VIP Plus

Мнение от cgozzie » 26 Дек 2016, 15:59

Ще се намери ли някой да ми добави в плъгина също да му се зададе amx_kills_expiredays 10-20-30 колкота аз си приценя.И след изтичането но зададените дни автоматично да му си трият правата.

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

#include <amxmodx>
#include <amxmisc>
#include <colorchat>

/* Uncomment this line to use csstats (kills from /rank), instead of nVault */
//#define USE_CSSTATS

/* Comment this line to disable the HUD message on player spawn */
#define USE_HUD

#if defined USE_CSSTATS
    #include <csstats>
#else
    #include <nvault>
    #define nvault_clear(%1) nvault_prune(%1, 0, get_systime() + 1)
    new g_iVault
    
    /* Uncomment this to save data by SteamID and make the plugin work for players with a valid SteamID only */
    //#define USE_STEAM
    
    /* Uncomment this if you want the data to be saved right away - this will prevent losing data when the server crashes */
    //#define QUICK_SAVE
    
    #if defined USE_STEAM
        #define get_save_info get_user_authid
    #else
        #define get_save_info get_user_name
    #endif
#endif

#if defined USE_HUD
    #include <hamsandwich>
    
    #define HUD_COLOR_RED 0
    #define HUD_COLOR_GREEN 255
    #define HUD_COLOR_BLUE 0
    #define HUD_POSITION_X 0.02
    #define HUD_POSITION_Y 0.40
    #define HUD_EFFECTS 2
    #define HUD_FXTIME 1.0
    #define HUD_HOLDTIME 5.0
    #define HUD_FADEINTIME 0.03
    #define HUD_FADEOUTTIME 0.1
    #define HUD_CHANNEL -1
#endif

#define PLUGIN_VERSION "1.3"

new g_szPrefix[32] = "^1[^3VIP Plus^1]"
new g_pKills, g_pFlags
new g_iKills[33], g_szFlags[32], g_iFlags, g_iNeededKills, g_iFlagZ

public plugin_init()
{
    register_plugin("Become VIP Plus", PLUGIN_VERSION, "OciXCrom")
    register_cvar("BecomeVIPPlus", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
    
    #if !defined USE_CSSTATS
        register_concmd("becomevip_restartall", "restartAll", ADMIN_RCON, "deletes the becomeVIP data")
        register_concmd("becomevip_restart_player", "restartPlayer", ADMIN_RCON, "<nick|#userid>")
    #endif
    
    #if defined USE_HUD
        RegisterHam(Ham_Spawn, "player", "eventPlayerSpawn", 1)
    #endif
    
    register_clcmd("say /kills", "cmdKills")
    register_clcmd("say_team /kills", "cmdKills")
    register_event("DeathMsg", "eventPlayerKilled", "a")
    
    g_pKills = register_cvar("becomevip_kills", "1000")
    g_pFlags = register_cvar("becomevip_flags", "b")
    
    #if !defined USE_CSSTATS
        g_iVault = nvault_open("BecomeVIPPlus")
    #endif
}

public plugin_cfg()
{
    get_pcvar_string(g_pFlags, g_szFlags, charsmax(g_szFlags))
    g_iFlags = read_flags(g_szFlags)
    g_iNeededKills = get_pcvar_num(g_pKills)
    g_iFlagZ = read_flags("z")
}

public plugin_natives()
{
    register_library("becomevip")
    register_native("IsUserVip", "_IsUserVip")
    register_native("GetKillsNeeded", "_GetKillsNeeded")
    register_native("GetUserKills", "_GetUserKills")
    register_native("GetKillsLeft", "_GetKillsLeft")
    register_native("GetVipPrefix", "_GetVipPrefix")
    register_native("GetVipFlags", "_GetVipFlags")
    register_native("VipFlagsActive", "_VipFlagsActive")
    register_native("UsingCsstats", "_UsingCsstats")
    register_native("UsingHud", "_UsingHud")
    register_native("UsingSteam", "_UsingSteam")
    register_native("UsingQuickSave", "_UsingQuickSave")
}

public bool:_IsUserVip(iPlugin, iParams)
    return is_user_vip(get_param(1))
    
public _GetKillsNeeded(iPlugin, iParams)
    return g_iNeededKills
    
public _GetUserKills(iPlugin, iParams)
    return get_frags_total(get_param(1))
    
public _GetKillsLeft(iPlugin, iParams)
    return get_frags_left(get_param(1))
    
public _GetVipPrefix(iPlugin, iParams)
    set_string(1, g_szPrefix, get_param(2))
    
public _GetVipFlags(iPlugin, iParams)
    set_string(1, g_szFlags, get_param(2))
    
public bool:_VipFlagsActive(iPlugin, iParams)
    return g_szFlags[0] == EOS ? false : true
    
public bool:_UsingCsstats(iPlugin, iParams)
{
    #if defined USE_CSSTATS
        return true
    #else
        return false
    #endif
}

public bool:_UsingHud(iPlugin, iParams)
{
    #if defined USE_HUD
        return true
    #else    
        return false
    #endif
}

public bool:_UsingSteam(iPlugin, iParams)
{
    #if defined USE_STEAM
        return true
    #else
        return false
    #endif
}

public bool:_UsingQuickSave(iPlugin, iParams)
{
    #if defined QUICK_SAVE
        return true
    #else
        return false
    #endif
}

public client_authorized(id)
{
    #if defined USE_CSSTATS
        set_task(5.0, "authorizePlayer", id)
    #else
        updateUserFlags(id)
    #endif
}

public authorizePlayer(id)
    if(is_user_vip(id))
        updateUserFlags(id)
    
public client_connect(id)
{
    #if !defined USE_CSSTATS
        #if defined USE_STEAM
            if(steam_valid(id))
            {
                new szInfo[35]
                get_save_info(id, szInfo, charsmax(szInfo))
                LoadData(id, szInfo)
            }
        #else
        {
            new szInfo[35]
            get_save_info(id, szInfo, charsmax(szInfo))
            LoadData(id, szInfo)
        }
        #endif
    #endif
}

public client_disconnect(id)
{
    #if !defined USE_CSSTATS
        #if defined USE_STEAM
            if(steam_valid(id))
            {
                new szInfo[35]
                get_save_info(id, szInfo, charsmax(szInfo))
                SaveData(id, szInfo)
            }
        #else
        {
            new szInfo[35]
            get_save_info(id, szInfo, charsmax(szInfo))
            SaveData(id, szInfo)
        }
        #endif
    #endif
}
    
#if !defined USE_CSSTATS
    SaveData(id, szInfo[])
    {
        new szKills[10]
        num_to_str(g_iKills[id], szKills, charsmax(szKills))
        nvault_set(g_iVault, szInfo, szKills)
    }

    LoadData(id, szInfo[])
    {
        new szKills[10]
        nvault_get(g_iVault, szInfo, szKills, charsmax(szKills))
        g_iKills[id] = str_to_num(szKills)
    }
    
    #if !defined USE_STEAM
        public client_infochanged(id)
        {
            new szNewName[32], szOldName[32]
            get_user_info(id, "name", szNewName, charsmax(szNewName))
            get_user_name(id, szOldName, charsmax(szOldName))
            
            if(!equal(szNewName, szOldName))
            {
                SaveData(id, szOldName)
                LoadData(id, szNewName)
            }
        }
    #endif
#endif

public plugin_end()
{
    #if !defined USE_CSSTATS
        nvault_close(g_iVault)
    #endif
}

public eventPlayerSpawn(id)
{
    #if defined USE_HUD
        if(!is_user_vip(id) && is_user_alive(id))
        {
            set_hudmessage(HUD_COLOR_RED, HUD_COLOR_GREEN, HUD_COLOR_BLUE, HUD_POSITION_X, HUD_POSITION_Y, HUD_EFFECTS, HUD_FXTIME, HUD_HOLDTIME, HUD_FADEINTIME, HUD_FADEOUTTIME, HUD_CHANNEL)
            show_hudmessage(id, "Reach %i kills to get VIP extras!^nYou currently have %i.", g_iNeededKills, get_frags_total(id))
        }
    #endif
}

public restartAll(id, level, cid)
{
    if(!cmd_access(id, level, cid, 0))
        return PLUGIN_HANDLED

    new szName[32], iPlayers[32], iPnum
    get_user_name(id, szName, charsmax(szName))
    get_players(iPlayers, iPnum)
    
    #if !defined USE_CSSTATS
        nvault_clear(g_iVault)
    #endif
    
    for(new i; i < iPnum; i++)
        g_iKills[iPlayers[i]] = 0
        
    ColorChat(0, TEAM_COLOR, "%s ^3%s ^1has deleted all ^4becomeVIP data^1. The stats are now ^3restarted^1.", g_szPrefix, szName)
    client_print(id, print_console, "%s Data cleared successfully!", g_szPrefix)
    log_amx("%s has deleted all becomeVIP data", szName)
    return PLUGIN_HANDLED
}

public restartPlayer(id, level, cid)
{
    if(!cmd_access(id, level, cid, 2))
        return PLUGIN_HANDLED

    new szArg[32], szName[32], szName2[32]
    get_user_name(id, szName, charsmax(szName))
    read_argv(1, szArg, charsmax(szArg))
    new iPlayer = cmd_target(id, szArg, 3)
    
    if(!iPlayer)
        return PLUGIN_HANDLED
    
    g_iKills[iPlayer] = 0
    get_user_name(iPlayer, szName2, charsmax(szName2))
    ColorChat(0, TEAM_COLOR, "%s ^1ADMIN ^3%s ^1restarted ^3%s^1's becomeVIP data.", g_szPrefix, szName, szName2)
    client_print(id, print_console, "%s You have restarted %s's becomeVIP data.", g_szPrefix, szName2)
    log_amx("%s restarted %s's becomeVIP data", szName, szName2)
    return PLUGIN_HANDLED
}
    
public cmdKills(id)
{
    #if defined USE_STEAM
        if(!steam_valid(id))
        {
            ColorChat(id, TEAM_COLOR, "%s Only players with a valid ^3SteamID ^1can use this option (^4Protocol 47/48^1).", g_szPrefix)
            return PLUGIN_HANDLED
        }
    #endif
    
    if(is_user_vip(id)) ColorChat(id, TEAM_COLOR, "%s You have the required number of kills (^4%i/%i^1), thus you get ^3free VIP extras^1.", g_szPrefix, get_frags_total(id), g_iNeededKills)
    else
    {
        if(g_iFlags) ColorChat(id, TEAM_COLOR, "%s You need ^4%i ^1more kills (^3current: ^4%i^1) to get the following ^3VIP flag(s)^1: ^4%s", g_szPrefix, get_frags_left(id), get_frags_total(id), g_szFlags)
        else ColorChat(id, TEAM_COLOR, "%s You need ^4%i ^1more kills (^3current: ^4%i^1) to get ^3VIP extras", g_szPrefix, get_frags_left(id), get_frags_total(id))
    }
    return PLUGIN_HANDLED
}
    
public eventPlayerKilled()
{
    new iKiller = read_data(1), iVictim = read_data(2)
    
    if(!is_user_connected(iKiller) || !is_user_connected(iVictim) || iKiller == iVictim)
        return
        
    #if defined USE_STEAM
        if(!steam_valid(iKiller))
            return
    #endif
        
    #if !defined USE_CSSTATS
        g_iKills[iKiller]++
    #else
        #if defined QUICK_SAVE
        {
            new szInfo[35]
            get_save_info(iKiller, szInfo, charsmax(szInfo))
            SaveData(iKiller, szInfo)
        }
        #endif
    #endif
    
    if(get_frags_total(iKiller) == g_iNeededKills)
    {
        new szName[32]
        get_user_name(iKiller, szName, charsmax(szName))
        ColorChat(0, TEAM_COLOR, "%s ^3%s ^1has killed ^4%i players ^1and received ^3free VIP extras^1!", g_szPrefix, szName, g_iNeededKills)
        updateUserFlags(iKiller)
    }
}

updateUserFlags(id)
{
    #if defined USE_STEAM
        if(!steam_valid(id))
            return
    #endif
    
    if(is_user_vip(id))
    {
        set_user_flags(id, g_iFlags)
        remove_user_flags(id, g_iFlagZ)
    }
}

get_frags_total(id)
{
    #if defined USE_CSSTATS
        new iStats[8], iHits[8]
        get_user_stats(id, iStats, iHits)
        return iStats[0]
    #else
        return g_iKills[id]
    #endif
}

get_frags_left(id)
    return g_iNeededKills - get_frags_total(id)

bool:is_user_vip(id)
    return get_frags_total(id) >= g_iNeededKills ? true : false
    
#if defined USE_STEAM
    bool:steam_valid(id)
    {
        new szAuthId[35]
        get_user_authid(id, szAuthId, charsmax(szAuthId))
        
        if(!equali(szAuthId, "STEAM_", 6) || equal(szAuthId, "STEAM_ID_LAN") || equal(szAuthId, "STEAM_ID_PENDING"))
            return false
        
        return true
    }
#endif
Последно промяна от OciXCrom на 26 Дек 2016, 16:11, променено общо 1 път.
Причина: Чети заглавията на разделите!!!
Изображение

Аватар
cgozzie
Извън линия
Потребител
Потребител
Мнения: 1318
Регистриран на: 13 Окт 2016, 22:10
Местоположение: Варна
Се отблагодари: 244 пъти
Получена благодарност: 42 пъти

Re: Become VIP Plus

Мнение от cgozzie » 26 Дек 2016, 17:33

МНЕНИЕТО Е СКРИТО ОТ СТРАНА НА МОДЕРАТОР! ЦЪКНИ ВЪРХУ ЛЕНТАТА ЗА ДА ГО ПРЕГЛЕДАШ.
Последно промяна от OciXCrom на 26 Дек 2016, 18:05, променено общо 1 път.
Причина: Ако не видя темата е преместена?
Изображение

Аватар
cgozzie
Извън линия
Потребител
Потребител
Мнения: 1318
Регистриран на: 13 Окт 2016, 22:10
Местоположение: Варна
Се отблагодари: 244 пъти
Получена благодарност: 42 пъти

Re: Become VIP Plus

Мнение от cgozzie » 28 Дек 2016, 13:27

Намерих тази версия на pro_become_vip единственото което ме интересува от него е че вътре има Expire days може ли само него да го нагласите в горния плъгин като опция.

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

#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_disconnect(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);
}
Изображение

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

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

Кой е на линия

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