VIP Environment

VIP Environment 2.1.1

Нет прав для скачивания
Сообщения
513
Реакции
453
Предупреждения
17
Помог
8 раз(а)
Пользователь 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
 
Сообщения
452
Реакции
78
Помог
4 раз(а)
Почему то пока в консоль не напишешь mainmenu оно не открывается автоматически, хотя в config прописано автоматическое открывание.
 
Сообщения
83
Реакции
42
Помог
1 раз(а)
Когда vip с правами на gold оружие подбирает обычное оружие, то оно конвертируется в gold. Это поправимо?
И вообще реально ли сделать так чтобы gold оружия возможно было взять только из vip menu?
 
Сообщения
83
Реакции
42
Помог
1 раз(а)
Vaqtincha, при покупке того же оружия m4a1 или ak47 через стандартное игровое меню, оно уже имеет кастомный скин.
26 Фев 2017
Vaqtincha, Если бы была возможность на сервере иметь обычные оружия и кастомные, при этом что бы они не конфликтовали друг с другом, плагину цены бы не было. Та же ситуация когда gold vip подбирает обычное оружие, тем самым конвертируя его в кастомное (при выбросе такого оружия кастомным и остается) огорчает. А так, за исключением данного недочёта плагин практически гениален.
 
Сообщения
513
Реакции
453
Предупреждения
17
Помог
8 раз(а)
при покупке того же оружия 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
Реакции
319
Помог
13 раз(а)
ютф 8 без бом
 
Сообщения
5
Реакции
1
спс бегу проверять )
9 Мар 2017
не сработало ) буду пробовать ставить полную версию этой випки.
 
Сообщения
443
Реакции
319
Помог
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)
}
}
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,713
Реакции
2,995
Помог
59 раз(а)
shelru, значит нужно по коду лучше смотреть. Там есть шаблоны
 

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

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