Pagalbos.
Posted: 2014 Oct 18 00:25
Reiki pagalbos su gunxp modu problema tame kad kada prasideda round tau ismeta Level weapon menu kad pasirinkt guna ant kiek pas tave ira xp , jeigu tu nespeji pasirinkt per 10 sekundiziu ginkla ar buwai afk po 10 sekundziu prasideda zombie modas pasidarai zombiu , ir tas Level ginklu menu nedingsta kol tu ne pasirinksi ginkla jeigu kada esi zombis bandai paimt gun is to level menu , guno tau ne duos bet granatas duoda ir rezultatas kad zombis begioja su granatomis reiketu kaz kaip padarit kad kada tas zombis banditu imt guna is to level menu jam tu granatu neduotu
Gunxp modo sma


Gunxp modo sma
Code: Select all
#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_maxplayers, g_msgHudSync1, SayTxT, enable_grenades;new levelspr, levelspr2, show_level_text, show_rank;new savexp , xp_kill, xp_triple, enable_triple, triple_kills, xp_ultra, ultra_kills, enable_ultra, p_Enabled, level_style;new enable_admin_xp, admin_xp; new const LevelUp[] = "umbrella/levelup.wav"; //mac10//new const LEVELS[MAXLEVEL] = { 90, 180, 300, 450, 700, 1200, 1800, 2800,4100, 5200, 6000, 6800, 8200, 10200, 12000, 15000, 17500, 20500, 25500, //<-aug//29000, 35000, 46000, 58000, 150000}; // 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] = { 17, 16, 1, 11, 26, 10, 23, 7, 12, 19, 30, 3, 18,15, 14, 21, 5, 28, 22, 8, 27, 13, 24, 20}; // Weapons ID(CSW) new const AMMO2CONST[MAXLEVEL] = { 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 90,400, 400, 80, 80, 400, 400, 400, 400, 200, 200, 400}; // Weapons Ammo /*================================================================================ [Plugin natives,precache,init]=================================================================================*/public plugin_init(){ register_plugin(PLUGIN, VERSION, AUTHOR); register_cvar("gxm_version", VERSION, FCVAR_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","5"); // 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","15"); // 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","25"); // 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"), 8, "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_PrecacheSound, LevelUp);}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_close( g_Vault );}public client_authorized(id){ g_remember_selection[id] = 0; LoadLevel(id)}public client_disconnect(id){ SaveLevel(id)}public Message_StatusIcon(iMsgId, MSG_DEST, id){ if( !get_pcvar_num(p_Enabled) ) return PLUGIN_HANDLED; static szIcon[5] get_msg_arg_string(2, szIcon, 4) 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(ent, id){ if (!is_user_connected(id) || !is_user_alive(id) || !pev_valid( ent ) ) return FMRES_IGNORED; static szEntModel[32]; pev( ent , pev_model , szEntModel , 31 ); for (new level_equip_id = PlayerLevel[id] + 1; level_equip_id < MAXLEVEL; level_equip_id++) { if ( equali( szEntModel , 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) == 2 ) { 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(!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_BIOHAZARDpublic event_infect(g_victim, g_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((1 <= 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(0, 255, 50, 0.50, 0.33, 1, 2.0, 2.0) ShowSyncHudMsg(g_attacker, g_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(0, 255, 50, 0.50, 0.33, 1, 2.0, 2.0) ShowSyncHudMsg(g_attacker, g_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(0, 255, 50, 0.45, 0.33, 1, 2.0, 2.0) ShowSyncHudMsg(g_attacker, g_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(0, 255, 50, 0.45, 0.33, 1, 2.0, 2.0) ShowSyncHudMsg(g_attacker, g_msgHudSync1, "%L", LANG_SERVER, "ULTRA_XP", counted_ultra) } } } check_level(g_attacker) }}#endif #if defined ZOMBIE_PLAGUEpublic zp_user_infected_post(g_victim, g_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((1 <= 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(0, 255, 50, 0.50, 0.33, 1, 2.0, 2.0) ShowSyncHudMsg(g_attacker, g_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(0, 255, 50, 0.50, 0.33, 1, 2.0, 2.0) ShowSyncHudMsg(g_attacker, g_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(0, 255, 50, 0.45, 0.33, 1, 2.0, 2.0) ShowSyncHudMsg(g_attacker, g_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(0, 255, 50, 0.45, 0.33, 1, 2.0, 2.0) ShowSyncHudMsg(g_attacker, g_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((1 <= 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(0, 255, 50, 0.50, 0.33, 1, 2.0, 2.0) ShowSyncHudMsg(g_attacker, g_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(0, 255, 50, 0.50, 0.33, 1, 2.0, 2.0) ShowSyncHudMsg(g_attacker, g_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(0, 255, 50, 0.45, 0.33, 1, 2.0, 2.0) ShowSyncHudMsg(g_attacker, g_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(0, 255, 50, 0.45, 0.33, 1, 2.0, 2.0) ShowSyncHudMsg(g_attacker, g_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 != 0 && get_pcvar_num(p_Enabled)) { static sName[32]; get_user_name(target, sName, 31) set_hudmessage(255, 255, 255, 0.6, -1.0, 0, 0.0, 6.0, 0.0, 0.0, 2) ShowSyncHudMsg(id, g_msgHudSync1, "%L", LANG_SERVER, "LEVEL_TEXT", sName, PlayerLevel[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(255, 0, 0, 0.02, 0.33, 0, 0.0, 0.3, 0.0, 0.0) ShowSyncHudMsg(id, g_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(szTitle, 63, "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(id, szMotd, szTitle) return PLUGIN_HANDLED;}public check_level(id){ if(PlayerLevel[id] < MAXLEVEL-1 && 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(id, p_origin, 0); set_sprite(p_origin, levelspr, 30) set_sprite(p_origin, levelspr2, 30) } emit_sound(id, CHAN_ITEM, LevelUp, 1.0, ATTN_NORM, 0, PITCH_NORM); static name[32] ; get_user_name(id, name, charsmax(name)); client_printcolor(0, "%L", LANG_SERVER, "LEVEL_UP", name, PlayerLevel[id]); } }}// Main Menu Infopublic 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 - 1 - len, "%L", LANG_SERVER, "TITLE_MENU_INFO") len += formatex(menu[len], sizeof menu - 1 - len, "\r1. \w%L", id, "INFO") if ( get_pcvar_num(show_rank) ) { xKeys3 |= (MENU_KEY_2) len += formatex(menu[len], sizeof menu - 1 - len, "^n\r2. \wTop 20^n") } else { len += formatex(menu[len], sizeof menu - 1 - 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 - 1 - len, "\r3. \w%L^n", id, "ITEM_LIST") if ( is_user_alive(id) ) { xKeys3 |= (MENU_KEY_4) len += formatex(menu[len], sizeof menu - 1 - len, "\r4. \w%L^n", id, "UNLOCKS_SHOP_TEXT") } } len += formatex(menu[len], sizeof menu - 1 - len, "^n^n\r0.\w %L", id, "EXIT_MENU") show_menu(id, xKeys3, menu, -1, "Main Menu")}public main_menu_info(id, key){ 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_int( id ); callfunc_end(); } } case 3: { if(callfunc_begin("item_upgrades","gunxpmod_shop.amxx") == 1) { callfunc_push_int( id ); callfunc_end(); } } case 9: { return PLUGIN_HANDLED; } } return PLUGIN_HANDLED;}// Main Menu Level Stylepublic show_main_menu_level(id){ if ( !is_user_alive(id) ) return; set_task(9.0, "destroymenu", id); static menu[510], len; len = 0; new xKeys2 = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2; // Title len += formatex(menu[len], sizeof menu - 1 - len, "%L", LANG_SERVER, "TITLE_MENU", PlayerLevel[id], PlayerXp[id], LEVELS[PlayerLevel[id]]) len += formatex(menu[len], sizeof menu - 1 - len, "%L", LANG_SERVER, "CHOOSE_TEXT") len += formatex(menu[len], sizeof menu - 1 - len, "%L", LANG_SERVER, "LAST_GUNS") len += formatex(menu[len], sizeof menu - 1 - len, "^n^n\r0.\w %L", id, "EXIT_MENU") show_menu(id, xKeys2, menu, -1, "Main Level Menu")}public main_menu_level(id, key){ if ( !is_user_alive(id) ) return PLUGIN_HANDLED; switch (key) { case 0: // back { first_check_menu(id) } case 1: // next { give_weapon_menu(id, g_remember_selection[id]); } case 9: // exit { return PLUGIN_HANDLED; } } return PLUGIN_HANDLED;}// Menu Level Stylepublic 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+7, sizeof (LEVELS)); new iPosNum = 0; // Title len += formatex(menu[len], sizeof menu - 1 - 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 - 1 - len, "%L", LANG_SERVER, "INACTIVE_MENU", ++iPosNum, RANK[class], class) } else { xKeys |= (1<<iPosNum++); len += formatex(menu[len], sizeof menu - 1 - len, "%L", LANG_SERVER, "ACTIVE_MENU", class-MENU_STARTID+1, RANK[class], class) } } if ( MENU_STARTID != 0 && MENU_STARTID != 21 ) { xKeys |= (1<<7) xKeys |= (1<<8) len += formatex(menu[len], sizeof menu - 1 - 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 == 0 ) { xKeys |= (1<<8) len += formatex(menu[len], sizeof menu - 1 - 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 - 1 - len, "^n\r8.\w %L^n^n\r0.\w %L", id, "BACK_MENU", id, "EXIT_MENU") } show_menu(id, xKeys, menu, -1, "Level by Menu")}public destroymenu(id){ client_cmd(id, "slot10") return PLUGIN_HANDLED}public menu_level(id, key){ if ( !is_user_alive(id) ) return PLUGIN_HANDLED; if (key >= 7 || key-1 >= PlayerLevel[id]) { switch (key) { case 7: // back { if (MENU_STARTID-7 >= 0) MENU_STARTID -= 7 } case 8: // next { if (MENU_STARTID+7 < 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(id, selected); return PLUGIN_HANDLED;}public give_weapon_menu(id, selection){ #if defined ZOMBIE_SWARM if(get_user_team(id) == 2 && 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(id, AMMOCONST[selection])) { give_item(id, WEAPONCONST[selection]); } cs_set_user_bpammo(id, AMMOCONST[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(id, AMMOCONST[selection])) { give_item(id, WEAPONCONST[selection]); } cs_set_user_bpammo(id, AMMOCONST[selection], AMMO2CONST[selection]) } #endif}public give_weapon(id){ #if defined ZOMBIE_SWARM if(get_user_team(id) == 2 && 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(id, AMMOCONST[PlayerLevel[id]])) { give_item(id, WEAPONCONST[PlayerLevel[id]]); } cs_set_user_bpammo(id, AMMOCONST[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(id, AMMOCONST[PlayerLevel[id]])) { give_item(id, WEAPONCONST[PlayerLevel[id]]); } cs_set_user_bpammo(id, AMMOCONST[PlayerLevel[id]], AMMO2CONST[PlayerLevel[id]]) } #endif}public set_sprite(p_origin[3], sprite, radius){ // Explosion message_begin(MSG_BROADCAST, SVC_TEMPENTITY, p_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 20public 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 i = 0; i < num; i++) { index = players[i]; Sort[count][0] = index; Sort[count][1] = PlayerXp[index]; count++; } SortCustom2D(Sort,count,"CompareXp"); new motd[1501],iLen; iLen = formatex(motd, sizeof 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 y = clamp(count,0,20); new name[32],kindex; for(new x = 0; x < y; x++) { 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", x + 1, name, Sort[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 Levelpublic cmd_give_level(id, level, cid){ if(!cmd_access(id, level, cid, 3) || !get_pcvar_num(p_Enabled)) { return PLUGIN_HANDLED; } new Arg1[64], Target read_argv(1, Arg1, 63) Target = cmd_target(id, Arg1, 0) new iLevel[32], Value read_argv(2, iLevel, 31) 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(id, AdminName, 31) new TargetName[32] get_user_name(Target, TargetName, 31) 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", AdminName, Value) return PLUGIN_HANDLED;}// Save Player InfoSaveLevel(id){ if ( get_pcvar_num(savexp) ) { new authid[32] get_user_authid(id, authid, 31) new szData[256]; new szKey[64]; formatex( szKey , 63 , "%s-ID" , authid); formatex( szData , 255 , "%i#%i#" , PlayerLevel[id], PlayerXp[id] ); nvault_set( g_Vault , szKey , szData ); } else { new authip[32] get_user_ip(id,authip,31,1) new szData[256]; new szKey[64]; formatex( szKey , 63 , "%s-IP" , authip ); formatex( szData , 255 , "%i#%i#" , PlayerLevel[id], PlayerXp[id] ); nvault_set( g_Vault , szKey , szData ); }}// Load Player InfoLoadLevel(id){ if ( get_pcvar_num(savexp) ) { new authid[32] get_user_authid(id, authid, 31) new szData[256]; new szKey[40]; formatex( szKey , 39 , "%s-ID" , authid ); formatex(szData , 255, "%i#%i#", PlayerLevel[id], PlayerXp[id]) nvault_get(g_Vault, szKey, szData, 255) replace_all(szData , 255, "#", " ") new xp[32], level[32] parse(szData, level, 31, xp, 31) PlayerLevel[id] = str_to_num(level) PlayerXp[id] = str_to_num(xp) } else { new authip[32] get_user_ip(id, authip, 31, 1) new szData[256]; new szKey[40]; formatex( szKey , 39 , "%s-IP" , authip ); formatex(szData , 255, "%i#%i#", PlayerLevel[id], PlayerXp[id]) nvault_get(g_Vault, szKey, szData, 255) replace_all(szData , 255, "#", " ") new xp[32], level[32] parse(szData, level, 31, xp, 31) PlayerLevel[id] = str_to_num(level) PlayerXp[id] = str_to_num(xp) }}// ============================================================//// [~ Natives ~] //// ============================================================//// Native: get_user_xppublic native_get_user_xp(id){ return PlayerXp[id];}// Native: set_user_xppublic native_set_user_xp(id, amount){ PlayerXp[id] = amount;}// Native: get_user_levelpublic native_get_user_level(id){ return PlayerLevel[id];}// Native: set_user_xppublic native_set_user_level(id, amount){ PlayerLevel[id] = amount;}// Native: Gets user level by Xppublic native_get_user_max_level(id){ return LEVELS[PlayerLevel[id]];}// ============================================================//// [~ Stocks ~] //// ============================================================//stock client_printcolor(const id, const input[], any:...){ new count = 1, players[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 (id) players[0] = id; else get_players(players,count,"ch"); for (new i = 0; i < count; i++) if (is_user_connected(players[i])) { message_begin(MSG_ONE_UNRELIABLE, SayTxT, _, players[i]); write_byte(players[i]); write_string(msg); message_end(); }} public StripPlayerWeapons(id){ strip_user_weapons(id) set_pdata_int(id, OFFSET_PRIMARYWEAPON, 0) give_item(id, "weapon_knife");}