Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <ultra_vip>
- #include <hamsandwich>
- #include <fakemeta>
- #define is_msg_valid(%0) (%0[0] && %0[0] != ';' && %0[0] != '/' && %0[0] != '#')
- #define DEFAULT_SKIN 228
- enum _:data_pistols {
- PISTOL_NAME[128],
- PISTOL_INDEX[128],
- PISTOL_VIEW[256],
- PISTOL_WEAPON[256]
- };
- enum _:data_knives {
- KNIFE_NAME[128],
- KNIFE_VIEW[256],
- KNIFE_WEAPON[256]
- };
- enum _:data_skins {
- SKIN_ACCESS[128],
- SKIN_NAME[128],
- SKIN_MODEL[128]
- };
- enum _:data_users {
- id_pistol, id_knife, id_skin
- };
- new Array:arr_pistols, pistols[data_pistols];
- new Array:arr_knives, knives[data_knives];
- new Array:arr_skins, skins[data_skins];
- new bool:m4a1[33], bool:ak47[33], bool:awp[33];
- new size_pistol, size_knife, size_skin;
- new users[33][data_users];
- new score_te, score_ct, score_all, maxplayers;
- native fm_set_user_model(id, const modelname[]);
- public plugin_precache() {
- arr_pistols = ArrayCreate(data_pistols);
- arr_knives = ArrayCreate(data_knives);
- arr_skins = ArrayCreate(data_skins);
- new message[512], file = fopen("/addons/amxmodx/configs/lsvip/pistols.ini", "rt");
- while(!feof(file)) {
- fgets(file, message, charsmax(message));
- if(is_msg_valid(message) && parse(message, pistols[PISTOL_NAME], 127, pistols[PISTOL_INDEX], 127, pistols[PISTOL_VIEW], 255, pistols[PISTOL_WEAPON], 255)) {
- if(!file_exists(pistols[PISTOL_VIEW]) || !file_exists(pistols[PISTOL_WEAPON])) {
- continue;
- }
- engfunc(EngFunc_PrecacheModel, pistols[PISTOL_VIEW]);
- engfunc(EngFunc_PrecacheModel, pistols[PISTOL_WEAPON]);
- ArrayPushArray(arr_pistols, pistols);
- }
- }
- fclose(file);
- file = fopen("/addons/amxmodx/configs/lsvip/knives.ini", "rt");
- while(!feof(file)) {
- fgets(file, message, charsmax(message));
- if(is_msg_valid(message) && parse(message, knives[KNIFE_NAME], 127, knives[KNIFE_VIEW], 255, knives[KNIFE_WEAPON], 255)) {
- if(!file_exists(knives[KNIFE_VIEW]) || !file_exists(knives[KNIFE_WEAPON])) {
- continue;
- }
- engfunc(EngFunc_PrecacheModel, knives[KNIFE_VIEW]);
- engfunc(EngFunc_PrecacheModel, knives[KNIFE_WEAPON]);
- ArrayPushArray(arr_knives, knives);
- }
- }
- fclose(file);
- file = fopen("/addons/amxmodx/configs/ultra_vip/skins.ini", "rt");
- new remessage[512];
- while(!feof(file)) {
- fgets(file, message, charsmax(message));
- if(is_msg_valid(message) && parse(message, skins[SKIN_ACCESS], 127, skins[SKIN_NAME], 127, skins[SKIN_MODEL], 127)) {
- format(remessage, charsmax(remessage), "models/player/%s/%s.mdl", skins[SKIN_MODEL], skins[SKIN_MODEL]);
- if(!file_exists(remessage)) {
- continue;
- }
- engfunc(EngFunc_PrecacheModel, remessage);
- ArrayPushArray(arr_skins, skins);
- }
- }
- size_pistol = ArraySize(arr_pistols);
- size_knife = ArraySize(arr_knives);
- size_skin = ArraySize(arr_skins);
- return fclose(file);
- }
- public plugin_init() {
- register_plugin("Ultra VIP", "69", "8==D ~~~");
- register_dictionary("ls.txt");
- register_clcmd("vipmenu", "cmd_vipmenu");
- register_clcmd("say /vipmenu", "cmd_vipmenu");
- register_clcmd("say_team /vipmenu", "cmd_vipmenu");
- register_menucmd(register_menuid("Show_VipMenu"), (1<<0|1<<1|1<<2|1<<3|1<<4|1<<9), "Handle_VipMenu");
- maxplayers = get_maxplayers();
- register_event("HLTV", "event_round_hltv", "a", "1=0", "2=0");
- register_event("CurWeapon", "event_curweapon", "be","1=1");
- register_event("TeamScore", "event_score_terror", "a", "1=TERRORIST");
- register_event("TeamScore", "event_score_ct", "a", "1=CT");
- }
- public event_round_hltv() {
- score_all = score_ct + score_te;
- if(score_all >= 3) {
- for(new id = 1; id <= maxplayers; id++) {
- m4a1[id] = true;
- ak47[id] = true;
- awp[id] = true;
- }
- }
- }
- public event_curweapon(id) {
- new weapon = read_data(2);
- if(weapon == CSW_KNIFE) {
- ArrayGetArray(arr_knives, users[id][id_knife], knives);
- set_pev(id, pev_viewmodel2, knives[KNIFE_VIEW]);
- set_pev(id, pev_weaponmodel2, knives[KNIFE_WEAPON]);
- return PLUGIN_CONTINUE;
- }
- ArrayGetArray(arr_pistols, users[id][id_pistol], pistols);
- new con = cs_weapon_constants(pistols[PISTOL_INDEX]);
- if(weapon == con) {
- set_pev(id, pev_viewmodel2, pistols[PISTOL_VIEW]);
- set_pev(id, pev_weaponmodel2, pistols[PISTOL_WEAPON]);
- }
- return PLUGIN_CONTINUE;
- }
- public event_score_terror() {
- score_te = read_data(2);
- }
- public event_score_ct() {
- score_ct = read_data(2);
- }
- public client_putinserver(id) {
- users[id][id_pistol] = 0;
- users[id][id_knife] = 0;
- users[id][id_skin] = DEFAULT_SKIN;
- m4a1[id] = false;
- ak47[id] = false;
- awp[id] = false;
- for(new i; i < size_skin; i++) {
- ArrayGetArray(arr_skins, i, skins);
- new pos = containi(skins[SKIN_ACCESS], "STEAM");
- if(pos != -1) {
- new authid[35];
- get_user_authid(id, authid, charsmax(authid));
- if(equali(skins[SKIN_ACCESS], authid)) {
- users[id][id_skin] = i;
- break;
- }
- }
- else {
- new ipa[22];
- get_user_ip(id, ipa, charsmax(ipa));
- if(equali(skins[SKIN_ACCESS], ipa)) {
- users[id][id_skin] = i;
- break;
- }
- }
- }
- }
- public cmd_vipmenu(id) return Show_VipMenu(id);
- Show_VipMenu(id) {
- new menu[512], keys = (1<<9), len = format(menu, charsmax(menu), "%L", id, "UV_MENU_VIP_TITLE");
- if(m4a1[id]) {
- len += format(menu[len], charsmax(menu) - len, "%L \w%L^n", id, "UV_MENU_PAGE", 1, id, "UV_MENU_VIP_M4A1");
- keys |= (1<<0);
- }
- else {
- len += format(menu[len], charsmax(menu) - len, "%L \d%L^n", id, "UV_MENU_PAGE", 1, id, "UV_MENU_VIP_M4A1");
- }
- if(ak47[id]) {
- len += format(menu[len], charsmax(menu) - len, "%L \w%L^n", id, "UV_MENU_PAGE", 2, id, "UV_MENU_VIP_AK47");
- keys |= (1<<1);
- }
- else {
- len += format(menu[len], charsmax(menu) - len, "%L \d%L^n", id, "UV_MENU_PAGE", 2, id, "UV_MENU_VIP_AK47");
- }
- if(awp[id]) {
- len += format(menu[len], charsmax(menu) - len, "%L \w%L^n^n", id, "UV_MENU_PAGE", 3, id, "UV_MENU_VIP_AWP");
- keys |= (1<<2);
- }
- else {
- len += format(menu[len], charsmax(menu) - len, "%L \d%L^n^n", id, "UV_MENU_PAGE", 3, id, "UV_MENU_VIP_AWP");
- }
- if(size_pistol) {
- ArrayGetArray(arr_pistols, users[id][id_pistol], pistols);
- len += format(menu[len], charsmax(menu) - len, "%L \w%L^n", id, "UV_MENU_PAGE", 4, id, "UV_MENU_VIP_PISTOL", pistols[PISTOL_NAME]);
- keys |= (1<<3);
- }
- if(size_knife) {
- ArrayGetArray(arr_knives, users[id][id_knife], knives);
- len += format(menu[len], charsmax(menu) - len, "%L \w%L^n^n", id, "UV_MENU_PAGE", 5, id, "UV_MENU_VIP_KNIFE", knives[KNIFE_NAME]);
- keys |= (1<<4);
- }
- format(menu[len], charsmax(menu) - len, "%L \w%L", id, "UV_MENU_PAGE", 0, id, "UV_MENU_EXIT");
- return show_menu(id, keys, menu, -1, "Show_VipMenu");
- }
- public Handle_VipMenu(id, key) {
- switch(key) {
- case 0: if(m4a1[id]) {
- fm_strip_user_weapons(id);
- fm_give_item(id, "weapon_m4a1");
- fm_set_user_bpammo(id, CSW_M4A1, 90);
- m4a1[id] = false;
- }
- case 1: if(ak47[id]) {
- fm_strip_user_weapons(id);
- fm_give_item(id, "weapon_ak47");
- fm_set_user_bpammo(id, CSW_AK47, 90);
- ak47[id] = false;
- }
- case 2: if(awp[id]) {
- fm_strip_user_weapons(id);
- fm_give_item(id, "weapon_awp");
- fm_set_user_bpammo(id, CSW_AWP, 30);
- awp[id] = false;
- }
- case 3: if(size_pistol) {
- users[id][id_pistol]++;
- if(users[id][id_pistol] >= size_pistol) {
- users[id][id_pistol] = 0;
- }
- }
- case 4: if(size_knife) {
- users[id][id_knife]++;
- if(users[id][id_knife] >= size_knife) {
- users[id][id_knife] = 0;
- }
- }
- default: return PLUGIN_HANDLED;
- }
- if(key <= 2) {
- ArrayGetArray(arr_pistols, users[id][id_pistol], pistols);
- new con = cs_weapon_constants(pistols[PISTOL_INDEX]);
- fm_give_item(id, pistols[PISTOL_INDEX]);
- fm_set_user_bpammo(id, con, 60);
- }
- return Show_VipMenu(id);
- }
- stock cs_weapon_constants(const weapon[]) {
- new index = -1;
- if(equali(weapon, "weapon_p228")) {
- index = 1;
- }
- else if(equali(weapon, "weapon_scout")) {
- index = 3;
- }
- else if(equali(weapon, "weapon_xm1014")) {
- index = 5;
- }
- else if(equali(weapon, "weapon_mac10")) {
- index = 7;
- }
- else if(equali(weapon, "weapon_aug")) {
- index = 8;
- }
- else if(equali(weapon, "weapon_elite")) {
- index = 10;
- }
- else if(equali(weapon, "weapon_fiveseven")) {
- index = 11;
- }
- else if(equali(weapon, "weapon_ump15")) {
- index = 12;
- }
- else if(equali(weapon, "weapon_sg550")) {
- index = 13
- }
- else if(equali(weapon, "weapon_galil")) {
- index = 14;
- }
- else if(equali(weapon, "weapon_famas")) {
- index = 15;
- }
- else if(equali(weapon, "weapon_usp")) {
- index = 16;
- }
- else if(equali(weapon, "weapon_glock18")) {
- index = 17;
- }
- else if(equali(weapon, "weapon_awp")) {
- index = 18;
- }
- else if(equali(weapon, "weapon_mp5navy")) {
- index = 19;
- }
- else if(equali(weapon, "weapon_m249")) {
- index = 20;
- }
- else if(equali(weapon, "weapon_m3")) {
- index = 21;
- }
- else if(equali(weapon, "weapon_m4a1")) {
- index = 22;
- }
- else if(equali(weapon, "weapon_tmp")) {
- index = 23;
- }
- else if(equali(weapon, "weapon_g35g1")) {
- index = 24;
- }
- else if(equali(weapon, "weapon_deagle")) {
- index = 26;
- }
- else if(equali(weapon, "weapon_sg552")) {
- index = 27;
- }
- else if(equali(weapon, "weapon_ak47")) {
- index = 28;
- }
- else if(equali(weapon, "weapon_p90")) {
- index = 30;
- }
- return index;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement