Nvault настройка автоматически включено

Сообщения
17
Реакции
-1
Помог
2 раз(а)
Недопустимый заголовок темы
есть плагин вип меню

там есть авто выдача диглга вкл/выкл

по дефолту выключена

как сделать что бы по дефолту включить

сохранение по nvault

чтобы автоматический вкл после игрок что бы мог отключить

Код:
#define PLUGIN        "VIP Account Additions"

#define AUTHOR        "ill(+wopox)"

#define VERSION        "2.23a4"



#include <amxmodx>

#include <amxmisc>

#include <hamsandwich>

#include <fakemeta>

#include <fun>

#include <cstrike>

#include <nvault>

#include <adminload>



#if AMXX_VERSION_NUM >= 183

    #define client_disconnect client_disconnected

#endif



/* НАСТРОЙКА ПЛАГИНА **********************/      



#define VIP_LEVEL         ADMIN_LEVEL_H

#define ADMIN_LEVEL     ADMIN_BAN  

#define GIRL_LEVEL         ADMIN_LEVEL_G

       

#define CONNECTVIPNOTICE                     // Оповещение, при заходе VIP игрока

#if defined CONNECTVIPNOTICE

    #define SOUND_CONNECT                     // Использоват ли звук при оповещении. Закомментируйте, если не нужно.

#endif



//#define MONEY_BONUS                         // Выдача денежного бонуса VIP игрокам. Закомментируйте, если не нужно.



#define VIPSTARTROUND     1                     // С какого раунда начнёт работать меню и действовать выдача VIP дополнений (Броня, гранаты, щипцы)

#define AUTOMINROUND     2                    // С какого раунда можно брать автоматы

#define AWPM249MINROUND 3                     // С какого раунда можно брать AWP, M249

#define OPENMENUROUND     2                     // С какого раунда открывать меню



#define INFORMERS                             // Автоответичики MOTD (/vipka, /adminka)

#define TABVIPSHOW                             // Включить показ VIP флага в таблице счёта (TAB)

#define DELETEDROP                             // Удаление дропа (скорострелки, AWP) от VIP игроков

#define VAMPIRE                             // Прибавление HP при убийстве противника

#if defined VAMPIRE

    #define VAMPIRE_MESSAGE_POS            1.0, 0.8                // Позиция сообщении о прибавке HP.

    #define VAMPIRE_MESSAGE_COLOR        0, 255, 0                // Цвет сообщения, информера HP. Тип цвета RGB, http://www.colorschemer.com/online.html

#endif



//#define USECONFIG "vip.cfg"                     // Использовать ли конфиг для плагина



#define IMPULSEHOOKID     100                // Функция отображения меню на "F"

#if defined IMPULSEHOOKID

    #include <engine>

#endif



//#define GIRLARMOR 200                         // Выдача дополнительного ARMOR девушкам

        /* НАСТРОЙКА ПЛАГИНА **********************/



#define isVIP(%1)            (get_user_flags(%1) & VIP_LEVEL)

#define isGIRL(%1)            (get_user_flags(%1) & GIRL_LEVEL)



#if defined SOUND_CONNECT

new const sound_vip[] = { "sound/vip_connect.mp3" }  // путь к вашему звуку приветствия VIP (.mp3)

#endif



#define PDATA_SAFE 2

#define m_iAccount 115



const KEYSMENU = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0

const PRIMARY_WEAPONS_BIT_SUM =

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

const SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|

(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE)

new const MAXBPAMMO[] = { -1, 52, -1, 90, 1, 32, 1, 100, 90, 1, 120, 100, 100, 90, 90, 90, 100, 120,

            30, 120, 200, 32, 90, 120, 90, 2, 35, 90, 90, -1, 100 }

new const AMMOTYPE[][] = { "", "357sig", "", "762nato", "", "buckshot", "", "45acp", "556nato", "", "9mm", "57mm", "45acp",

            "556nato", "556nato", "556nato", "45acp", "9mm", "338magnum", "9mm", "556natobox", "buckshot",

            "556nato", "9mm", "762nato", "", "50ae", "556nato", "762nato", "", "57mm" }





new g_maxplayers, g_msgSayText, g_HudSync



new round_count

#if defined VAMPIRE

new cvar_kill_hp, cvar_kill_hs, cvar_kill_hp_max

#endif

new cvar_dgl, cvar_he, cvar_fl, cvar_sm, cvar_armor, cvar_dmg, cvar_menu_auto, cvar_menu_def, cvar_maxtime

#if defined MONEY_BONUS

new cvar_moneybonus, cvar_Maxmoneybonus

#endif

new cvar_take_secondary, cvar_take_primary

new g_take_pistol[33]

new g_take_autom[33]

new g_auto_dgl[33], g_auto_menu[33]

new g_damager[33]

new g_Save

new g_iRoundStart

new bool:g_ViewMenu[33]

new bool:g_EditMenu[33]

new bool:g_bLoadAuth = false;



public plugin_init()

{

    register_plugin(PLUGIN, VERSION, AUTHOR)

    #if defined TABVIPSHOW

    register_message( get_user_msgid ("ScoreAttrib"), "msg_ScoreAttrib" )

    #endif

    register_clcmd("vipmenu", "press_wm")                         // Команда для вызова VIP меню

    register_clcmd("say /vipmenu", "press_wm")

    #if defined IMPULSEHOOKID

    register_impulse(IMPULSEHOOKID, "press_wm")                    // Меню на F

    #endif  

    #if defined INFORMERS                                      

    register_clcmd("say /vip", "vip_motd")                     // Команда для вызова Окна продажи VIP прав

    register_clcmd("say /admin", "admin_motd")                 // Команда для вызова Окна продажи Админских прав

    #endif                                                    

    register_clcmd("say /dgl",         "take_dgl")                 // Команда выдачи в чат Deagle

    register_clcmd("say /usp",         "take_usp")                 // Команда выдачи в чат USP

    register_clcmd("say /glk",         "take_glk")                 // Команда выдачи в чат Glock18

    register_clcmd("say /five",     "take_five")                // Команда выдачи в чат FiveSeven

    register_clcmd("say /ak47",     "take_ak47")                // Команда выдачи в чат AK-47

    register_clcmd("say /m4a1",     "take_m4a1")                // Команда выдачи в чат M4A1

    register_clcmd("say /famas",     "take_famas")               // Команда выдачи в чат FAMAS

    register_clcmd("say /galil",     "take_galil")               // Команда выдачи в чат GALIL

    register_clcmd("say /awp",         "take_awp")                 // Команда выдачи в чат AWP

    register_clcmd("say /m249",     "take_m249")                 // Команда выдачи в чат AWP

    #if defined USECONFIG

    register_clcmd("vip_load",         "load_config", ADMIN_RCON, "Load the VIP plugin config")     // Команда подгрузки конфига

    #endif

   

    register_menu("VIP Weapon", KEYSMENU, "weapon_menu")

   

    register_event("HLTV", "RoundStart", "a", "1=0", "2=0")

    register_event("TextMsg", "RoundRestart", "a", "2=#Game_Commencing", "2=#Game_will_restart_in")

    register_event("Damage", "damage_message", "b", "2!0", "3=0", "4!0")

    #if defined VAMPIRE

    register_event("DeathMsg", "on_death", "a", "1>0")

    #endif

    #if defined MODEL_WEAPONS

    register_event("CurWeapon","CurrentWeapon","be","1=1")

    #endif

   

    RegisterHam(Ham_Spawn, "player", "fw_SpawnPost", 1)

    #if defined DELETEDROP

    register_forward(FM_SetModel, "fw_SetModel")

    #endif

    #if defined VAMPIRE

    cvar_kill_hp_max =     register_cvar("vip_bonus_hpmax", "100")         // Максимальное HP игрока

    cvar_kill_hp =         register_cvar("vip_bonus_hp", "10")             // Прибавка указанного HP за убийство в тело

    cvar_kill_hs =         register_cvar("vip_bonus_hp_hs", "15")        // Прибавка указанного HP за убийство в голову

    #endif

    cvar_dgl = register_cvar("vip_dgl", "1")                     // Функция получения:     Deagle

    cvar_he = register_cvar("vip_he", "1")                         //                         HE

    cvar_fl = register_cvar("vip_fb", "2")                         //                         FB *2 (Максимум 2 флешки)

    cvar_sm = register_cvar("vip_sg", "1")                         //                         SG

    cvar_armor = register_cvar("vip_armor", "100")                 //                         Брони (количество от 0 до 999)

    cvar_dmg = register_cvar("vip_dmg", "1")                     // Функция дамагера

    cvar_menu_auto = register_cvar("vip_menu_set", "1")         // Функция автопоказа VIPменю

    cvar_menu_def = register_cvar("vip_menu_def", "0")          // Автопоказ VIPmenu включен по стандарту

    cvar_take_secondary = register_cvar("vip_take_secondary", "2")        // Сколько раз за раунд можно взять оружие из 2 слота из VIPmenu

    cvar_take_primary = register_cvar("vip_take_primary", "2")          // Сколько раз за раунд можно взять оружие из 1 слота из VIPmenu

    cvar_maxtime = register_cvar("vip_take_maxtime", "120")               // Сколько времени от начала раунда можно брать оружие из VIPменю (секунд)

    #if defined MONEY_BONUS

    cvar_moneybonus = register_cvar("vip_bonus_money", "0")     // Количество бонусных денег. (0 - отключить)

    cvar_Maxmoneybonus = register_cvar("vip_bonus_moneymax", "3000")    // Если у игрока на счету больше чем значение данного макроса, то ему выдаваться деньги не будут.

    #endif

    register_cvar ("vip_version", VERSION, FCVAR_SERVER | FCVAR_SPONLY)

   

    g_maxplayers = get_maxplayers()

    g_msgSayText = get_user_msgid("SayText")

    g_HudSync = CreateHudSyncObj()

    g_Save = nvault_open("vip_settings")

    #if defined USECONFIG

    load_config()

    #endif

}



#if defined TABVIPSHOW

public msg_ScoreAttrib( msg_id, msg_dest, receiver ) {

    #define ARG_PlayerID    1

    #define ARG_Flags       2

    #define SCOREBOARD_VIP  (1 << 2)



    if( get_user_flags( get_msg_arg_int(ARG_PlayerID) ) & VIP_LEVEL )

        set_msg_arg_int( ARG_Flags, ARG_BYTE, get_msg_arg_int(ARG_Flags) | SCOREBOARD_VIP )

}

#endif



#if defined USECONFIG

public load_config()

{

    static g_ConfigsDir[64], g_FileName[256]

    get_configsdir(g_ConfigsDir, charsmax(g_ConfigsDir))

    format(g_FileName, 255, "%s/%s",g_ConfigsDir ,USECONFIG)

    if(!file_exists(g_FileName))

    {

        server_print("[WARN] VIP Account: config %s/%s no exist!",g_ConfigsDir ,USECONFIG)

        return

    }

    server_cmd("exec %s/%s", g_ConfigsDir, USECONFIG)

    //server_print("VIP Account %s Loaded", VERSION)

}

#endif



public plugin_precache()

{

#if defined SOUND_CONNECT

    precache_generic(sound_vip)

    #endif

}



public plugin_natives()

{

    register_native("vip_auto_deagle", "native_vip_auto_deagle", 1)

}



public adminload_loaded()

{

    g_bLoadAuth = true;

}



public native_vip_auto_deagle(id)

{

    if(!isVIP(id))

        return PLUGIN_HANDLED

       

    return g_auto_dgl[id]

}



public RoundStart()

{

    round_count++



    for(new id = 1; id <= g_maxplayers; id++)

    {

        g_take_pistol[id] = 0

        g_take_autom[id] = 0

    }



    g_iRoundStart = get_systime()

}



public client_putinserver(id)

{

    g_auto_dgl[id] = 1

    g_damager[id] = 1

    g_auto_menu[id] = get_pcvar_num(cvar_menu_def)

    g_ViewMenu[id] = false

    g_EditMenu[id] = false



    if(g_bLoadAuth)

    {

        ConnectVip(id);

    } else {

        set_task(random_float(3.0, 5.0), "ConnectVip", id);

    }

}



public ConnectVip(id)

{

    if(is_user_connected(id) && isVIP(id))

    {

    #if defined CONNECTVIPNOTICE

        new name[33]

        get_user_name(id, name, 32)

        colored_print(0, "^x01Подключается^x04 VIP ^x01игрок ^x04%s", name)

       

        #if defined SOUND_CONNECT

        client_cmd(0, "mp3 play ^"%s^"", sound_vip)

        #endif

    #endif



        LoadSet(id);



        return 1;

    }

    return 0;

}



public LoadSet(id)

{

    new vaultkey[64], vaultdata[256], AuthID[33]



    get_user_authid(id, AuthID, 32)

    formatex(vaultkey, 64, "%s-/", AuthID)

    nvault_get(g_Save, vaultkey, vaultdata, 255)

    replace_all(vaultdata, 255, "#", " ")



    new data[3]

    new data2[3]



    parse(vaultdata, data, 2, data2, 2)



    g_auto_dgl[id] = str_to_num(data)

    g_damager[id] = str_to_num(data2)

}



public SaveSet(id)

{

    new vaultkey[64], vaultdata[256]

   

    new AuthID[33]

    get_user_authid(id, AuthID, 32)

   

    formatex(vaultkey, 64, "%s-/", AuthID)

    format(vaultdata, 255, "%i#%i#", g_auto_dgl[id], g_damager[id])



    nvault_set(g_Save, vaultkey, vaultdata)

}



public client_disconnect(id)

{

    remove_task(id);



    if(g_EditMenu[id] == true && isVIP(id))

    {

        SaveSet(id);

    }

}



public RoundRestart(id)

{

    round_count = 0



    for(new id = 1; id <= g_maxplayers; id++)

    {

        g_take_pistol[id] = 0

        g_take_autom[id] = 0

    }

}



public RestWeaponsMsgAlive(id)     colored_print(id, "^x04[VIP]^x01 Доступно только когда вы живы.")

public RestMenuMsgMinRounds(id) colored_print(id, "^x04[VIP]^x01 Меню доступно с ^x04%d^x01 раунда, не нарушайте баланс игры!", OPENMENUROUND)

public RestWeaponsMsgAccess(id) colored_print(id, "^x04[VIP]^x01 Доступно только ^x04VIP^x01 игрокам.")

public RestWeaponsMsgTime(id)     colored_print(id, "^x04[VIP]^x01 Можно брать только в первые ^x04%d^x01 сек от начала раунда.", get_pcvar_num(cvar_maxtime))

public RestPistMsgMaxTake(id)     colored_print(id, "^x04[VIP]^x01 Пистолеты доступны только ^x04%d^x01 раза за раунд.", get_pcvar_num(cvar_take_secondary))

public RestAutomMsgMinRound(id) colored_print(id, "^x04[VIP]^x01 Автоматы доступны с ^x04%d^x01 рануда.", AUTOMINROUND)

public RestAutomMsgMaxTake(id)     colored_print(id, "^x04[VIP]^x01 Автоматы доступны только ^x04%d^x01 раз за раунд.", get_pcvar_num(cvar_take_primary))

public RestAWPMsgMinRound(id)     colored_print(id, "^x04[VIP]^x01 Доступно только с ^x04%d^x01 раунда.", AWPM249MINROUND)

public RestAWPMsgMaxTake(id)     colored_print(id, "^x04[VIP]^x01 AWP и M249 доступны только ^x04%d^x01 раз за раунд.", get_pcvar_num(cvar_take_primary))



public take_dgl(id)

