AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Arrays Problem i think (https://forums.alliedmods.net/showthread.php?t=327752)

AnimalMonster 10-07-2020 10:32

Arrays Problem i think
 
hey, im declined and i got a buymenu plugin by t3rkecorejz xUnicorn, i tried to edit it with some things but when i try edit the .ini file it doesn t load from file and registers over and over again that s the problem i got. imma give you the not edited code.
PHP Code:

#include < amxmodx >
#include < amxmisc >
#include < sqlx >
#include < fakemeta>
#include < hamsandwich >
#include < zombieplague >
#include < dhudmessage >

// CBaseMonster
#define m_LastHitGroup    75

// CBasePlayer
#define m_iMenu 205

new const g_szBuyCommands[ ][ ] =
{
    
"usp""glock""deagle""p228""elites",
    
"fn57""m3""xm1014""mp5""tmp""p90",
    
"mac10""ump45""ak47""galil""famas",
    
"sg552""m4a1""aug""scout""awp""g3sg1",
    
"sg550""m249""vest""vesthelm""flash",
    
"hegren""sgren""defuser""nvgs""shield",
    
"primammo""secammo""km45""9x19mm""nighthawk",
    
"228compact""fiveseven""12gauge""autoshotgun",
    
"mp""c90""cv47""defender""clarion""krieg552",
    
"bullpup""magnum""d3au1""krieg550",
    
"buy""buyequip""cl_autobuy",
    
"cl_rebuy""cl_setautobuy""cl_setrebuy""client_buy_open"
};

new const 
g_szItemSlots[ ][ ] =
{
    
"PISTOLS",
    
"SHOTGUN",
    
"AUTOMATES",
    
"RIFLES",
    
"MACHINE GUNS",
    
"EQUIPMENT HUMAN",
    
"EQUIPMENT ZOMBIE"
};

new const 
g_szItemPermission[ ][ ] =
{
    
"ALL",
    
"VIP",
    
"SVIP",
    
"UVIP"
};

new const 
g_szNamePermission[ ][ ] =
{
    
"",
    
"\r[VIP]",
    
"\r[SUPER VIP]",
    
"\r[ULTRA VIP]"
}

#define SQL_HOST "" // IP/Host бд
#define SQL_USER "" // Логин бд
#define SQL_PASSWORD "" // Пароль бд
#define SQL_DATABASE "" // База данных
#define SQL_TABLENAME "bm_level_system" // Название таблицы

#define CHAT_PREFIX "!y[!gZP BuyMenu!y]" // Префикс в чате при сообщениях от плалина BuyMenu

#define FLAG_VIP ADMIN_LEVEL_A // Флаг VIP игрока 
#define FLAG_SUPER_VIP ADMIN_LEVEL_B // Флаг SUPER VIP игрока
#define FLAG_ULTRA_VIP ADMIN_LEVEL_C // Флаг ULTRA VIP игрока
#define FLAG_ADMIN ADMIN_BAN // Флаг администратора

#define TASK_SHOWHUD 4001 // Таск айди худа
#define TASK_LOAD_DATA 4002 // Таск айди загрузки базы

#define MAX_ITEMS 80 // Максимально айтемов с лимитами
#define MAX_CLIENTS 32 // Максимально клиентов (не менять)
#define BM_PLUGIN_HANDLED 98 // Айди возвращения функции

#define BUYMENU_ITEMS_FILE "ZP_BuyMenu.ini" // Название ini файла от бай меню
#define BUYMENU_CONFIG_FILE "ZP_BuyMenu.cfg" // Название конфиг файла от бай меню
#define BUYMENU_LANG_FILE "ZP_BuyMenu.txt" // Название ланг файла от бай меню

#define BUYMENU_KNIFEMENU_COMMAND "zp_knives" // Команда для открытия меню ножей

// Настройка валюты
#define BM_SetUserMoney(%0,%1) zp_set_user_ammo_packs(%0,%1)
#define BM_GetUserMoney(%0) zp_get_user_ammo_packs(%0)

new Array: aItemName;
new Array: 
aItemCost;
new Array: 
aItemLevel;
new Array: 
aItemMenu;
new Array: 
aItemPermission;
new Array: 
aItemMinimumPlayers;
new Array: 
aItemUserLimit;
new Array: 
aItemUserMapLimit
new Array: 
aItemRoundLimit
new Array: 
aItemMapLimit;

new Array: 
aItem2RealName;
new Array: 
aItem2Name;
new Array: 
aItem2Cost;
new Array: 
aItem2Level;
new Array: 
aItem2Menu;
new Array: 
aItem2Permission;
new Array: 
aItem2MinimumPlayers;
new Array: 
aItem2UserLimit;
new Array: 
aItem2UserMapLimit
new Array: 
aItem2RoundLimit
new Array: 
aItem2MapLimit;

new Array: 
aItemNew;

enum _eCvarList
{
    
Discount_Enable 0,
    
Discount_VIP,
    
Discount_SVIP,
    
Discount_UVIP,
    
Discount_Admin,
    
Discount_Steam,

    
BuyMenu_After_Infection,
    
BuyMenu_Block_Weapons,

    
LevelSystem_Enable,
    
LevelSystem_Hud_Type,
    
LevelSystem_Notifications,
    
LevelSystem_Damage,
    
LevelSystem_Kill,
    
LevelSystem_Kill_Head,
    
LevelSystem_Kill_Human,
    
LevelSystem_Kill_Nemesis,
    
LevelSystem_Kill_Survivor,
    
LevelSystem_Infection,
    
LevelSystem_MaxLevel,
    
LevelSystem_ExpirienceMulti,
};

enum _eMessages
{
    
SayText 0,
    
BuyClose,
    
StatusIcon
};

enum _eData
{
    
Level 0,
    
Exp
};

enum _eCallBack
{
    
CB_Items 0,
    
CB_Rifles,
    
CB_Pistols,
    
CB_Knives
};

enum _eWeaponType
{
    
Primary 0,
    
Secondary
}

enum 
{
    
Pistols 0,
    
Shotguns,
    
Automates,
    
Rifles,
    
Machines,
    
Extras_Human,
    
Extras_Zombie
};

enum
{
    
All_Users 0,
    
VIP_Player,
    
SVIP_Player,
    
UVIP_Player
};

new 
pCvareCvarList ];

new 
g_fwItemSelected;

new 
g_iMsgIDeMessages ];
new 
g_iBuyZone;
new 
g_iItemsNum;
new 
g_iMaxPlayers;
new 
g_iForwardResult
new 
g_iMenuCallBackeCallBack ];
new 
g_iUserDataMAX_CLIENTS ][ eData ];
new 
g_iUserDiscountMAX_CLIENTS ];
new 
g_iUserBackMoneyMAX_CLIENTS ];
new 
g_iMapItemLimitMAX_ITEMS ];
new 
g_iRoundItemLimitMAX_ITEMS ];
new 
g_iUserItemLimitMAX_CLIENTS ][ MAX_ITEMS ]; 
new 
g_iUserMapItemLimitMAX_CLIENTS ][ MAX_ITEMS ];

new 
g_szQuery512 ]; 
new 
g_szUserSteamIDMAX_CLIENTS ][ 34 ];

new 
boolg_bArraysCreated;
new 
boolg_bSuperUserMAX_CLIENTS 1 char ];
new 
boolg_bUserLoadedMAX_CLIENTS 1 char ];
new 
boolg_bItemSelectedMAX_CLIENTS ][ eWeaponType ];

new 
Floatg_flUserDamageMAX_CLIENTS ];

new 
Handleg_hDBTuple
new 
Handleg_hConnect;

public 
plugin_init( )
{
    
register_plugin"[ZP] Buy Menu + Level System""1.1""t3rkecorejz" );

    
register_dictionaryBUYMENU_LANG_FILE );

    
register_event"HLTV""EV_RoundStart""a""1=0""2=0" );

    
RegisterHamHam_Spawn"func_buyzone""CBuyZone__Spawn_Pre", .Post );
    
RegisterHamHam_Killed"player""CPlayer__Killed_Post", .Post );
    
RegisterHamHam_TakeDamage"player""CPlayer__TakeDamage_Post", .Post );
    
RegisterHamHam_Player_PreThink"player""CPlayer__PreThink_Post", .Post );

    
g_iMsgIDSayText ] = get_user_msgid"SayText" );
    
g_iMsgIDBuyClose ] = get_user_msgid"BuyClose" );
    
g_iMsgIDStatusIcon ] = get_user_msgid"StatusIcon" );

    
g_iMenuCallBackCB_Items ] = menu_makecallback"BuyItem_Menu_CallBack" );
    
g_iMenuCallBackCB_Rifles ] = menu_makecallback"BuyMenu_Rifles_Menu_CallBack" );
    
g_iMenuCallBackCB_Pistols ] = menu_makecallback"BuyMenu_Pistols_Menu_CallBack" );
    
g_iMenuCallBackCB_Knives ] = menu_makecallback"BuyMenu_Knives_Menu_CallBack" );

    
g_iMaxPlayers get_maxplayers();

    
g_fwItemSelected CreateMultiForward"BM_Item_Selected"ET_CONTINUEFP_CELLFP_CELL );

    
pCvarDiscount_Enable ] = register_cvar"bm_discount_enable""1" );
    
pCvarDiscount_VIP ] = register_cvar"bm_discount_vip""10" );
    
pCvarDiscount_SVIP ] = register_cvar"bm_discount_svip""15" );
    
pCvarDiscount_UVIP ] = register_cvar"bm_discount_uvip""20" );
    
pCvarDiscount_Admin ] = register_cvar"bm_discount_admin""5" );
    
pCvarDiscount_Steam ] = register_cvar"bm_discount_steam""10" );

    
pCvarBuyMenu_After_Infection ] = register_cvar"bm_buymenu_after_infection""1" );
    
pCvarBuyMenu_Block_Weapons ] = register_cvar"bm_buymenu_block_weapons""1" );

    
pCvarLevelSystem_Enable ] = register_cvar"bm_level_system_enable""1" );
    
pCvarLevelSystem_Hud_Type ] = register_cvar"bm_level_system_hud_type""2" );
    
pCvarLevelSystem_Notifications ] = register_cvar"bm_level_system_notifications""1" );
    
pCvarLevelSystem_Damage ] = register_cvar"bm_level_system_damage""2500.0" );
    
pCvarLevelSystem_Kill ] = register_cvar"bm_level_system_kill_zombie""2" );
    
pCvarLevelSystem_Kill_Head ] = register_cvar"bm_level_system_kill_zombie_head""3" );
    
pCvarLevelSystem_Kill_Human ] = register_cvar"bm_level_system_kill_human""5" );
    
pCvarLevelSystem_Kill_Nemesis ] = register_cvar"bm_level_system_kill_nemesis""10" );
    
pCvarLevelSystem_Kill_Survivor ] = register_cvar"bm_level_system_kill_survivor""10" );
    
pCvarLevelSystem_Infection ] = register_cvar"bm_level_system_infect""3" );
    
pCvarLevelSystem_MaxLevel ] = register_cvar"bm_level_system_maxlvl""100" );
    
pCvarLevelSystem_ExpirienceMulti ] = register_cvar"bm_level_system_expmulti""10" );

    new 
iBuyCommands;
    for ( 
iBuyCommands 0iBuyCommands sizeof g_szBuyCommandsiBuyCommands++ )
        
register_clcmdg_szBuyCommandsiBuyCommands ], "Command_BuyMenu" );

    
register_clcmd"bm_superuser""Command_SuperUser" );
}
 
public 
plugin_precache( )
{
    
g_iBuyZone engfuncEngFunc_CreateNamedEntityengfuncEngFunc_AllocString"func_buyzone" ) );
    
    if( 
pev_validg_iBuyZone ) )
    {
        
dllfuncDLLFunc_Spawng_iBuyZone );
        
engfuncEngFunc_SetSizeg_iBuyZone, { -8192.0, -8192.0, -8192.0 }, { -8191.0, -8191.0, -8191.0 } );
    }

    
aItemName ArrayCreate32);
    
aItemCost ArrayCreate1);
    
aItemLevel ArrayCreate1);
    
aItemMenu ArrayCreate1);
    
aItemPermission ArrayCreate1);
    
aItemMinimumPlayers ArrayCreate1);
    
aItemUserLimit ArrayCreate1);
    
aItemUserMapLimit ArrayCreate1);
    
aItemRoundLimit ArrayCreate1);
    
aItemMapLimit ArrayCreate1);

    
aItem2RealName ArrayCreate32);
    
aItem2Name ArrayCreate32);
    
aItem2Cost ArrayCreate1);
    
aItem2Level ArrayCreate1);
    
aItem2Menu ArrayCreate1);
    
aItem2Permission ArrayCreate1);
    
aItem2MinimumPlayers ArrayCreate1);
    
aItem2UserLimit ArrayCreate1);
    
aItem2UserMapLimit ArrayCreate1);
    
aItem2RoundLimit ArrayCreate1);
    
aItem2MapLimit ArrayCreate1);

    
aItemNew ArrayCreate1);

    
g_bArraysCreated true;

    
CFile__LoadCustomization( );
}

public 
plugin_cfg( )
{
    new 
szConfigDir32 ];
    
get_configsdirszConfigDircharsmaxszConfigDir ) );
    
    
server_cmd"exec %s/%s"szConfigDirBUYMENU_CONFIG_FILE );

    
g_bArraysCreated false;

    
CFile__SaveCustomization( );

    
SQL_LoadDebug( );
}

public 
plugin_end( ) 
{
    if( 
g_hDBTuple 
        
SQL_FreeHandleg_hDBTuple );
    
    if( 
g_hConnect 
        
SQL_FreeHandleg_hConnect );
    
    return;
}

public 
client_putinserveriPlayer )
{
    if( 
get_pcvar_numpCvarDiscount_Enable ] ) )
    {
        if( 
get_user_flagsiPlayer ) & FLAG_ULTRA_VIP )
            
g_iUserDiscountiPlayer ] = get_pcvar_numpCvarDiscount_UVIP ] );
        else if( 
get_user_flagsiPlayer ) & FLAG_SUPER_VIP )
            
g_iUserDiscountiPlayer ] = get_pcvar_numpCvarDiscount_SVIP ] );
        else if( 
get_user_flagsiPlayer ) & FLAG_VIP )
            
g_iUserDiscountiPlayer ] = get_pcvar_numpCvarDiscount_VIP ] );
        
        if( 
get_user_flagsiPlayer ) & FLAG_ADMIN )
            
g_iUserDiscountiPlayer ] = g_iUserDiscountiPlayer ] + get_pcvar_numpCvarDiscount_Admin ] );
        
        if( 
is_user_steamiPlayer ) ) 
            
g_iUserDiscountiPlayer ] = g_iUserDiscountiPlayer ] + get_pcvar_numpCvarDiscount_Steam ] );
    }
    else 
g_iUserDiscountiPlayer ] = 0;

    if( 
get_pcvar_numpCvarLevelSystem_Enable ] ) )
        
set_task1.0"CTask__ShowUserHud"iPlayer TASK_SHOWHUD__, .flags "b" );

    
set_taskrandom_float1.03.0 ), "CTask__LoadData"iPlayer TASK_LOAD_DATA );
}

public 
client_disconnectiPlayer 
{
    if( !
g_bUserLoadediPlayer } || is_user_botiPlayer ) )
        return;
    
    
formatexg_szQuerycharsmaxg_szQuery ), "UPDATE `%s` SET `Level` = '%d', `Exp` = '%d' WHERE `%s`.`SteamID` = '%s';"g_iUserDataiPlayer ][ Level ], g_iUserDataiPlayer ][ Exp ], SQL_TABLENAMEg_szUserSteamIDiPlayer ] );
    
SQL_ThreadQueryg_hDBTuple"SQL_ThreadQueryHandler"g_szQuery );

    
g_bSuperUseriPlayer } = false;
    
g_iUserDiscountiPlayer ] = 0;
}

public 
plugin_natives( ) 
{
    
register_native"BM_Register_Item""Native_Register_Item");
    
register_native"BM_GetUserData""Native_GetUserData");
    
register_native"BM_GetUserExpForNextLevel""Native_GetUserExpForNextLevel");
    
register_native"BM_SetUserData""Native_SetUserData");
    
register_native"BM_GiveUserExp""Native_GiveUserExp");
    
register_native"BM_CheckUserNextLevel""Native_CheckUserNextLevel");
}

public 
SQL_LoadDebug( ) 
{
    new 
szError512 ];
    new 
iErrorCode;

    
g_hDBTuple SQL_MakeDbTupleSQL_HOSTSQL_USERSQL_PASSWORDSQL_DATABASE );
    
g_hConnect SQL_Connectg_hDBTupleiErrorCodeszErrorcharsmaxszError ) );
    
    if( 
g_hConnect == Empty_Handle )
        
set_fail_stateszError );
    
    if( !
SQL_TableExistsg_hConnectSQL_TABLENAME ) )
    {
        new 
HandlehQueries
        new 
szQuery512 ];
        
        
formatexszQuerycharsmaxszQuery ), "CREATE TABLE IF NOT EXISTS `%s` (`SteamID` varchar( 32 ) CHARACTER SET cp1250 COLLATE cp1250_general_ci NOT NULL, `Level` INT NOT NULL, `Exp` INT NOT NULL)"SQL_TABLENAME );
        
hQueries SQL_PrepareQueryg_hConnectszQuery );
        
        if( !
SQL_ExecutehQueries ) )
        {
            
SQL_QueryErrorhQueriesszErrorcharsmaxszError ) );
            
set_fail_stateszError );
        }

        
SQL_FreeHandlehQueries );    
    }

    
SQL_QueryAndIgnoreg_hConnect"SET NAMES utf8" );
}

public 
SQL_QueryConnectioniStateHandlehQueryszError[ ], iErrorCodeiParams[ ], iParamsSize )
{
    switch( 
iState )
    {
        case 
TQUERY_CONNECT_FAILEDlog_amx"Load - Could not connect to SQL database. [%d] %s"iErrorCodeszError );
        case 
TQUERY_QUERY_FAILEDlog_amx"Load Query failed. [%d] %s"iErrorCodeszError );
    }
    
    new 
iPlayer iParams];
    
g_bUserLoadediPlayer } = true;
    
    if( 
SQL_NumResultshQuery ) < )
    {
        if( 
equalg_szUserSteamIDiPlayer ], "ID_PENDING" ) )
            return 
PLUGIN_HANDLED;

        
g_iUserDataiPlayer ] = { 1}

        
formatexg_szQuerycharsmaxg_szQuery ), "INSERT INTO `%s` ( `SteamID`, `Level`, `Exp` ) VALUES ( '%s', '%d', '%d' );"SQL_TABLENAMEg_szUserSteamIDiPlayer ], g_iUserDataiPlayer ][ Level ], g_iUserDataiPlayer ][ Exp ] );
        
SQL_ThreadQueryg_hDBTuple"SQL_ThreadQueryHandler"g_szQuery );
        
        return 
PLUGIN_HANDLED;
    }
    else 
    {
        
g_iUserDataiPlayer ][ Level ] = SQL_ReadResulthQuery);
        
g_iUserDataiPlayer ][ Exp ] = SQL_ReadResulthQuery);
    }
    
    return 
PLUGIN_HANDLED;
}

public 
SQL_ThreadQueryHandleriStateHandlehQueryszError[ ], iErrorCodeiParams[ ], iParamsSize )
{
    if( 
iState == )
        return;
    
    
log_amx"SQL Error: %d (%s)"iErrorCodeszError );
}

public 
zp_user_infected_postiPlayeriInfector 
{
    if( !
is_user_aliveiPlayer ) || !is_user_aliveiInfector ) || iPlayer == iInfector )
        return;

    
Native_GiveUserExpiInfectorget_pcvar_numpCvarLevelSystem_Infection ] ) );

    
show_menuiPlayer0"^n");
    
menu_canceliPlayer );
}

public 
zp_user_humanized_postiPlayer 
{
    
show_menuiPlayer0"^n");
    
menu_canceliPlayer );
}

public 
zp_round_startediGameModeiEntity )
{
    for( new 
iPlayer 1iPlayer <= g_iMaxPlayersiPlayer++ )
    {
        if( 
is_user_aliveiPlayer ) )
        {
            if( 
zp_get_user_zombieiPlayer ) || zp_get_user_survivoriPlayer ) )
            {
                
BM_SetUserMoneyiPlayerBM_GetUserMoneyiPlayer ) + g_iUserBackMoneyiPlayer ] );
                
g_iUserBackMoneyiPlayer ] = 0;

                
show_menuiPlayer0"^n");
                
menu_canceliPlayer );
            }
        }
    }
}

public 
Command_BuyMenuiPlayer )
{
    if( !
is_user_aliveiPlayer ) )
        return 
PLUGIN_CONTINUE;

    if( 
g_bSuperUseriPlayer } )
    {
        if( 
zp_get_user_zombieiPlayer ) ) Show_Menu_BuyItemiPlayerExtras_Zombie );
        else  
Show_Menu_BuyMenuiPlayer );

        return 
PLUGIN_HANDLED;
    }

    if( 
get_pcvar_numpCvarBuyMenu_After_Infection ] ) )
    {
        if( 
zp_has_round_started( ) ) 
        {
            if( 
zp_get_user_zombieiPlayer ) ) Show_Menu_BuyItemiPlayerExtras_Zombie );
            else 
Show_Menu_BuyItemiPlayerExtras_Human );
        } 
        else 
Show_Menu_BuyMenuiPlayer );
    }
    else
    {
        if( 
zp_get_user_zombieiPlayer ) ) Show_Menu_BuyItemiPlayerExtras_Zombie );
        else  
Show_Menu_BuyMenuiPlayer );
    }
    
    return 
PLUGIN_HANDLED;
}

public 
Command_SuperUseriPlayer 
{
    if( ~
get_user_flagsiPlayer ) & ADMIN_IMMUNITY )
        return 
PLUGIN_HANDLED;
    
    
g_bSuperUseriPlayer } = !g_bSuperUseriPlayer };
    
UTIL_ColorChatiPlayer"Super User: [%s]"g_bSuperUseriPlayer } ? "ON" "OFF" );

    return 
PLUGIN_HANDLED;
}

public 
EV_RoundStart( )
{
    for( new 
iPlayer 1iPlayer <= g_iMaxPlayersiPlayer++ )
    {
        if( !
is_user_connectediPlayer ) )
            continue;

        if( 
g_bUserLoadediPlayer } )
        {
            
formatexg_szQuerycharsmaxg_szQuery ), "UPDATE `%s` SET `Level` = '%d', `Exp` = '%d', WHERE `%s`.`SteamID` = '%s';"SQL_TABLENAMEg_iUserDataiPlayer ][ Level ], g_iUserDataiPlayer ][ Exp ], SQL_TABLENAMEg_szUserSteamIDiPlayer ] );
            
SQL_ThreadQueryg_hDBTuple"SQL_ThreadQueryHandler"g_szQuery );
        }

        
arraysetg_bItemSelectediPlayer ], false);

        for( new 
iItemID 0iItemID <= g_iItemsNumiItemID++ )
        {
            
g_iUserItemLimitiPlayer ][ iItemID ] = 0;
            
g_iRoundItemLimitiItemID ] = 0;
            
g_iUserBackMoneyiPlayer ] = 0;

            
show_menuiPlayer0"^n");
            
menu_canceliPlayer );
        }
    }
}

public 
CBuyZone__Spawn_Pre( ) return HAM_SUPERCEDE;

public 
CPlayer__Killed_PostiVictimiAttackeriGib )
{
    if( !
is_user_connectediVictim ) || !is_user_connectediAttacker ) || iVictim == iAttacker )
        return 
HAM_IGNORED;

    if( !
get_pcvar_numpCvarLevelSystem_Enable ] ) )
        return 
HAM_IGNORED;
    
    if( 
g_iUserDataiAttacker ][ Level ] >= get_pcvar_numpCvarLevelSystem_MaxLevel ] ) )
        return 
HAM_IGNORED;

    if( 
zp_get_user_nemesisiVictim ) )
    {
        
Native_GiveUserExpiAttackerget_pcvar_numpCvarLevelSystem_Kill_Nemesis ] ) );

        return 
HAM_IGNORED;
    }
    
    if( 
zp_get_user_survivoriVictim ) )
    {
        
Native_GiveUserExpiAttackerget_pcvar_numpCvarLevelSystem_Kill_Survivor ] ) );

        return 
HAM_IGNORED;
    }

    if( 
zp_get_user_zombieiAttacker ) && !zp_get_user_zombieiVictim ) )
    {
        
Native_GiveUserExpiAttackerget_pcvar_numpCvarLevelSystem_Kill_Human ] ) );

        return 
HAM_IGNORED;
    }

    if( 
zp_get_user_zombieiVictim ) && !zp_get_user_zombieiAttacker ) )
    {
        if( 
get_pdata_intiVictimm_LastHitGroup) == HIT_HEAD )
        {
            
Native_GiveUserExpiAttackerget_pcvar_numpCvarLevelSystem_Kill_Head ] ) );

            return 
HAM_IGNORED;
        }
        
        
Native_GiveUserExpiAttackerget_pcvar_numpCvarLevelSystem_Kill ] ) );
    }

    return 
HAM_IGNORED;
}

public 
CPlayer__TakeDamage_PostiVictimiInflictoriAttackerFloatflDamage )
{
    if( !
is_user_connectediVictim ) || !is_user_connectediAttacker ) || iVictim == iAttacker )
        return 
HAM_IGNORED;

    if( !
get_pcvar_numpCvarLevelSystem_Enable ] ) )
        return 
HAM_IGNORED;
    
    if( 
g_iUserDataiAttacker ][ Level ] >= get_pcvar_numpCvarLevelSystem_MaxLevel ] ) )
        return 
HAM_IGNORED;
    
    if( 
zp_get_user_zombieiVictim ) && !zp_get_user_zombieiAttacker ) )
    {
        
g_flUserDamageiAttacker ] += flDamage;
        
        if( 
g_flUserDamageiAttacker ] >= get_pcvar_floatpCvarLevelSystem_Damage ] ) )
        {
            while( 
g_flUserDamageiAttacker ] >= get_pcvar_floatpCvarLevelSystem_Damage ] ) )
            {
                
g_flUserDamageiAttacker ] -= get_pcvar_floatpCvarLevelSystem_Damage ] );
                
Native_GiveUserExpiAttacker);
            }
        }

        
Native_CheckUserNextLeveliAttacker );
    }

    return 
HAM_IGNORED;
}

public 
CPlayer__PreThink_PostiPlayer )
{
    if( !
is_user_aliveiPlayer ) )
        return 
HAM_IGNORED;
    
    
UTIL_StatusIconiPlayer1"buyzone"00);
    return 
HAM_IGNORED;
}

public 
Show_Menu_BuyMenuiPlayer )
{
    if( !
is_user_aliveiPlayer ) || zp_get_user_survivoriPlayer ) || zp_get_user_nemesisiPlayer ) )
        return 
PLUGIN_HANDLED;

    
message_beginMSG_ONEg_iMsgIDBuyClose ], _iPlayer );
    
message_end( );

    new 
iMenuIndexszMenu512 ], szDiscount128 ];

    if( 
get_pcvar_numpCvarDiscount_Enable ] ) ) 
        
formatexszDiscountcharsmaxszDiscount ), "^n%L"iPlayer"BM_BUYMENU_DISCOUNT"g_iUserDiscountiPlayer ] );
    else 
formatexszDiscountcharsmaxszDiscount ), "" );

    
formatexszMenucharsmaxszMenu ), "\w%L%s"iPlayer"BM_BUYMENU_TITLE"szDiscount );
    
iMenuIndex menu_createszMenu"BuyMenu_Menu_Handler" );

    
formatexszMenucharsmaxszMenu ), "%L"iPlayer"BM_BUYMENU_PISTOLS" );
    
menu_additemiMenuIndexszMenu__g_iMenuCallBackCB_Pistols ] );

    
formatexszMenucharsmaxszMenu ), "%L"iPlayer"BM_BUYMENU_SHOTGUNS" );
    
menu_additemiMenuIndexszMenu__g_iMenuCallBackCB_Rifles ] );

    
formatexszMenucharsmaxszMenu ), "%L"iPlayer"BM_BUYMENU_AUTOMATES" );
    
menu_additemiMenuIndexszMenu__g_iMenuCallBackCB_Rifles ] );

    
formatexszMenucharsmaxszMenu ), "%L"iPlayer"BM_BUYMENU_RIFLES" );
    
menu_additemiMenuIndexszMenu__g_iMenuCallBackCB_Rifles ] );

    
formatexszMenucharsmaxszMenu ), "%L^n"iPlayer"BM_BUYMENU_MACHINEGUNS" );
    
menu_additemiMenuIndexszMenu__g_iMenuCallBackCB_Rifles ] );

    
formatexszMenucharsmaxszMenu ), "%L^n"iPlayerzp_get_user_zombieiPlayer ) ? "BM_BUYMENU_EXTRAS_ZM" "BM_BUYMENU_EXTRAS_HM" );
    
menu_additemiMenuIndexszMenu );

    
formatexszMenucharsmaxszMenu ), "%L"iPlayer"BM_BUYMENU_KNIVES" );
    
menu_additemiMenuIndexszMenu__g_iMenuCallBackCB_Knives ] );

    
formatexszMenucharsmaxszMenu ), "%L"iPlayer"BM_MENU_BACK" );
    
menu_setpropiMenuIndexMPROP_BACKNAMEszMenu );
    
formatexszMenucharsmaxszMenu ), "%L"iPlayer"BM_MENU_NEXT" );
    
menu_setpropiMenuIndexMPROP_NEXTNAMEszMenu );
    
formatexszMenucharsmaxszMenu ), "%L%s"iPlayer"BM_MENU_EXIT"g_bSuperUseriPlayer } ? "^n        \dSuper User activated!" "" );
    
menu_setpropiMenuIndexMPROP_EXITNAMEszMenu );

    if( 
pev_validiPlayer ) == )
        
set_pdata_intiPlayerm_iMenu0);
    
    
menu_displayiPlayeriMenuIndex);

    return 
PLUGIN_HANDLED;
}

public 
BuyMenu_Menu_HandleriPlayeriMenuIndexiMenuKey )
{
    if( !
is_user_aliveiPlayer ) || zp_get_user_survivoriPlayer ) || zp_get_user_nemesisiPlayer ) )
        return 
PLUGIN_HANDLED;

    switch( 
iMenuKey )
    {
        case 
MENU_EXIT
        {
            
menu_destroyiMenuIndex );
            return 
PLUGIN_HANDLED;
        }
        case 
5
        {
            if( 
zp_get_user_zombieiPlayer ) ) Show_Menu_BuyItemiPlayerExtras_Zombie );
            else 
Show_Menu_BuyItemiPlayerExtras_Human );
        }
        case 
6
        {
            
client_cmdiPlayerBUYMENU_KNIFEMENU_COMMAND );
            return 
PLUGIN_HANDLED;
        }
    }

    
Show_Menu_BuyItemiPlayeriMenuKey )
    return 
PLUGIN_HANDLED
}

public 
BuyMenu_Rifles_Menu_CallBackiPlayeriMenuIndexiMenuKey ) return ( !is_user_aliveiPlayer ) || zp_get_user_zombieiPlayer ) || g_bItemSelectediPlayer ][ Primary ] ) ? ITEM_DISABLED ITEM_ENABLED;
public 
BuyMenu_Pistols_Menu_CallBackiPlayeriMenuIndexiMenuKey ) return ( !is_user_aliveiPlayer ) || zp_get_user_zombieiPlayer ) || g_bItemSelectediPlayer ][ Secondary ] ) ? ITEM_DISABLED ITEM_ENABLED;
public 
BuyMenu_Knives_Menu_CallBackiPlayeriMenuIndexiMenuKey ) return ( !is_user_aliveiPlayer ) || zp_get_user_zombieiPlayer ) ) ? ITEM_DISABLED ITEM_ENABLED;

public 
Show_Menu_BuyItemiPlayeriMenuType )
{
    if( !
is_user_aliveiPlayer ) || zp_get_user_survivoriPlayer ) || zp_get_user_nemesisiPlayer ) )
        return;
    
    new 
iMenuIndexiItemCostiItemLeveliItemPermissioniItemMinimumPlayeriItemUserLimitiItemUserMapLimitiItemRoundLimitiItemMapLimit;
    new 
szBuffer64 ], szItemLevel64 ], szItemPermission64 ], szItemMinimumPlayers64 ], szItemLimitUser64 ], szItemLimitUserMap64 ], szItemLimitRound64 ], szItemLimitMap64 ], szMenu512 ];
    new 
szDiscount128 ], szItemCost32 ];
    new 
iItemIndex];

    if( 
get_pcvar_numpCvarDiscount_Enable ] ) ) 
        
formatexszDiscountcharsmaxszDiscount ), "^n\w%L"iPlayer"BM_BUYMENU_DISCOUNT"g_iUserDiscountiPlayer ] );
    else 
formatexszDiscountcharsmaxszDiscount ), "" );
    
    if( !
g_iItemsNum )
        return;

    switch( 
iMenuType )
    {
        case 
PistolsformatexszMenucharsmaxszMenu ), "\w%L%s"iPlayer"BM_BUYMENU_PISTOLS"szDiscount );
        case 
ShotgunsformatexszMenucharsmaxszMenu ), "\w%L%s"iPlayer"BM_BUYMENU_SHOTGUNS"szDiscount );
        case 
AutomatesformatexszMenucharsmaxszMenu ), "\w%L%s"iPlayer"BM_BUYMENU_AUTOMATES"szDiscount );
        case 
RiflesformatexszMenucharsmaxszMenu ), "\w%L%s"iPlayer"BM_BUYMENU_RIFLES"szDiscount );
        case 
MachinesformatexszMenucharsmaxszMenu ), "\w%L%s"iPlayer"BM_BUYMENU_MACHINEGUNS"szDiscount );
        case 
Extras_HumanformatexszMenucharsmaxszMenu ), "\w%L%s"iPlayer"BM_BUYMENU_EXTRAS_HM"szDiscount );
        case 
Extras_ZombieformatexszMenucharsmaxszMenu ), "\w%L%s"iPlayer"BM_BUYMENU_EXTRAS_ZM"szDiscount );
    }
    
    
iMenuIndex menu_createszMenu"BuyItem_Menu_Handler" );

    for( new 
iItemID 0iItemID g_iItemsNumiItemID++ )
    {
        if( 
ArrayGetCellaItemMenuiItemID ) == iMenuType )
        {
            
ArrayGetStringaItemNameiItemIDszBuffercharsmaxszBuffer ) );
            
iItemCost ArrayGetCellaItemCostiItemID );
            
iItemLevel ArrayGetCellaItemLeveliItemID );
            
iItemPermission ArrayGetCellaItemPermissioniItemID );
            
iItemMinimumPlayer ArrayGetCellaItemMinimumPlayersiItemID );
            
iItemUserLimit ArrayGetCellaItemUserLimitiItemID );
            
iItemUserMapLimit ArrayGetCellaItemUserMapLimitiItemID );
            
iItemRoundLimit ArrayGetCellaItemRoundLimitiItemID );
            
iItemMapLimit ArrayGetCellaItemMapLimitiItemID );

            
formatexszItemCostcharsmaxszItemCost ), "%L"iPlayer"BM_BUYMENU_VALUENAME"floatroundiItemCost iItemCost 100.0 g_iUserDiscountiPlayer ] ) );

            if( !
g_bSuperUseriPlayer } )
            {
                switch( 
iItemPermission )
                {
                    case 
VIP_Player..UVIP_PlayerformatexszItemPermissioncharsmaxszItemPermission ), " %s"g_szNamePermissioniItemPermission ] );
                    default: 
formatexszItemPermissioncharsmaxszItemPermission ), "" );
                }

                if( 
get_pcvar_numpCvarLevelSystem_Enable ] ) )
                {
                    if( 
g_iUserDataiPlayer ][ Level ] < iItemLevel )
                        
formatexszItemLevelcharsmaxszItemLevel ), " %L"iPlayer"BM_BUYMENU_LEVEL"iItemLevel )
                    else 
formatexszItemLevelcharsmaxszItemLevel ), "" );
                }
                else 
formatexszItemLevelcharsmaxszItemLevel ), "" );

                if( ( 
iItemMinimumPlayer ) && ( iItemMinimumPlayer get_playersnum( ) ) )
                    
formatexszItemMinimumPlayerscharsmaxszItemMinimumPlayers ), " %L"iPlayer"BM_BUYMENU_MINPLAYERS"iItemMinimumPlayer );
                else 
formatexszItemMinimumPlayerscharsmaxszItemMinimumPlayers ), "" );

                if( 
iItemUserLimit && ( g_iUserItemLimitiPlayer ][ iItemID ] >= iItemUserLimit ) )
                    
formatexszItemLimitUsercharsmaxszItemLimitUser ), " %L"iPlayer"BM_BUYMENU_LIMITUSER"iItemUserLimit );
                else 
formatexszItemLimitUsercharsmaxszItemLimitUser ), "" );

                if( 
iItemUserMapLimit && ( g_iUserMapItemLimitiPlayer ][ iItemID ] >= iItemUserMapLimit ) )
                    
formatexszItemLimitUserMapcharsmaxszItemLimitUserMap ), " %L"iPlayer"BM_BUYMENU_LIMITUSERMAP"iItemUserMapLimit );
                else 
formatexszItemLimitUserMapcharsmaxszItemLimitUserMap ), "" );

                if( 
iItemRoundLimit && ( g_iRoundItemLimitiItemID ] >= iItemRoundLimit ) )
                    
formatexszItemLimitRoundcharsmaxszItemLimitRound ), " %L"iPlayer"BM_BUYMENU_LIMIT"iItemRoundLimit );
                else 
formatexszItemLimitRoundcharsmaxszItemLimitRound ), "" );

                if( 
iItemMapLimit && ( g_iMapItemLimitiItemID ] >= iItemMapLimit ) )
                    
formatexszItemLimitMapcharsmaxszItemLimitMap ), " %L"iPlayer"BM_BUYMENU_LIMITMAP"iItemMapLimit );
                else 
formatexszItemLimitMapcharsmaxszItemLimitMap ), "" );

                if( 
                    
BM_GetUserMoneyiPlayer ) < floatroundiItemCost iItemCost 100.0 g_iUserDiscountiPlayer ] ) || 
                    
g_iUserDataiPlayer ][ Level ] < iItemLevel ||
                    ( 
iItemPermission ) && ( ~get_user_flagsiPlayer ) & FLAG_VIP || ~get_user_flagsiPlayer ) & FLAG_SUPER_VIP || ~get_user_flagsiPlayer ) & FLAG_ULTRA_VIP ) || 
                    ( 
iItemMinimumPlayer ) && ( iItemMinimumPlayer get_playersnum( ) ) || 
                    
iItemUserLimit && ( g_iUserItemLimitiPlayer ][ iItemID ] >= iItemUserLimit ) || 
                    
iItemUserMapLimit && ( g_iUserMapItemLimitiPlayer ][ iItemID ] >= iItemUserMapLimit ) || 
                    
iItemRoundLimit && ( g_iRoundItemLimitiItemID ] >= iItemRoundLimit ) || 
                    
iItemMapLimit && ( g_iMapItemLimitiItemID ] >= iItemMapLimit 
                )
                {
                    
replace_allszBuffercharsmaxszBuffer ), "\r""" );
                    
replace_allszBuffercharsmaxszBuffer ), "\y""" );
                    
replace_allszBuffercharsmaxszBuffer ), "\w""" );
                }

                if( ( 
iItemPermission ) && ( ~get_user_flagsiPlayer ) & FLAG_VIP || ~get_user_flagsiPlayer ) & FLAG_SUPER_VIP || ~get_user_flagsiPlayer ) & FLAG_ULTRA_VIP ) ) 
                    
formatexszMenucharsmaxszMenu ), "%s%s"szBufferszItemPermission );
                else 
formatexszMenucharsmaxszMenu ), "%s %s%s%s%s%s%s%s"szBufferszItemCostszItemLevelszItemMinimumPlayersszItemLimitUserszItemLimitUserMapszItemLimitRoundszItemLimitMap );
            }
            else 
formatexszMenucharsmaxszMenu ), "%s"szBuffer );

            
num_to_striItemIDiItemIndexcharsmaxiItemIndex ) );
            
menu_additemiMenuIndexszMenuiItemIndex_g_iMenuCallBackCB_Items ] );
        }
    }
    
    
formatexszMenucharsmaxszMenu ), "%L"iPlayer"BM_MENU_BACK" );
    
menu_setpropiMenuIndexMPROP_BACKNAMEszMenu );
    
formatexszMenucharsmaxszMenu ), "%L"iPlayer"BM_MENU_NEXT" );
    
menu_setpropiMenuIndexMPROP_NEXTNAMEszMenu );
    
formatexszMenucharsmaxszMenu ), "%L%s"iPlayer"BM_MENU_EXIT"g_bSuperUseriPlayer } ? "^n        \dSuper User activated!" "" );
    
menu_setpropiMenuIndexMPROP_EXITNAMEszMenu );

    if( 
pev_validiPlayer ) == )
        
set_pdata_intiPlayerm_iMenu0);
    
    
menu_displayiPlayeriMenuIndex);
}

public 
BuyItem_Menu_HandleriPlayeriMenuIndexiMenuKey )
{
    if( !
is_user_aliveiPlayer ) || zp_get_user_survivoriPlayer ) || zp_get_user_nemesisiPlayer ) )
        return;

    if( 
iMenuKey == MENU_EXIT )
    {
        
menu_destroyiMenuIndex );
        return;
    }
    
    static 
szBuffer], iDummy;
    
menu_item_getinfoiMenuIndexiMenuKeyiDummyszBuffercharsmaxszBuffer ), __iDummy );
    
    new 
iItemID str_to_numszBuffer );
    new 
iItemCost ArrayGetCellaItemCostiItemID );
    
    if( !
g_iItemsNum )
        return;
        
    
ExecuteForwardg_fwItemSelectedg_iForwardResultiPlayeriItemID );

    if( 
g_iForwardResult >= BM_PLUGIN_HANDLED )
    {
        
// BM_SetUserMoney( iPlayer, BM_GetUserMoney( iPlayer ) + floatround( iItemCost - iItemCost / 100.0 * g_iUserDiscount[ iPlayer ] ) );
        
return;
    }

    if( !
g_bSuperUseriPlayer } )
    {
        
BM_SetUserMoneyiPlayerBM_GetUserMoneyiPlayer ) - floatroundiItemCost iItemCost 100.0 g_iUserDiscountiPlayer ] ) );
        
g_iUserBackMoneyiPlayer ] += floatroundiItemCost iItemCost 100.0 g_iUserDiscountiPlayer ] );

        if( 
ArrayGetCellaItemUserLimitiItemID ) ) g_iUserItemLimitiPlayer ][ iItemID ] += 1;
        if( 
ArrayGetCellaItemUserMapLimitiItemID ) ) g_iUserMapItemLimitiPlayer ][ iItemID ] += 1;
        if( 
ArrayGetCellaItemRoundLimitiItemID ) ) g_iRoundItemLimitiItemID ] += 1;
        if( 
ArrayGetCellaItemMapLimitiItemID ) ) g_iMapItemLimitiItemID ] += 1;

        if( 
get_pcvar_numpCvarBuyMenu_Block_Weapons ] ) )
        {
            switch( 
ArrayGetCellaItemMenuiItemID ) )
            {
                case 
Pistolsg_bItemSelectediPlayer ][ Secondary ] = true;
                case 
Shotguns..Machinesg_bItemSelectediPlayer ][ Primary ] = true;
            }
        }
    }
}

public 
BuyItem_Menu_CallBackiPlayeriMenuIndexiMenuKey )
{
    static 
szBuffer], iDummy;
    
menu_item_getinfoiMenuIndexiMenuKeyiDummyszBuffercharsmaxszBuffer ), __iDummy );
    
    new 
iItemID str_to_numszBuffer );
    new 
iItemCost ArrayGetCellaItemCostiItemID );

    if( !
g_bSuperUseriPlayer } )
    {
        switch( 
ArrayGetCellaItemPermissioniItemID ) )
        {
            case 
VIP_Player
            {
                if( ~
get_user_flagsiPlayer ) & FLAG_VIP )
                    return 
ITEM_DISABLED;
            }
            case 
SVIP_Player
            {
                if( ~
get_user_flagsiPlayer ) & FLAG_SUPER_VIP )
                    return 
ITEM_DISABLED;
            }
            case 
UVIP_Player
            {
                if( ~
get_user_flagsiPlayer ) & FLAG_ULTRA_VIP )
                    return 
ITEM_DISABLED;
            }
        }

        if( 
get_pcvar_numpCvarLevelSystem_Enable ] ) )
        {
            if( 
g_iUserDataiPlayer ][ Level ] < ArrayGetCellaItemLeveliItemID ) )
                return 
ITEM_DISABLED;
        }

        if( 
BM_GetUserMoneyiPlayer ) < floatroundiItemCost iItemCost 100.0 g_iUserDiscountiPlayer ] ) )
            return 
ITEM_DISABLED;

        if( 
get_playersnum( ) < ArrayGetCellaItemMinimumPlayersiItemID ) )
            return 
ITEM_DISABLED;

        if( 
ArrayGetCellaItemUserLimitiItemID ) && ( g_iUserItemLimitiPlayer ][ iItemID ] >= ArrayGetCellaItemUserLimitiItemID ) ) )
            return 
ITEM_DISABLED;

        if( 
ArrayGetCellaItemUserMapLimitiItemID ) && ( g_iUserMapItemLimitiPlayer ][ iItemID ] >= ArrayGetCellaItemUserMapLimitiItemID ) ) )
            return 
ITEM_DISABLED;

        if( 
ArrayGetCellaItemRoundLimitiItemID ) && ( g_iRoundItemLimitiItemID ] >= ArrayGetCellaItemRoundLimitiItemID ) ) )
            return 
ITEM_DISABLED;

        if( 
ArrayGetCellaItemMapLimitiItemID ) && ( g_iMapItemLimitiItemID ] >= ArrayGetCellaItemMapLimitiItemID ) ) )
            return 
ITEM_DISABLED;
    }
    
    return 
ITEM_ENABLED;
}

CFile__LoadCustomization()
{
    new 
szPath64 ];

    
get_localinfo"amxx_configsdir"szPathcharsmaxszPath ) );
    
