Небольшая проблема с дамагером vip_custom

Сообщения
460
Реакции
68
Помог
7 раз(а)
Ошибка
Суть заключается в том что когда заходиш на сервер дамагер иногда не срабатывает но после перезахода всё работает на ура. Сам не очень розбераюсь поэтому прошу помощи.
P.S исходник подредачен под мои хотелки.
ОС
Linux
Amx Mod X
AMX Mod X 1.9.0.5249 (http://www.amxmodx.org)
Authors:
David "BAILOPAN" Anderson, Pavol "PM OnoTo" Marko
Felix "SniperBeamer" Geyer, Jonny "Got His Gun" Bergstrom
Lukasz "SidLuke" Wlasinski, Christian "Basic-Master" Hammacher
Borja "faluco" Ferrer, Scott "DS" Ehlert
Compiled: Jun 19 2019 13:31:53
Built from: https://github.com/alliedmodders/amxmodx/commit/6cecb34
Build ID: 5249:6cecb34
Core mode: JIT+ASM32
Билд
Protocol version 48
Exe version 1.1.2.7/Stdio (cstrike)
ReHLDS version: 3.6.0.672-dev
Build date: 17:31:06 Jun 5 2019 (1880)
Build from: https://github.com/dreamstalker/rehlds/commit/0c8d3d7
ReGamedll
ReGameDLL version: 5.9.0.362-dev
Build date: 20:19:32 Jun 21 2019
Build from: https://github.com/s1lentq/ReGameDLL_CS/commit/b669a39
Версия Metamod
Metamod-r v1.3.0.128, API (5:13)
Metamod-r build: 17:47:54 Aug 24 2018
Metamod-r from: https://github.com/theAsmodai/metamod-r/commit/0cf2f70
Список метамодулей
[ 1] VoiceTranscoder  RUN   -    VoiceTranscoder.so          v2017RC3        ini  ANY   ANY  
[ 2] Reunion RUN - reunion_mm_i386.so v0.1.0.92 ini Start Never
[ 3] ReAuthCheck RUN - reauthcheck_mm_i386.so v0.1.6 ini Start Never
[ 4] AMX Mod X RUN - amxmodx_mm_i386.so v1.9.0.5249 ini Start ANY
[ 5] ReSRDetector RUN - resrdetector_mm_i386.so v0.1.0 ini Chlvl ANY
[ 6] WHBlocker RUN - whblocker_mm_i386.so v1.5.696 ini Chlvl ANY
[ 7] ReSemiclip RUN - resemiclip_mm_i386.so v2.3.9 ini Chlvl ANY
[ 8] SQLite RUN - sqlite_amxx_i386.so v1.9.0.5249 pl4 ANY ANY
[ 9] Engine RUN - engine_amxx_i386.so v1.9.0.5249 pl4 ANY ANY
[10] FakeMeta RUN - fakemeta_amxx_i386.so v1.9.0.5249 pl4 ANY ANY
[11] Ham Sandwich RUN - hamsandwich_amxx_i386.so v1.9.0.5249 pl4 ANY ANY
[12] ReAPI RUN - reapi_amxx_i386.so v5.9.0.167-dev pl4 ANY Never
[13] ReAimDetector RUN - reaimdetector_amxx_i386.so v0.2.2 pl4 ANY Never
[14] SxGeo RUN - sxgeo_amxx_i386.so v2.2 pl4 ANY Never
[15] CStrike RUN - cstrike_amxx_i386.so v1.9.0.5249 pl4 ANY ANY
15 plugins, 15 running
Список плагинов
[  1] ReAimDetector API       0.2.2       ReHLDS Team       reaimdetector.a  running  
[ 2] Advanced Client Checke 0.3.6 Mistrick cmdchecker.amxx running
[ 3] CSStatsX SQL 0.7.4+2 serfreeman1337 csstatsx_sql.am running
[ 4] FreshBans 1.3.9b kanagava fresh_bans_139_ running
[ 5] ScreenMaker 1.1 neygomon screen_maker.am running
[ 6] RC BaseChanger 1.0 phe rc_basechanger. stopped
[ 7] ReChecker Logging 1.0 custom rc_logging.amxx running
[ 8] Lite Admin ESP 1.1 neygomon, AcE admin_esp_ace.a running
[ 9] Admin Base 1.9.0.5241 AMXX Dev Team admin.amxx running
[ 10] Ping Control 1.4 neygomon Ping_Control.am running
[ 11] AFK Control ReNew 1.2(a) neygomon afk_control.amx running
[ 12] AES: StatsX 0.5+1 serfreeman1337 aes_statsx_cstr running
[ 13] Stats Configuration 1.10.0.525 AMXX Dev Team statscfg.amxx running
[ 14] Advanced Gag 1.9.0 neygomon amx_gag.amxx running
[ 15] Advanced MapChooser 1.4 neygomon map_chooser.amx running
[ 16] [ReAPI] No Team Flash 0.0.2 Vaqtincha no_team_flash.a running
[ 17] Items Restrict 1.0 s1lent items_restrict. running
[ 18] RE Me&HP 1.1 neygomon, AcE re_sayme.amxx running
[ 19] Maps Menu 1.4.1 neugomon mapsmenu.amxx running
[ 20] Radio Hudmsg Block 1.0 AcE radio_hudmsg_bl running
[ 21] Server Menu 1.5.0 F@nt0M server_menu.amx running
[ 22] SF Bets 0.1.5 serfreeman1337 sf_bets.amxx running
[ 23] Parachute Lite [ReAPI] 11.0 Leo_[BH] parachute_lite. running
[ 24] Lite C4 Timer 1.0.0 neygomon lite_c4timer.am running
[ 25] DemoRecoder 1.1 neygomon amx_demorec.amx running
[ 26] Rock to Ban 1.02 Safety1st rock2ban.amxx running
[ 27] Players Menu 1.7 neugomon players_menu.am running
[ 28] [ReAPI] Kills Counter 0.3 serfreeman1337 kills_counter.a running
[ 29] Killer ScreenFade 0.0.5 Vaqtincha reapi_killer_sc running
[ 30] SF Warn Menu 0.1.4g serfreeman1337 sf_admin_warns. running
[ 31] AES: StatsX Info Rank 0.1 serfreeman1337 aes_statsx_rank running
[ 32] Adverts 1.0 pUzzlik adverts_message running
[ 33] KiLL Assist poka_4to_b PRoSToTeM@ Kill_assist_rea running
[ 34] [ReAPI] Random Weapons 2.4.9 neugomon/h1k3 Random_Weapons_ running
[ 35] Advanced MapChooser 1.4 neygomon map_chooser_CSD paused
[ 36] ReCSDM Team Balance 1.0.3 the_hunter recsdm_team_bal paused
[ 37] RE Me&HP 1.1 neygomon, AcE re_sayme_csdm.a paused
[ 38] [ReAPI] AWPoff 1.4.3 PAffAEJIkA :3 awp_off.amxx debug
[ 39] SpecList 1.2a FatalisDK speclist.amxx running
[ 40] Steam Models 0.1b+mod.l Freedo.m steam_models.am running
[ 41] [SxGeo] Connect Info 1.0 s1lent sxgeo_connect_i running
[ 42] Lite Translit 2.8 neygomon lite_translit_c debug
[ 43] Advanced Experience Sy 0.5.9 [REA serfreeman1337/s aes_main.amxx running
[ 44] AES: CStrike Addon 0.5.9 [REA serfreeman1337/s aes_exp_cstrike running
[ 45] AES: Informer 0.5.9 [REA serfreeman1337/s aes_informer.am running
[ 46] AES: Admin Tools 0.5.9 [REA serfreeman1337/s aes_exp_editor. running
[ 47] AES: Bonus System 0.5.9 Vega serfreeman1337/s aes_bonus_syste running
[ 48] AES: Bonus CSTRIKE 0.5.9 [REA serfreeman1337/s aes_bonus_cstri running
[ 49] V.I.P Custom Weapons 1.0.0 Vaqtincha vip_custom.amxx running
[ 50] V.I.P Custom DEAGLE 1.0.0 Vaqtincha custom_deagle.a running
[ 51] V.I.P Custom M4A1 1.0.0 Vaqtincha custom_m4a1.amx running
[ 52] V.I.P Custom AK-47 1.0.0 Vaqtincha custom_ak47.amx running
[ 53] V.I.P Custom AWP 1.0.0 Vaqtincha custom_awp.amxx running
53 plugins, 49 running
Автор плагина
Vaqtincha
Версия плагина
1.0.0
Исходный код
// Copyright © 2015 Vaqtincha

/************************ V.I.P Custom Weapons *************************
*
* Last update:
* 05/12/2015
*
* Cmds:
* weaponmenu or (say /vipmenu) - Free guns menu
*
* Credits:
* - Safety1st - for plugin "Weapon Menu Hardcoded" (edited by me)
* - Eg@r4$il - for plugin "Admins are VIPs + grenades + kevlar" (edited by me)
* - ZETA [M|E|N] - for plugin "VSVipPrefix"
* - xPaw - for code "ScoreBoard "VIP" string"
* - ConnorMcLeod for plugin "Bullet Damage" and cstrike_pdatas
* - Subb98 for plugin "No fall damage"
* - MrBone - for pieces of advice
* - Patriot~ua~ - for ideas and testing
* - c-s.net.ua members
*
***********************************************************************/

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fakemeta>

#define PLUGIN_NAME "V.I.P Custom Weapons"
#define PLUGIN_VERSION "1.0.0"
#define PLUGIN_AUTHOR "Vaqtincha"

// macro; %1 - variable being modified, %2 - player id
#define CheckFlag(%1,%2) (%1 & (1 << (%2 & 31)))
#define SetFlag(%1,%2) (%1 |= (1 << (%2 & 31)))
#define ClearFlag(%1,%2) (%1 &= ~(1 << (%2 & 31)))

#define SetFlagConnected(%1) g_bConnected |= 1<<(%1 & 31)
#define ClearFlagConnected(%1) g_bConnected &= ~( 1<<(%1 & 31))
#define UserConnected(%1) (g_bConnected & 1<<(%1 & 31))

#define cs_get_user_hasprim(%1,%2) (get_pdata_cbase(%1, m_rgpPlayerItems_CBasePlayer[%2])>0)
#define fm_get_user_money(%1) get_pdata_int(%1, m_iAccount, XO_PLAYER)
#define fm_get_weapon_id(%1) get_pdata_int(%1, m_iId, XO_WEAPON)
#define fm_set_weapon_ammo(%1,%2) set_pdata_int(%1, m_iClip, %2, XO_WEAPON)

#if AMXX_VERSION_NUM < 183
#define HasShield(%1) (get_pdata_int(%1, m_iUserPrefs, XO_PLAYER) & m_bHasShield)
#else
#define HasShield(%1) get_pdata_bool(%1, m_bHasShield)
#endif

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

#define ITEM_DEAGLE (1<<0)
#define ITEM_HE (1<<1)
#define ITEM_SMOKE (1<<2)
#define ITEM_FLASH (1<<3)
#define ITEM_AMMO (1<<4)
#define ITEM_ARMOR (1<<5)
#define ITEM_DEFUSER (1<<6)

new Trie:vipChannels
new g_iAlive[MAX_PLAYERS+1]
new bool:g_bAccess[MAX_PLAYERS+1]
new g_iPlayerPos[MAX_PLAYERS+1]
new g_iPlayerCol[MAX_PLAYERS+1]
new gbIsUsed, giCounter, g_bConnected, g_iMaxPlayers, target_map

new g_iKNFPluginId, g_iDGLPluginId, g_iM4A1PluginId, g_iAK47PluginId, g_iAWPPluginId
new g_iDGLGive, g_iM4A1Give, g_iAK47Give, g_iAWPGive
new g_iKNFReload, g_iDGLReload, g_iM4A1Reload, g_iAK47Reload, g_iAWPReload

new alw_round_eq, alw_round_fm, alw_round_m4ak, alw_round_awp, alw_round_buy
new vampire, vampire_max, hp_bonus, hp_bonus_hs, item_flags, delay, damager, droptype
new dmgcolors[3], scrtag, prefix, info, remove_limit, openmenu, nofall, recieved
new dglcost, m4cost, akcost, awpcost
static flagaccess, buyaccess

// Offsets
new const m_rgpPlayerItems_CBasePlayer[6] = {367, 368, ...}
#if AMXX_VERSION_NUM < 183
const m_bHasShield = 1<<24
const m_iUserPrefs = 510
#else
const m_bHasShield = 2043
#endif
const m_pNext = 42
const m_iClip = 51
const m_iId = 43
const XO_PLAYER = 5
const XO_WEAPON = 4
#if cellbits == 32
const m_iAccount = 115
#else
const m_iAccount = 140
#endif

const MENUKEYS = 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 KEY_EXIT = 10

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

const NOCLIP_WPN_BS = ((1<<CSW_HEGRENADE)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_KNIFE)|(1<<CSW_C4))

// Max BP ammo for weapons
new const MAXBPAMMO[31] = { -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
}
// Max clip for weapons
new const MAXCLIP[CSW_P90+1] = { -1, 13, -1, 10, 1, 7, 1, 30, 30, 1, 30, 20, 25, 30,
35, 25, 12, 20, 10, 30, 100, 8, 30, 30, 20, 2, 7, 30, 30, -1, 50
}
// Ammo Type Names for weapons
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 const Float:g_flCoords[][] = { {0.50, 0.40},{0.56, 0.44},{0.60, 0.50},
{0.56, 0.56},{0.50, 0.60},{0.44, 0.56},{0.40, 0.50},{0.44, 0.44}
}

new const g_iColors[][] = { {0, 127, 255},/*blue*/{255, 127, 0},/*orange*/
{127, 0, 255},/*purple*/{0, 255, 0},/*green*/{255, 24, 119},/*pink*/
{228, 228, 228},/*gray*/{165, 42, 42},/*brown*/{255, 255, 0}/*yellow*/
}

new channels[8][] = {
"#Cstrike_Chat_CT","#Cstrike_Chat_T","#Cstrike_Chat_CT_Dead","#Cstrike_Chat_T_Dead",
"#Cstrike_Chat_Spec","#Cstrike_Chat_All","#Cstrike_Chat_AllDead","#Cstrike_Chat_AllSpec"
}

new newChannels[8][] = {
"^4(^1Counter-Terrorist^4) [^3V.I.P^4] ^3%s1^1 : ^4%s2",
"^4(^1Terrorist^4) [^3V.I.P^4] ^3%s1^1 : ^4%s2",
"^1*DEAD*^4(^1Counter-Terrorist^4) [^3V.I.P^4] ^3%s1^1 : ^4%s2",
"^1*DEAD*^4(^1Terrorist^4) [^3V.I.P^4] ^3%s1^1 : ^4%s2",
"^4(^1Spectator^4) [^3V.I.P^4] ^3%s1^1 : ^4%s2",
"^4[^3V.I.P^4] ^3%s1^1 : ^4%s2",
"^1*DEAD* ^4[^3V.I.P^4] ^3%s1^1 : ^4%s2",
"^1*SPEC* ^4[^3V.I.P^4] ^3%s1^1 : ^4%s2"
}

#define AWP_OFF //Для отключения подедржки awpoff, закоментируйте
#if defined AWP_OFF
native bool: awpoff_check(index, bool:chat);
#endif

public plugin_init()
{
new mapname[4]
get_mapname(mapname, charsmax(mapname))
if(equali(mapname, "de_") || equali(mapname, "cs_"))
{
target_map = true
}

register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
register_cvar("vip_custom_version", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_SPONLY)
register_concmd("vip_custom_reloadcfg", "cmdReloadCfg", ADMIN_CFG)
register_dictionary ("vip_custom.txt" )
loadconfig()
g_iMaxPlayers = get_maxplayers()

RegisterHam(Ham_Spawn, "player", "playerspawn_post", 1)
RegisterHam(Ham_Killed, "player", "playerkilled_post", 1)

if(nofall) RegisterHam(Ham_TakeDamage, "player", "HamTakeDamagePlayerPre", 0)
if(scrtag) register_message( get_user_msgid("ScoreAttrib"), "msgScoreAttrib" )
if(damager) register_event("Damage", "Event_Damage", "b", "2>0", "3=0")
if(prefix)
{
vipChannels = TrieCreate()
for (new i = 0; i < 8; i++)
{
TrieSetString(vipChannels, channels[i], newChannels[i])
}
register_message(get_user_msgid("SayText"), "messageSayText")
}
if(target_map)
{
// Cmds
register_clcmd( "vipmenu", "MenuCommand" )
register_clcmd( "say /vipmenu", "MenuCommand" )
// Menu
register_menucmd( register_menuid( "WeaponMenu" ),MENUKEYS, "MenuHandler" )
register_menucmd( register_menuid( "BuyMenu" ),MENUKEYS, "MenuHandlerCustom" )
// Events
register_event( "HLTV", "Event_NewRound", "a", "1=0", "2=0" )
register_event( "TextMsg", "Event_NewGame", "a", "2=#Game_will_restart_in", "2=#Game_Commencing" )
if(vampire) register_event( "DeathMsg", "Event_DeathMsg", "a")
if(remove_limit) register_event( "BarTime", "event_bomb_planting", "be", "1=3")
}
}

public cmdReloadCfg(id, level, cid)
{
if (!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED

set_task(0.2, "delayed_load")
return PLUGIN_HANDLED
}

public delayed_load()
{
item_flags = 0
loadconfig()
if( g_iKNFPluginId > 0 && g_iKNFReload > 0)
{
callfunc_begin_i(g_iKNFReload, g_iKNFPluginId)
callfunc_end()
}
if( g_iDGLPluginId > 0 && g_iDGLReload > 0)
{
callfunc_begin_i(g_iDGLReload, g_iDGLPluginId)
callfunc_end()
}
if(g_iM4A1PluginId > 0 && g_iM4A1Reload > 0)
{
callfunc_begin_i(g_iM4A1Reload, g_iM4A1PluginId)
callfunc_end()
}
if(g_iAK47PluginId > 0 && g_iAK47Reload > 0)
{
callfunc_begin_i(g_iAK47Reload, g_iAK47PluginId)
callfunc_end()
}
if(g_iAWPPluginId > 0 && g_iAWPReload > 0)
{
callfunc_begin_i(g_iAWPReload, g_iAWPPluginId)
callfunc_end()
}
}

public loadconfig()
{
new ConfigFile[64], szMsg[128] // "addons/amxmodx/configs/vip_custom.ini" 37
get_localinfo("amxx_configsdir", ConfigFile, charsmax(ConfigFile))
add(ConfigFile, charsmax(ConfigFile), "/vip_custom.ini")
if( !file_exists(ConfigFile) )
{
formatex( szMsg, charsmax(szMsg), "%s Config File Not Found!", PLUGIN_NAME )
set_fail_state(szMsg)
return
}

new fp = fopen(ConfigFile, "rt")
if( fp )
{
new Datas[86], Setting[32], Value[15]
while( !feof(fp) )
{
fgets(fp, Datas, charsmax(Datas))
trim(Datas)
if(!Datas[0] || Datas[0] == ';' || Datas[0] == '#' || Datas[0] == '/' || Datas[0] == '[')
{
continue
}
new Sign[3]
parse(Datas, Setting, charsmax(Setting), Sign, charsmax(Sign), Value, charsmax(Value))
if( equali(Setting, "flag_access"))
{
flagaccess = read_flags(Value)
}else if( equali(Setting, "buy_access")){
buyaccess = read_flags(Value)
}else if( equali(Setting, "give_item_flags"))
{
if (containi(Value, "p") != -1)
{
item_flags |= ITEM_DEAGLE
}
if (containi(Value, "h") != -1)
{
item_flags |= ITEM_HE
}
if (containi(Value, "s") != -1)
{
item_flags |= ITEM_SMOKE
}
if (containi(Value, "f") != -1)
{
item_flags |= ITEM_FLASH
}
if (containi(Value, "a") != -1)
{
item_flags |= ITEM_AMMO
}
if (containi(Value, "v") != -1)
{
item_flags |= ITEM_ARMOR
}
if (containi(Value, "d") != -1)
{
item_flags |= ITEM_DEFUSER
}
}else if( equali(Setting, "allowed_round_equip")){
alw_round_eq = str_to_num(Value)
}else if( equali(Setting, "vip_tag")){
scrtag = str_to_num(Value) ? true : false
}else if( equali(Setting, "vip_prefix")){
prefix = str_to_num(Value) ? true : false
}else if( equali(Setting, "vip_info")){
info = str_to_num(Value) ? true : false
}else if( equali(Setting, "drop_type")){
droptype = str_to_num(Value)
}else if( equali(Setting, "no_fall_damage")){
nofall = str_to_num(Value) ? true : false
}else if( equali(Setting, "remove_limit")){
remove_limit = str_to_num(Value) ? true : false
}else if( equali(Setting, "bullet_damage")){
damager = str_to_num(Value)
}else if( equali(Setting, "bullet_damage_recieved")){
recieved = str_to_num(Value) ? true : false
}else if( equali(Setting, "bullet_damage_color")){
new red[10], green[10], blue[10]
parse(Value, red, charsmax(red), green, charsmax(green), blue, charsmax(blue))
dmgcolors[0] = str_to_num(red)
dmgcolors[1] = str_to_num(green)
dmgcolors[2] = str_to_num(blue)
}else if( equali(Setting, "vampire")){
vampire = str_to_num(Value) ? true : false
}else if( equali(Setting, "vampire_max_hp")){
vampire_max = str_to_num(Value)
}else if( equali(Setting, "vampire_hp")){
hp_bonus = str_to_num(Value)
}else if( equali(Setting, "vampire_hp_hs")){
hp_bonus_hs = str_to_num(Value)
}else if( equali(Setting, "open_menu")){
openmenu = str_to_num(Value) ? true : false
}else if( equali(Setting, "close_delay")){
delay = str_to_num(Value)
}else if( equali(Setting, "allowed_round_famas")){
alw_round_fm = str_to_num(Value)
}else if( equali(Setting, "allowed_round_m4ak")){
alw_round_m4ak = str_to_num(Value)
}else if( equali(Setting, "allowed_round_awp")){
alw_round_awp = str_to_num(Value)
}else if( equali(Setting, "allowed_round_buymenu")){
alw_round_buy = str_to_num(Value)
}else if( equali(Setting, "deagle_cost")){
dglcost = str_to_num(Value)
}else if( equali(Setting, "m4a1_cost")){
m4cost = str_to_num(Value)
}else if( equali(Setting, "ak47_cost")){
akcost = str_to_num(Value)
}else if( equali(Setting, "awp_cost")){
awpcost = str_to_num(Value)
}
}
formatex( szMsg, charsmax(szMsg), "%s Config Successfully Loaded!", PLUGIN_NAME )
server_print(szMsg)
}
}

public plugin_cfg()
{
g_iKNFPluginId = is_plugin_loaded("V.I.P Custom KNIFE")
if( g_iKNFPluginId > 0 )
{
g_iKNFReload = get_func_id("loadconfig", g_iKNFPluginId)
}
g_iDGLPluginId = is_plugin_loaded("V.I.P Custom DEAGLE")
if( g_iDGLPluginId > 0 )
{
g_iDGLGive = get_func_id("buyCMD", g_iDGLPluginId)
g_iDGLReload = get_func_id("loadconfig", g_iDGLPluginId)
}
g_iM4A1PluginId = is_plugin_loaded("V.I.P Custom M4A1")
if( g_iM4A1PluginId > 0 )
{
g_iM4A1Give = get_func_id("buyCMD", g_iM4A1PluginId)
g_iM4A1Reload = get_func_id("loadconfig", g_iM4A1PluginId)
}
g_iAK47PluginId = is_plugin_loaded("V.I.P Custom AK-47")
if( g_iAK47PluginId > 0 )
{
g_iAK47Give = get_func_id("buyCMD", g_iAK47PluginId)
g_iAK47Reload = get_func_id("loadconfig", g_iAK47PluginId)
}
g_iAWPPluginId = is_plugin_loaded("V.I.P Custom AWP")
if( g_iAWPPluginId > 0 )
{
g_iAWPGive = get_func_id("buyCMD", g_iAWPPluginId)
g_iAWPReload = get_func_id("loadconfig", g_iAWPPluginId)
}
}

public client_putinserver(id)
{
g_iAlive[id] = 0
g_bAccess[id] = get_user_flags(id) & flagaccess ? true : false

if(info)
{
set_task(1.0, "vip_connected", id)
if(target_map)
{
set_task(30.0, "vip_help", id)
}
}
if(!is_user_hltv(id))
{
SetFlagConnected(id)
}
}

public client_disconnected(id)
{
ClearFlagConnected(id)
}

public playerspawn_post(id)
{
g_iAlive[id] = is_user_alive(id)
g_bAccess[id] = get_user_flags(id) & flagaccess ? true : false
set_task(0.2, "GiveItem", id + 6910)
}

public playerkilled_post(id, attacker, shouldgib)
{
g_iAlive[id] = 0
}

public Event_NewRound()
{
gbIsUsed = 0
giCounter++
}

public Event_NewGame()
{
giCounter = 0
}

// Vip connected info/help
public vip_connected(id)
{
if(g_bAccess[id])
{
new name[32]
get_user_name(id, name, 31)
ChatColor(0, "%L", LANG_SERVER,"VIP_CONNECTED", name)
}
}

public vip_help(id)
{
if(g_bAccess[id])
{
new name[32]
get_user_name(id, name, 31)
ChatColor(id, "%L", LANG_SERVER,"VIP_HELP", name)
}
}

// ScoreBoard "VIP" String
public msgScoreAttrib(const MsgId, const MsgType, const MsgDest)
{
static id; id = get_msg_arg_int(1)
if(get_msg_arg_int(2) || !(g_bAccess[id]))
return
set_msg_arg_int(2, ARG_BYTE, (1<<2))
}

// [V.I.P] prefix and green chat
public messageSayText(msgid, msgdest, id)
{
new channel[64]
get_msg_arg_string(2, channel, charsmax(channel))

if(!TrieGetString(vipChannels, channel, channel, charsmax(channel)))
{
return
}
new sender = get_msg_arg_int(1)
if(g_bAccess[sender])
{
set_msg_arg_string(2, channel)
}
}

public plugin_end()
{
TrieDestroy(vipChannels)
}

// Bullet Damage
public Event_Damage(iVictim)
{
if((read_data(4) || read_data(5) || read_data(6)))
{
static damage; damage = read_data(2)
if( recieved && IsPlayer(iVictim) && UserConnected(iVictim))
{
if(g_bAccess[iVictim])
{
set_hudmessage(255, 0, 0, 0.45, 0.50, 0, 0.5, 1.5, _, _, 3)
show_hudmessage(iVictim, "%d", damage)
}
}
new id = get_user_attacker(iVictim)
if( IsPlayer(id) && UserConnected(id))
{
new iPos = ++g_iPlayerPos[id]
if( iPos == sizeof(g_flCoords))
{
iPos = g_iPlayerPos[id] = 0
}
new iCol = ++g_iPlayerCol[id]
if( iCol == sizeof(g_iColors))
{
iCol = g_iPlayerCol[id] = 0
}
if(g_bAccess[id])
{
switch(damager)
{ case 1:{
set_hudmessage(dmgcolors[0], dmgcolors[1], dmgcolors[2], -1.0, 0.55, 0, 0.5, 1.5, _, _, 3)
}
case 2:{
set_hudmessage(dmgcolors[0], dmgcolors[1], dmgcolors[2], Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.01, 1.5, 0.01, 0.02, -1)
}
case 3:{
set_hudmessage(g_iColors[iCol][0], g_iColors[iCol][1], g_iColors[iCol][2], Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, 1.5, 0.02, 0.02, -1)
}
}
show_hudmessage(id, "%d", damage)
}
}
}
}

// Vampire
public Event_DeathMsg()
{
new KillerId = read_data(1)
new VictimId = read_data(2)
new HeadShot = read_data(3)

if(KillerId == VictimId || !IsPlayer(KillerId)
|| !g_iAlive[KillerId] || !(g_bAccess[KillerId])
|| get_user_team(KillerId) == get_user_team(VictimId))
{
return
}

new KillerHealth = get_user_health(KillerId)
new KillerMaxHealth = vampire_max
if(KillerHealth < KillerMaxHealth)
{
new BonusKillerHealth = HeadShot ? hp_bonus_hs : hp_bonus
new NewKillerHealth = min(KillerHealth + BonusKillerHealth, KillerMaxHealth)
fm_set_user_health(KillerId, NewKillerHealth)
set_hudmessage(0, 255, 100, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
show_hudmessage(KillerId, "Healed +%d hp", NewKillerHealth - KillerHealth)
}
}

// Terrorist planter :D
public event_bomb_planting(id)
{
if(!g_iAlive[id] || !g_bAccess[id])
return
set_pev(id, pev_maxspeed, 250.0)
}

// No fall damage
public HamTakeDamagePlayerPre(victim, inflictor, attacker, Float:dmg, dmg_type)
{
if(g_bAccess[victim])
{
if(dmg_type & (1<<5)/* dmg fall */)
{
return HAM_SUPERCEDE
}
}
return HAM_IGNORED
}

// Equip/Deagle giving
public GiveItem(TaskID)
{
new id = TaskID - 6910

if( !( g_bAccess[id]) || !g_iAlive[id])
{
return
}
if(item_flags & ITEM_AMMO)
{
giveammo(id)
refill(id)
}
if(!target_map)
{
return
}
if(giCounter >= alw_round_eq)
{
if(item_flags & ITEM_DEAGLE)
{
if(user_has_weapon(id,CSW_DEAGLE))
{
ExecuteHamB(Ham_GiveAmmo, id, 35, "50ae", 35)
}else{
drop_weapons(id, 2)
fm_give_item(id,"weapon_deagle")
ExecuteHamB(Ham_GiveAmmo, id, 35, "50ae", 35)
}
}
if(item_flags & ITEM_HE)
{
fm_give_item(id,"weapon_hegrenade")
}
if(item_flags & ITEM_SMOKE)
{
fm_give_item(id,"weapon_smokegrenade")
}
if(item_flags & ITEM_FLASH)
{
fm_give_item(id,"weapon_flashbang")
fm_give_item(id,"weapon_flashbang")
}
if(item_flags & ITEM_ARMOR)
{
fm_give_item(id,"item_assaultsuit")
fm_set_user_armor(id,100)
}
if(item_flags & ITEM_DEFUSER)
{
if(get_user_team(id) == 2)
{
fm_give_item(id,"item_thighpack")
}
}
}
if(openmenu)
{
if(!cs_get_user_hasprim(id, 1) && giCounter >= alw_round_fm)
{
MenuCommand(id)
}
}
}

// Weapon Menu
public MenuCommand(id)
{
new szMenu[512] // it is maximum allowed menu size
new iKeys
new iLen = formatex( szMenu, charsmax(szMenu), "\y[\r%L\y]^t^n^n", LANG_SERVER,"WEAPONS_MENU")

new iItemsDisabled
if( !( g_bAccess[id]) || !g_iAlive[id] || CheckFlag( gbIsUsed, id ))
iItemsDisabled = 1

if( iItemsDisabled || giCounter < alw_round_fm )
{
iLen += formatex( szMenu[iLen], charsmax(szMenu) - iLen, "\y[\r1\y]^t\y[\r%L\y] [\dраунд \r%d\y]^t^n", LANG_SERVER,"WEAPON_FAMAS", alw_round_fm)
}else{
iLen += formatex( szMenu[iLen], charsmax(szMenu) - iLen, "\y[\r1\y]^t\y[\r%L\y] [\dраунд \w%d\y]^t^n", LANG_SERVER,"WEAPON_FAMAS", alw_round_fm)
iKeys |= MENU_KEY_1
}
if( iItemsDisabled || giCounter < alw_round_m4ak )
{
iLen += formatex( szMenu[iLen], charsmax(szMenu) - iLen, "\y[\r2\y]^t\y[\r%L\y] [\dраунд \r%d\y]^t^n", LANG_SERVER, "WEAPON_M4A1", alw_round_m4ak)
}else{
iLen += formatex( szMenu[iLen], charsmax(szMenu) - iLen, "\y[\r2\y]^t\y[\r%L\y] [\dраунд \w%d\y]^t^n", LANG_SERVER, "WEAPON_M4A1", alw_round_m4ak)
iKeys |= MENU_KEY_2
}
if( iItemsDisabled || giCounter < alw_round_m4ak )
{
iLen += formatex( szMenu[iLen], charsmax(szMenu) - iLen, "\y[\r3\y]^t\y[\r%L\y] [\dраунд \r%d\y]^t^n", LANG_SERVER,"WEAPON_AK-47", alw_round_m4ak)
}else{
iLen += formatex( szMenu[iLen], charsmax(szMenu) - iLen, "\y[\r3\y]^t\y[\r%L\y] [\dраунд \w%d\y]^t^n", LANG_SERVER,"WEAPON_AK-47", alw_round_m4ak)
iKeys |= MENU_KEY_3
}
if( iItemsDisabled || giCounter < alw_round_awp )
{
iLen += formatex( szMenu[iLen], charsmax(szMenu) - iLen, "\y[\r4\y]^t\y[\r%L\y] [\dраунд \r%d\y]^t^n", LANG_SERVER,"WEAPON_AWP", alw_round_awp)
}else{
iLen += formatex( szMenu[iLen], charsmax(szMenu) - iLen, "\y[\r4\y]^t\y[\r%L\y] [\dраунд \w%d\y]^t^n", LANG_SERVER,"WEAPON_AWP", alw_round_awp)
iKeys |= MENU_KEY_4
}
if(!( get_user_flags(id) & buyaccess) || !g_iAlive[id] || giCounter < alw_round_buy)
{
iLen += formatex( szMenu[iLen], charsmax(szMenu) - iLen, "^n\y[\r5\y]^t\y[\r%L\y]^n", LANG_SERVER,"BUY_MENU")
}else{
iLen += formatex( szMenu[iLen], charsmax(szMenu) - iLen, "^n\y[\r5\y]^t\y[\r%L\y]^n", LANG_SERVER,"BUY_MENU")
iKeys |= MENU_KEY_5
}

formatex( szMenu[iLen], charsmax(szMenu) - iLen, "^n\y[\r0\y]^t\y[\r%L\y]", LANG_SERVER, "EXIT" )
iKeys |= MENU_KEY_0|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9
show_menu( id, iKeys, szMenu, delay, .title = "WeaponMenu" )

return PLUGIN_HANDLED
}

// Custom Menu
public MenuCommandCustom(id)
{
new szMenu[512] // it is maximum allowed menu size
new iKeys
new usermoney = fm_get_user_money(id)
new iLen = formatex( szMenu, charsmax(szMenu), "\y[\r%L\y]^t^n^n", LANG_SERVER,"BUY_MENU")

new iItemsDisabled
if( !( get_user_flags(id) & buyaccess) || !g_iAlive[id] /*|| CheckFlag( gbIsUsed, id )*/)
iItemsDisabled = 1

if( iItemsDisabled || g_iDGLPluginId < 0 )
{
iLen += formatex( szMenu[iLen], charsmax(szMenu) - iLen, "\y[\r1\y]^t\y[\r%L\y]^t^n", LANG_SERVER,"CUSTOM_DEAGLE")
}else if( iItemsDisabled || usermoney < dglcost ){
iLen += formatex( szMenu[iLen], charsmax(szMenu) - iLen, "\y[\r1\y]^t\y[\r%L\y] [\d$ \r%d\y]^t^n", LANG_SERVER,"CUSTOM_DEAGLE", dglcost)
}else{
iLen += formatex( szMenu[iLen], charsmax(szMenu) - iLen, "\y[\r1\y]^t\y[\r%L\y] [\d$ \w%d\y]^t^n", LANG_SERVER,"CUSTOM_DEAGLE", dglcost)
iKeys |= MENU_KEY_1
}
if( iItemsDisabled || g_iM4A1PluginId < 0 )
{
iLen += formatex( szMenu[iLen], charsmax(szMenu) - iLen, "\y[\r2\y]^t\y[\r%L\y]^t^n", LANG_SERVER,"CUSTOM_M4A1")
}else if( iItemsDisabled || usermoney < m4cost){
iLen += formatex( szMenu[iLen], charsmax(szMenu) - iLen, "\y[\r2\y]^t\y[\r%L\y] [\d$ \r%d\y]^t^n", LANG_SERVER,"CUSTOM_M4A1", m4cost)
}else{
iLen += formatex( szMenu[iLen], charsmax(szMenu) - iLen, "\y[\r2\y]^t\y[\r%L\y] [\d$ \w%d\y]^t^n", LANG_SERVER,"CUSTOM_M4A1", m4cost)
iKeys |= MENU_KEY_2
}
if( iItemsDisabled || g_iAK47PluginId < 0 )
{
iLen += formatex( szMenu[iLen], charsmax(szMenu) - iLen, "\y[\r3\y]^t\y[\r%L\y]^t^n", LANG_SERVER, "CUSTOM_AK-47")
}else if( iItemsDisabled || usermoney < akcost){
iLen += formatex( szMenu[iLen], charsmax(szMenu) - iLen, "\y[\r3\y]^t\y[\r%L\y] [\d$ \r%d\y]^t^n", LANG_SERVER, "CUSTOM_AK-47", akcost)
}else{
iLen += formatex( szMenu[iLen], charsmax(szMenu) - iLen, "\y[\r3\y]^t\y[\r%L\y] [\d$ \w%d\y]^t^n", LANG_SERVER, "CUSTOM_AK-47", akcost)
iKeys |= MENU_KEY_3
}
if( iItemsDisabled || g_iAWPPluginId < 0 )
{
iLen += formatex( szMenu[iLen], charsmax(szMenu) - iLen, "\y[\r4\y]^t\y[\r%L\y]^t^n", LANG_SERVER, "CUSTOM_AWP")
}else if( iItemsDisabled || usermoney < awpcost){
iLen += formatex( szMenu[iLen], charsmax(szMenu) - iLen, "\y[\r4\y]^t\y[\r%L\y] [\d$ \r%d\y]^t^n", LANG_SERVER, "CUSTOM_AWP", awpcost)
}else{
iLen += formatex( szMenu[iLen], charsmax(szMenu) - iLen, "\y[\r4\y]^t\y[\r%L\y] [\d$ \w%d\y]^t^n", LANG_SERVER, "CUSTOM_AWP", awpcost)
iKeys |= MENU_KEY_4
}
if( !( g_bAccess[id]) || !g_iAlive[id])
{
iLen += formatex( szMenu[iLen], charsmax(szMenu) - iLen, "^n\y[\r5\y]^t\y[\r%L\y]^n", LANG_SERVER,"BACK")
}else{
iLen += formatex( szMenu[iLen], charsmax(szMenu) - iLen, "^n\y[\r5\y]^t\y[\r%L\y]^n", LANG_SERVER,"BACK")
iKeys |= MENU_KEY_5
}

formatex( szMenu[iLen], charsmax(szMenu) - iLen, "^n\y[\r0\y]^t\y[\r%L\y]", LANG_SERVER, "EXIT" )
iKeys |= MENU_KEY_0|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9
show_menu( id, iKeys, szMenu, delay, .title = "BuyMenu" )

return PLUGIN_HANDLED
}

// Weapon Menu Func
public MenuHandler(id, key)
{
if(key == KEY_EXIT - 1 || !g_iAlive[id])
return PLUGIN_HANDLED

switch(key)
{
case 0:{
if(user_has_weapon(id,CSW_FAMAS))
{
client_print(id, print_center, "%L", LANG_SERVER,"ALREADY_OWN_WEAPON")
}
else{
drop_weapons(id, 1)
fm_give_item(id,"weapon_famas")
ExecuteHamB(Ham_GiveAmmo, id, 90, "556nato", 90)
SetFlag( gbIsUsed, id )
}
}
case 1:{
if(user_has_weapon(id,CSW_M4A1))
{
client_print(id, print_center, "%L", LANG_SERVER,"ALREADY_OWN_WEAPON")
}
else{
drop_weapons(id, 1)
fm_give_item(id,"weapon_m4a1")
ExecuteHamB(Ham_GiveAmmo, id, 90, "556nato", 90)
SetFlag( gbIsUsed, id )
}
}
case 2:{
if(user_has_weapon(id,CSW_AK47))
{
client_print(id, print_center, "%L", LANG_SERVER,"ALREADY_OWN_WEAPON")
}
else{
drop_weapons(id, 1)
fm_give_item(id,"weapon_ak47")
ExecuteHamB(Ham_GiveAmmo, id, 90, "762nato", 90)
SetFlag( gbIsUsed, id )
}
}
case 3:{
if(user_has_weapon(id,CSW_AWP))
{
client_print(id, print_center, "%L", LANG_SERVER,"ALREADY_OWN_WEAPON")
}
else{
drop_weapons(id, 1)
fm_give_item(id,"weapon_awp")
ExecuteHamB(Ham_GiveAmmo, id, 30, "338magnum", 30)
SetFlag( gbIsUsed, id )
}
}
case 4:{
MenuCommandCustom(id)
}
}
return PLUGIN_HANDLED
}

// Custom Menu func
public MenuHandlerCustom(id, key)
{
if(key == KEY_EXIT - 1 || !g_iAlive[id])
return PLUGIN_HANDLED

switch(key)
{
case 0:{
if(g_iDGLPluginId > 0 && g_iDGLGive > 0)
{
callfunc_begin_i(g_iDGLGive, g_iDGLPluginId)
callfunc_push_int(id)
callfunc_end()
// SetFlag( gbIsUsed, id )
}
}
case 1:{
if(g_iM4A1PluginId > 0 && g_iM4A1Give > 0)
{
callfunc_begin_i(g_iM4A1Give, g_iM4A1PluginId)
callfunc_push_int(id)
callfunc_end()
// SetFlag( gbIsUsed, id )
}
}
case 2:{
if(g_iAK47PluginId > 0 && g_iAK47Give > 0)
{
callfunc_begin_i(g_iAK47Give, g_iAK47PluginId)
callfunc_push_int(id)
callfunc_end()
// SetFlag( gbIsUsed, id )
}
}
case 3:{
if(g_iAWPPluginId > 0 && g_iAWPGive > 0)
{
#if defined AWP_OFF
if(!awpoff_check(id, true)){
MenuCommandCustom(id);
return PLUGIN_HANDLED;
}
#endif

callfunc_begin_i(g_iAWPGive, g_iAWPPluginId)
callfunc_push_int(id)
callfunc_end()
// SetFlag( gbIsUsed, id )
}
}
case 4:{
MenuCommand(id)
}
}
return PLUGIN_HANDLED
}

//================================ STOCKS ==============================//

stock giveammo(id)
{
new weap_ids[32], num_weaps
num_weaps = 0
get_user_weapons(id, weap_ids, num_weaps)
for (new i = 0; i < num_weaps; i++)
{
new weap_id = weap_ids[i]
new ammo = MAXBPAMMO[weap_id]
if(!( NOCLIP_WPN_BS & (1<<weap_id)))
{
ExecuteHamB(Ham_GiveAmmo, id, MAXBPAMMO[weap_id], AMMOTYPE[weap_id], MAXBPAMMO[weap_id], ammo)
}
}
}

stock refill(id)
{
if(!is_user_connected(id)) return
for(new slot = 1; slot<= 2; slot++)
{
new iWeapon = get_pdata_cbase(id, m_rgpPlayerItems_CBasePlayer[slot])
while( iWeapon > 0 )
{
new iId = fm_get_weapon_id(iWeapon)
if( !( NOCLIP_WPN_BS & (1<<iId) ) )
{
fm_set_weapon_ammo(iWeapon, MAXCLIP[iId])
iWeapon = get_pdata_cbase(iWeapon, m_pNext, XO_WEAPON)
}
}
}
}

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) || HasShield(id))
|| (dropwhat == 2 && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM )))
{
static wname[32]
get_weaponname(weaponid, wname, charsmax(wname))
switch(droptype)
{
case 0: ham_strip_weapon(id, wname)
case 1: engclient_cmd(id, "drop", wname)
}
}
}
}

stock ham_strip_weapon(id,weapon[])
{
if(!equal(weapon,"weapon_",7)) return 0

new wId = get_weaponid(weapon)
if(!wId) return 0

new wEnt
while((wEnt = engfunc(EngFunc_FindEntityByString, wEnt, "classname", weapon)) && pev(wEnt, pev_owner) != id) {}
if(!wEnt) return 0

new iTmp
if(get_user_weapon(id, iTmp, iTmp) == wId) ExecuteHamB(Ham_Weapon_RetireWeapon, wEnt)

if(!ExecuteHamB(Ham_RemovePlayerItem, id, any:wEnt)) return 0

ExecuteHamB(Ham_Item_Kill, wEnt)
set_pev(id, pev_weapons, pev(id, pev_weapons) & ~(1<<wId))

return 1
}

stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32], i
static msg[191]
vformat(msg, 190, input, 3)

replace_all(msg, 190, "!g", "^4") // Green Color
replace_all(msg, 190, "!n", "^1") // Default Color
replace_all(msg, 190, "!t", "^3") // Team Color

if(id)players[0] = id; else get_players(players, count, "ch")
{
for(i = 0; i < count; i++)
{
if(is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i])
write_string(msg)
message_end()
}
}
}
}

stock fm_set_user_armor(index, armor)
{
set_pev(index, pev_armorvalue, float(armor))
return 1
}

stock fm_set_user_health(index, health)
{
health > 0 ? set_pev(index, pev_health, float(health)) : dllfunc(DLLFunc_ClientKill, index)
return 1
}

stock fm_give_item(index, const item[])
{
if (!equal(item, "weapon_", 7) && !equal(item, "ammo_", 5) && !equal(item, "item_", 5))
return 0

new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, item))
if (!pev_valid(ent))
return 0

new Float:origin[3]
pev(index, pev_origin, origin)
set_pev(ent, pev_origin, origin)
set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN)
dllfunc(DLLFunc_Spawn, ent)

new save = pev(ent, pev_solid)
dllfunc(DLLFunc_Touch, ent, index)
if (pev(ent, pev_solid) != save)
return ent

engfunc(EngFunc_RemoveEntity, ent)

return -1
}
Хочу добавить что в модулях прописано 11 а на самом деле их 10 я вообще не знаю откуда взялся этот призрак:dntknw:
 
Сообщения
400
Реакции
147
Помог
11 раз(а)
Хочу добавить что в модулях прописано 11 а на самом деле их 10 я вообще не знаю откуда взялся этот призрак:dntknw:
открываешь через notepad (alkepad) файл modules.ini, (где находится данный файл: addons\amxmodx\configs) и смотришь что ты там прописывал (добавлял) и т.д., может какой-то модуль до этого там прописывал и забыл отключить, и выключаешь, ставишь ;
 
Сообщения
460
Реакции
68
Помог
7 раз(а)
Izmayl7, в том и дело что там пусто)
Смотри
29 Июн 2019
Izmayl7, уже нашол был неправельно прописан cstrike сорян:mosking:
29 Июн 2019
Хотя он работал получается и не прописаным в modules.ini
 

Вложения

Ayk

Сообщения
763
Реакции
478
Помог
19 раз(а)
Хотя он работал получается и не прописаным в modules.ini
Стандартные модули подгружаются автоматически при их необходимости (использование их функционала в плагинах).
 
Сообщения
460
Реакции
68
Помог
7 раз(а)
Ayk, понял спасибо за инфу.
 

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

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