{

    if(!isVIP(id))

    {

        RestWeaponsMsgAccess(id)

        return PLUGIN_HANDLED

    }  

    if(g_take_pistol[id] == get_pcvar_num(cvar_take_secondary))

    {

        RestPistMsgMaxTake(id)

        return PLUGIN_HANDLED

    }

    if(get_systime() - g_iRoundStart > get_pcvar_num(cvar_maxtime))

    {

        RestWeaponsMsgTime(id)

        return PLUGIN_HANDLED

    }

   

    if(!user_has_weapon(id, CSW_DEAGLE))

    {

        drop_weapons(id, 2)

        give_item(id,"weapon_deagle")

    }

    cs_set_user_bpammo(id, CSW_DEAGLE, 35)

   

    g_take_pistol[id]++

   

    return PLUGIN_HANDLED

}



public take_usp(id)

{

    if(!isVIP(id))

    {

        RestWeaponsMsgAccess(id)

        return PLUGIN_HANDLED

    }  

    if(g_take_pistol[id] == get_pcvar_num(cvar_take_secondary))

    {

        RestPistMsgMaxTake(id)

        return PLUGIN_HANDLED

    }

    if(get_systime() - g_iRoundStart > get_pcvar_num(cvar_maxtime))

    {

        RestWeaponsMsgTime(id)

        return PLUGIN_HANDLED

    }

   

    if(!user_has_weapon(id, CSW_USP))

    {

        drop_weapons(id, 2)

        give_item(id,"weapon_usp")

    }

    cs_set_user_bpammo(id, CSW_USP, 120)

   

    g_take_pistol[id]++

   

    return PLUGIN_HANDLED

}



public take_glk(id)

{

    if(!isVIP(id))

    {

        RestWeaponsMsgAccess(id)

        return PLUGIN_HANDLED

    }  

    if(g_take_pistol[id] == get_pcvar_num(cvar_take_secondary))

    {

        RestPistMsgMaxTake(id)

        return PLUGIN_HANDLED

    }

    if(get_systime() - g_iRoundStart > get_pcvar_num(cvar_maxtime))

    {

        RestWeaponsMsgTime(id)

        return PLUGIN_HANDLED

    }

    if(!user_has_weapon(id, CSW_GLOCK18))

    {

        drop_weapons(id, 2)

        give_item(id,"weapon_glock18")

    }

    cs_set_user_bpammo(id, CSW_GLOCK18, 120)

   

    g_take_pistol[id]++

   

    return PLUGIN_HANDLED

}



public take_five(id)

{

    if(!isVIP(id))

    {

        RestWeaponsMsgAccess(id)

        return PLUGIN_HANDLED

    }  

    if(g_take_pistol[id] == get_pcvar_num(cvar_take_secondary))

    {

        RestPistMsgMaxTake(id)

        return PLUGIN_HANDLED

    }

    if(!user_has_weapon(id, CSW_FIVESEVEN))

    {

        drop_weapons(id, 2)

        give_item(id,"weapon_fiveseven")

    }

    cs_set_user_bpammo(id, CSW_FIVESEVEN, 120)

   

    g_take_pistol[id]++

   

    return PLUGIN_HANDLED

}



public take_ak47(id)

{

    if(!isVIP(id))

    {

        RestWeaponsMsgAccess(id)

        return PLUGIN_HANDLED

    }

   

    if(round_count < AUTOMINROUND)

    {

        RestAutomMsgMinRound(id)

        return PLUGIN_HANDLED

    }

   

    if(g_take_autom[id] >= get_pcvar_num(cvar_take_primary))

    {

        RestAutomMsgMaxTake(id)

        return PLUGIN_HANDLED

    }

   

    if(get_systime() - g_iRoundStart > get_pcvar_num(cvar_maxtime))

    {

        RestWeaponsMsgTime(id)

        return PLUGIN_HANDLED

    }

    if(!user_has_weapon(id, CSW_AK47))

    {

        drop_weapons(id, 1)

        give_item(id,"weapon_ak47")

    }

    cs_set_user_bpammo(id, CSW_AK47, 90)

   

    g_take_autom[id]++

   

    return PLUGIN_HANDLED

}



public take_m4a1(id)

{

    if(!isVIP(id))

    {

        RestWeaponsMsgAccess(id)

        return PLUGIN_HANDLED

    }

   

    if(round_count < AUTOMINROUND)

    {

        RestAutomMsgMinRound(id)

        return PLUGIN_HANDLED

    }

   

    if(g_take_autom[id] >= get_pcvar_num(cvar_take_primary))

    {

        RestAutomMsgMaxTake(id)

        return PLUGIN_HANDLED

    }

    if(get_systime() - g_iRoundStart > get_pcvar_num(cvar_maxtime))

    {

        RestWeaponsMsgTime(id)

        return PLUGIN_HANDLED

    }

    if(!user_has_weapon(id, CSW_M4A1))

    {

        drop_weapons(id, 1)

        give_item(id,"weapon_m4a1")

    }

    cs_set_user_bpammo(id, CSW_M4A1, 90)

   

    g_take_autom[id]++

   

    return PLUGIN_HANDLED

}



public take_famas(id)

{

    if(!isVIP(id))

    {

        RestWeaponsMsgAccess(id)

        return PLUGIN_HANDLED

    }

   

    if(round_count < AUTOMINROUND)

    {

        RestAutomMsgMinRound(id)

        return PLUGIN_HANDLED

    }

   

    if(g_take_autom[id] >= get_pcvar_num(cvar_take_primary))

    {

        RestAutomMsgMaxTake(id)

        return PLUGIN_HANDLED

    }

    if(get_systime() - g_iRoundStart > get_pcvar_num(cvar_maxtime))

    {

        RestWeaponsMsgTime(id)

        return PLUGIN_HANDLED

    }

    if(!user_has_weapon(id, CSW_FAMAS))

    {

        drop_weapons(id, 1)

        give_item(id,"weapon_famas")

    }

    cs_set_user_bpammo(id, CSW_FAMAS, 90)

   

    g_take_autom[id]++

   

    return PLUGIN_HANDLED

}



public take_galil(id)

{

    if(!isVIP(id))

    {

        RestWeaponsMsgAccess(id)

        return PLUGIN_HANDLED

    }

   

    if(round_count < AUTOMINROUND)

    {

        RestAutomMsgMinRound(id)

        return PLUGIN_HANDLED

    }

   

    if(g_take_autom[id] >= get_pcvar_num(cvar_take_primary))

    {

        RestAutomMsgMaxTake(id)

        return PLUGIN_HANDLED

    }

    if(get_systime() - g_iRoundStart > get_pcvar_num(cvar_maxtime))

    {

        RestWeaponsMsgTime(id)

        return PLUGIN_HANDLED

    }

    if(!user_has_weapon(id, CSW_GALIL))

    {

        drop_weapons(id, 1)

        give_item(id,"weapon_galil")

    }

    cs_set_user_bpammo(id, CSW_GALIL, 90)

   

    g_take_autom[id]++

   

    return PLUGIN_HANDLED

}



public take_awp(id)

{

    if(!isVIP(id))

    {

        RestWeaponsMsgAccess(id)

        return PLUGIN_HANDLED

    }

   

    if(round_count < AWPM249MINROUND)

    {

        RestAWPMsgMinRound(id)

        return PLUGIN_HANDLED

    }

   

    if(g_take_autom[id] == get_pcvar_num(cvar_take_primary))

    {

        RestAWPMsgMaxTake(id)

        return PLUGIN_HANDLED

    }

    if(get_systime() - g_iRoundStart > get_pcvar_num(cvar_maxtime))

    {

        RestWeaponsMsgTime(id)

        return PLUGIN_HANDLED

    }

    if(!user_has_weapon(id, CSW_AWP))

    {

        drop_weapons(id, 1)

        give_item(id,"weapon_awp")

    }

    cs_set_user_bpammo(id, CSW_AWP, 30)

   

    g_take_autom[id]++

   

    return PLUGIN_HANDLED

}



public take_m249(id)

{

    if(!isVIP(id))

    {

        RestWeaponsMsgAccess(id)

        return PLUGIN_HANDLED

    }

   

    if(round_count < AWPM249MINROUND)

    {

        RestAWPMsgMinRound(id)

        return PLUGIN_HANDLED

    }

   

    if(g_take_autom[id] == get_pcvar_num(cvar_take_primary))

    {

        RestAWPMsgMaxTake(id)

        return PLUGIN_HANDLED

    }

    if(get_systime() - g_iRoundStart > get_pcvar_num(cvar_maxtime))

    {

        RestWeaponsMsgTime(id)

        return PLUGIN_HANDLED

    }

    if(!user_has_weapon(id, CSW_M249))

    {

        drop_weapons(id, 1)

        give_item(id,"weapon_m249")

    }

    cs_set_user_bpammo(id, CSW_M249, 200)

   

    g_take_autom[id]++

   

    return PLUGIN_HANDLED

}



public fw_SpawnPost(id)

{

    if(!is_user_alive(id))

        return

   

    if(isVIP(id))

    {

        if(round_count >= VIPSTARTROUND)

        {

            if(get_pcvar_num(cvar_he)) give_item(id, "weapon_hegrenade")          



            if(get_pcvar_num(cvar_fl))

            {

                give_item(id, "weapon_flashbang")

                if(get_pcvar_num(cvar_fl) > 1) give_item(id, "weapon_flashbang")

            }

            if(get_pcvar_num(cvar_sm)) give_item(id, "weapon_smokegrenade")

           

            new iCvArmorValue = get_pcvar_num(cvar_armor)

            if(0 < iCvArmorValue < 1000)

            {

                #if defined GIRLARMOR

                if(isGIRL(id))

                    cs_set_user_armor(id, GIRLARMOR, CS_ARMOR_VESTHELM)

                else

                #endif

                cs_set_user_armor(id, iCvArmorValue, CS_ARMOR_VESTHELM)

            }

            if(get_user_team(id) == 2)

                give_item(id, "item_thighpack")

            #if defined MONEY_BONUS

            new iCvMoneyValue = get_pcvar_num(cvar_moneybonus)

            if(0 < iCvMoneyValue && round_count != 1)

            {

                new iMoney = cs_get_user_money(id)

                new iCvMaxMoneyValue = get_pcvar_num(cvar_Maxmoneybonus)

                if(iMoney < iCvMaxMoneyValue)

                {

                    cs_set_user_money(id, iMoney + iCvMoneyValue)  

                }

            }

            #endif

        }

       

        if(get_pcvar_num(cvar_dgl) && g_auto_dgl[id])

        {

            if(!user_has_weapon(id, CSW_DEAGLE))

            {

                drop_weapons(id, 2)

                give_item(id,"weapon_deagle")

            }

            cs_set_user_bpammo(id, CSW_DEAGLE, 35)

        }

       

        if(get_pcvar_num(cvar_menu_auto) && g_auto_menu[id] && round_count >= OPENMENUROUND)

        {

            show_weapons_menu(id)

        }

    }

}



public givebpammo(id)

{

    if (!is_user_alive(id)) return PLUGIN_HANDLED;



    static weapons[32], num, i, currentammo, weaponid, refilled

    num = 0

    refilled = false

    get_user_weapons(id, weapons, num)

     

    for (i = 0; i < num; i++)

    {

        weaponid = weapons[i]            

       

        if (MAXBPAMMO[weaponid] > 2)

        {

            currentammo = cs_get_user_bpammo(id, weaponid)

            ExecuteHamB(Ham_GiveAmmo, id, MAXBPAMMO[weaponid], AMMOTYPE[weaponid], MAXBPAMMO[weaponid])

            if (cs_get_user_bpammo(id, weaponid) - currentammo > 0) refilled = true

        }

    }

     

    if (!refilled) return PLUGIN_HANDLED;

   

    return PLUGIN_HANDLED;

}



public press_wm(id)

{

    if(!isVIP(id))

    {

        RestWeaponsMsgAccess(id)

        return PLUGIN_HANDLED

    }

   

    if(round_count < OPENMENUROUND)

    {

        RestMenuMsgMinRounds(id)

        return PLUGIN_HANDLED

    }

   

    if(g_ViewMenu[id]){

        show_menu(id, 0, "^n", 1)

        g_ViewMenu[id] = false

    }



    else if(!g_ViewMenu[id]) {

        show_weapons_menu(id)      

    }

   

    return PLUGIN_HANDLED

}



public show_weapons_menu(id)

{

    static menu[512], len, keys

    len = 0

    keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_0

   

    new exp = adminload_get_daysleft(id)

    new left[32]

   

    if(!exp)

    {

        formatex(left, charsmax(left), "\rБессрочная\w")  

    }

    else

    {

        num_to_str(exp, left, charsmax(left))

    }

   

    len += formatex(menu[len], charsmax(menu) - len, "\wВипка истекает через, дней: %s.^n^n", left)



    len += formatex(menu[len], charsmax(menu) - len, "\wВзять оружие^n")

    len += formatex(menu[len], charsmax(menu) - len, "\w1.\r[\yAK47\r]^n")

    len += formatex(menu[len], charsmax(menu) - len, "\w2.\r[\yM4A1\r]^n")

    len += formatex(menu[len], charsmax(menu) - len, "\w3.\r[\yAWP\r]^n")

    len += formatex(menu[len], charsmax(menu) - len, "\w4.\r[\yFAMAS\r]^n")

    len += formatex(menu[len], charsmax(menu) - len, "\w5.\r[\yGALIL\r]^n")

    len += formatex(menu[len], charsmax(menu) - len, "\w6.\r[\yM249\r]^n")

   

    len += formatex(menu[len], charsmax(menu) - len, "\w7.\w Авто-выдача Deagle [\r%s\w]^n", g_auto_dgl[id] == 1 ? "\yВкл" : "\rВыкл")

    if(get_pcvar_num(cvar_menu_auto))

    {

        keys += MENU_KEY_8

        len += formatex(menu[len], charsmax(menu) - len, "\w8.\w Выводить меню с оружием? [\r%s\w]^n", g_auto_menu[id] == 1 ? "\yДа" : "\rНет")

    }

    if(get_pcvar_num(cvar_dmg))

    {

        keys += MENU_KEY_9

        len += formatex(menu[len], charsmax(menu) - len, "\w9.\w Показывать урон [%s\w]^n", g_damager[id] ? (g_damager[id] == 1 ? "\yЦифры" : "\y*") : "\rНет")

    }

   

    len += formatex(menu[len], charsmax(menu) - len, "^n\w0.\r[\yВыход\r]^n")

   

    show_menu(id, keys, menu, -1, "VIP Weapon")

    g_ViewMenu[id] = true

}



public weapon_menu(id, key)