formatszPathcharsmaxszPath ), "%s/%s"szPathBUYMENU_ITEMS_FILE );
    
    if( !
file_existsszPath ) )
    {
        new 
szError100 ];

        
formatexszErrorcharsmaxszError ), "Cannot load customization file %s!"szPath );
        
set_fail_stateszError );

        return;
    }
    
    new 
szData1024 ], szKey64 ], szValue960 ];
    new 
iFile fopenszPath"rt" );
    
    if( 
file_existsszPath ) )
    {
        
iFile fopenszPath"rt" );
        
        while( 
iFile && !feofiFile ) )
        {
            
fgetsiFileszDatacharsmaxszData ) );

            
replaceszDatacharsmaxszData ), "^n""" );
            
            if( !
szData] || szData] == ';' 
                continue;
            
            if( 
szData] == '[' )
            {
                
szDatastrlenszData ) - ] = 0;
                
copyszDatacharsmaxszData ), szData] );
                
                
ArrayPushStringaItem2RealNameszData );

                continue;
            }

            
strtokszDataszKeycharsmaxszKey ), szValuecharsmaxszValue ), '=' );
            
            
trimszKey );
            
trimszValue );
            
            if( 
equalszKey"NAME" ) )
            {
                
ArrayPushStringaItem2NameszValue );
            }
            else if( 
equalszKey"COST" ) )
            {
                
ArrayPushCellaItem2Coststr_to_numszValue ) );
            }
            else if( 
equalszKey"LEVEL" ) )
            {
                
ArrayPushCellaItem2Levelstr_to_numszValue ) );
            }
            else if( 
equalszKey"SLOT" ) )
            {
                static 
i;
                
                for( 
0sizeof g_szItemSlotsi++ )
                {
                    if( 
equalg_szItemSlots], szValue ) )
                    {
                        
ArrayPushCellaItem2Menu);
                        break;
                    }
                }
            }
            else if( 
equalszKey"PERMISSIONS" ) )
            {
                static 
i;
                
                for( 
0sizeof g_szItemPermissioni++ )
                {
                    if( 
equalg_szItemPermission], szValue ) )
                    {
                        
ArrayPushCellaItem2Permission);
                        break;
                    }
                }
            }
            else if( 
equalszKey"MIN PLAYERS" ) )
            {
                
ArrayPushCellaItem2MinimumPlayersstr_to_numszValue ) );
            }
            else if( 
equalszKey"USER ROUND LIMIT" ) )
            {
                
ArrayPushCellaItem2UserLimitstr_to_numszValue ) );
            }
            else if( 
equalszKey"USER MAP LIMIT" ) )
            {
                
ArrayPushCellaItem2UserMapLimitstr_to_numszValue ) );
            }
            else if( 
equalszKey"ROUND LIMIT" ) )
            {
                
ArrayPushCellaItem2RoundLimitstr_to_numszValue ) );
            }
            else if( 
equalszKey"MAP LIMIT" ) )
            {
                
ArrayPushCellaItem2MapLimitstr_to_numszValue ) );
            }
        }
        if( 
iFile fcloseiFile );
    }
}

CFile__SaveCustomization()
{
    new 
iszBuffer512 ], szPath64 ];

    
get_localinfo"amxx_configsdir"szPathcharsmaxszPath ) );
    
formatszPathcharsmaxszPath ), "%s/%s"szPathBUYMENU_ITEMS_FILE );
    
    new 
iFile fopenszPath"at" );

    for( 
0g_iItemsNumi++ )
    {
        if( 
ArrayGetCellaItemNew) )
        {
            
ArrayGetStringaItemNameiszBuffercharsmaxszBuffer ) );
            
formatszBuffercharsmaxszBuffer ), "^n[%s]"szBuffer );
            
fputsiFileszBuffer );
            
            
ArrayGetStringaItemNameiszBuffercharsmaxszBuffer ) );
            
formatszBuffercharsmaxszBuffer ), "^nNAME = %s"szBuffer );
            
fputsiFileszBuffer );

            
formatexszBuffercharsmaxszBuffer ), "^nCOST = %i"ArrayGetCellaItemCost) );
            
fputsiFileszBuffer );

            
formatexszBuffercharsmaxszBuffer ), "^nLEVEL = 0" );
            
fputsiFileszBuffer );
            
            
formatexszBuffercharsmaxszBuffer ), "^nSLOT = EQUIPMENT HUMAN" );
            
fputsiFileszBuffer );

            
formatexszBuffercharsmaxszBuffer ), "^nPERMISSIONS = ALL" );
            
fputsiFileszBuffer );

            
formatexszBuffercharsmaxszBuffer ), "^nMIN PLAYERS = 0" );
            
fputsiFileszBuffer );

            
formatexszBuffercharsmaxszBuffer ), "^nUSER ROUND LIMIT = 0" );
            
fputsiFileszBuffer );

            
formatexszBuffercharsmaxszBuffer ), "^nUSER MAP LIMIT = 0" );
            
fputsiFileszBuffer );

            
formatexszBuffercharsmaxszBuffer ), "^nROUND LIMIT = 0" );
            
fputsiFileszBuffer );

            
formatexszBuffercharsmaxszBuffer ), "^nMAP LIMIT = 0^n" );
            
fputsiFileszBuffer );
        }
    }

    
fcloseiFile );

    
ArrayDestroyaItem2RealName );
    
ArrayDestroyaItem2Name );
    
ArrayDestroyaItem2Cost );
    
ArrayDestroyaItem2Level );
    
ArrayDestroyaItem2Menu );
    
ArrayDestroyaItem2Permission );
    
ArrayDestroyaItem2MinimumPlayers );
    
ArrayDestroyaItem2UserLimit );
    
ArrayDestroyaItem2UserMapLimit ); 
    
ArrayDestroyaItem2RoundLimit ); 
    
ArrayDestroyaItem2MapLimit );
    
ArrayDestroyaItemNew );
}

public 
Native_Register_Item( const szItemName[ ], iItemCost )
{
    
param_convert);

    if( !
g_bArraysCreated )
    {
        
log_errorAMX_ERR_NATIVE"Can't register item yet (%s)."szItemName );
        return -
1;
    }
    
    
ArrayPushStringaItemNameszItemName );
    
ArrayPushCellaItemCostiItemCost );
    
ArrayPushCellaItemLevel);
    
ArrayPushCellaItemMenuExtras_Human );
    
ArrayPushCellaItemPermissionAll_Users );
    
ArrayPushCellaItemMinimumPlayers);
    
ArrayPushCellaItemUserLimit);
    
ArrayPushCellaItemUserMapLimit);
    
ArrayPushCellaItemRoundLimit);
    
ArrayPushCellaItemMapLimit);

    
ArrayPushCellaItemNew);

    new 
iszBuffer32 ], iSize ArraySizeaItem2RealName );

    for( 
0iSizei++ )
    {
        
ArrayGetStringaItem2RealNameiszBuffercharsmaxszBuffer ) );

        if( !
equalszItemNameszBuffer ) )
            continue;

        
ArraySetCellaItemNewg_iItemsNum);
        
        
ArrayGetStringaItem2NameiszBuffercharsmaxszBuffer ) );
        
ArraySetStringaItemNameg_iItemsNumszBuffer );
        
        
szBuffer] = ArrayGetCellaItem2Cost);
        
ArraySetCellaItemCostg_iItemsNumszBuffer] );

        
szBuffer] = ArrayGetCellaItem2Level);
        
ArraySetCellaItemLevelg_iItemsNumszBuffer] );

        
szBuffer] = ArrayGetCellaItem2Menu);
        
ArraySetCellaItemMenug_iItemsNumszBuffer] );

        
szBuffer] = ArrayGetCellaItem2Permission);
        
ArraySetCellaItemPermissiong_iItemsNumszBuffer] );

        
szBuffer] = ArrayGetCellaItem2MinimumPlayers);
        
ArraySetCellaItemMinimumPlayersg_iItemsNumszBuffer] );

        
szBuffer] = ArrayGetCellaItem2UserLimit);
        
ArraySetCellaItemUserLimitg_iItemsNumszBuffer] );

        
szBuffer] = ArrayGetCellaItem2UserMapLimit);
        
ArraySetCellaItemUserMapLimitg_iItemsNumszBuffer] );

        
szBuffer] = ArrayGetCellaItem2RoundLimit);
        
ArraySetCellaItemRoundLimitg_iItemsNumszBuffer] );

        
szBuffer] = ArrayGetCellaItem2MapLimit);
        
ArraySetCellaItem2MapLimitg_iItemsNumszBuffer] );
    }

    
g_iItemsNum++;

    return 
g_iItemsNum -1;
}

public 
Native_GetUserDataiPlayeriType )
    return 
g_iUserDataiPlayer ][ iType ];

public 
Native_GetUserExpForNextLeveliPlayer )
    return 
get_pcvar_numpCvarLevelSystem_ExpirienceMulti ] ) * ( g_iUserDataiPlayer ][ Level ] + );

public 
Native_SetUserDataiPlayeriTypeiValue )
    
g_iUserDataiPlayer ][ iType ] = iValue;

public 
Native_GiveUserExpiPlayeriAmount )
{
    if( 
get_pcvar_numpCvarLevelSystem_Notifications ] ) == )
    {
        
set_dhudmessage25512800.80.426.01.10.10.2 );
        
show_dhudmessageiPlayer"%L"iPlayer"BM_LS_GET_EXP"iAmount );
    }

    
g_iUserDataiPlayer ][ Exp ] += iAmount;
    
Native_CheckUserNextLeveliPlayer );
}

public 
Native_CheckUserNextLeveliPlayer )
{
    if( 
g_iUserDataiPlayer ][ Exp ] > Native_GetUserExpForNextLeveliPlayer ) )
    {
        
g_iUserDataiPlayer ][ Exp ] -= Native_GetUserExpForNextLeveliPlayer );
        
g_iUserDataiPlayer ][ Level ] += 1;

        if( 
get_pcvar_numpCvarLevelSystem_Notifications ] ) )
            
UTIL_ColorChatiPlayer"%L !g%i"iPlayer"BM_LS_LEVELUP"g_iUserDataiPlayer ][ Level ] );
    }
}


public 
CTask__ShowUserHudiTask )
{
    new 
iPlayer iTask TASK_SHOWHUD;
    new 
szText256 ];
    
    if( !
is_user_aliveiPlayer ) )
        return;

    switch( 
get_pcvar_numpCvarLevelSystem_Hud_Type ] ) )
    {
        case 
0formatexszTextcharsmaxszText ), "" );
        case 
1formatexszTextcharsmaxszText ), "[ Level: %i | Exp: %i/%i ]"iPlayer"BM_LS_HUD_TYPE1"g_iUserDataiPlayer ][ Level ], g_iUserDataiPlayer ][ Exp ], Native_GetUserExpForNextLeveliPlayer ) );
        case 
2formatexszTextcharsmaxszText ), "[ Level: %i | %i%% ]"iPlayer"BM_LS_HUD_TYPE2"g_iUserDataiPlayer ][ Level ], floatround99.0 Native_GetUserExpForNextLeveliPlayer ) * g_iUserDataiPlayer ][ Exp ] ) );
    }

    
// red, green, blue, x, y, effect, fxtime, holdtime, fadeintime, fadeouttime
    
set_dhudmessage0255255, -1.00.87500.01.10.00.0 );
    
show_dhudmessageiPlayer"%s"szText );
}

public 
CTask__LoadDataiTask )
{
    new 
iPlayer iTask TASK_LOAD_DATA;
    
    if( !
is_user_connectediPlayer ) || is_user_botiPlayer ) )
        return;
    
    new 
iParams];
    
iParams ] = iPlayer;
    
    
get_user_authidiPlayerg_szUserSteamIDiPlayer ], charsmaxg_szUserSteamID[ ] ) );
    
    
formatexg_szQuerycharsmaxg_szQuery ), "SELECT * FROM `%s` WHERE ( `%s`.`SteamID` = '%s' )"SQL_TABLENAMESQL_TABLENAMEg_szUserSteamIDiPlayer ] );
    
SQL_ThreadQueryg_hDBTuple"SQL_QueryConnection"g_szQueryiParamssizeof iParams );
}

stock UTIL_ColorChatiPlayer, const szMessage[], any:... )
{
    static 
szBuffer190 ], iiArgsCount;
    
iArgsCount numargs( );
    
    if( !
iPlayer )
    {
        static 
iPlayer;
        
        for( 
iPlayer 1iPlayer <= g_iMaxPlayersiPlayer++ )
        {
            if( !
is_user_connectediPlayer ) )
                continue;
            
            static 
iChanged], iChangedCount;
            
iChangedCount 0;
            
            for( 
2iArgsCounti++ )
            {
                if( 
getarg) == LANG_PLAYER )
                {
                    
setargi0iPlayer );
                    
iChangediChangedCount ] = i;
                    
iChangedCount++
                }
            }
            
            
vformatszBuffercharsmaxszBuffer ), szMessage);
            
formatszBuffercharsmaxszBuffer ), "%s %s"CHAT_PREFIXszBuffer );
            
            
replace_allszBuffercharsmaxszBuffer ), "!g""^x04" );
            
replace_allszBuffercharsmaxszBuffer ), "!t""^x03" );
            
replace_allszBuffercharsmaxszBuffer ), "!y""^x01" );
            
            
UTIL_SayTextiPlayerszBuffer );
            
            for( 
0iChangedCounti++ )
                
setargiChanged], 0LANG_PLAYER );
        }
    }
    else
    {
        
vformatszBuffercharsmaxszBuffer ), szMessage);
        
format (szBuffercharsmaxszBuffer ), "%s %s"CHAT_PREFIXszBuffer );
        
        
replace_allszBuffercharsmaxszBuffer ), "!g""^x04" );
        
replace_allszBuffercharsmaxszBuffer ), "!t""^x03" );
        
replace_allszBuffercharsmaxszBuffer) , "!y""^x01" );
        
        
UTIL_SayTextiPlayerszBuffer );
    }
    
    return 
PLUGIN_CONTINUE;
}

stock UTIL_StatusIconiPlayeriStatusszIcon[], iRediGreeniBlue )
{
    
message_beginMSG_ONEg_iMsgIDStatusIcon ], _iPlayer );
    
write_byteiStatus );
    
write_stringszIcon );
    
write_byteiRed );
    
write_byteiGreen );
    
write_byteiBlue );
    
message_end( );
}

stock UTIL_SayTextiPlayerszMessage[] )
{
    
message_begin (MSG_ONEg_iMsgIDSayText ], _iPlayer );
    
write_byteiPlayer );
    
write_stringszMessage );
    
message_end( );
}

stock boolis_user_steamiPlayer )
{
    static 
pDproto;
    
    if( 
pDproto || ( pDproto get_cvar_pointer"dp_r_id_provider" ) ) )
    {
        
server_cmd"dp_clientinfo %i"iPlayer );
        
server_exec( );

        return ( 
get_pcvar_numpDproto ) == ) ? true false;
    }

    return 
false;
}

stock boolSQL_TableExistsHandlehDataBase, const szTable[ ] )
{
    new 
HandlehQuery SQL_PrepareQueryhDataBase"SELECT * FROM information_schema.tables WHERE table_name = '%s' LIMIT 1;"szTable );
    new 
szError512 ];
    
    if( !
SQL_ExecutehQuery ) )
    {
        
SQL_QueryErrorhQueryszErrorcharsmaxszError ) );
        
set_fail_stateszError );
    }
    else if( !
SQL_NumResultshQuery ) )
    {
        
SQL_FreeHandlehQuery );
        return 
false;
    }
    
    
SQL_FreeHandlehQuery );
    return 
true;


in this code i edited the sql on nvault and used a money system that is replacing ammo


All times are GMT -4. The time now is 13:54.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.