AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   GUN XP MOD ADMIN FLAG (https://forums.alliedmods.net/showthread.php?t=156386)

Keistas 05-05-2011 16:51

GUN XP MOD ADMIN FLAG
 
Hello, what is admin flag this plugin:

PHP Code:

#include "gunxpmod.cfg"

#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 <sqlx>
#include <hamsandwich>

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


#define OFFSET_PRIMARYWEAPON 116
#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_remember_selection[33], g_kills[33], g_remember_selection_pistol[33];
new 
g_maxplayersg_msgHudSync1SayTxTenable_grenades;
new 
levelsprlevelspr2show_level_textshow_rank;
new 
savexpsave_typexp_killxp_tripleenable_tripletriple_killsxp_ultraultra_killsenable_ultrap_Enabledlevel_style;
new 
enable_admin_xpadmin_xp;

/*================================================================================
                        [MySQLx Vars, other]
=================================================================================*/
new Handle:g_hTuple;
new 
g_szAuthID[33][35];
new 
g_szAuthIP[33][35];
new 
mysqlx_hostmysqlx_usermysqlx_dbmysqlx_pass;

new const 
szTables[][] = 
{
    
"CREATE TABLE IF NOT EXISTS `mytable` ( `player_id` varchar(32) NOT NULL,`player_level` int(8) default NULL,`player_xp` int(16) default NULL,PRIMARY KEY (`player_id`) ) TYPE=MyISAM;"
}

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, don't change!

new const AMMOCONST[MAXLEVEL] = { 17161112610237121930318
15142152822827132420 
}; // Weapons ID(CSW) don't change!

/*================================================================================
                        [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"set_level <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.
    
save_type register_cvar("gxm_savetype","1"); // Save Xp to : 1 = MySQL, 0 = NVault.
    
savexp register_cvar("gxm_save","0"); // Save Xp by : 1 = SteamID, 0 = IP.
    
xp_kill register_cvar("gxm_xp","10"); // How much xp gain if you killed someone?
    
show_level_text register_cvar("gxm_level_text","0"); // 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","10"); // How much extra xp give to admins?
    
                    // SQLx cvars
    
mysqlx_host register_cvar ("gxm_host"""); // The host from the db
    
mysqlx_user register_cvar ("gxm_user"""); // The username from the db login
    
mysqlx_pass register_cvar ("gxm_pass"""); // The password from the db login
    
mysqlx_db register_cvar ("gxm_dbname"""); // The database name 
    
                    // 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_menucmd(register_menuid("Main Menu"), 1023"main_menu_info")
    
    
register_dictionary("gunxpmod.txt");
    
MySQLx_Init()
                    
    
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()
{
    new 
ConfDir[32], File[192];
    
    
get_configsdirConfDircharsmaxConfDir ) );
    
formatexFilecharsmaxFile ), "%s/gunxpmod.cfg"ConfDir );
    
    if( !
file_existsFile ) )
    {
        
server_print"File %s doesn't exist!"File );
        
write_fileFile" ", -);
    }
    else
    {    
        
server_print"%s successfully loaded."File );
        
server_cmd"exec %s"File );
    }
    
    
//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_connect(id)
{
    
g_remember_selection[id] = MAX_PISTOLS_MENU;
    
g_remember_selection_pistol[id] = 0;
    
    
get_user_authidid g_szAuthID[id] , 34 );
    
get_user_ip(idg_szAuthIP[id] , 341);
    
    
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_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) || !is_user_alive(id) )
        return;
    
    
g_kills[id] = 0
        
    
#if defined ZOMBIE_SWARM
    
if ( !get_pcvar_num(level_style) && cs_get_user_team(id) == CS_TEAM_CT )
    {
        
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))
    {
        
StripPlayerWeapons(id);
            
        
set_task(2.0"show_main_menu_level"id)
    }
    
#endif
        
    
if( get_pcvar_num(show_level_text) )
    {
        
remove_taskTASK_SHOW_LEVEL id );        

        
set_task(0.1"task_show_level"TASK_SHOW_LEVEL id)
    }
    
    
#if defined ZOMBIE_SWARM    
    
if ( get_pcvar_num(level_style) && cs_get_user_team(id) == CS_TEAM_CT )
    {
        
set_task(0.3"give_weapon"id);
    }
    
#endif

    #if defined NORMAL_MOD || defined ZOMBIE_INFECTION
    
if ( get_pcvar_num(level_style) )
    {
        
set_task(0.3"give_weapon"id);
    }
    
#endif

}

#if defined ZOMBIE_PLAGUE
public zp_user_humanized_post(idsurvivor)
{
    if( !
get_pcvar_num(p_Enabled) || !is_user_alive(id) )
        return;

    
set_task(1.0"show_main_menu_level"id);
}
#endif

#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) + get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA get_pcvar_num(admin_xp) : 0
    
new counted_ultra get_pcvar_num(xp_kill) + get_pcvar_num(xp_ultra) + get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA get_pcvar_num(admin_xp) : 0
    
    
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_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA)
                {
                    
PlayerXp[g_attacker] += get_pcvar_num(admin_xp)
                }
                    
                if ( 
g_kills[g_attacker] == get_pcvar_num(triple_kills) && get_pcvar_num(enable_triple) )
                {
                    
PlayerXp[g_attacker] += counted_triple
                        
                    set_hudmessage
(0255500.500.3312.02.0)
                    
show_hudmessage(g_attacker"%L"LANG_SERVER"TRIPLE_XP"counted_triple + (get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA get_pcvar_num(admin_xp) : 0))
                }
                else if ( 
g_kills[g_attacker] == get_pcvar_num(ultra_kills) && get_pcvar_num(enable_ultra) )
                {
                    
PlayerXp[g_attacker] += counted_ultra
                        
                    set_hudmessage
(0255500.500.3312.02.0)
                    
show_hudmessage(g_attacker"%L"LANG_SERVER"ULTRA_XP"counted_ultra + (get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA get_pcvar_num(admin_xp) : 0))
                }
                else
                {
                    
PlayerXp[g_attacker] += get_pcvar_num(xp_kill)
                    
                    
set_hudmessage(0255500.500.3312.02.0)
                    
show_hudmessage(g_attacker"+%i", (get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA get_pcvar_num(admin_xp) : 0) + get_pcvar_num(xp_kill) )
                }
                
                
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_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA)
                {
                    
PlayerXp[g_attacker] += get_pcvar_num(admin_xp)
                }
                    
                if ( 
g_kills[g_attacker] == get_pcvar_num(triple_kills) && get_pcvar_num(enable_triple) )
                {
                    
PlayerXp[g_attacker] += counted_triple
                        
                    set_hudmessage
(0255500.500.3312.02.0)
                    
show_hudmessage(g_attacker"%L"LANG_SERVER"TRIPLE_XP"counted_triple + (get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA get_pcvar_num(admin_xp) : 0))
                }
                else if ( 
g_kills[g_attacker] == get_pcvar_num(ultra_kills) && get_pcvar_num(enable_ultra) )
                {
                    
PlayerXp[g_attacker] += counted_ultra
                        
                    set_hudmessage
(0255500.500.3312.02.0)
                    
show_hudmessage(g_attacker"%L"LANG_SERVER"ULTRA_XP"counted_ultra + (get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA get_pcvar_num(admin_xp) : 0))
                }
                else
                {
                    
PlayerXp[g_attacker] += get_pcvar_num(xp_kill)
                    
                    
set_hudmessage(0255500.500.3312.02.0)
                    
show_hudmessage(g_attacker"+%i", (get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA get_pcvar_num(admin_xp) : 0) + get_pcvar_num(xp_kill) )
                }
                
                
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_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA)
                {
                    
PlayerXp[g_attacker] += get_pcvar_num(admin_xp)
                }
                    
                if ( 
g_kills[g_attacker] == get_pcvar_num(triple_kills) && get_pcvar_num(enable_triple) )
                {
                    
PlayerXp[g_attacker] += counted_triple
                        
                    set_hudmessage
(0402550.500.3312.02.0)
                    
show_hudmessage(g_attacker"%L"LANG_SERVER"TRIPLE_XP"counted_triple + (get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA get_pcvar_num(admin_xp) : 0))
                }
                else if ( 
g_kills[g_attacker] == get_pcvar_num(ultra_kills) && get_pcvar_num(enable_ultra) )
                {
                    
PlayerXp[g_attacker] += counted_ultra
                        
                    set_hudmessage
(2553000.500.3312.02.0)
                    
show_hudmessage(g_attacker"%L"LANG_SERVER"ULTRA_XP"counted_ultra + (get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA get_pcvar_num(admin_xp) : 0))
                }
                else
                {
                    
PlayerXp[g_attacker] += get_pcvar_num(xp_kill)
                    
                    
set_hudmessage(0255500.500.3312.02.0)
                    
show_hudmessage(g_attacker"+%i", (get_pcvar_num(enable_admin_xp) && get_user_flags(g_attacker) & ADMIN_EXTRA get_pcvar_num(admin_xp) : 0) + get_pcvar_num(xp_kill) )
                }
                
                
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) || !get_pcvar_num(p_Enabled) )
        return;
    
    
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)        
}
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)
{
    if ( !
get_pcvar_num(p_Enabled) )
        return;
    
    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) )
        return;
    
    new 
szInfo[60], szChooseT[40], szLastG[40];
    
formatex(szInfocharsmax(szInfo), "%L"LANG_SERVER"TITLE_MENU"PlayerLevel[id], PlayerXp[id], LEVELS[PlayerLevel[id]] );
    
    new 
menu menu_create(szInfo "main_menu_level");
    
    
formatex(szChooseTcharsmax(szChooseT), "%L"LANG_SERVER"CHOOSE_TEXT");
    
menu_additem(menuszChooseT"1"0);
    
    
formatex(szLastGcharsmax(szLastG), "%L"LANG_SERVER"LAST_GUNS");
    
menu_additem(menuszLastG"2"0);
    
    new 
szExit[15];
    
formatex(szExitcharsmax(szExit), "%L"LANG_SERVER"EXIT_MENU");
    
    
menu_setprop(menuMPROP_EXITNAMEszExit);
    
    
menu_display(id menu 0);

public 
main_menu_level(id menu item

    if ( !
is_user_alive(id) )
    {
        return 
PLUGIN_HANDLED;
    }
    
    
#if defined ZOMBIE_PLAGUE
    
if ( zp_has_round_started() && cs_get_user_team(id) == CS_TEAM_T )
        return 
PLUGIN_HANDLED;
    
#endif
    
    
if(item == MENU_EXIT
    { 
        
menu_destroy(menu); 
        return 
PLUGIN_HANDLED;
    } 
    new 
data[6], iName[64];
    new 
accesscallback;
    
menu_item_getinfo(menuitemaccessdata,5iName63callback);

    new 
item_id str_to_num(data);
    
    switch (
item_id)
    {
        case 
1// show pistols
        
{
            
show_menu_level_pistol(id);
        }
        case 
2// last weapons
        
{
            if ( 
PlayerLevel[id] > MAX_PISTOLS_MENU )
            {
                
give_weapon_menu(idg_remember_selection[id], 11);
                
give_weapon_menu(idg_remember_selection_pistol[id], 00);
            }
            else if ( 
PlayerLevel[id] < MAX_PISTOLS_MENU )
            {
                
give_weapon_menu(idg_remember_selection_pistol[id], 11);
            }
        }
    }

    
menu_destroy(menu); 
    return 
PLUGIN_HANDLED;
}
// Menu Level Style Pistols
public show_menu_level_pistol(id)
{
    if ( !
is_user_alive(id) )
        return;
    
    new 
szInfo[60];
    
formatex(szInfocharsmax(szInfo), "%L"LANG_SERVER"TITLE_MENU"PlayerLevel[id], PlayerXp[id], LEVELS[PlayerLevel[id]] );
    
    new 
menu menu_create(szInfo "pistol_menu");
    
    for (new 
item_id 0item_id MAX_PISTOLS_MENUitem_id++)
    {
        new 
szItems[60], szTempid[32];
            
        if ( 
PlayerLevel[id] >= GUN_LEVELS[item_id] )
        {
            
formatex(szItemscharsmax(szItems), "%L"LANG_SERVER"ACTIVE_MENU"RANK[item_id], GUN_LEVELS[item_id] )

            
num_to_str(item_idszTempidcharsmax(szTempid) );

            
menu_additem(menuszItemsszTempid0);
        }
            
        else
        {
            
formatex(szItemscharsmax(szItems), "%L"LANG_SERVER"INACTIVE_MENU"RANK[item_id], GUN_LEVELS[item_id] )
            
menu_additem(menuszItems"999"0menu_makecallback("CallbackMenu"));
        }
    }
    
    new 
szNext[15], szBack[15], szExit[15];
    
formatex(szBackcharsmax(szBack), "%L"LANG_SERVER"BACK_MENU");
    
formatex(szNextcharsmax(szNext), "%L"LANG_SERVER"NEXT_MENU");
    
formatex(szExitcharsmax(szExit), "%L"LANG_SERVER"EXIT_MENU");
    
    
menu_setprop(menuMPROP_BACKNAMEszBack
    
menu_setprop(menuMPROP_NEXTNAMEszNext
    
menu_setprop(menuMPROP_EXITNAMEszExit
    
    
menu_display(id menu 0); 
}
public 
pistol_menu(id menu item

    if ( !
is_user_alive(id) )
    {
        return 
PLUGIN_HANDLED;
    }
    
    
#if defined ZOMBIE_PLAGUE
    
if ( zp_has_round_started() && cs_get_user_team(id) == CS_TEAM_T )
        return 
PLUGIN_HANDLED;
    
#endif
    
    
if(item == MENU_EXIT
    { 
        
menu_destroy(menu); 
        return 
PLUGIN_HANDLED;
    } 
    new 
data[6], iName[64];
    new 
accesscallback;
    
menu_item_getinfo(menuitemaccessdata,5iName63callback);

    new 
item_id str_to_num(data);

    
g_remember_selection_pistol[id] = item_id;
    
    
give_weapon_menu(iditem_id11);
    
    if ( 
PlayerLevel[id] > MAX_PISTOLS_MENU )
    {
        
show_menu_level(id);
    }

    
menu_destroy(menu); 
    return 
PLUGIN_HANDLED;
}
// Menu Level Style Primary
public show_menu_level(id)
{
    if ( !
is_user_alive(id) || PlayerLevel[id] < MAX_PISTOLS_MENU )
        return;
    
    new 
szInfo[100];
    
formatex(szInfocharsmax(szInfo), "%L"LANG_SERVER"TITLE_MENU"PlayerLevel[id], PlayerXp[id], LEVELS[PlayerLevel[id]] );
    
    new 
menu menu_create(szInfo "level_menu");
    
    for (new 
item_id MAX_PISTOLS_MENUitem_id MAXLEVELitem_id++)
    {
        new 
szItems[512], szTempid[32];
            
        if ( 
PlayerLevel[id] >= GUN_LEVELS[item_id] )
        {
            
formatex(szItemscharsmax(szItems), "%L"LANG_SERVER"ACTIVE_MENU"RANK[item_id], GUN_LEVELS[item_id] )

            
num_to_str(item_idszTempidcharsmax(szTempid) );

            
menu_additem(menuszItemsszTempid0);
        }
        else
        {
            
formatex(szItemscharsmax(szItems), "%L"LANG_SERVER"INACTIVE_MENU"RANK[item_id], GUN_LEVELS[item_id] )
            
menu_additem(menuszItems"999"0menu_makecallback("CallbackMenu"));
        }
    }
    
    new 
szNext[15], szBack[15], szExit[15];
    
formatex(szBackcharsmax(szBack), "%L"LANG_SERVER"BACK_MENU");
    
formatex(szNextcharsmax(szNext), "%L"LANG_SERVER"NEXT_MENU");
    
formatex(szExitcharsmax(szExit), "%L"LANG_SERVER"EXIT_MENU");
    
    
menu_setprop(menuMPROP_BACKNAMEszBack
    
menu_setprop(menuMPROP_NEXTNAMEszNext
    
menu_setprop(menuMPROP_EXITNAMEszExit
    
    
menu_display(id menu 0); 
}
public 
level_menu(id menu item

    if ( !
is_user_alive(id) || PlayerLevel[id] < MAX_PISTOLS_MENU )
    {
        return 
PLUGIN_HANDLED;
    }
    
    
#if defined ZOMBIE_PLAGUE
    
if ( zp_has_round_started() && cs_get_user_team(id) == CS_TEAM_T )
        return 
PLUGIN_HANDLED;
    
#endif
    
    
if(item == MENU_EXIT
    { 
        
menu_destroy(menu); 
        return 
PLUGIN_HANDLED;
    } 
    new 
data[6], iName[64];
    new 
accesscallback;
    
menu_item_getinfo(menuitemaccessdata,5iName63callback);

    new 
item_id str_to_num(data);

    
g_remember_selection[id] = item_id;
    
    
give_weapon_menu(iditem_id00);
    
    
menu_destroy(menu); 
    return 
PLUGIN_HANDLED;
}
public 
CallbackMenu(idmenuitem

    return 
ITEM_DISABLED
}

// Selected by menu or remember selection and give item
public give_weapon_menu(idselectionstripgivegren)
{
    
#if defined ZOMBIE_SWARM
    
if( is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT && get_pcvar_num(p_Enabled) ) 
    {
        if ( 
strip )
        {
            
StripPlayerWeapons(id);
        }
        
        if ( 
get_pcvar_num(enable_grenades) && givegren )
        {
            
give_item(idFLASHBANG_LEVEL[PlayerLevel[id]]);
            
give_item(idFLASHBANG_LEVEL[PlayerLevel[id]]);
            
give_item(idHEGRENADE_LEVEL[PlayerLevel[id]]);
            
give_item(idSMOKEGRENADE_LEVEL[PlayerLevel[id]]);
        }
        
        
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)) 
    {
        if ( 
strip )
        {
            
StripPlayerWeapons(id);
        }
        
        if ( 
get_pcvar_num(enable_grenades) && givegren )
        {
            
give_item(idFLASHBANG_LEVEL[PlayerLevel[id]]);
            
give_item(idFLASHBANG_LEVEL[PlayerLevel[id]]);
            
give_item(idHEGRENADE_LEVEL[PlayerLevel[id]]);
            
give_item(idSMOKEGRENADE_LEVEL[PlayerLevel[id]]);
        }
        
        
give_item(idWEAPONCONST[selection]);

        
cs_set_user_bpammo(idAMMOCONST[selection], AMMO2CONST[selection])
    }
    
#endif
}
public 
give_weapon(id)
{
    
#if defined ZOMBIE_SWARM
    
if( is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT && get_pcvar_num(p_Enabled)) 
    {
        
StripPlayerWeapons(id);
        
        if ( 
get_pcvar_num(enable_grenades) && get_pcvar_num(level_style) )
        {
            
give_item(idFLASHBANG_LEVEL[PlayerLevel[id]]);
            
give_item(idFLASHBANG_LEVEL[PlayerLevel[id]]);
            
give_item(idHEGRENADE_LEVEL[PlayerLevel[id]]);
            
give_item(idSMOKEGRENADE_LEVEL[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(idFLASHBANG_LEVEL[PlayerLevel[id]]);
            
give_item(idFLASHBANG_LEVEL[PlayerLevel[id]]);
            
give_item(idHEGRENADE_LEVEL[PlayerLevel[id]]);
            
give_item(idSMOKEGRENADE_LEVEL[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;
}

// ============================================================//
//                          [~ Saving datas ~]                   //
// ============================================================//
public MySQLx_Init()
{
    if ( !
get_pcvar_num(p_Enabled) || !get_pcvar_num(save_type) )
        return;
    
    new 
szHost[64], szUser[32], szPass[32], szDB[128];
    
    
get_pcvar_stringmysqlx_hostszHostcharsmaxszHost ) );
    
get_pcvar_stringmysqlx_userszUsercharsmaxszUser ) );
    
get_pcvar_stringmysqlx_passszPasscharsmaxszPass ) );
    
get_pcvar_stringmysqlx_dbszDBcharsmaxszDB ) );
    
    
g_hTuple SQL_MakeDbTupleszHostszUserszPassszDB );
    
    for ( new 
0sizeof szTablesi++ )
    {
        
SQL_ThreadQueryg_hTuple"QueryCreateTable"szTables[i])
    }
}
public 
QueryCreateTableiFailStateHandle:hQueryszError[ ], iErroriData[ ], iDataSizeFloat:fQueueTime 

    if( 
iFailState == TQUERY_CONNECT_FAILED 
    
|| iFailState == TQUERY_QUERY_FAILED 
    { 
        
log_amx"%s"szError ); 
        
        return;
    } 
}

SaveLevel(id)

    if ( 
get_pcvar_num(savexp) )
    {
        if ( !
get_pcvar_num(save_type) )
        {
            new 
szData[256];
            new 
szKey[64];
            
            
formatexszKey 63 "%s-ID" g_szAuthID[id]);
            
formatexszData 255 "%i#%i#" PlayerLevel[id], PlayerXp[id] );
        
            
nvault_setg_Vault szKey szData );
        }
        else
        {    
            static 
szQuery128 ]; 

            
formatexszQuery127"REPLACE INTO `mytable` (`player_id`, `player_level`, `player_xp`) VALUES ('%s', '%d', '%d');"g_szAuthID[id] , PlayerLevel[id], PlayerXp[id] );
        
            
SQL_ThreadQueryg_hTuple"QuerySetData"szQuery);
        }
    }
    else
    {
        if ( !
get_pcvar_num(save_type) )
        {
            new 
szData[256];
            new 
szKey[64];
            
            
formatexszKey 63 "%s-IP" g_szAuthIP[id] );
            
formatexszData 255 "%i#%i#" PlayerLevel[id], PlayerXp[id] );
        
            
nvault_setg_Vault szKey szData );
        }
        else
        {
            static 
szQuery128 ]; 

            
formatexszQuery127"REPLACE INTO `mytable` (`player_id`, `player_level`, `player_xp`) VALUES ('%s', '%d', '%d');"g_szAuthIP[id] , PlayerLevel[id], PlayerXp[id] );
        
            
SQL_ThreadQueryg_hTuple"QuerySetData"szQuery);
        }
    }
}

LoadLevel(id)
{
    if ( 
get_pcvar_num(savexp) )
    {
        if ( !
get_pcvar_num(save_type) )
        {
            new 
szData[256];
            new 
szKey[40];

            
formatexszKey 39 "%s-ID" g_szAuthID[id] );

            
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
        {
            static 
szQuery128 ], iData]; 
            
formatexszQuery127"SELECT `player_level`, `player_xp` FROM `mytable` WHERE ( `player_id` = '%s' );"g_szAuthID[id] ); 
     
            
iData] = id;
            
SQL_ThreadQueryg_hTuple"QuerySelectData"szQueryiData);
        }
    }
    else
    {
        if ( !
get_pcvar_num(save_type) )
        {
            new 
szData[256];
            new 
szKey[40];

            
formatexszKey 39 "%s-IP" g_szAuthIP[id] );

            
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
        {
            static 
szQuery128 ], iData]; 
            
formatexszQuery127"SELECT `player_level`, `player_xp` FROM `mytable` WHERE ( `player_id` = '%s' );"g_szAuthIP[id] ); 
     
            
iData] = id;
            
SQL_ThreadQueryg_hTuple"QuerySelectData"szQueryiData);
        }
    }
}
public 
QuerySelectDataiFailStateHandle:hQueryszError[ ], iErroriData[ ], iDataSizeFloat:fQueueTime 

    if( 
iFailState == TQUERY_CONNECT_FAILED 
    
|| iFailState == TQUERY_QUERY_FAILED 
    { 
        
log_amx"%s"szError );
        
        return;
    } 
    else 
    { 
        new 
id iData];
        
        new 
ColLevel SQL_FieldNameToNum(hQuery"player_level"
        new 
ColXp SQL_FieldNameToNum(hQuery"player_xp")
        
        while (
SQL_MoreResults(hQuery)) 
        {
            
PlayerLevel[id] = SQL_ReadResult(hQueryColLevel);
            
PlayerXp[id] = SQL_ReadResult(hQueryColXp);
                    
            
SQL_NextRow(hQuery)
        }
    } 
}
public 
QuerySetDataiFailStateHandle:hQueryszError[ ], iErroriData[ ], iDataSizeFloat:fQueueTime 

    if( 
iFailState == TQUERY_CONNECT_FAILED 
    
|| iFailState == TQUERY_QUERY_FAILED 
    { 
        
log_amx"%s"szError ); 
        
        return;
    } 

// ============================================================//
//                          [~ 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");


What is admin flag? This command: enable_admin_xp admin_xp;

lis_16 05-05-2011 17:16

Re: GUN XP MOD ADMIN FLAG
 
check gunxpmod.cfg

#define ADMIN_EXTRA ADMIN_LEVEL_H

Keistas 05-05-2011 18:34

Re: GUN XP MOD ADMIN FLAG
 
Thanks.


All times are GMT -4. The time now is 04:24.

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