VIP Environment

VIP Environment 2.1.1

Нет прав для скачивания
Сообщения
723
Реакции
610
Помог
13 раз(а)
Пользователь Vaqtincha разместил новый ресурс:

VIP Environment - Гибкая vip система для вашего сервера

Универсальный плагин для выдачи VIP привилегий и бонусов, легко дополняемый нужным вам функционалом с помощью широкого API. Лёгкий по отношению к нагрузке. Все необходимые дополнения идут в комплекте.

Этот плагин должен послужить заменой абсолютно всем вип плагинам. Нет это не громкое заявление. Силами сообщества мы должны создать универсальный плагин. Подходящий для каждого. Легко дополняемый, и отлично оптимизированный.

Возможности:
  • Автоматическая выдача назначенных вами...
Узнать больше об этом ресурсе...
 
Сообщения
28
Реакции
14
А если нужно "усиленные" мку или калаш добавить, то нужно править исходник от авп без учета AWP_SWITCH_DELAY, просто поменяв модельки и WEAPON_ID оружия (не считая команды покупки, параметров услиения и т.п.)?
 
Сообщения
263
Реакции
335
Помог
4 раз(а)
BaJIepbI4, Вот пример АК (работает уже давно, сбоев нет)
PHP:
//    Copyright © 2016 Vaqtincha

//■■■■■■■■■■■■■■■■■■■■■■■ CONFIG START ■■■■■■■■■■■■■■■■■■■■■■■//
/** menu item settings */
#define WEAPON_COST             5500
new const ITEM_NAME[] = "Item PWR AK47"
new const ALIAS_CMD[] = "ak_gold"                            // alias buy command

/** other settings */
#define WEAPON_STRIP                                //

/** weapon settings */
#define WEAPON_AMMO                120                // or default bpammo
#define WEAPON_SPEED            210                // or default speed
#define WEAPON_DAMAGE            1.2                // float


/********************* for advanced users! **********************/

new const V_MODEL[] =     "models/custom/v_ak47.mdl"  // view weapon model
#define P_MODEL         "models/custom/p_ak47.mdl"  // player weapon model
#define W_MODEL         "models/custom/w_ak47.mdl"  // world weapon model

#define WEAPON_ID        CSW_AK47

//■■■■■■■■■■■■■■■■■■■■■■■■ CONFIG END ■■■■■■■■■■■■■■■■■■■■■■■■//

#define VERSION "0.0.4"

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <vip_environment>

#define IsPlayer(%1)                (1 <= (%1) <= g_iMaxPlayers)

#define SetItemActive(%1)            (g_bActiveItem |=  (1<<(%1 & 31)))
#define ClearItemActive(%1)            (g_bActiveItem &= ~(1<<(%1 & 31)))
#define IsItemActive(%1)            (g_bActiveItem &    1<<(%1 & 31))

new g_iMaxPlayers, g_bActiveItem, g_iViewModel
new g_iCustomWeaponId

#if defined P_MODEL
new g_iWeaponModel
#endif
#if defined WEAPON_SPEED
new HamHook:g_hResetSpeed
#endif

public plugin_precache()
{
    PrecacheModel(V_MODEL)
    g_iViewModel = AllocString(V_MODEL)
#if defined P_MODEL
    PrecacheModel(P_MODEL)
    g_iWeaponModel = AllocString(P_MODEL)
#endif
#if defined W_MODEL
    PrecacheModel(W_MODEL)
#endif
}

public plugin_init()
{
    register_plugin(ITEM_NAME, VERSION, "Vaqtincha")
    if(!vip_environment_loaded() || !IsAllowedMap())
    {
        pause("ad")
        return
    }

    RegisterCustomItem(ITEM_NAME[5], ALIAS_CMD, "BuyCustomWeapon", WEAPON_COST, TEAM_ALL)
    g_iCustomWeaponId = random_num(START_IMPULSE, FINITE_IMPULSE)
    
#if defined WEAPON_DAMAGE
    RegisterHam(Ham_TakeDamage, "player", "TakeDamage_Pre", false)
#endif
#if defined WEAPON_SPEED
    DisableHamForward(g_hResetSpeed = RegisterHam(Ham_CS_Player_ResetMaxSpeed, "player", "ResetMaxSpeed_Pre", false))
#endif
    RegisterHam(Ham_Item_Deploy, g_szWeaponName[WEAPON_ID], "ItemDeploy_Post", true)
#if defined WEAPON_SPEED || defined WEAPON_DAMAGE
    RegisterHam(Ham_Item_Holster, g_szWeaponName[WEAPON_ID], "ItemHolster_Post", true)
#endif
    g_iMaxPlayers = get_maxplayers()
}

public BuyCustomWeapon(id)
{
    if(UserHasCustomWeapon(id, WEAPON_ID, g_iCustomWeaponId))
    {
        client_print(id, print_center, "#Cstrike_Already_Own_Weapon")
        return PLUGIN_HANDLED
    }

    DoDropWeapon(id, WEAPON_ID)
#if defined WEAPON_AMMO
    GiveCustomWeapon(id, WEAPON_ID, g_iCustomWeaponId, WEAPON_AMMO)
#else
    GiveCustomWeapon(id, WEAPON_ID, g_iCustomWeaponId, g_iMaxBPAmmo[WEAPON_ID])
#endif

    return BUY_SUCCESS
}

public ItemDeploy_Post(wEnt)
{
    if(wEnt <=0 || GetCustomWeapon(wEnt) != g_iCustomWeaponId)
    {
        return HAM_IGNORED
    }

    new id = get_weapon_owner(wEnt)
    if(IsPlayer(id))
    {
        set_pev(id, pev_viewmodel, g_iViewModel)
    #if defined P_MODEL
        set_pev(id, pev_weaponmodel, g_iWeaponModel)
    #endif
    #if defined WEAPON_SPEED
        EnableHamForward(g_hResetSpeed)
    #endif
        SetItemActive(id)
    }
    return HAM_IGNORED
}

public ItemHolster_Post(wEnt)
{
    if(wEnt <=0 || GetCustomWeapon(wEnt) != g_iCustomWeaponId)
    {
        return HAM_IGNORED
    }
    ClearItemActive(get_weapon_owner(wEnt))
#if defined WEAPON_SPEED
    DisableHamForward(g_hResetSpeed)
#endif
    return HAM_IGNORED
}
#if defined WEAPON_SPEED
public ResetMaxSpeed_Pre(id)
{
    if(IsItemActive(id))
    {
        set_pev(id, pev_maxspeed, WEAPON_SPEED.0)
        return HAM_SUPERCEDE
    }
    return HAM_IGNORED
}
#endif
#if defined W_MODEL
public SetWeaponWorldModel(iEnt, wEnt, iImpulse, iOwner, const szModel[])
{
    if(equal(szModel[7], g_szWorldModel[WEAPON_ID]) && iImpulse == g_iCustomWeaponId)
    {
        SetModel(iEnt, W_MODEL)
        return FMRES_SUPERCEDE
    }
    return FMRES_IGNORED
}
#endif
#if defined WEAPON_DAMAGE
public TakeDamage_Pre(Victim, Inflictor, Attacker, Float:flDamage, DamageBits)
{
    if(!IsPlayer(Attacker) || ~DamageBits & DMG_BULLET)
    {
        return HAM_IGNORED
    }
    if(Attacker == Inflictor && IsItemActive(Attacker))
    {
        SetHamParamFloat(4, flDamage * WEAPON_DAMAGE)
        return HAM_HANDLED
    }
    return HAM_IGNORED
}
#endif
PHP
 
Сообщения
568
Реакции
101
Помог
6 раз(а)
Почему то пока в консоль не напишешь mainmenu оно не открывается автоматически, хотя в config прописано автоматическое открывание.
 
Сообщения
83
Реакции
42
Помог
1 раз(а)
Когда vip с правами на gold оружие подбирает обычное оружие, то оно конвертируется в gold. Это поправимо?
И вообще реально ли сделать так чтобы gold оружия возможно было взять только из vip menu?
 
Сообщения
83
Реакции
42
Помог
1 раз(а)
Vaqtincha, при покупке того же оружия m4a1 или ak47 через стандартное игровое меню, оно уже имеет кастомный скин.
26 Фев 2017
Vaqtincha, Если бы была возможность на сервере иметь обычные оружия и кастомные, при этом что бы они не конфликтовали друг с другом, плагину цены бы не было. Та же ситуация когда gold vip подбирает обычное оружие, тем самым конвертируя его в кастомное (при выбросе такого оружия кастомным и остается) огорчает. А так, за исключением данного недочёта плагин практически гениален.
 
Сообщения
723
Реакции
610
Помог
13 раз(а)
при покупке того же оружия m4a1 или ak47 через стандартное игровое меню, оно уже имеет кастомный скин.
Возм. у вас есть другой плагин скинов. Здесь нет такого "бага"
 
Сообщения
83
Реакции
42
Помог
1 раз(а)
Vaqtincha, перезалил все файлы заново, вроде все норм заработало... странно. Спасибо.
 
Сообщения
5
Реакции
1
можешь еще на м4а1 накатать голд воткну
8 Мар 2017
item_m4a1.sma
сделай такой же чтобы не мучаться )
 
Сообщения
5
Реакции
1
)) ок попробую не проблема.. в реапи наврятли получится
9 Мар 2017
хотел воспользоваться одним лишь плагинам
//■■■■■■■■■■■■■■■■■■■■■■■ CONFIG START ■■■■■■■■■■■■■■■■■■■■■■■//

#define DEFAULT_ACCESS ACCESS_BUY_MENU
// #define SHOW_MESSAGE

#define MAX_MODEL_LEN 64

new const BLOCK_MODELS[][MAX_MODEL_LEN] = {
"models/IDEAL_VIP/w_ak47.mdl",
"models/IDEAL_VIP/w_m4a1.mdl"
}

//■■■■■■■■■■■■■■■■■■■■■■■■ CONFIG END ■■■■■■■■■■■■■■■■■■■■■■■■//

#include <amxmodx>
#include <engine>
#include <vip_environment>

#define IsEntOnGround(%1) (entity_get_int(%1, EV_INT_flags) & FL_ONGROUND)

#define SetUserAccess(%1) g_bHasAccess |= 1<<(%1 & 31)
#define ClearUserAccess(%1) g_bHasAccess &= ~( 1<<(%1 & 31))
#define CheckAccess(%1) (g_bHasAccess & 1<<(%1 & 31))

new g_bHasAccess
new Trie:g_tWorldModels

public plugin_init()
{
register_plugin("Block Pickup Custom Weapon", "0.0.2", "Vaqtincha")
if(!vip_environment_loaded() || !IsAllowedMap())
{
pause("ad")
}

register_touch("weaponbox", "player", "OnWeaponboxTouch")
g_tWorldModels = TrieCreate()

for(new i = 0; i <sizeof(BLOCK_MODELS); i++)
{
TrieSetCell(g_tWorldModels, BLOCK_MODELS, i)
}
}

public ConfigReloaded()
{
new iPlayers[32], iNum, iPlayerId
get_players(iPlayers, iNum, "ch")
for(new i = 0; i < iNum; i++)
{
iPlayerId = iPlayers
if(GetUserAccess(iPlayerId) & DEFAULT_ACCESS)
{
SetUserAccess(iPlayerId)
}else{
ClearUserAccess(iPlayerId)
}
}
}

public client_putinserver(id)
{
if(!is_user_hltv(id) && GetUserAccess(id) & DEFAULT_ACCESS)
{
SetUserAccess(id)
}else{
ClearUserAccess(id)
}
}

public client_disconnect(id)
{
ClearUserAccess(id)
}