{

    if(key < 6)

    {  

        g_ViewMenu[id] = false

        if(!is_user_alive(id))

        {

            RestWeaponsMsgAlive(id)

            show_weapons_menu(id)

            return PLUGIN_HANDLED

        }

       

        if(get_systime() - g_iRoundStart > get_pcvar_num(cvar_maxtime))

        {

            RestWeaponsMsgTime(id)

            show_weapons_menu(id)

            return PLUGIN_HANDLED

        }

    }

   

    switch (key)

    {

        case 0:

        {

            if(round_count < AUTOMINROUND)

            {

                RestAutomMsgMinRound(id)

                show_weapons_menu(id)

                return PLUGIN_HANDLED

            }

            if(g_take_autom[id] >= get_pcvar_num(cvar_take_primary))

            {

                RestAutomMsgMaxTake(id)

                show_weapons_menu(id)

                return PLUGIN_HANDLED

            }

           

            drop_weapons(id, 1)

            give_item(id,"weapon_ak47")

            cs_set_user_bpammo(id, CSW_AK47, 90)

           

            g_take_autom[id]++

        }  

        case 1:

        {

            if(round_count < AUTOMINROUND)

            {

                RestAutomMsgMinRound(id)

                show_weapons_menu(id)

                return PLUGIN_HANDLED

            }

            if(g_take_autom[id] >= get_pcvar_num(cvar_take_primary))

            {

                RestAutomMsgMaxTake(id)

                show_weapons_menu(id)

                return PLUGIN_HANDLED

            }

            drop_weapons(id, 1)

            give_item(id,"weapon_m4a1")

            cs_set_user_bpammo(id, CSW_M4A1, 90)

           

            g_take_autom[id]++

        }  

        case 2:

        {  

            if(round_count < AWPM249MINROUND)

            {

                RestAWPMsgMinRound(id)

                show_weapons_menu(id)

                return PLUGIN_HANDLED

            }

            if(g_take_autom[id] == get_pcvar_num(cvar_take_primary))

            {

                RestAWPMsgMaxTake(id)

                show_weapons_menu(id)

                return PLUGIN_HANDLED

            }

           

            drop_weapons(id, 1)

            give_item(id,"weapon_awp")

            cs_set_user_bpammo(id, CSW_AWP, 30)

           

            g_take_autom[id]++

        }

        case 3:

        {

            if(round_count < AUTOMINROUND)

            {

                RestAutomMsgMinRound(id)

                show_weapons_menu(id)

                return PLUGIN_HANDLED

            }

            if(g_take_autom[id] >= get_pcvar_num(cvar_take_primary))

            {

                RestAutomMsgMaxTake(id)

                show_weapons_menu(id)

                return PLUGIN_HANDLED

            }

            drop_weapons(id, 1)

            give_item(id,"weapon_famas")

            cs_set_user_bpammo(id, CSW_FAMAS, 90)

           

            g_take_autom[id]++

        }  

        case 4:

        {

            if(round_count < AUTOMINROUND)

            {

                RestAutomMsgMinRound(id)

                show_weapons_menu(id)

                return PLUGIN_HANDLED

            }

            if(g_take_autom[id] >= get_pcvar_num(cvar_take_primary))

            {

                RestAutomMsgMaxTake(id)

                show_weapons_menu(id)

                return PLUGIN_HANDLED

            }

            drop_weapons(id, 1)

            give_item(id,"weapon_galil")

            cs_set_user_bpammo(id, CSW_GALIL, 90)

           

            g_take_autom[id]++

        }  

        case 5:

        {

            if(round_count < AWPM249MINROUND)

            {

                RestAWPMsgMinRound(id)

                show_weapons_menu(id)

                return PLUGIN_HANDLED

            }

            if(g_take_autom[id] >= get_pcvar_num(cvar_take_primary))

            {

                RestAWPMsgMaxTake(id)

                show_weapons_menu(id)

                return PLUGIN_HANDLED

            }

            drop_weapons(id, 1)

            give_item(id,"weapon_m249")

            cs_set_user_bpammo(id, CSW_M249, 200)

           

            g_take_autom[id]++

        }  

        case 6:

        {

            g_EditMenu[id] = true

            g_auto_dgl[id] == 1 ? (g_auto_dgl[id] = 0) : (g_auto_dgl[id] = 1)

            colored_print(id, "^x04[VIP]^x01 Выдача Deagle^x04 %s", g_auto_dgl[id] == 1 ? "включена" : "отключена")

           

            show_weapons_menu(id)

        }

        case 7:

        {

            g_auto_menu[id] == 1 ? (g_auto_menu[id] = 0) : (g_auto_menu[id] = 1)

            colored_print(id, "^x04[VIP]^x01 Авто-открытие меню^x04 %s", g_auto_menu[id] == 1 ? "включено" : "отключено")

           

            show_weapons_menu(id)

        }

        case 8:

        {

            g_EditMenu[id] = true

            g_damager[id]++

            g_damager[id] %= 3

           

            show_weapons_menu(id)

        }

        default: g_ViewMenu[id] = false

    }

   

    return PLUGIN_HANDLED

}



#if defined DELETEDROP

public fw_SetModel(entity, const szModel[])

{

    if(!is_valid_ent(entity))

        return FMRES_IGNORED



    if(strlen(szModel) < 8 || szModel[7] != 'w' || szModel[8] != '_')

        return FMRES_IGNORED



    if(!equal(szModel[9], "sg550", 5) && !equal(szModel[9], "g3sg1", 5) && !equal(szModel[9], "awp", 3))     /* Удаление дропа */

        return FMRES_IGNORED

   

    static id

    id = pev(entity, pev_owner)

   

    if(!isVIP(id))

        return FMRES_IGNORED

       

    static classname[10]

    pev(entity, pev_classname, classname, charsmax(classname))



    if(equal(classname, "weaponbox"))

    {

        set_pev(entity, pev_nextthink, get_gametime() + 0.1)

        return FMRES_IGNORED

    }



    return FMRES_IGNORED

}

#endif



public damage_message(id)

{

    new attacker = get_user_attacker(id), damage = read_data(2)



    if (is_user_connected(attacker) && isVIP(attacker) && get_pcvar_num(cvar_dmg))

    {

        if(g_damager[attacker] == 1)

        {

            set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)

            ShowSyncHudMsg(attacker, g_HudSync, "%i", damage)

        }

        else if(g_damager[attacker] == 2)

        {

            set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)

            ShowSyncHudMsg(attacker, g_HudSync, "*")

        }

    }

}



#if defined VAMPIRE

    #if AMXX_VERSION_NUM < 183

        #include <dhudmessage>

    #endif

public on_death()

{

    new nKiller, nKiller_hp, nHp_add, nHp_max



    nKiller = read_data(1)

   

    if(isVIP(nKiller))

    {  

        if(read_data(3) == 1 && read_data(5) == 0)

            nHp_add = get_pcvar_num(cvar_kill_hs)

        else

            nHp_add = get_pcvar_num(cvar_kill_hp)

       

        nHp_max = get_pcvar_num(cvar_kill_hp_max)

       

        nKiller_hp = get_user_health(nKiller)

        nKiller_hp += nHp_add



        if (nKiller_hp > nHp_max)

            nKiller_hp = nHp_max



        set_user_health(nKiller, nKiller_hp)

       

        if(nHp_add != 0){

            set_dhudmessage(VAMPIRE_MESSAGE_COLOR, VAMPIRE_MESSAGE_POS, 0, 0.1, 1.0, 0.05, 0.05)

            show_dhudmessage(nKiller, "+%d HP", nHp_add)

        }

    }

}

#endif

#if defined INFORMERS

public vip_motd(id)        show_motd(id, "vip.txt", "VIP")

public admin_motd(id)     show_motd(id, "admin.txt", "ADMIN")

#endif

   

stock colored_print( target, const message[],  any:... )

{

    static buffer[ 190 ]



    if( !target )

    {

        static player

        for( player = 1; player <= g_maxplayers; player++ )

        {

            if ( !is_user_connected( player ) )

        continue;



            vformat( buffer, charsmax( buffer ), message, 3 )



            message_begin( MSG_ONE_UNRELIABLE, g_msgSayText, _, player )

            write_byte( player )

            write_string( buffer )

            message_end()

        }

    }



    else

    {

    if ( !is_user_connected( target ) ) return



        vformat( buffer, charsmax( buffer ), message, 3 )



        message_begin( MSG_ONE, g_msgSayText, _, target )

        write_byte( target )

        write_string( buffer )

        message_end()

    }

}



stock drop_weapons(id, dropwhat)

{

    static weapons[32], num, i, weaponid

       

    num = 0

    get_user_weapons(id, weapons, num)

    for (i = 0; i < num; i++)

    {

        weaponid = weapons[i]

         

        if ((dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))

        {

            static wname[32]

            get_weaponname(weaponid, wname, sizeof wname - 1)

            engclient_cmd(id, "drop", wname)

        }

    }

}



public plugin_end()

{

        for(new id = 1; id <= g_maxplayers; id++)

        {

        if(g_EditMenu[id] == false) {

            continue;

        }



        if(isVIP(id)) {

            SaveSet(id);

        }



        g_EditMenu[id] = false;

    }



    nvault_close(g_Save);

}
 
Сообщения
391
Реакции
106
Помог
2 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
vip_dgl если в консоли сервера ввести, какой ответ будет?
А ты русскоязычный гражданин?
 
Сообщения
94
Реакции
11
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
ПО дефолту включить?
5 Окт 2019
Mustafa, Там настройки в меню и так сохраняются
 
Сообщения
17
Реакции
-1
Помог
2 раз(а)
я понимаю сохранение и так работает я имел ввиду
когда новый игрок заходит что бы не было необходимости
 
Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
Код:
public LoadSet(id)
{
    new vaultkey[64], vaultdata[256], AuthID[33]

    get_user_authid(id, AuthID, 32)

    formatex(vaultkey, 64, "%s-/", AuthID)
    nvault_get(g_Save, vaultkey, vaultdata, 255)
    replace_all(vaultdata, 255, "#", " ")

    new data[3]
    new data2[3]

    parse(vaultdata, data, 2, data2, 2)

    g_auto_dgl[id] = str_to_num(data)
    g_damager[id] = str_to_num(data2)
}
Вот тут смотрите
 
Сообщения
271
Реакции
348
Помог
15 раз(а)
Зачем в значение пихать строку (такую строку -%i#%i#), а потом её парсить? У нваулта же ключ есть для этого.

Код:
nvault_set(g_Save, GetKey(id, "auto_dgl"), fmt("%d", g_auto_dgl[id]));
nvault_set(g_Save, GetKey(id, "damager"), fmt("%d", g_damager[id]));

g_auto_dgl[id] = nvault_get(g_Save, GetKey(id, "auto_dgl"));
g_damager[id] = nvault_get(g_Save, GetKey(id, "damager"));

stock GetKey(id, key[])
{
    new szAuth[24]; get_user_authid(id, szAuth, charsmax(szAuth));
    new szKey[64]; formatex(szKey, charsmax(szKey), "%s_%s", szAuth, key);
    return szKey;
}
 
Сообщения
17
Реакции
-1
Помог
2 раз(а)
Зачем в значение пихать строку (такую строку -%i#%i#), а потом её парсить? У нваулта же ключ есть для этого.

Код:
nvault_set(g_Save, GetKey(id, "auto_dgl"), fmt("%d", g_auto_dgl[id]));
nvault_set(g_Save, GetKey(id, "damager"), fmt("%d", g_damager[id]));

g_auto_dgl[id] = nvault_get(g_Save, GetKey(id, "auto_dgl"));
g_damager[id] = nvault_get(g_Save, GetKey(id, "damager"));

stock GetKey(id, key[])
{
    new szAuth[24]; get_user_authid(id, szAuth, charsmax(szAuth));
    new szKey[64]; formatex(szKey, charsmax(szKey), "%s_%s", szAuth, key);
    return szKey;
}
что за код & можно поподробнее не особо знаю кодинг но есть базовая часть
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу