Ayuda que solo muestre el menu de armas a los CT
#1
Hola, buenas estaba tratando de editar este plugin para que hiciera que al empezar la partida solo le muestre el menu de armas al equipo CT, este plugin es de un modo llamado gunxpmod y al empezar cada ronda muestra un menu de arma con niveles y yo quiero que solo se los muestre al equipo CT si alguien tan amable de editarmelo se lo agradeceria gracias. Rainbow


Archivos adjuntos
.sma   Descargar AMXX / gunxpmod.sma (Tamaño: 32.03 KB / Descargas: 58)
DancingLmlDancing
Responder
#2
Me conectó desde la PC y edito el mensaje.

EDIT:
Código PHP:
#if defined ZOMBIE_BIOHAZARD
  #include <biohazard>
#endif
#if defined ZOMBIE_PLAGUE
  #include <zombieplague>
#endif

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <fun>
#include <cstrike>
#include <nvault>
#include <hamsandwich>

#define PLUGIN    "Gun Xp Mod"
#define AUTHOR    "xbatista"
#define VERSION    "1.7"

//#define NORMAL_MOD
//#define ZOMBIE_SWARM
#define ZOMBIE_INFECTION

#define ZOMBIE_BIOHAZARD
//#define ZOMBIE_PLAGUE


#define ADMIN_EXTRA ADMIN_LEVEL_H
#define MAXLEVEL 24

#define OFFSET_PRIMARYWEAPON 116
#define MENU_STARTID g_menu_data[id][2]
const KEYSMENU = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<9)
#define TASK_SHOW_LEVEL 10113
#define fm_cs_set_user_nobuy(%1) set_pdata_int(%1, 235, get_pdata_int(%1, 235) & ~(1<<0) ) //no weapon buy

new PlayerXp[33];
new 
PlayerLevel[33];

new 
g_Vault;
new 
g_kills[33];
new 
g_menu_data[33][8];
new 
g_remember_selection[33];
new 
g_maxplayersg_msgHudSync1SayTxTenable_grenades;
new 
levelsprlevelspr2show_level_textshow_rank;
new 
savexp xp_killxp_tripleenable_tripletriple_killsxp_ultraultra_killsenable_ultrap_Enabledlevel_style;
new 
enable_admin_xpadmin_xp;

new const 
LevelUp[] = "umbrella/levelup.wav";
                                                           
//mac10//
new const LEVELS[MAXLEVEL] = { 90180300450700120018002800,
41005200600068008200102001200015000175002050025500//<-aug//
29000350004600058000150000
}; // Levels

new const RANKLEVELS[MAXLEVEL][] = { "Beginner""Beginner""Beginner""Beginner""Beginner""Slayer""Slayer""Slayer",
"Hunter""Hunter""Hunter""Hunter""Assassin""Assassin""Hero""Hero""Hero""War Lord""War Lord"
"Supernatural""Supernatural""Supernatural""Umbrella Soldier""Umbrella Soldier"
}; // Rank Levels

new const RANK[MAXLEVEL][] = { "Glock 18C""USP .45 ACP Tactical""P228 Compact""FiveseveN""Desert Eagle .50 AE""Dual Elite Berettas"
"Schmidt TMP""Ingram MAC-10""UMP 45""MP5 Navy""ES P90""Scout""AWP Magnum Sniper""Famas""IMI Galil""M3 Super 90""XM1014 M4"
"AK-47""M4A1 Carbine""Steyr AUG A1""SG-552 Commando""SG-550 Auto-Sniper""G3SG1 Auto-Sniper""M249 Para Machinegun" 
}; // Weapon Name Ranks

new const WEAPONCONST[MAXLEVEL][] = { "weapon_glock18""weapon_usp""weapon_p228""weapon_fiveseven""weapon_deagle""weapon_elite""weapon_tmp"
"weapon_mac10""weapon_ump45""weapon_mp5navy""weapon_p90""weapon_scout""weapon_awp""weapon_famas""weapon_galil""weapon_m3""weapon_xm1014"
"weapon_ak47""weapon_m4a1""weapon_aug""weapon_sg552""weapon_sg550""weapon_g3sg1""weapon_m249" 
}; // Give Weapons

new const WEAPONMDL[MAXLEVEL][] = { "models/w_glock18.mdl""models/w_usp.mdl""models/w_p228.mdl""models/w_fiveseven.mdl""models/w_deagle.mdl""models/w_elite.mdl""models/w_tmp.mdl"
"models/w_mac10.mdl""models/w_ump45.mdl""models/w_mp5.mdl""models/w_p90.mdl""models/w_scout.mdl""models/w_awp.mdl""models/w_famas.mdl""models/w_galil.mdl""models/w_m3.mdl""models/w_xm1014.mdl"
"models/w_ak47.mdl""models/w_m4a1.mdl""models/w_aug.mdl""models/w_sg552.mdl""models/w_sg550.mdl""models/w_g3sg1.mdl""models/w_m249.mdl" 
}; // Blocks pick up weapon, that is not model replacement!!!

new const AMMOCONST[MAXLEVEL] = { 17161112610237121930318
15142152822827132420 
}; // Weapons ID(CSW)

new const AMMO2CONST[MAXLEVEL] = { 40040040040040040040040040040040040090
4004008080400400400400200200400
}; // Weapons Ammo

/*================================================================================
                        [Plugin natives,precache,init]
=================================================================================*/
public plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR);
    
register_cvar("gxm_version"VERSIONFCVAR_SPONLY|FCVAR_SERVER)
    
set_cvar_string("gxm_version"VERSION)
    
    
register_concmd("set_level""cmd_give_level"ADMIN_RCON" <name> <amount>" );
    
register_clcmd("say level""showlevel");
    
register_clcmd("say /level""showlevel");
    
register_clcmd("say /top20","showtop20");
    
register_clcmd("say /menu","show_main_menu_info");
    
register_clcmd("say menu","show_main_menu_info");
    
    
p_Enabled register_cvar"gxm_enable""1" ); // Plugin enabled? 1 = Yes, 0 = No.
    
xp_kill register_cvar("gxm_xp","7"); // How much xp gain if you killed someone?
    
savexp register_cvar("gxm_save","0"); // Save Xp by : 1 = SteamID, 0 = IP.
    
show_level_text register_cvar("gxm_level_text","1"); // Show your level by : 1 = HUD message, 0 = Simple colored text message.
    
show_rank register_cvar("gxm_show_rank","1"); // Show rank in /top20? 1 = Yes, 0 = No.
    
level_style register_cvar("gxm_level_style","0"); // You will gain each level new gun : 1 = Yes, 0 = No,select your gun by menu.
    
enable_grenades register_cvar("gxm_grenades","1"); // Give to player grenades? 1 = Yes, 0 = No.
    
    
enable_triple register_cvar("gxm_triple","1"); // Enable Triple Kill bonus xp? 1 = Yes, 0 = No.
    
xp_triple register_cvar("gxm_triple_xp","3"); // How much bonus xp give for Triple Kill?
    
triple_kills register_cvar("gxm_triple_kills","3"); // How much kills needed to give bonus xp?
    
enable_ultra register_cvar("gxm_ultra","1"); // Enable Ultra Kill bonus xp? 1 = Yes, 0 = No.
    
xp_ultra register_cvar("gxm_ultra_xp","5"); // How much bonus xp give for Ultra Kill?
    
ultra_kills register_cvar("gxm_ultra_kills","6"); // How much kills needed to give bonus xp?
    
    
enable_admin_xp register_cvar("gxm_admin_xp","1"); // Enable Extra xp for killing? 1 = Yes, 0 = No.
    
admin_xp register_cvar("gxm_extra_xp","5"); // How much extra xp give to admins?
                    // Events //
    
register_event("DeathMsg""event_deathmsg""a");
    
register_event("StatusValue""Event_StatusValue""bd""1=2")
                    
// Forwards //
    
RegisterHam(Ham_Spawn"player""fwd_PlayerSpawn"1);
    
    
register_forward(FM_Touch"fwd_Touch");
                    
// Messages //
    #if defined NORMAL_MOD || defined ZOMBIE_SWARM
    
register_message(get_user_msgid("StatusIcon"),    "Message_StatusIcon")
    
#endif
    
                    // Other //    
    
register_menu("Level by Menu"KEYSMENU"menu_level")
    
register_menu("Main Level Menu"KEYSMENU"main_menu_level")
    
register_menucmd(register_menuid("Main Menu"), 1023"main_menu_info")
    
    
register_dictionary("gunxpmod.txt");
                    
    
SayTxT get_user_msgid("SayText");
    
    
g_msgHudSync1 CreateHudSyncObj()
    
g_maxplayers get_maxplayers();
}
public 
plugin_natives()
{
                    
// Player natives //
    
register_native("get_user_xp""native_get_user_xp"1);
    
register_native("set_user_xp""native_set_user_xp"1);
    
register_native("get_user_level""native_get_user_level"1);
    
register_native("set_user_level""native_set_user_level"1);
    
register_native("get_user_max_level""native_get_user_max_level"1);
}
public 
plugin_precache()
{
    
levelspr engfunc(EngFunc_PrecacheModel"sprites/xfire.spr");
    
levelspr2 engfunc(EngFunc_PrecacheModel"sprites/xfire2.spr");
    
    
engfunc(EngFunc_PrecacheSoundLevelUp);
}
public 
plugin_cfg()
{
    
//Open our vault and have g_Vault store the handle.
    
g_Vault nvault_open"gunxpmod" );

    
//Make the plugin error if vault did not successfully open
    
if ( g_Vault == INVALID_HANDLE )
        
set_fail_state"Error opening GunXpMod nVault, file does not exist!" );
}
public 
plugin_end()
{
    
//Close the vault when the plugin ends (map change\server shutdown\restart)
    
nvault_closeg_Vault );
}
public 
client_authorized(id)
{
    
g_remember_selection[id] = 0;
    
    
LoadLevel(id)
}
public 
client_disconnect(id)
{
    
SaveLevel(id)
}
public 
Message_StatusIcon(iMsgIdMSG_DESTid

    if( !
get_pcvar_num(p_Enabled) )
        return 
PLUGIN_HANDLED;
        
    static 
szIcon[5
    
get_msg_arg_string(2szIcon4
    if( 
szIcon[0] == 'b' && szIcon[2] == 'y' && szIcon[3] == 'z' 
    { 
        if( 
get_msg_arg_int(1)) 
        { 
            
fm_cs_set_user_nobuy(id
            return 
PLUGIN_HANDLED;
        } 
    }  
    
    return 
PLUGIN_CONTINUE;
}
public 
fwd_Touch(entid)
{
    if (!
is_user_connected(id) || !is_user_alive(id) || !pev_valident ) )
        return 
FMRES_IGNORED;
 
    static 
szEntModel[32]; 
    
pevent pev_model szEntModel 31 ); 
     
    for (new 
level_equip_id PlayerLevel[id] + 1level_equip_id MAXLEVELlevel_equip_id++) 
    { 
        if ( 
equaliszEntModel WEAPONMDL[level_equip_id] ) ) 
        { 
            return 
FMRES_SUPERCEDE
        }  
    } 

    return 
FMRES_IGNORED;
}
public 
fwd_PlayerSpawn(id)
{
    if( !
get_pcvar_num(p_Enabled) )
        return;
    
    if (
is_user_alive(id))
    {
        
g_kills[id] = 0
        
        
#if defined ZOMBIE_SWARM
        
if ( !get_pcvar_num(level_style) && get_user_team(id) == )
        {
            
StripPlayerWeapons(id);
            
            
set_task(2.0"show_main_menu_level"id)
        }
        
#endif
        
        #if defined NORMAL_MOD || defined ZOMBIE_INFECTION
        
if ( !get_pcvar_num(level_style) && get_user_team(id) == )
        {
            
StripPlayerWeapons(id);
            
            
set_task(2.0"show_main_menu_level"id)
        }
        
#endif
        
        
if(!task_exists(TASK_SHOW_LEVEL id) && get_pcvar_num(show_level_text))
        {
            
set_task(0.1"task_show_level"TASK_SHOW_LEVEL id)
        }
        
        if ( 
get_pcvar_num(level_style) )
        {
            
set_task(0.3"give_weapon"id);
        }
    }
}
#if defined ZOMBIE_BIOHAZARD
public event_infect(g_victimg_attacker)
{
    if( !
get_pcvar_num(p_Enabled) )
        return;
    
    new 
counted_triple get_pcvar_num(xp_kill) + get_pcvar_num(xp_triple)
    new 
counted_ultra get_pcvar_num(xp_kill) + get_pcvar_num(xp_ultra)
    
    if((
<= g_attacker <= g_maxplayers))
    {
        if(
g_victim != g_attacker)
        {
            
g_kills[g_attacker]++;
            if(
PlayerLevel[g_attacker] < MAXLEVEL-1
            {
                if ( 
get_pcvar_num(enable_triple) && g_kills[g_attacker] < get_pcvar_num(triple_kills) || g_kills[g_attacker] > get_pcvar_num(triple_kills)
                || 
get_pcvar_num(enable_ultra) && g_kills[g_attacker] < get_pcvar_num(ultra_kills) || g_kills[g_attacker] > get_pcvar_num(ultra_kills) )
                {    
                    if ( 
get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA)
                    {
                        
PlayerXp[g_attacker] += get_pcvar_num(admin_xp)
                    }
                    
PlayerXp[g_attacker] += get_pcvar_num(xp_kill)
                
                    
set_hudmessage(0255500.500.3312.02.0)
                    
ShowSyncHudMsg(g_attackerg_msgHudSync1"+%i"get_pcvar_num(xp_kill))
                }
                else if ( !
get_pcvar_num(enable_triple) || !get_pcvar_num(enable_ultra) )
                {
                    if ( 
get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA)
                    {
                        
PlayerXp[g_attacker] += get_pcvar_num(admin_xp)
                    }
                    
                    
PlayerXp[g_attacker] += get_pcvar_num(xp_kill)
                
                    
set_hudmessage(0255500.500.3312.02.0)
                    
ShowSyncHudMsg(g_attackerg_msgHudSync1"+%i"get_pcvar_num(xp_kill))
                }
                if ( 
g_kills[g_attacker] == get_pcvar_num(triple_kills) && get_pcvar_num(enable_triple) )
                {    
                    if ( 
get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA)
                    {
                        
PlayerXp[g_attacker] += get_pcvar_num(admin_xp)
                    }
                    
                    
PlayerXp[g_attacker] += counted_triple
                    
                    set_hudmessage
(0255500.450.3312.02.0)
                    
ShowSyncHudMsg(g_attackerg_msgHudSync1"%L"LANG_SERVER"TRIPLE_XP"counted_triple)
                }
                else if ( 
g_kills[g_attacker] == get_pcvar_num(ultra_kills) && get_pcvar_num(enable_ultra) )
                {
                    if ( 
get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA)
                    {
                        
PlayerXp[g_attacker] += get_pcvar_num(admin_xp)
                    }
                    
                    
PlayerXp[g_attacker] += counted_ultra
                    
                    set_hudmessage
(0255500.450.3312.02.0)
                    
ShowSyncHudMsg(g_attackerg_msgHudSync1"%L"LANG_SERVER"ULTRA_XP"counted_ultra)
                }
            }
        }
        
check_level(g_attacker)
    }
}
#endif

#if defined ZOMBIE_PLAGUE
public zp_user_infected_post(g_victimg_attacker)
{
    if( !
get_pcvar_num(p_Enabled) )
        return;
    
    new 
counted_triple get_pcvar_num(xp_kill) + get_pcvar_num(xp_triple)
    new 
counted_ultra get_pcvar_num(xp_kill) + get_pcvar_num(xp_ultra)
    
    if((
<= g_attacker <= g_maxplayers))
    {
        if(
g_victim != g_attacker)
        {
            
g_kills[g_attacker]++;
            if(
PlayerLevel[g_attacker] < MAXLEVEL-1
            {
                if ( 
get_pcvar_num(enable_triple) && g_kills[g_attacker] < get_pcvar_num(triple_kills) || g_kills[g_attacker] > get_pcvar_num(triple_kills)
                || 
get_pcvar_num(enable_ultra) && g_kills[g_attacker] < get_pcvar_num(ultra_kills) || g_kills[g_attacker] > get_pcvar_num(ultra_kills) )
                {    
                    if ( 
get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA)
                    {
                        
PlayerXp[g_attacker] += get_pcvar_num(admin_xp)
                    }
                    
PlayerXp[g_attacker] += get_pcvar_num(xp_kill)
                
                    
set_hudmessage(0255500.500.3312.02.0)
                    
ShowSyncHudMsg(g_attackerg_msgHudSync1"+%i"get_pcvar_num(xp_kill))
                }
                else if ( !
get_pcvar_num(enable_triple) || !get_pcvar_num(enable_ultra) )
                {
                    if ( 
get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA)
                    {
                        
PlayerXp[g_attacker] += get_pcvar_num(admin_xp)
                    }
                    
                    
PlayerXp[g_attacker] += get_pcvar_num(xp_kill)
                
                    
set_hudmessage(0255500.500.3312.02.0)
                    
ShowSyncHudMsg(g_attackerg_msgHudSync1"+%i"get_pcvar_num(xp_kill))
                }
                if ( 
g_kills[g_attacker] == get_pcvar_num(triple_kills) && get_pcvar_num(enable_triple) )
                {    
                    if ( 
get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA)
                    {
                        
PlayerXp[g_attacker] += get_pcvar_num(admin_xp)
                    }
                    
                    
PlayerXp[g_attacker] += counted_triple
                    
                    set_hudmessage
(0255500.450.3312.02.0)
                    
ShowSyncHudMsg(g_attackerg_msgHudSync1"%L"LANG_SERVER"TRIPLE_XP"counted_triple)
                }
                else if ( 
g_kills[g_attacker] == get_pcvar_num(ultra_kills) && get_pcvar_num(enable_ultra) )
                {
                    if ( 
get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA)
                    {
                        
PlayerXp[g_attacker] += get_pcvar_num(admin_xp)
                    }
                    
                    
PlayerXp[g_attacker] += counted_ultra
                    
                    set_hudmessage
(0255500.450.3312.02.0)
                    
ShowSyncHudMsg(g_attackerg_msgHudSync1"%L"LANG_SERVER"ULTRA_XP"counted_ultra)
                }
            }
        }
        
check_level(g_attacker)
    }
}
#endif

public event_deathmsg()
{    
    if( !
get_pcvar_num(p_Enabled) )
        return;
    
    new 
g_attacker read_data(1);
    new 
g_victim read_data(2);
    
    new 
counted_triple get_pcvar_num(xp_kill) + get_pcvar_num(xp_triple)
    new 
counted_ultra get_pcvar_num(xp_kill) + get_pcvar_num(xp_ultra)
    
    if((
<= g_attacker <= g_maxplayers))
    {
        if(
g_victim != g_attacker)
        {
            
g_kills[g_attacker]++;
            if(
PlayerLevel[g_attacker] < MAXLEVEL-1
            {
                if ( 
get_pcvar_num(enable_triple) && g_kills[g_attacker] < get_pcvar_num(triple_kills) || g_kills[g_attacker] > get_pcvar_num(triple_kills)
                || 
get_pcvar_num(enable_ultra) && g_kills[g_attacker] < get_pcvar_num(ultra_kills) || g_kills[g_attacker] > get_pcvar_num(ultra_kills) )
                {    
                    if ( 
get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA)
                    {
                        
PlayerXp[g_attacker] += get_pcvar_num(admin_xp)
                    }
                    
PlayerXp[g_attacker] += get_pcvar_num(xp_kill)
                
                    
set_hudmessage(0255500.500.3312.02.0)
                    
ShowSyncHudMsg(g_attackerg_msgHudSync1"+%i"get_pcvar_num(xp_kill))
                }
                else if ( !
get_pcvar_num(enable_triple) || !get_pcvar_num(enable_ultra) )
                {
                    if ( 
get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA)
                    {
                        
PlayerXp[g_attacker] += get_pcvar_num(admin_xp)
                    }
                    
                    
PlayerXp[g_attacker] += get_pcvar_num(xp_kill)
                
                    
set_hudmessage(0255500.500.3312.02.0)
                    
ShowSyncHudMsg(g_attackerg_msgHudSync1"+%i"get_pcvar_num(xp_kill))
                }
                if ( 
g_kills[g_attacker] == get_pcvar_num(triple_kills) && get_pcvar_num(enable_triple) )
                {    
                    if ( 
get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA)
                    {
                        
PlayerXp[g_attacker] += get_pcvar_num(admin_xp)
                    }
                    
                    
PlayerXp[g_attacker] += counted_triple
                    
                    set_hudmessage
(0255500.450.3312.02.0)
                    
ShowSyncHudMsg(g_attackerg_msgHudSync1"%L"LANG_SERVER"TRIPLE_XP"counted_triple)
                }
                else if ( 
g_kills[g_attacker] == get_pcvar_num(ultra_kills) && get_pcvar_num(enable_ultra) )
                {
                    if ( 
get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA)
                    {
                        
PlayerXp[g_attacker] += get_pcvar_num(admin_xp)
                    }
                    
                    
PlayerXp[g_attacker] += counted_ultra
                    
                    set_hudmessage
(0255500.450.3312.02.0)
                    
ShowSyncHudMsg(g_attackerg_msgHudSync1"%L"LANG_SERVER"ULTRA_XP"counted_ultra)
                }
            }
        }
        
check_level(g_attacker)
    }
}
public 
Event_StatusValue(id)
{
    new 
target read_data(2)
      if(
target != id && target != && get_pcvar_num(p_Enabled))
      {
        static 
sName[32];
        
get_user_name(targetsName31)

        
set_hudmessage(2552552550.6, -1.000.06.00.00.02)
        
ShowSyncHudMsg(idg_msgHudSync1"%L"LANG_SERVER"LEVEL_TEXT"sNamePlayerLevel[target], RANKLEVELS[PlayerLevel[target]])
    }
}
public 
task_show_level(task)
{
    new 
id task TASK_SHOW_LEVEL
    
    
if(!is_user_alive(id) && !get_pcvar_num(show_level_text) )
        return 
PLUGIN_HANDLED;
    
    
set_hudmessage(255000.020.3300.00.30.00.0)
    
ShowSyncHudMsg(idg_msgHudSync1 "%L"LANG_SERVER"LEVEL_HUD_TEXT"PlayerLevel[id], PlayerXp[id], LEVELS[PlayerLevel[id]], RANK[PlayerLevel[id]], RANKLEVELS[PlayerLevel[id]])
    
    
set_task(0.1"task_show_level"TASK_SHOW_LEVEL id)        
    
    return 
PLUGIN_CONTINUE;
}
public 
showlevel(id)
{
    if ( !
get_pcvar_num(p_Enabled) && get_pcvar_num(show_level_text) )
        return 
PLUGIN_HANDLED;
    
    
client_printcolor(id"%L"LANG_SERVER"LEVEL_TEXT2"PlayerLevel[id] , PlayerXp[id], LEVELS[PlayerLevel[id]]);
    
client_printcolor(id"%L"LANG_SERVER"LEVEL_TEXT3"RANK[PlayerLevel[id]], RANKLEVELS[PlayerLevel[id]]);
    
    return 
PLUGIN_HANDLED;
}
public 
descriptionx(id)
{
    new 
szMotd[2048], szTitle[64], iPos 0
    format
(szTitle63"Info")
    
iPos += format(szMotd[iPos], 2047-iPos"<html><head><style type=^"text/css^">pre{color:#FFB000;}body{background:#000000;margin-left:8px;margin-top:0px;}</style></head><pre><body>")
    
iPos += format(szMotd[iPos], 2047-iPos"^n^n<b>%s</b>^n^n"szTitle)
    
iPos += format(szMotd[iPos], 2047-iPos"%L^n"LANG_SERVER"DESCRIPTION")
    
    
iPos += format(szMotd[iPos], 2047-iPos"%L"LANG_SERVER"DESCRIPTION2")
        
    
show_motd(idszMotdszTitle)
    return 
PLUGIN_HANDLED;
}
public 
check_level(id)
{
    if(
PlayerLevel[id] < MAXLEVEL-&& get_pcvar_num(p_Enabled))
    {
        while(
PlayerXp[id] >= LEVELS[PlayerLevel[id]])
        {
            
PlayerLevel[id]++;
                
            if(
is_user_alive(id))
            {    
                if ( 
get_pcvar_num(level_style) )
                {
                    
give_weapon(id);
                }
                
                new 
p_origin[3];
                
get_user_origin(idp_origin0);
                
                
set_sprite(p_originlevelspr30)
                
set_sprite(p_originlevelspr230)
            }
            
emit_sound(idCHAN_ITEMLevelUp1.0ATTN_NORM0PITCH_NORM);
            
            static 
name[32] ; get_user_name(idnamecharsmax(name));
            
client_printcolor(0"%L"LANG_SERVER"LEVEL_UP"namePlayerLevel[id]);
        }
    } 
}
// Main Menu Info
public show_main_menu_info(id)
{
    static 
menu[510], len;
    
len 0;
    
    new 
xKeys3 MENU_KEY_0|MENU_KEY_1;

    
// Title
    
len += formatex(menu[len], sizeof menu len"%L"LANG_SERVER"TITLE_MENU_INFO")
    
    
len += formatex(menu[len], sizeof menu len"\r1. \w%L"id"INFO")
    if ( 
get_pcvar_num(show_rank) )
    {
        
xKeys3 |= (MENU_KEY_2)
        
        
len += formatex(menu[len], sizeof menu len"^n\r2. \wTop 20^n")
    }
    else
    {
        
len += formatex(menu[len], sizeof menu len"^n\d2. Top 20^n")
    }
    
    if(
find_plugin_byfile("gunxpmod_shop.amxx") != INVALID_PLUGIN_ID)
    {
        
xKeys3 |= (MENU_KEY_3)
        
        
len += formatex(menu[len], sizeof menu len"\r3. \w%L^n"id"ITEM_LIST")
        if ( 
is_user_alive(id) )
        {
            
xKeys3 |= (MENU_KEY_4)
            
            
len += formatex(menu[len], sizeof menu len"\r4. \w%L^n"id"UNLOCKS_SHOP_TEXT")
        }
    }
    
    
len += formatex(menu[len], sizeof menu len"^n^n\r0.\w %L"id"EXIT_MENU")

    
show_menu(idxKeys3menu, -1"Main Menu")

public 
main_menu_info(idkey)
{
    switch (
key)
    {
        case 
0:
        {
            
show_main_menu_info(id)
            
            
descriptionx(id)
        }
        case 
1:
        {
            
showtop20(id)
            
            
show_main_menu_info(id)
        }
        case 
2:
        {
            
show_main_menu_info(id)
            
            if(
callfunc_begin"display_items","gunxpmod_shop.amxx") == 1)
            {
                
callfunc_push_intid ); 
                
callfunc_end();
            }
        }
        case 
3:
        {
            if(
callfunc_begin("item_upgrades","gunxpmod_shop.amxx") == 1)
            {
                
callfunc_push_intid ); 
                
callfunc_end();
            }
        }
        case 
9:
        {
            return 
PLUGIN_HANDLED;
        }
    }

    return 
PLUGIN_HANDLED;
}
// Main Menu Level Style
public show_main_menu_level(id)
{
    if ( !
is_user_alive(id) || get_user_teamid ) != )
        return;
    
    static 
menu[510], len;
    
len 0;
    
    new 
xKeys2 MENU_KEY_0|MENU_KEY_1|MENU_KEY_2;

    
// Title
    
len += formatex(menu[len], sizeof menu len"%L"LANG_SERVER"TITLE_MENU"PlayerLevel[id], PlayerXp[id], LEVELS[PlayerLevel[id]])
    
    
len += formatex(menu[len], sizeof menu len"%L"LANG_SERVER"CHOOSE_TEXT")

    
len += formatex(menu[len], sizeof menu len"%L"LANG_SERVER"LAST_GUNS")
    
len += formatex(menu[len], sizeof menu len"^n^n\r0.\w %L"id"EXIT_MENU")

    
show_menu(idxKeys2menu, -1"Main Level Menu")

public 
main_menu_level(idkey)
{
    if ( !
is_user_alive(id) )
        return 
PLUGIN_HANDLED;
    
    switch (
key)
    {
        case 
0// back
        
{
            
first_check_menu(id)
        }
        case 
1// next
        
{
            
give_weapon_menu(idg_remember_selection[id]);
        }
        case 
9// exit
        
{
            return 
PLUGIN_HANDLED;
        }
    }

    return 
PLUGIN_HANDLED;
}
// Menu Level Style
public first_check_menu(id)
{
    
MENU_STARTID 0
    show_menu_level
(id);
}
public 
show_menu_level(id)
{
    if ( !
is_user_alive(id) )
        return;
    
    static 
menu[510], len, class;
    
len 0;
    
    new 
xKeys MENU_KEY_0;
    new 
max min(MENU_STARTID+7sizeof (LEVELS));
    new 
iPosNum 0;
    
    
// Title
    
len += formatex(menu[len], sizeof menu len"%L"LANG_SERVER"TITLE_MENU"PlayerLevel[id], PlayerXp[id], LEVELS[PlayerLevel[id]])
    
    
// 1-7. Class List
    
for (class = MENU_STARTID; class < max; class++)
    {
        if ( 
PlayerLevel[id] < class)
        {    
            
len += formatex(menu[len], sizeof menu len"%L"LANG_SERVER"INACTIVE_MENU", ++iPosNumRANK[class], class)
        } 
        else
        {
            
xKeys |= (1<<iPosNum++);

            
len += formatex(menu[len], sizeof menu len"%L"LANG_SERVER"ACTIVE_MENU", class-MENU_STARTID+1RANK[class], class)
        }
    }
    if ( 
MENU_STARTID != && MENU_STARTID != 21 )
    {    
        
xKeys |= (1<<7)
        
xKeys |= (1<<8)
        
        
len += formatex(menu[len], sizeof menu len"^n\r8.\w %L^n\r9.\w %L^n^n\r0.\w %L"id"BACK_MENU"id"NEXT_MENU"id"EXIT_MENU")
    }
    else if ( 
MENU_STARTID == )
    {
        
xKeys |= (1<<8)
        
        
len += formatex(menu[len], sizeof menu len"^n\r9.\w %L^n^n\r0.\w %L"id"NEXT_MENU"id"EXIT_MENU")
    }

    else if ( 
MENU_STARTID == 21 )
    {    
        
xKeys |= (1<<7)
        
        
len += formatex(menu[len], sizeof menu len"^n\r8.\w %L^n^n\r0.\w %L"id"BACK_MENU"id"EXIT_MENU")
    }
    
    
show_menu(idxKeysmenu, -1"Level by Menu")

public 
menu_level(idkey)
{
    if ( !
is_user_alive(id) )
        return 
PLUGIN_HANDLED;
    
    if (
key >= || key->= PlayerLevel[id])
    {
        switch (
key)
        {
            case 
7// back
            
{
                if (
MENU_STARTID->= 0MENU_STARTID -= 7
            
}
            case 
8// next
            
{
                if (
MENU_STARTID+sizeof (LEVELS)) MENU_STARTID += 7
            
}
            case 
9// exit
            
{
                return 
PLUGIN_HANDLED;
            }
        }

        
show_menu_level(id)
        return 
PLUGIN_HANDLED;
    }
    new 
selected MENU_STARTID key;

    
g_remember_selection[id] = selected;
    
    
give_weapon_menu(idselected);
    
    return 
PLUGIN_HANDLED;
}
public 
give_weapon_menu(idselection)
{
    
#if defined ZOMBIE_SWARM
    
if(get_user_team(id) == && is_user_alive(id) && get_pcvar_num(p_Enabled)) 
    {
        
StripPlayerWeapons(id);
        
        if ( 
get_pcvar_num(enable_grenades) )
        {
            
give_item(id"weapon_smokegrenade");
            
give_item(id"weapon_flashbang");
            
give_item(id"weapon_flashbang");
            
give_item(id"weapon_hegrenade");
        }
        if (!
user_has_weapon(idAMMOCONST[selection]))
        {
            
give_item(idWEAPONCONST[selection]);
        }
        
cs_set_user_bpammo(idAMMOCONST[selection], AMMO2CONST[selection])
    }
    
#endif
    
    #if defined ZOMBIE_INFECTION || defined NORMAL_MOD
    
if(is_user_alive(id) && get_pcvar_num(p_Enabled)) 
    {
        
StripPlayerWeapons(id);
        
        if ( 
get_pcvar_num(enable_grenades) )
        {
            
give_item(id"weapon_smokegrenade");
            
give_item(id"weapon_flashbang");
            
give_item(id"weapon_flashbang");
            
give_item(id"weapon_hegrenade");
        }
        if (!
user_has_weapon(idAMMOCONST[selection]))
        {
            
give_item(idWEAPONCONST[selection]);
        }
        
cs_set_user_bpammo(idAMMOCONST[selection], AMMO2CONST[selection])
    }
    
#endif
}
public 
give_weapon(id)
{
    
#if defined ZOMBIE_SWARM
    
if(get_user_team(id) == && is_user_alive(id) && get_pcvar_num(p_Enabled)) 
    {
        
StripPlayerWeapons(id);
        
        if ( 
get_pcvar_num(enable_grenades) && get_pcvar_num(level_style) )
        {
            
give_item(id"weapon_smokegrenade");
            
give_item(id"weapon_flashbang");
            
give_item(id"weapon_flashbang");
            
give_item(id"weapon_hegrenade");
        }
        
        if (!
user_has_weapon(idAMMOCONST[PlayerLevel[id]]))
        {
            
give_item(idWEAPONCONST[PlayerLevel[id]]);
        }
        
cs_set_user_bpammo(idAMMOCONST[PlayerLevel[id]], AMMO2CONST[PlayerLevel[id]])
    }
    
#endif
    
    #if defined ZOMBIE_INFECTION || defined NORMAL_MOD
    
if(is_user_alive(id) && get_pcvar_num(p_Enabled)) 
    {
        
StripPlayerWeapons(id);
        
        if ( 
get_pcvar_num(enable_grenades) && get_pcvar_num(level_style) )
        {
            
give_item(id"weapon_smokegrenade");
            
give_item(id"weapon_flashbang");
            
give_item(id"weapon_flashbang");
            
give_item(id"weapon_hegrenade");
        }
        if (!
user_has_weapon(idAMMOCONST[PlayerLevel[id]]))
        {
            
give_item(idWEAPONCONST[PlayerLevel[id]]);
        }
        
cs_set_user_bpammo(idAMMOCONST[PlayerLevel[id]], AMMO2CONST[PlayerLevel[id]])
    }
    
#endif
}
public 
set_sprite(p_origin[3], spriteradius)
{
    
// Explosion
    
message_begin(MSG_BROADCASTSVC_TEMPENTITYp_origin)
    
write_byte(TE_EXPLOSION)
    
write_coord(p_origin[0])
    
write_coord(p_origin[1])
    
write_coord(p_origin[2])
    
write_short(sprite)
    
write_byte(radius)
    
write_byte(15)
    
write_byte(4)
    
message_end()
}
//Shows Top 20
public showtop20(id)
{
    if( !
get_pcvar_num(p_Enabled) && !get_pcvar_num(show_rank) )
        return;
    
    static 
Sort[33][2];
    new 
players[32],num,count,index;
    
get_players(players,num);
    
    for(new 
0numi++)
    {
        
index players[i];
        
Sort[count][0] = index;
        
Sort[count][1] = PlayerXp[index];
        
count++;
    }
    
    
SortCustom2D(Sort,count,"CompareXp");
    new 
motd[1501],iLen;
    
iLen formatex(motdsizeof motd 1,"<body bgcolor=#000000><font color=#98f5ff><pre>");
    
iLen += formatex(motd[iLen], (sizeof motd 1) - iLen,"%s %-22.22s %3s^n""#""Name""# Experience");
    
    new 
clamp(count,0,20);
    new 
name[32],kindex;
    
    for(new 
0yx++)
    {
        
kindex Sort[x][0];
        
get_user_name(kindex,name,sizeof name 1);
        
iLen += formatex(motd[iLen], (sizeof motd 1) - iLen,"%d %-22.22s %d^n"1nameSort[x][1]);
    }
    
iLen += formatex(motd[iLen], (sizeof motd 1) - iLen,"</body></font></pre>");
    
show_motd(id,motd"GunXpMod Top 20");
}
public 
CompareXp(elem1[], elem2[])
{
    if(
elem1[1] > elem2[1])
        return -
1;
    else if(
elem1[1] < elem2[1])
        return 
1;
    
    return 
0;

// Command to set player Level
public cmd_give_level(idlevelcid
{
    if(!
cmd_access(idlevelcid3) || !get_pcvar_num(p_Enabled))
    {
        return 
PLUGIN_HANDLED;
    }
    
    new 
Arg1[64], Target
    read_argv
(1Arg163)
    
Target cmd_target(idArg10)
    
    new 
iLevel[32], Value
    read_argv
(2iLevel31)
    
Value str_to_num(iLevel)
    
    if(
iLevel[0] == '-'
    {
        
console_print(id"You can't have a '-' in the value!")
        return 
PLUGIN_HANDLED;
    }
    
    if(!
Target
    {
        
console_print(id"Target not found!")
        return 
PLUGIN_HANDLED;
    }
    
    if(
Value MAXLEVEL-1)
    {
        
console_print(id"You can't set a more than %d!"MAXLEVEL-1)
        return 
PLUGIN_HANDLED;
    }
    
    if(
Value 1)
    {
        
console_print(id"You can't set less than 1!")
        return 
PLUGIN_HANDLED;
    }
    
    new 
AdminName[32]
    
get_user_name(idAdminName31)
        
    new 
TargetName[32]
    
get_user_name(TargetTargetName31)
    
    
PlayerLevel[Target] = Value 1
    PlayerXp
[Target] = LEVELS[PlayerLevel[Target]]
    
check_level(Target)
    
    
client_printcolor(Target"/gADMIN: /ctr%s /yhas set your level to /g%d"AdminNameValue)

    return 
PLUGIN_HANDLED;
}
// Save Player Info
SaveLevel(id)

    if ( 
get_pcvar_num(savexp) )
    {
        new 
authid[32]
        
get_user_authid(idauthid31)
        new 
szData[256];
        new 
szKey[64];
        
        
formatexszKey 63 "%s-ID" authid);
        
formatexszData 255 "%i#%i#" PlayerLevel[id], PlayerXp[id] );
    
        
nvault_setg_Vault szKey szData );
    }
    else
    {
        new 
authip[32]
        
get_user_ip(id,authip,31,1)
        new 
szData[256];
        new 
szKey[64];
        
        
formatexszKey 63 "%s-IP" authip );
        
formatexszData 255 "%i#%i#" PlayerLevel[id], PlayerXp[id] );
    
        
nvault_setg_Vault szKey szData );
    }
}
// Load Player Info
LoadLevel(id)
{
    if ( 
get_pcvar_num(savexp) )
    {
        new 
authid[32]
        
get_user_authid(idauthid31)
        new 
szData[256];
        new 
szKey[40];

        
formatexszKey 39 "%s-ID" authid );

        
formatex(szData 255"%i#%i#"PlayerLevel[id], PlayerXp[id]) 
        
        
nvault_get(g_VaultszKeyszData255

        
replace_all(szData 255"#"" ")
        new 
xp[32], level[32
        
parse(szDatalevel31xp31
        
PlayerLevel[id] = str_to_num(level)
        
PlayerXp[id] = str_to_num(xp)  
    }
    else
    {
        new 
authip[32]
        
get_user_ip(idauthip311)
        new 
szData[256];
        new 
szKey[40];

        
formatexszKey 39 "%s-IP" authip );

        
formatex(szData 255"%i#%i#"PlayerLevel[id], PlayerXp[id]) 
        
        
nvault_get(g_VaultszKeyszData255

        
replace_all(szData 255"#"" ")
        new 
xp[32], level[32
        
parse(szDatalevel31xp31
        
PlayerLevel[id] = str_to_num(level)
        
PlayerXp[id] = str_to_num(xp
    }
}
// ============================================================//
//                          [~ Natives ~]                          //
// ============================================================//
// Native: get_user_xp
public native_get_user_xp(id)
{
    return 
PlayerXp[id];
}
// Native: set_user_xp
public native_set_user_xp(idamount)
{
    
PlayerXp[id] = amount;
}
// Native: get_user_level
public native_get_user_level(id)
{
    return 
PlayerLevel[id];
}
// Native: set_user_xp
public native_set_user_level(idamount)
{
    
PlayerLevel[id] = amount;
}
// Native: Gets user level by Xp
public native_get_user_max_level(id)
{
    return 
LEVELS[PlayerLevel[id]];
}
// ============================================================//
//                          [~ Stocks ~]                          //
// ============================================================//
stock client_printcolor(const id, const input[], any:...)
{
    new 
count 1players[32];
    static 
msg[191];
    
vformat(msg,190,input,3);
    
replace_all(msg,190,"/g","^4");// green txt
    
replace_all(msg,190,"/y","^1");// orange txt
    
replace_all(msg,190,"/ctr","^3");// team txt
    
replace_all(msg,190,"/w","^0");// team txt
    
if (idplayers[0] = id; else get_players(players,count,"ch");
    for (new 
0counti++)
        if (
is_user_connected(players[i]))
        {
            
message_begin(MSG_ONE_UNRELIABLESayTxT_players[i]);
            
write_byte(players[i]);
            
write_string(msg);
            
message_end();
        }
}    
public 
StripPlayerWeapons(id

    
strip_user_weapons(id
    
set_pdata_int(idOFFSET_PRIMARYWEAPON0
    
give_item(id"weapon_knife");


Saludos. Crab
Responder
#3
(02/07/2019, 07:50 PM)Chema escribió: Me conectó desde la PC y edito el mensaje.

EDIT:
Código PHP:
#if defined ZOMBIE_BIOHAZARD
  #include <biohazard>
#endif
#if defined ZOMBIE_PLAGUE
  #include <zombieplague>
#endif

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <fun>
#include <cstrike>
#include <nvault>
#include <hamsandwich>

#define PLUGIN    "Gun Xp Mod"
#define AUTHOR    "xbatista"
#define VERSION    "1.7"

//#define NORMAL_MOD
//#define ZOMBIE_SWARM
#define ZOMBIE_INFECTION

#define ZOMBIE_BIOHAZARD
//#define ZOMBIE_PLAGUE


#define ADMIN_EXTRA ADMIN_LEVEL_H
#define MAXLEVEL 24

#define OFFSET_PRIMARYWEAPON 116
#define MENU_STARTID g_menu_data[id][2]
const KEYSMENU = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<9)
#define TASK_SHOW_LEVEL 10113
#define fm_cs_set_user_nobuy(%1) set_pdata_int(%1, 235, get_pdata_int(%1, 235) & ~(1<<0) ) //no weapon buy

new PlayerXp[33];
new 
PlayerLevel[33];

new 
g_Vault;
new 
g_kills[33];
new 
g_menu_data[33][8];
new 
g_remember_selection[33];
new 
g_maxplayersg_msgHudSync1SayTxTenable_grenades;
new 
levelsprlevelspr2show_level_textshow_rank;
new 
savexp xp_killxp_tripleenable_tripletriple_killsxp_ultraultra_killsenable_ultrap_Enabledlevel_style;
new 
enable_admin_xpadmin_xp;

new const 
LevelUp[] = "umbrella/levelup.wav";
                                                           
//mac10//
new const LEVELS[MAXLEVEL] = { 90180300450700120018002800,
41005200600068008200102001200015000175002050025500//<-aug//
29000350004600058000150000
}; // Levels

new const RANKLEVELS[MAXLEVEL][] = { "Beginner""Beginner""Beginner""Beginner""Beginner""Slayer""Slayer""Slayer",
"Hunter""Hunter""Hunter""Hunter""Assassin""Assassin""Hero""Hero""Hero""War Lord""War Lord"
"Supernatural""Supernatural""Supernatural""Umbrella Soldier""Umbrella Soldier"
}; // Rank Levels

new const RANK[MAXLEVEL][] = { "Glock 18C""USP .45 ACP Tactical""P228 Compact""FiveseveN""Desert Eagle .50 AE""Dual Elite Berettas"
"Schmidt TMP""Ingram MAC-10""UMP 45""MP5 Navy""ES P90""Scout""AWP Magnum Sniper""Famas""IMI Galil""M3 Super 90""XM1014 M4"
"AK-47""M4A1 Carbine""Steyr AUG A1""SG-552 Commando""SG-550 Auto-Sniper""G3SG1 Auto-Sniper""M249 Para Machinegun" 
}; // Weapon Name Ranks

new const WEAPONCONST[MAXLEVEL][] = { "weapon_glock18""weapon_usp""weapon_p228""weapon_fiveseven""weapon_deagle""weapon_elite""weapon_tmp"
"weapon_mac10""weapon_ump45""weapon_mp5navy""weapon_p90""weapon_scout""weapon_awp""weapon_famas""weapon_galil""weapon_m3""weapon_xm1014"
"weapon_ak47""weapon_m4a1""weapon_aug""weapon_sg552""weapon_sg550""weapon_g3sg1""weapon_m249" 
}; // Give Weapons

new const WEAPONMDL[MAXLEVEL][] = { "models/w_glock18.mdl""models/w_usp.mdl""models/w_p228.mdl""models/w_fiveseven.mdl""models/w_deagle.mdl""models/w_elite.mdl""models/w_tmp.mdl"
"models/w_mac10.mdl""models/w_ump45.mdl""models/w_mp5.mdl""models/w_p90.mdl""models/w_scout.mdl""models/w_awp.mdl""models/w_famas.mdl""models/w_galil.mdl""models/w_m3.mdl""models/w_xm1014.mdl"
"models/w_ak47.mdl""models/w_m4a1.mdl""models/w_aug.mdl""models/w_sg552.mdl""models/w_sg550.mdl""models/w_g3sg1.mdl""models/w_m249.mdl" 
}; // Blocks pick up weapon, that is not model replacement!!!

new const AMMOCONST[MAXLEVEL] = { 17161112610237121930318
15142152822827132420 
}; // Weapons ID(CSW)

new const AMMO2CONST[MAXLEVEL] = { 40040040040040040040040040040040040090
4004008080400400400400200200400
}; // Weapons Ammo

/*================================================================================
                        [Plugin natives,precache,init]
=================================================================================*/
public plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR);
    
register_cvar("gxm_version"VERSIONFCVAR_SPONLY|FCVAR_SERVER)
    
set_cvar_string("gxm_version"VERSION)
    
    
register_concmd("set_level""cmd_give_level"ADMIN_RCON" <name> <amount>" );
    
register_clcmd("say level""showlevel");
    
register_clcmd("say /level""showlevel");
    
register_clcmd("say /top20","showtop20");
    
register_clcmd("say /menu","show_main_menu_info");
    
register_clcmd("say menu","show_main_menu_info");
    
    
p_Enabled register_cvar"gxm_enable""1" ); // Plugin enabled? 1 = Yes, 0 = No.
    
xp_kill register_cvar("gxm_xp","7"); // How much xp gain if you killed someone?
    
savexp register_cvar("gxm_save","0"); // Save Xp by : 1 = SteamID, 0 = IP.
    
show_level_text register_cvar("gxm_level_text","1"); // Show your level by : 1 = HUD message, 0 = Simple colored text message.
    
show_rank register_cvar("gxm_show_rank","1"); // Show rank in /top20? 1 = Yes, 0 = No.
    
level_style register_cvar("gxm_level_style","0"); // You will gain each level new gun : 1 = Yes, 0 = No,select your gun by menu.
    
enable_grenades register_cvar("gxm_grenades","1"); // Give to player grenades? 1 = Yes, 0 = No.
    
    
enable_triple register_cvar("gxm_triple","1"); // Enable Triple Kill bonus xp? 1 = Yes, 0 = No.
    
xp_triple register_cvar("gxm_triple_xp","3"); // How much bonus xp give for Triple Kill?
    
triple_kills register_cvar("gxm_triple_kills","3"); // How much kills needed to give bonus xp?
    
enable_ultra register_cvar("gxm_ultra","1"); // Enable Ultra Kill bonus xp? 1 = Yes, 0 = No.
    
xp_ultra register_cvar("gxm_ultra_xp","5"); // How much bonus xp give for Ultra Kill?
    
ultra_kills register_cvar("gxm_ultra_kills","6"); // How much kills needed to give bonus xp?
    
    
enable_admin_xp register_cvar("gxm_admin_xp","1"); // Enable Extra xp for killing? 1 = Yes, 0 = No.
    
admin_xp register_cvar("gxm_extra_xp","5"); // How much extra xp give to admins?
                    // Events //
    
register_event("DeathMsg""event_deathmsg""a");
    
register_event("StatusValue""Event_StatusValue""bd""1=2")
                    
// Forwards //
    
RegisterHam(Ham_Spawn"player""fwd_PlayerSpawn"1);
    
    
register_forward(FM_Touch"fwd_Touch");
                    
// Messages //
    #if defined NORMAL_MOD || defined ZOMBIE_SWARM
    
register_message(get_user_msgid("StatusIcon"),    "Message_StatusIcon")
    
#endif
    
                    // Other //    
    
register_menu("Level by Menu"KEYSMENU"menu_level")
    
register_menu("Main Level Menu"KEYSMENU"main_menu_level")
    
register_menucmd(register_menuid("Main Menu"), 1023"main_menu_info")
    
    
register_dictionary("gunxpmod.txt");
                    
    
SayTxT get_user_msgid("SayText");
    
    
g_msgHudSync1 CreateHudSyncObj()
    
g_maxplayers get_maxplayers();
}
public 
plugin_natives()
{
                    
// Player natives //
    
register_native("get_user_xp""native_get_user_xp"1);
    
register_native("set_user_xp""native_set_user_xp"1);
    
register_native("get_user_level""native_get_user_level"1);
    
register_native("set_user_level""native_set_user_level"1);
    
register_native("get_user_max_level""native_get_user_max_level"1);
}
public 
plugin_precache()
{
    
levelspr engfunc(EngFunc_PrecacheModel"sprites/xfire.spr");
    
levelspr2 engfunc(EngFunc_PrecacheModel"sprites/xfire2.spr");
    
    
engfunc(EngFunc_PrecacheSoundLevelUp);
}
public 
plugin_cfg()
{
    
//Open our vault and have g_Vault store the handle.
    
g_Vault nvault_open"gunxpmod" );

    
//Make the plugin error if vault did not successfully open
    
if ( g_Vault == INVALID_HANDLE )
        
set_fail_state"Error opening GunXpMod nVault, file does not exist!" );
}
public 
plugin_end()
{
    
//Close the vault when the plugin ends (map change\server shutdown\restart)
    
nvault_closeg_Vault );
}
public 
client_authorized(id)
{
    
g_remember_selection[id] = 0;
    
    
LoadLevel(id)
}
public 
client_disconnect(id)
{
    
SaveLevel(id)
}
public 
Message_StatusIcon(iMsgIdMSG_DESTid

    if( !
get_pcvar_num(p_Enabled) )
        return 
PLUGIN_HANDLED;
        
    static 
szIcon[5
    
get_msg_arg_string(2szIcon4
    if( 
szIcon[0] == 'b' && szIcon[2] == 'y' && szIcon[3] == 'z' 
    { 
        if( 
get_msg_arg_int(1)) 
        { 
            
fm_cs_set_user_nobuy(id
            return 
PLUGIN_HANDLED;
        } 
    }  
    
    return 
PLUGIN_CONTINUE;
}
public 
fwd_Touch(entid)
{
    if (!
is_user_connected(id) || !is_user_alive(id) || !pev_valident ) )
        return 
FMRES_IGNORED;
 
    static 
szEntModel[32]; 
    
pevent pev_model szEntModel 31 ); 
     
    for (new 
level_equip_id PlayerLevel[id] + 1level_equip_id MAXLEVELlevel_equip_id++) 
    { 
        if ( 
equaliszEntModel WEAPONMDL[level_equip_id] ) ) 
        { 
            return 
FMRES_SUPERCEDE
        }  
    } 

    return 
FMRES_IGNORED;
}
public 
fwd_PlayerSpawn(id)
{
    if( !
get_pcvar_num(p_Enabled) )
        return;
    
    if (
is_user_alive(id))
    {
        
g_kills[id] = 0
        
        
#if defined ZOMBIE_SWARM
        
if ( !get_pcvar_num(level_style) && get_user_team(id) == )
        {
            
StripPlayerWeapons(id);
            
            
set_task(2.0"show_main_menu_level"id)
        }
        
#endif
        
        #if defined NORMAL_MOD || defined ZOMBIE_INFECTION
        
if ( !get_pcvar_num(level_style) && get_user_team(id) == )
        {
            
StripPlayerWeapons(id);
            
            
set_task(2.0"show_main_menu_level"id)
        }
        
#endif
        
        
if(!task_exists(TASK_SHOW_LEVEL id) && get_pcvar_num(show_level_text))
        {
            
set_task(0.1"task_show_level"TASK_SHOW_LEVEL id)
        }
        
        if ( 
get_pcvar_num(level_style) )
        {
            
set_task(0.3"give_weapon"id);
        }
    }
}
#if defined ZOMBIE_BIOHAZARD
public event_infect(g_victimg_attacker)
{
    if( !
get_pcvar_num(p_Enabled) )
        return;
    
    new 
counted_triple get_pcvar_num(xp_kill) + get_pcvar_num(xp_triple)
    new 
counted_ultra get_pcvar_num(xp_kill) + get_pcvar_num(xp_ultra)
    
    if((
<= g_attacker <= g_maxplayers))
    {
        if(
g_victim != g_attacker)
        {
            
g_kills[g_attacker]++;
            if(
PlayerLevel[g_attacker] < MAXLEVEL-1
            {
                if ( 
get_pcvar_num(enable_triple) && g_kills[g_attacker] < get_pcvar_num(triple_kills) || g_kills[g_attacker] > get_pcvar_num(triple_kills)
                || 
get_pcvar_num(enable_ultra) && g_kills[g_attacker] < get_pcvar_num(ultra_kills) || g_kills[g_attacker] > get_pcvar_num(ultra_kills) )
                {    
                    if ( 
get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA)
                    {
                        
PlayerXp[g_attacker] += get_pcvar_num(admin_xp)
                    }
                    
PlayerXp[g_attacker] += get_pcvar_num(xp_kill)
                
                    
set_hudmessage(0255500.500.3312.02.0)
                    
ShowSyncHudMsg(g_attackerg_msgHudSync1"+%i"get_pcvar_num(xp_kill))
                }
                else if ( !
get_pcvar_num(enable_triple) || !get_pcvar_num(enable_ultra) )
                {
                    if ( 
get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA)
                    {
                        
PlayerXp[g_attacker] += get_pcvar_num(admin_xp)
                    }
                    
                    
PlayerXp[g_attacker] += get_pcvar_num(xp_kill)
                
                    
set_hudmessage(0255500.500.3312.02.0)
                    
ShowSyncHudMsg(g_attackerg_msgHudSync1"+%i"get_pcvar_num(xp_kill))
                }
                if ( 
g_kills[g_attacker] == get_pcvar_num(triple_kills) && get_pcvar_num(enable_triple) )
                {    
                    if ( 
get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA)
                    {
                        
PlayerXp[g_attacker] += get_pcvar_num(admin_xp)
                    }
                    
                    
PlayerXp[g_attacker] += counted_triple
                    
                    set_hudmessage
(0255500.450.3312.02.0)
                    
ShowSyncHudMsg(g_attackerg_msgHudSync1"%L"LANG_SERVER"TRIPLE_XP"counted_triple)
                }
                else if ( 
g_kills[g_attacker] == get_pcvar_num(ultra_kills) && get_pcvar_num(enable_ultra) )
                {
                    if ( 
get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA)
                    {
                        
PlayerXp[g_attacker] += get_pcvar_num(admin_xp)
                    }
                    
                    
PlayerXp[g_attacker] += counted_ultra
                    
                    set_hudmessage
(0255500.450.3312.02.0)
                    
ShowSyncHudMsg(g_attackerg_msgHudSync1"%L"LANG_SERVER"ULTRA_XP"counted_ultra)
                }
            }
        }
        
check_level(g_attacker)
    }
}
#endif

#if defined ZOMBIE_PLAGUE
public zp_user_infected_post(g_victimg_attacker)
{
    if( !
get_pcvar_num(p_Enabled) )
        return;
    
    new 
counted_triple get_pcvar_num(xp_kill) + get_pcvar_num(xp_triple)
    new 
counted_ultra get_pcvar_num(xp_kill) + get_pcvar_num(xp_ultra)
    
    if((
<= g_attacker <= g_maxplayers))
    {
        if(
g_victim != g_attacker)
        {
            
g_kills[g_attacker]++;
            if(
PlayerLevel[g_attacker] < MAXLEVEL-1
            {
                if ( 
get_pcvar_num(enable_triple) && g_kills[g_attacker] < get_pcvar_num(triple_kills) || g_kills[g_attacker] > get_pcvar_num(triple_kills)
                || 
get_pcvar_num(enable_ultra) && g_kills[g_attacker] < get_pcvar_num(ultra_kills) || g_kills[g_attacker] > get_pcvar_num(ultra_kills) )
                {    
                    if ( 
get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA)
                    {
                        
PlayerXp[g_attacker] += get_pcvar_num(admin_xp)
                    }
                    
PlayerXp[g_attacker] += get_pcvar_num(xp_kill)
                
                    
set_hudmessage(0255500.500.3312.02.0)
                    
ShowSyncHudMsg(g_attackerg_msgHudSync1"+%i"get_pcvar_num(xp_kill))
                }
                else if ( !
get_pcvar_num(enable_triple) || !get_pcvar_num(enable_ultra) )
                {
                    if ( 
get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA)
                    {
                        
PlayerXp[g_attacker] += get_pcvar_num(admin_xp)
                    }
                    
                    
PlayerXp[g_attacker] += get_pcvar_num(xp_kill)
                
                    
set_hudmessage(0255500.500.3312.02.0)
                    
ShowSyncHudMsg(g_attackerg_msgHudSync1"+%i"get_pcvar_num(xp_kill))
                }
                if ( 
g_kills[g_attacker] == get_pcvar_num(triple_kills) && get_pcvar_num(enable_triple) )
                {    
                    if ( 
get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA)
                    {
                        
PlayerXp[g_attacker] += get_pcvar_num(admin_xp)
                    }
                    
                    
PlayerXp[g_attacker] += counted_triple
                    
                    set_hudmessage
(0255500.450.3312.02.0)
                    
ShowSyncHudMsg(g_attackerg_msgHudSync1"%L"LANG_SERVER"TRIPLE_XP"counted_triple)
                }
                else if ( 
g_kills[g_attacker] == get_pcvar_num(ultra_kills) && get_pcvar_num(enable_ultra) )
                {
                    if ( 
get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA)
                    {
                        
PlayerXp[g_attacker] += get_pcvar_num(admin_xp)
                    }
                    
                    
PlayerXp[g_attacker] += counted_ultra
                    
                    set_hudmessage
(0255500.450.3312.02.0)
                    
ShowSyncHudMsg(g_attackerg_msgHudSync1"%L"LANG_SERVER"ULTRA_XP"counted_ultra)
                }
            }
        }
        
check_level(g_attacker)
    }
}
#endif

public event_deathmsg()
{    
    if( !
get_pcvar_num(p_Enabled) )
        return;
    
    new 
g_attacker read_data(1);
    new 
g_victim read_data(2);
    
    new 
counted_triple get_pcvar_num(xp_kill) + get_pcvar_num(xp_triple)
    new 
counted_ultra get_pcvar_num(xp_kill) + get_pcvar_num(xp_ultra)
    
    if((
<= g_attacker <= g_maxplayers))
    {
        if(
g_victim != g_attacker)
        {
            
g_kills[g_attacker]++;
            if(
PlayerLevel[g_attacker] < MAXLEVEL-1
            {
                if ( 
get_pcvar_num(enable_triple) && g_kills[g_attacker] < get_pcvar_num(triple_kills) || g_kills[g_attacker] > get_pcvar_num(triple_kills)
                || 
get_pcvar_num(enable_ultra) && g_kills[g_attacker] < get_pcvar_num(ultra_kills) || g_kills[g_attacker] > get_pcvar_num(ultra_kills) )
                {    
                    if ( 
get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA)
                    {
                        
PlayerXp[g_attacker] += get_pcvar_num(admin_xp)
                    }
                    
PlayerXp[g_attacker] += get_pcvar_num(xp_kill)
                
                    
set_hudmessage(0255500.500.3312.02.0)
                    
ShowSyncHudMsg(g_attackerg_msgHudSync1"+%i"get_pcvar_num(xp_kill))
                }
                else if ( !
get_pcvar_num(enable_triple) || !get_pcvar_num(enable_ultra) )
                {
                    if ( 
get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA)
                    {
                        
PlayerXp[g_attacker] += get_pcvar_num(admin_xp)
                    }
                    
                    
PlayerXp[g_attacker] += get_pcvar_num(xp_kill)
                
                    
set_hudmessage(0255500.500.3312.02.0)
                    
ShowSyncHudMsg(g_attackerg_msgHudSync1"+%i"get_pcvar_num(xp_kill))
                }
                if ( 
g_kills[g_attacker] == get_pcvar_num(triple_kills) && get_pcvar_num(enable_triple) )
                {    
                    if ( 
get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA)
                    {
                        
PlayerXp[g_attacker] += get_pcvar_num(admin_xp)
                    }
                    
                    
PlayerXp[g_attacker] += counted_triple
                    
                    set_hudmessage
(0255500.450.3312.02.0)
                    
ShowSyncHudMsg(g_attackerg_msgHudSync1"%L"LANG_SERVER"TRIPLE_XP"counted_triple)
                }
                else if ( 
g_kills[g_attacker] == get_pcvar_num(ultra_kills) && get_pcvar_num(enable_ultra) )
                {
                    if ( 
get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA)
                    {
                        
PlayerXp[g_attacker] += get_pcvar_num(admin_xp)
                    }
                    
                    
PlayerXp[g_attacker] += counted_ultra
                    
                    set_hudmessage
(0255500.450.3312.02.0)
                    
ShowSyncHudMsg(g_attackerg_msgHudSync1"%L"LANG_SERVER"ULTRA_XP"counted_ultra)
                }
            }
        }
        
check_level(g_attacker)
    }
}
public 
Event_StatusValue(id)
{
    new 
target read_data(2)
      if(
target != id && target != && get_pcvar_num(p_Enabled))
      {
        static 
sName[32];
        
get_user_name(targetsName31)

        
set_hudmessage(2552552550.6, -1.000.06.00.00.02)
        
ShowSyncHudMsg(idg_msgHudSync1"%L"LANG_SERVER"LEVEL_TEXT"sNamePlayerLevel[target], RANKLEVELS[PlayerLevel[target]])
    }
}
public 
task_show_level(task)
{
    new 
id task TASK_SHOW_LEVEL
    
    
if(!is_user_alive(id) && !get_pcvar_num(show_level_text) )
        return 
PLUGIN_HANDLED;
    
    
set_hudmessage(255000.020.3300.00.30.00.0)
    
ShowSyncHudMsg(idg_msgHudSync1 "%L"LANG_SERVER"LEVEL_HUD_TEXT"PlayerLevel[id], PlayerXp[id], LEVELS[PlayerLevel[id]], RANK[PlayerLevel[id]], RANKLEVELS[PlayerLevel[id]])
    
    
set_task(0.1"task_show_level"TASK_SHOW_LEVEL id)        
    
    return 
PLUGIN_CONTINUE;
}
public 
showlevel(id)
{
    if ( !
get_pcvar_num(p_Enabled) && get_pcvar_num(show_level_text) )
        return 
PLUGIN_HANDLED;
    
    
client_printcolor(id"%L"LANG_SERVER"LEVEL_TEXT2"PlayerLevel[id] , PlayerXp[id], LEVELS[PlayerLevel[id]]);
    
client_printcolor(id"%L"LANG_SERVER"LEVEL_TEXT3"RANK[PlayerLevel[id]], RANKLEVELS[PlayerLevel[id]]);
    
    return 
PLUGIN_HANDLED;
}
public 
descriptionx(id)
{
    new 
szMotd[2048], szTitle[64], iPos 0
    format
(szTitle63"Info")
    
iPos += format(szMotd[iPos], 2047-iPos"<html><head><style type=^"text/css^">pre{color:#FFB000;}body{background:#000000;margin-left:8px;margin-top:0px;}</style></head><pre><body>")
    
iPos += format(szMotd[iPos], 2047-iPos"^n^n<b>%s</b>^n^n"szTitle)
    
iPos += format(szMotd[iPos], 2047-iPos"%L^n"LANG_SERVER"DESCRIPTION")
    
    
iPos += format(szMotd[iPos], 2047-iPos"%L"LANG_SERVER"DESCRIPTION2")
        
    
show_motd(idszMotdszTitle)
    return 
PLUGIN_HANDLED;
}
public 
check_level(id)
{
    if(
PlayerLevel[id] < MAXLEVEL-&& get_pcvar_num(p_Enabled))
    {
        while(
PlayerXp[id] >= LEVELS[PlayerLevel[id]])
        {
            
PlayerLevel[id]++;
                
            if(
is_user_alive(id))
            {    
                if ( 
get_pcvar_num(level_style) )
                {
                    
give_weapon(id);
                }
                
                new 
p_origin[3];
                
get_user_origin(idp_origin0);
                
                
set_sprite(p_originlevelspr30)
                
set_sprite(p_originlevelspr230)
            }
            
emit_sound(idCHAN_ITEMLevelUp1.0ATTN_NORM0PITCH_NORM);
            
            static 
name[32] ; get_user_name(idnamecharsmax(name));
            
client_printcolor(0"%L"LANG_SERVER"LEVEL_UP"namePlayerLevel[id]);
        }
    } 
}
// Main Menu Info
public show_main_menu_info(id)
{
    static 
menu[510], len;
    
len 0;
    
    new 
xKeys3 MENU_KEY_0|MENU_KEY_1;

    
// Title
    
len += formatex(menu[len], sizeof menu len"%L"LANG_SERVER"TITLE_MENU_INFO")
    
    
len += formatex(menu[len], sizeof menu len"\r1. \w%L"id"INFO")
    if ( 
get_pcvar_num(show_rank) )
    {
        
xKeys3 |= (MENU_KEY_2)
        
        
len += formatex(menu[len], sizeof menu len"^n\r2. \wTop 20^n")
    }
    else
    {
        
len += formatex(menu[len], sizeof menu len"^n\d2. Top 20^n")
    }
    
    if(
find_plugin_byfile("gunxpmod_shop.amxx") != INVALID_PLUGIN_ID)
    {
        
xKeys3 |= (MENU_KEY_3)
        
        
len += formatex(menu[len], sizeof menu len"\r3. \w%L^n"id"ITEM_LIST")
        if ( 
is_user_alive(id) )
        {
            
xKeys3 |= (MENU_KEY_4)
            
            
len += formatex(menu[len], sizeof menu len"\r4. \w%L^n"id"UNLOCKS_SHOP_TEXT")
        }
    }
    
    
len += formatex(menu[len], sizeof menu len"^n^n\r0.\w %L"id"EXIT_MENU")

    
show_menu(idxKeys3menu, -1"Main Menu")

public 
main_menu_info(idkey)
{
    switch (
key)
    {
        case 
0:
        {
            
show_main_menu_info(id)
            
            
descriptionx(id)
        }
        case 
1:
        {
            
showtop20(id)
            
            
show_main_menu_info(id)
        }
        case 
2:
        {
            
show_main_menu_info(id)
            
            if(
callfunc_begin"display_items","gunxpmod_shop.amxx") == 1)
            {
                
callfunc_push_intid ); 
                
callfunc_end();
            }
        }
        case 
3:
        {
            if(
callfunc_begin("item_upgrades","gunxpmod_shop.amxx") == 1)
            {
                
callfunc_push_intid ); 
                
callfunc_end();
            }
        }
        case 
9:
        {
            return 
PLUGIN_HANDLED;
        }
    }

    return 
PLUGIN_HANDLED;
}
// Main Menu Level Style
public show_main_menu_level(id)
{
    if ( !
is_user_alive(id) || get_user_teamid ) != )
        return;
    
    static 
menu[510], len;
    
len 0;
    
    new 
xKeys2 MENU_KEY_0|MENU_KEY_1|MENU_KEY_2;

    
// Title
    
len += formatex(menu[len], sizeof menu len"%L"LANG_SERVER"TITLE_MENU"PlayerLevel[id], PlayerXp[id], LEVELS[PlayerLevel[id]])
    
    
len += formatex(menu[len], sizeof menu len"%L"LANG_SERVER"CHOOSE_TEXT")

    
len += formatex(menu[len], sizeof menu len"%L"LANG_SERVER"LAST_GUNS")
    
len += formatex(menu[len], sizeof menu len"^n^n\r0.\w %L"id"EXIT_MENU")

    
show_menu(idxKeys2menu, -1"Main Level Menu")

public 
main_menu_level(idkey)
{
    if ( !
is_user_alive(id) )
        return 
PLUGIN_HANDLED;
    
    switch (
key)
    {
        case 
0// back
        
{
            
first_check_menu(id)
        }
        case 
1// next
        
{
            
give_weapon_menu(idg_remember_selection[id]);
        }
        case 
9// exit
        
{
            return 
PLUGIN_HANDLED;
        }
    }

    return 
PLUGIN_HANDLED;
}
// Menu Level Style
public first_check_menu(id)
{
    
MENU_STARTID 0
    show_menu_level
(id);
}
public 
show_menu_level(id)
{
    if ( !
is_user_alive(id) )
        return;
    
    static 
menu[510], len, class;
    
len 0;
    
    new 
xKeys MENU_KEY_0;
    new 
max min(MENU_STARTID+7sizeof (LEVELS));
    new 
iPosNum 0;
    
    
// Title
    
len += formatex(menu[len], sizeof menu len"%L"LANG_SERVER"TITLE_MENU"PlayerLevel[id], PlayerXp[id], LEVELS[PlayerLevel[id]])
    
    
// 1-7. Class List
    
for (class = MENU_STARTID; class < max; class++)
    {
        if ( 
PlayerLevel[id] < class)
        {    
            
len += formatex(menu[len], sizeof menu len"%L"LANG_SERVER"INACTIVE_MENU", ++iPosNumRANK[class], class)
        } 
        else
        {
            
xKeys |= (1<<iPosNum++);

            
len += formatex(menu[len], sizeof menu len"%L"LANG_SERVER"ACTIVE_MENU", class-MENU_STARTID+1RANK[class], class)
        }
    }
    if ( 
MENU_STARTID != && MENU_STARTID != 21 )
    {    
        
xKeys |= (1<<7)
        
xKeys |= (1<<8)
        
        
len += formatex(menu[len], sizeof menu len"^n\r8.\w %L^n\r9.\w %L^n^n\r0.\w %L"id"BACK_MENU"id"NEXT_MENU"id"EXIT_MENU")
    }
    else if ( 
MENU_STARTID == )
    {
        
xKeys |= (1<<8)
        
        
len += formatex(menu[len], sizeof menu len"^n\r9.\w %L^n^n\r0.\w %L"id"NEXT_MENU"id"EXIT_MENU")
    }

    else if ( 
MENU_STARTID == 21 )
    {    
        
xKeys |= (1<<7)
        
        
len += formatex(menu[len], sizeof menu len"^n\r8.\w %L^n^n\r0.\w %L"id"BACK_MENU"id"EXIT_MENU")
    }
    
    
show_menu(idxKeysmenu, -1"Level by Menu")

public 
menu_level(idkey)
{
    if ( !
is_user_alive(id) )
        return 
PLUGIN_HANDLED;
    
    if (
key >= || key->= PlayerLevel[id])
    {
        switch (
key)
        {
            case 
7// back
            
{
                if (
MENU_STARTID->= 0MENU_STARTID -= 7
            
}
            case 
8// next
            
{
                if (
MENU_STARTID+sizeof (LEVELS)) MENU_STARTID += 7
            
}
            case 
9// exit
            
{
                return 
PLUGIN_HANDLED;
            }
        }

        
show_menu_level(id)
        return 
PLUGIN_HANDLED;
    }
    new 
selected MENU_STARTID key;

    
g_remember_selection[id] = selected;
    
    
give_weapon_menu(idselected);
    
    return 
PLUGIN_HANDLED;
}
public 
give_weapon_menu(idselection)
{
    
#if defined ZOMBIE_SWARM
    
if(get_user_team(id) == && is_user_alive(id) && get_pcvar_num(p_Enabled)) 
    {
        
StripPlayerWeapons(id);
        
        if ( 
get_pcvar_num(enable_grenades) )
        {
            
give_item(id"weapon_smokegrenade");
            
give_item(id"weapon_flashbang");
            
give_item(id"weapon_flashbang");
            
give_item(id"weapon_hegrenade");
        }
        if (!
user_has_weapon(idAMMOCONST[selection]))
        {
            
give_item(idWEAPONCONST[selection]);
        }
        
cs_set_user_bpammo(idAMMOCONST[selection], AMMO2CONST[selection])
    }
    
#endif
    
    #if defined ZOMBIE_INFECTION || defined NORMAL_MOD
    
if(is_user_alive(id) && get_pcvar_num(p_Enabled)) 
    {
        
StripPlayerWeapons(id);
        
        if ( 
get_pcvar_num(enable_grenades) )
        {
            
give_item(id"weapon_smokegrenade");
            
give_item(id"weapon_flashbang");
            
give_item(id"weapon_flashbang");
            
give_item(id"weapon_hegrenade");
        }
        if (!
user_has_weapon(idAMMOCONST[selection]))
        {
            
give_item(idWEAPONCONST[selection]);
        }
        
cs_set_user_bpammo(idAMMOCONST[selection], AMMO2CONST[selection])
    }
    
#endif
}
public 
give_weapon(id)
{
    
#if defined ZOMBIE_SWARM
    
if(get_user_team(id) == && is_user_alive(id) && get_pcvar_num(p_Enabled)) 
    {
        
StripPlayerWeapons(id);
        
        if ( 
get_pcvar_num(enable_grenades) && get_pcvar_num(level_style) )
        {
            
give_item(id"weapon_smokegrenade");
            
give_item(id"weapon_flashbang");
            
give_item(id"weapon_flashbang");
            
give_item(id"weapon_hegrenade");
        }
        
        if (!
user_has_weapon(idAMMOCONST[PlayerLevel[id]]))
        {
            
give_item(idWEAPONCONST[PlayerLevel[id]]);
        }
        
cs_set_user_bpammo(idAMMOCONST[PlayerLevel[id]], AMMO2CONST[PlayerLevel[id]])
    }
    
#endif
    
    #if defined ZOMBIE_INFECTION || defined NORMAL_MOD
    
if(is_user_alive(id) && get_pcvar_num(p_Enabled)) 
    {
        
StripPlayerWeapons(id);
        
        if ( 
get_pcvar_num(enable_grenades) && get_pcvar_num(level_style) )
        {
            
give_item(id"weapon_smokegrenade");
            
give_item(id"weapon_flashbang");
            
give_item(id"weapon_flashbang");
            
give_item(id"weapon_hegrenade");
        }
        if (!
user_has_weapon(idAMMOCONST[PlayerLevel[id]]))
        {
            
give_item(idWEAPONCONST[PlayerLevel[id]]);
        }
        
cs_set_user_bpammo(idAMMOCONST[PlayerLevel[id]], AMMO2CONST[PlayerLevel[id]])
    }
    
#endif
}
public 
set_sprite(p_origin[3], spriteradius)
{
    
// Explosion
    
message_begin(MSG_BROADCASTSVC_TEMPENTITYp_origin)
    
write_byte(TE_EXPLOSION)
    
write_coord(p_origin[0])
    
write_coord(p_origin[1])
    
write_coord(p_origin[2])
    
write_short(sprite)
    
write_byte(radius)
    
write_byte(15)
    
write_byte(4)
    
message_end()
}
//Shows Top 20
public showtop20(id)
{
    if( !
get_pcvar_num(p_Enabled) && !get_pcvar_num(show_rank) )
        return;
    
    static 
Sort[33][2];
    new 
players[32],num,count,index;
    
get_players(players,num);
    
    for(new 
0numi++)
    {
        
index players[i];
        
Sort[count][0] = index;
        
Sort[count][1] = PlayerXp[index];
        
count++;
    }
    
    
SortCustom2D(Sort,count,"CompareXp");
    new 
motd[1501],iLen;
    
iLen formatex(motdsizeof motd 1,"<body bgcolor=#000000><font color=#98f5ff><pre>");
    
iLen += formatex(motd[iLen], (sizeof motd 1) - iLen,"%s %-22.22s %3s^n""#""Name""# Experience");
    
    new 
clamp(count,0,20);
    new 
name[32],kindex;
    
    for(new 
0yx++)
    {
        
kindex Sort[x][0];
        
get_user_name(kindex,name,sizeof name 1);
        
iLen += formatex(motd[iLen], (sizeof motd 1) - iLen,"%d %-22.22s %d^n"1nameSort[x][1]);
    }
    
iLen += formatex(motd[iLen], (sizeof motd 1) - iLen,"</body></font></pre>");
    
show_motd(id,motd"GunXpMod Top 20");
}
public 
CompareXp(elem1[], elem2[])
{
    if(
elem1[1] > elem2[1])
        return -
1;
    else if(
elem1[1] < elem2[1])
        return 
1;
    
    return 
0;

// Command to set player Level
public cmd_give_level(idlevelcid
{
    if(!
cmd_access(idlevelcid3) || !get_pcvar_num(p_Enabled))
    {
        return 
PLUGIN_HANDLED;
    }
    
    new 
Arg1[64], Target
    read_argv
(1Arg163)
    
Target cmd_target(idArg10)
    
    new 
iLevel[32], Value
    read_argv
(2iLevel31)
    
Value str_to_num(iLevel)
    
    if(
iLevel[0] == '-'
    {
        
console_print(id"You can't have a '-' in the value!")
        return 
PLUGIN_HANDLED;
    }
    
    if(!
Target
    {
        
console_print(id"Target not found!")
        return 
PLUGIN_HANDLED;
    }
    
    if(
Value MAXLEVEL-1)
    {
        
console_print(id"You can't set a more than %d!"MAXLEVEL-1)
        return 
PLUGIN_HANDLED;
    }
    
    if(
Value 1)
    {
        
console_print(id"You can't set less than 1!")
        return 
PLUGIN_HANDLED;
    }
    
    new 
AdminName[32]
    
get_user_name(idAdminName31)
        
    new 
TargetName[32]
    
get_user_name(TargetTargetName31)
    
    
PlayerLevel[Target] = Value 1
    PlayerXp
[Target] = LEVELS[PlayerLevel[Target]]
    
check_level(Target)
    
    
client_printcolor(Target"/gADMIN: /ctr%s /yhas set your level to /g%d"AdminNameValue)

    return 
PLUGIN_HANDLED;
}
// Save Player Info
SaveLevel(id)

    if ( 
get_pcvar_num(savexp) )
    {
        new 
authid[32]
        
get_user_authid(idauthid31)
        new 
szData[256];
        new 
szKey[64];
        
        
formatexszKey 63 "%s-ID" authid);
        
formatexszData 255 "%i#%i#" PlayerLevel[id], PlayerXp[id] );
    
        
nvault_setg_Vault szKey szData );
    }
    else
    {
        new 
authip[32]
        
get_user_ip(id,authip,31,1)
        new 
szData[256];
        new 
szKey[64];
        
        
formatexszKey 63 "%s-IP" authip );
        
formatexszData 255 "%i#%i#" PlayerLevel[id], PlayerXp[id] );
    
        
nvault_setg_Vault szKey szData );
    }
}
// Load Player Info
LoadLevel(id)
{
    if ( 
get_pcvar_num(savexp) )
    {
        new 
authid[32]
        
get_user_authid(idauthid31)
        new 
szData[256];
        new 
szKey[40];

        
formatexszKey 39 "%s-ID" authid );

        
formatex(szData 255"%i#%i#"PlayerLevel[id], PlayerXp[id]) 
        
        
nvault_get(g_VaultszKeyszData255

        
replace_all(szData 255"#"" ")
        new 
xp[32], level[32
        
parse(szDatalevel31xp31
        
PlayerLevel[id] = str_to_num(level)
        
PlayerXp[id] = str_to_num(xp)  
    }
    else
    {
        new 
authip[32]
        
get_user_ip(idauthip311)
        new 
szData[256];
        new 
szKey[40];

        
formatexszKey 39 "%s-IP" authip );

        
formatex(szData 255"%i#%i#"PlayerLevel[id], PlayerXp[id]) 
        
        
nvault_get(g_VaultszKeyszData255

        
replace_all(szData 255"#"" ")
        new 
xp[32], level[32
        
parse(szDatalevel31xp31
        
PlayerLevel[id] = str_to_num(level)
        
PlayerXp[id] = str_to_num(xp
    }
}
// ============================================================//
//                          [~ Natives ~]                          //
// ============================================================//
// Native: get_user_xp
public native_get_user_xp(id)
{
    return 
PlayerXp[id];
}
// Native: set_user_xp
public native_set_user_xp(idamount)
{
    
PlayerXp[id] = amount;
}
// Native: get_user_level
public native_get_user_level(id)
{
    return 
PlayerLevel[id];
}
// Native: set_user_xp
public native_set_user_level(idamount)
{
    
PlayerLevel[id] = amount;
}
// Native: Gets user level by Xp
public native_get_user_max_level(id)
{
    return 
LEVELS[PlayerLevel[id]];
}
// ============================================================//
//                          [~ Stocks ~]                          //
// ============================================================//
stock client_printcolor(const id, const input[], any:...)
{
    new 
count 1players[32];
    static 
msg[191];
    
vformat(msg,190,input,3);
    
replace_all(msg,190,"/g","^4");// green txt
    
replace_all(msg,190,"/y","^1");// orange txt
    
replace_all(msg,190,"/ctr","^3");// team txt
    
replace_all(msg,190,"/w","^0");// team txt
    
if (idplayers[0] = id; else get_players(players,count,"ch");
    for (new 
0counti++)
        if (
is_user_connected(players[i]))
        {
            
message_begin(MSG_ONE_UNRELIABLESayTxT_players[i]);
            
write_byte(players[i]);
            
write_string(msg);
            
message_end();
        }
}    
public 
StripPlayerWeapons(id

    
strip_user_weapons(id
    
set_pdata_int(idOFFSET_PRIMARYWEAPON0
    
give_item(id"weapon_knife");


Saludos. Crab

Gracias me funciono! Excitedeyes
DancingLmlDancing
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)