public OnWeaponboxTouch(wEnt, id)
{
if(/* !is_user_alive(id) || */ CheckAccess(id) || !IsEntOnGround(wEnt))
{
return PLUGIN_CONTINUE
}

static szModel[MAX_MODEL_LEN]
entity_get_string(wEnt, EV_SZ_model, szModel, charsmax(szModel))

if(TrieKeyExists(g_tWorldModels, szModel))
{
#if defined SHOW_MESSAGE
client_print(id, print_center, "Only VIPs!") // print_center flood 100/sec :D
#endif
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}

public plugin_end()
{
if(g_tWorldModels)
{
TrieDestroy(g_tWorldModels)
}
}


Могу объединить с идеал_вип, установив лишь только этот плагин?
прописал голд ак47 и голдм4а1 сменил название папки... где еще что ни так.. компилятор выдает ошибку
 

Вложения

Сообщения
443
Реакции
321
Помог
13 раз(а)
ютф 8 без бом
 
Сообщения
5
Реакции
1
спс бегу проверять )
9 Мар 2017
не сработало ) буду пробовать ставить полную версию этой випки.
 
Сообщения
443
Реакции
321
Помог
13 раз(а)
попробуйте для начала поменять строки местами
сначала этот выше вашей випки
а потом випку выше этого
 
Сообщения
5
Реакции
1
нетт не вышло.. я не вижу в иисходнике указанный флаг который разрешает убрать
Код:
//■■■■■■■■■■■■■■■■■■■■■■■ CONFIG START ■■■■■■■■■■■■■■■■■■■■■■■//

#define DEFAULT_ACCESS     ACCESS_BUY_MENU
// #define SHOW_MESSAGE

#define MAX_MODEL_LEN     64

new const BLOCK_MODELS[][MAX_MODEL_LEN] = {
   "models/custom/w_awp.mdl",
   "models/custom/w_deagle.mdl"
}

//■■■■■■■■■■■■■■■■■■■■■■■■ CONFIG END ■■■■■■■■■■■■■■■■■■■■■■■■//

#include <amxmodx>
#include <engine>
#include <vip_environment>

#define IsEntOnGround(%1)        (entity_get_int(%1, EV_INT_flags) & FL_ONGROUND)

#define SetUserAccess(%1)       g_bHasAccess |= 1<<(%1 & 31)
#define ClearUserAccess(%1)       g_bHasAccess &= ~( 1<<(%1 & 31))
#define CheckAccess(%1)         (g_bHasAccess &  1<<(%1 & 31))

new g_bHasAccess
new Trie:g_tWorldModels

public plugin_init()
{
   register_plugin("Block Pickup Custom Weapon", "0.0.2", "Vaqtincha")
   if(!vip_environment_loaded() || !IsAllowedMap())
   {
     pause("ad")
   }

   register_touch("weaponbox", "player", "OnWeaponboxTouch")
   g_tWorldModels = TrieCreate()

   for(new i = 0; i <sizeof(BLOCK_MODELS); i++)
   {
     TrieSetCell(g_tWorldModels, BLOCK_MODELS, i)
   }
}

public ConfigReloaded()
{
   new iPlayers[32], iNum, iPlayerId
   get_players(iPlayers, iNum, "ch")
   for(new i = 0; i < iNum; i++)
   {
     iPlayerId = iPlayers
     if(GetUserAccess(iPlayerId) & DEFAULT_ACCESS)
     {
       SetUserAccess(iPlayerId)
     }else{
       ClearUserAccess(iPlayerId)
     }
   }
}

public client_putinserver(id)
{
   if(!is_user_hltv(id) && GetUserAccess(id) & DEFAULT_ACCESS)
   {
     SetUserAccess(id)
   }else{
     ClearUserAccess(id)
   }
}

public client_disconnect(id)
{
   ClearUserAccess(id)
}

public OnWeaponboxTouch(wEnt, id)
{
   if(/* !is_user_alive(id) || */ CheckAccess(id) || !IsEntOnGround(wEnt))
   {
     return PLUGIN_CONTINUE
   }

   static szModel[MAX_MODEL_LEN]
   entity_get_string(wEnt, EV_SZ_model, szModel, charsmax(szModel))

   if(TrieKeyExists(g_tWorldModels, szModel))
   {
   #if defined SHOW_MESSAGE
     client_print(id, print_center, "Only VIPs!") // print_center flood 100/sec :D
   #endif
     return PLUGIN_HANDLED
   }
   return PLUGIN_CONTINUE
}

public plugin_end()
{
   if(g_tWorldModels)
   {
     TrieDestroy(g_tWorldModels)
   }
}
C++
9 Мар 2017
а если так
//■■■■■■■■■■■■■■■■■■■■■■■ CONFIG START ■■■■■■■■■■■■■■■■■■■■■■■//

#define DEFAULT_ACCESS ACCESS_BUY_MENU
// #define SHOW_MESSAGE

#define MAX_MODEL_LEN 64

new const BLOCK_MODELS[][MAX_MODEL_LEN] = {
"models/IDEAL_VIP/w_a47.mdl",
"models/IDEAL_VIP/w_m4a1.mdl"
}

//■■■■■■■■■■■■■■■■■■■■■■■■ CONFIG END ■■■■■■■■■■■■■■■■■■■■■■■■//

#include <amxmodx>
#include <engine>
#include <IDEAL_VIP>

#define IsEntOnGround(%1) (entity_get_int(%1, EV_INT_flags) & FL_ONGROUND)

#define SetUserAccess(%1) g_bHasAccess |= 1<<(%1 & 31)
#define ClearUserAccess(%1) g_bHasAccess &= ~( 1<<(%1 & 31))
#define CheckAccess(%1) (g_bHasAccess & 1<<(%1 & 31))

new g_bHasAccess
new Trie:g_tWorldModels

public plugin_init()
{
register_plugin("Block Pickup Custom Weapon", "0.0.2", "Vaqtincha")
if(!IDEAL_VIP_loaded() || !IsAllowedMap())
{
pause("ad")
}

register_touch("weaponbox", "player", "OnWeaponboxTouch")
g_tWorldModels = TrieCreate()

for(new i = 0; i <sizeof(BLOCK_MODELS); i++)
{
TrieSetCell(g_tWorldModels, BLOCK_MODELS, i)
}
}

public ConfigReloaded()
{
new iPlayers[32], iNum, iPlayerId
get_players(iPlayers, iNum, "ch")
for(new i = 0; i < iNum; i++)
{
iPlayerId = iPlayers
if(GetUserAccess(iPlayerId) & DEFAULT_ACCESS)
{
SetUserAccess(iPlayerId)
}else{
ClearUserAccess(iPlayerId)
}
}
}

public client_putinserver(id)
{
if(!is_user_hltv(id) && GetUserAccess(id) & DEFAULT_ACCESS)
{
SetUserAccess(id)
}else{
ClearUserAccess(id)
}
}

public client_disconnect(id)
{
ClearUserAccess(id)
}

public OnWeaponboxTouch(wEnt, id)
{
if(/* !is_user_alive(id) || */ CheckAccess(id) || !IsEntOnGround(wEnt))
{
return PLUGIN_CONTINUE
}

static szModel[MAX_MODEL_LEN]
entity_get_string(wEnt, EV_SZ_model, szModel, charsmax(szModel))

if(TrieKeyExists(g_tWorldModels, szModel))
{
#if defined SHOW_MESSAGE
client_print(id, print_center, "Only VIPs!") // print_center flood 100/sec :D
#endif
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}

public plugin_end()
{
if(g_tWorldModels)
{
TrieDestroy(g_tWorldModels)
}
}
9 Мар 2017
тоже не вышло компиляция ) с ошибками
буду ставить полностью этот vip_environment
 
Сообщения
2,752
Реакции
3,020
Помог
61 раз(а)
shelru, значит нужно по коду лучше смотреть. Там есть шаблоны
 

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

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