Advertisement
Guest User

Untitled

a guest
Nov 15th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 9.39 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <ultra_vip>
  3. #include <hamsandwich>
  4. #include <fakemeta>
  5.  
  6. #define is_msg_valid(%0) (%0[0] && %0[0] != ';' && %0[0] != '/' && %0[0] != '#')
  7.  
  8. #define DEFAULT_SKIN    228
  9.  
  10. enum _:data_pistols {
  11.     PISTOL_NAME[128],
  12.     PISTOL_INDEX[128],
  13.     PISTOL_VIEW[256],
  14.     PISTOL_WEAPON[256]
  15. };
  16.  
  17. enum _:data_knives {
  18.     KNIFE_NAME[128],
  19.     KNIFE_VIEW[256],
  20.     KNIFE_WEAPON[256]
  21. };
  22.  
  23. enum _:data_skins {
  24.     SKIN_ACCESS[128],
  25.     SKIN_NAME[128],
  26.     SKIN_MODEL[128]
  27. };
  28.  
  29. enum _:data_users {
  30.     id_pistol, id_knife, id_skin
  31. };
  32.  
  33. new Array:arr_pistols, pistols[data_pistols];
  34. new Array:arr_knives, knives[data_knives];
  35. new Array:arr_skins, skins[data_skins];
  36.  
  37. new bool:m4a1[33], bool:ak47[33], bool:awp[33];
  38. new size_pistol, size_knife, size_skin;
  39. new users[33][data_users];
  40. new score_te, score_ct, score_all, maxplayers;
  41.  
  42. native fm_set_user_model(id, const modelname[]);
  43.  
  44. public plugin_precache() {
  45.     arr_pistols = ArrayCreate(data_pistols);
  46.     arr_knives = ArrayCreate(data_knives);
  47.     arr_skins = ArrayCreate(data_skins);
  48.    
  49.     new message[512], file = fopen("/addons/amxmodx/configs/lsvip/pistols.ini", "rt");
  50.    
  51.     while(!feof(file)) {
  52.         fgets(file, message, charsmax(message));
  53.        
  54.         if(is_msg_valid(message) && parse(message, pistols[PISTOL_NAME], 127, pistols[PISTOL_INDEX], 127, pistols[PISTOL_VIEW], 255, pistols[PISTOL_WEAPON], 255)) {
  55.             if(!file_exists(pistols[PISTOL_VIEW]) || !file_exists(pistols[PISTOL_WEAPON])) {
  56.                 continue;
  57.             }
  58.            
  59.             engfunc(EngFunc_PrecacheModel, pistols[PISTOL_VIEW]);
  60.             engfunc(EngFunc_PrecacheModel, pistols[PISTOL_WEAPON]);
  61.            
  62.             ArrayPushArray(arr_pistols, pistols);
  63.         }
  64.     }
  65.    
  66.     fclose(file);
  67.    
  68.     file = fopen("/addons/amxmodx/configs/lsvip/knives.ini", "rt");
  69.    
  70.     while(!feof(file)) {
  71.         fgets(file, message, charsmax(message));
  72.        
  73.         if(is_msg_valid(message) && parse(message, knives[KNIFE_NAME], 127, knives[KNIFE_VIEW], 255, knives[KNIFE_WEAPON], 255)) {
  74.             if(!file_exists(knives[KNIFE_VIEW]) || !file_exists(knives[KNIFE_WEAPON])) {
  75.                 continue;
  76.             }
  77.            
  78.             engfunc(EngFunc_PrecacheModel, knives[KNIFE_VIEW]);
  79.             engfunc(EngFunc_PrecacheModel, knives[KNIFE_WEAPON]);
  80.            
  81.             ArrayPushArray(arr_knives, knives);
  82.         }
  83.     }
  84.    
  85.     fclose(file);
  86.    
  87.     file = fopen("/addons/amxmodx/configs/ultra_vip/skins.ini", "rt");
  88.     new remessage[512];
  89.    
  90.     while(!feof(file)) {
  91.         fgets(file, message, charsmax(message));
  92.        
  93.         if(is_msg_valid(message) && parse(message, skins[SKIN_ACCESS], 127, skins[SKIN_NAME], 127, skins[SKIN_MODEL], 127)) {
  94.             format(remessage, charsmax(remessage), "models/player/%s/%s.mdl", skins[SKIN_MODEL], skins[SKIN_MODEL]);
  95.             if(!file_exists(remessage)) {
  96.                 continue;
  97.             }
  98.            
  99.             engfunc(EngFunc_PrecacheModel, remessage);
  100.            
  101.             ArrayPushArray(arr_skins, skins);
  102.         }
  103.     }
  104.    
  105.     size_pistol = ArraySize(arr_pistols);
  106.     size_knife = ArraySize(arr_knives);
  107.     size_skin = ArraySize(arr_skins);
  108.    
  109.     return fclose(file);
  110. }
  111.  
  112. public plugin_init() {
  113.     register_plugin("Ultra VIP", "69", "8==D ~~~");
  114.     register_dictionary("ls.txt");
  115.    
  116.     register_clcmd("vipmenu", "cmd_vipmenu");
  117.     register_clcmd("say /vipmenu", "cmd_vipmenu");
  118.     register_clcmd("say_team /vipmenu", "cmd_vipmenu");
  119.    
  120.     register_menucmd(register_menuid("Show_VipMenu"), (1<<0|1<<1|1<<2|1<<3|1<<4|1<<9), "Handle_VipMenu");
  121.     maxplayers = get_maxplayers();
  122.    
  123.     register_event("HLTV", "event_round_hltv", "a", "1=0", "2=0");
  124.     register_event("CurWeapon", "event_curweapon", "be","1=1");
  125.     register_event("TeamScore", "event_score_terror", "a", "1=TERRORIST");
  126.     register_event("TeamScore", "event_score_ct", "a", "1=CT");
  127. }
  128.  
  129. public event_round_hltv() {
  130.     score_all = score_ct + score_te;
  131.    
  132.     if(score_all >= 3) {
  133.         for(new id = 1; id <= maxplayers; id++) {
  134.             m4a1[id] = true;
  135.             ak47[id] = true;
  136.             awp[id] = true;
  137.         }
  138.     }
  139. }
  140.  
  141. public event_curweapon(id) {
  142.     new weapon = read_data(2);
  143.    
  144.     if(weapon == CSW_KNIFE) {
  145.         ArrayGetArray(arr_knives, users[id][id_knife], knives);
  146.        
  147.         set_pev(id, pev_viewmodel2, knives[KNIFE_VIEW]);
  148.         set_pev(id, pev_weaponmodel2, knives[KNIFE_WEAPON]);
  149.        
  150.         return PLUGIN_CONTINUE;
  151.     }
  152.    
  153.     ArrayGetArray(arr_pistols, users[id][id_pistol], pistols);
  154.     new con = cs_weapon_constants(pistols[PISTOL_INDEX]);
  155.    
  156.     if(weapon == con) {
  157.         set_pev(id, pev_viewmodel2, pistols[PISTOL_VIEW]);
  158.         set_pev(id, pev_weaponmodel2, pistols[PISTOL_WEAPON]);
  159.     }
  160.    
  161.     return PLUGIN_CONTINUE;
  162. }
  163.  
  164. public event_score_terror() {
  165.     score_te = read_data(2);
  166. }
  167.  
  168. public event_score_ct() {
  169.     score_ct = read_data(2);
  170. }
  171.  
  172. public client_putinserver(id) {
  173.     users[id][id_pistol] = 0;
  174.     users[id][id_knife] = 0;
  175.     users[id][id_skin] = DEFAULT_SKIN;
  176.    
  177.     m4a1[id] = false;
  178.     ak47[id] = false;
  179.     awp[id] = false;
  180.    
  181.     for(new i; i < size_skin; i++) {
  182.         ArrayGetArray(arr_skins, i, skins);
  183.        
  184.         new pos = containi(skins[SKIN_ACCESS], "STEAM");
  185.         if(pos != -1) {
  186.             new authid[35];
  187.             get_user_authid(id, authid, charsmax(authid));
  188.            
  189.             if(equali(skins[SKIN_ACCESS], authid)) {
  190.                 users[id][id_skin] = i;
  191.                 break;
  192.             }
  193.         }
  194.         else {
  195.             new ipa[22];
  196.             get_user_ip(id, ipa, charsmax(ipa));
  197.            
  198.             if(equali(skins[SKIN_ACCESS], ipa)) {
  199.                 users[id][id_skin] = i;
  200.                 break;
  201.             }
  202.         }
  203.     }
  204. }
  205.  
  206. public cmd_vipmenu(id) return Show_VipMenu(id);
  207.  
  208. Show_VipMenu(id) {
  209.     new menu[512], keys = (1<<9), len = format(menu, charsmax(menu), "%L", id, "UV_MENU_VIP_TITLE");
  210.    
  211.     if(m4a1[id]) {
  212.         len += format(menu[len], charsmax(menu) - len, "%L \w%L^n", id, "UV_MENU_PAGE", 1, id, "UV_MENU_VIP_M4A1");
  213.         keys |= (1<<0);
  214.     }
  215.     else {
  216.         len += format(menu[len], charsmax(menu) - len, "%L \d%L^n", id, "UV_MENU_PAGE", 1, id, "UV_MENU_VIP_M4A1");
  217.     }
  218.    
  219.     if(ak47[id]) {
  220.         len += format(menu[len], charsmax(menu) - len, "%L \w%L^n", id, "UV_MENU_PAGE", 2, id, "UV_MENU_VIP_AK47");
  221.         keys |= (1<<1);
  222.     }
  223.     else {
  224.         len += format(menu[len], charsmax(menu) - len, "%L \d%L^n", id, "UV_MENU_PAGE", 2, id, "UV_MENU_VIP_AK47");
  225.     }
  226.    
  227.     if(awp[id]) {
  228.         len += format(menu[len], charsmax(menu) - len, "%L \w%L^n^n", id, "UV_MENU_PAGE", 3, id, "UV_MENU_VIP_AWP");
  229.         keys |= (1<<2);
  230.     }
  231.     else {
  232.         len += format(menu[len], charsmax(menu) - len, "%L \d%L^n^n", id, "UV_MENU_PAGE", 3, id, "UV_MENU_VIP_AWP");
  233.     }
  234.    
  235.     if(size_pistol) {
  236.         ArrayGetArray(arr_pistols, users[id][id_pistol], pistols);
  237.        
  238.         len += format(menu[len], charsmax(menu) - len, "%L \w%L^n", id, "UV_MENU_PAGE", 4, id, "UV_MENU_VIP_PISTOL", pistols[PISTOL_NAME]);
  239.         keys |= (1<<3);
  240.     }
  241.    
  242.     if(size_knife) {
  243.         ArrayGetArray(arr_knives, users[id][id_knife], knives);
  244.        
  245.         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]);
  246.         keys |= (1<<4);
  247.     }
  248.    
  249.     format(menu[len], charsmax(menu) - len, "%L \w%L", id, "UV_MENU_PAGE", 0, id, "UV_MENU_EXIT");
  250.     return show_menu(id, keys, menu, -1, "Show_VipMenu");
  251. }
  252.  
  253. public Handle_VipMenu(id, key) {
  254.     switch(key) {
  255.         case 0: if(m4a1[id]) {
  256.             fm_strip_user_weapons(id);
  257.            
  258.             fm_give_item(id, "weapon_m4a1");
  259.             fm_set_user_bpammo(id, CSW_M4A1, 90);
  260.            
  261.             m4a1[id] = false;
  262.         }
  263.         case 1: if(ak47[id]) {
  264.             fm_strip_user_weapons(id);
  265.            
  266.             fm_give_item(id, "weapon_ak47");
  267.             fm_set_user_bpammo(id, CSW_AK47, 90);
  268.            
  269.             ak47[id] = false;
  270.         }
  271.         case 2: if(awp[id]) {
  272.             fm_strip_user_weapons(id);
  273.            
  274.             fm_give_item(id, "weapon_awp");
  275.             fm_set_user_bpammo(id, CSW_AWP, 30);
  276.            
  277.             awp[id] = false;
  278.         }
  279.         case 3: if(size_pistol) {
  280.             users[id][id_pistol]++;
  281.            
  282.             if(users[id][id_pistol] >= size_pistol) {
  283.                 users[id][id_pistol] = 0;
  284.             }
  285.         }
  286.         case 4: if(size_knife) {
  287.             users[id][id_knife]++;
  288.            
  289.             if(users[id][id_knife] >= size_knife) {
  290.                 users[id][id_knife] = 0;
  291.             }
  292.         }
  293.         default: return PLUGIN_HANDLED;
  294.     }
  295.    
  296.     if(key <= 2) {
  297.         ArrayGetArray(arr_pistols, users[id][id_pistol], pistols);
  298.        
  299.         new con = cs_weapon_constants(pistols[PISTOL_INDEX]);
  300.         fm_give_item(id, pistols[PISTOL_INDEX]);
  301.         fm_set_user_bpammo(id, con, 60);
  302.     }
  303.    
  304.     return Show_VipMenu(id);
  305. }
  306.  
  307. stock cs_weapon_constants(const weapon[]) {
  308.     new index = -1;
  309.    
  310.     if(equali(weapon, "weapon_p228")) {
  311.         index = 1;
  312.     }
  313.     else if(equali(weapon, "weapon_scout")) {
  314.         index = 3;
  315.     }
  316.     else if(equali(weapon, "weapon_xm1014")) {
  317.         index = 5;
  318.     }
  319.     else if(equali(weapon, "weapon_mac10")) {
  320.         index = 7;
  321.     }
  322.     else if(equali(weapon, "weapon_aug")) {
  323.         index = 8;
  324.     }
  325.     else if(equali(weapon, "weapon_elite")) {
  326.         index = 10;
  327.     }
  328.     else if(equali(weapon, "weapon_fiveseven")) {
  329.         index = 11;
  330.     }
  331.     else if(equali(weapon, "weapon_ump15")) {
  332.         index = 12;
  333.     }
  334.     else if(equali(weapon, "weapon_sg550")) {
  335.         index = 13
  336.     }
  337.     else if(equali(weapon, "weapon_galil")) {
  338.         index = 14;
  339.     }
  340.     else if(equali(weapon, "weapon_famas")) {
  341.         index = 15;
  342.     }
  343.     else if(equali(weapon, "weapon_usp")) {
  344.         index = 16;
  345.     }
  346.     else if(equali(weapon, "weapon_glock18")) {
  347.         index = 17;
  348.     }
  349.     else if(equali(weapon, "weapon_awp")) {
  350.         index = 18;
  351.     }
  352.     else if(equali(weapon, "weapon_mp5navy")) {
  353.         index = 19;
  354.     }
  355.     else if(equali(weapon, "weapon_m249")) {
  356.         index = 20;
  357.     }
  358.     else if(equali(weapon, "weapon_m3")) {
  359.         index = 21;
  360.     }
  361.     else if(equali(weapon, "weapon_m4a1")) {
  362.         index = 22;
  363.     }
  364.     else if(equali(weapon, "weapon_tmp")) {
  365.         index = 23;
  366.     }
  367.     else if(equali(weapon, "weapon_g35g1")) {
  368.         index = 24;
  369.     }
  370.     else if(equali(weapon, "weapon_deagle")) {
  371.         index = 26;
  372.     }
  373.     else if(equali(weapon, "weapon_sg552")) {
  374.         index = 27;
  375.     }
  376.     else if(equali(weapon, "weapon_ak47")) {
  377.         index = 28;
  378.     }
  379.     else if(equali(weapon, "weapon_p90")) {
  380.         index = 30;
  381.     }
  382.    
  383.     return index;
  384. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement