Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2020
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.43 KB | None | 0 0
  1. new g_iPickedSkin[33][33][2], g_iLastTouch[33];
  2.  
  3. public plugin_init() {
  4.  
  5. register_forward(FM_UpdateClientData, "fmClientData", 1);
  6. register_forward(FM_SetModel, "fw_setmodel");
  7. RegisterHam(Ham_Touch, "weaponbox", "fw_Touch");
  8. register_event("WeapPickup", "WeapPickup", "be", "1=28", "1=26", "1=22", "1=19", "1=18", "1=17", "1=16", "1=15");
  9.  
  10.  
  11. }
  12.  
  13. public fw_setmodel(ent, model[]) {
  14. new owner = entity_get_edict(ent, EV_ENT_owner);
  15.  
  16. if(!is_user_connected(owner)) return FMRES_IGNORED;
  17. if(equali(model, "models/w_weaponbox.mdl")) return FMRES_IGNORED;
  18.  
  19. new skin = -1, weapon = 0;
  20.  
  21. if(equali(model, "models/w_knife.mdl")) {
  22. weapon = CSW_KNIFE;
  23. }
  24. else if(equali(model, "models/w_ak47.mdl")) {
  25. weapon = CSW_AK47;
  26. }
  27. else if(equali(model, "models/w_m4a1.mdl")) {
  28. weapon = CSW_M4A1;
  29. }
  30. else if(equali(model, "models/w_awp.mdl")) {
  31. weapon = CSW_AWP;
  32. }
  33. else if(equali(model, "models/w_deagle.mdl")) {
  34. weapon = CSW_DEAGLE;
  35. }
  36. skin = pSkins[owner][weapon];
  37.  
  38. if(skin == -1) return FMRES_IGNORED;
  39. new name[33];
  40. get_user_name(owner, name, 32)
  41. if(g_iPickedSkin[owner][weapon][1] != -1) {
  42.  
  43. entity_set_int(ent, EV_INT_iuser1, 768);
  44. entity_set_int(ent, EV_INT_iuser2, g_iPickedSkin[owner][weapon][0]);
  45. entity_set_int(ent, EV_INT_iuser3, g_iPickedSkin[owner][weapon][1]);
  46. entity_set_int(ent, EV_INT_iuser4, weapon);
  47.  
  48. g_iPickedSkin[owner][weapon][0] = 0;
  49. g_iPickedSkin[owner][weapon][1] = -1;
  50. return FMRES_IGNORED;
  51. }
  52.  
  53. g_iPickedSkin[owner][weapon][0] = 0;
  54. g_iPickedSkin[owner][weapon][1] = -1;
  55. entity_set_int(ent, EV_INT_iuser1, 768);
  56. entity_set_int(ent, EV_INT_iuser2, owner);
  57. entity_set_int(ent, EV_INT_iuser3, skin);
  58. entity_set_int(ent, EV_INT_iuser4, weapon);
  59.  
  60. return FMRES_IGNORED;
  61. }
  62.  
  63. public fw_Touch(iEnt, iPlayer) {
  64. if(!is_user_connected(iPlayer))
  65. return HAM_IGNORED;
  66.  
  67. new szModel[64];
  68. entity_get_string(iEnt, EV_SZ_model, szModel, 63);
  69.  
  70. if(equali(szModel, "models/w_weaponbox.mdl")) return HAM_IGNORED;
  71.  
  72. new isSkin = entity_get_int(iEnt, EV_INT_iuser1);
  73.  
  74. if(isSkin == 768) {
  75. g_iLastTouch[iPlayer] = iEnt;
  76. }
  77.  
  78. return HAM_IGNORED;
  79. }
  80.  
  81. public WeapPickup(iPlayer) {
  82. new iWeapon = read_data(1);
  83.  
  84. new iEnt = g_iLastTouch[iPlayer];
  85.  
  86. if(!g_iLastTouch[iPlayer] || !is_valid_ent(iEnt)) return PLUGIN_CONTINUE;
  87.  
  88. new isSkin = entity_get_int(iEnt, EV_INT_iuser1);
  89. new owner = entity_get_int(iEnt, EV_INT_iuser2);
  90. new skin = entity_get_int(iEnt, EV_INT_iuser3);
  91. new weapon = entity_get_int(iEnt, EV_INT_iuser4);
  92.  
  93. if(isSkin != 768 || weapon != iWeapon || owner == iPlayer || !is_user_connected(owner)) return PLUGIN_CONTINUE;
  94.  
  95. g_iLastTouch[iPlayer] = 0;
  96.  
  97. g_iPickedSkin[iPlayer][weapon][0] = owner;
  98. g_iPickedSkin[iPlayer][weapon][1] = skin;
  99.  
  100. return PLUGIN_CONTINUE;
  101. }
  102.  
  103. public fmClientData( id, sendweapons, cd_handle ){
  104. if( !is_user_connected( id ) || get_cd( cd_handle , CD_ViewModel ) == 0){
  105. return FMRES_IGNORED;
  106. }
  107.  
  108. new weapon;
  109. new target = is_user_alive(id) ? id : pev(id, pev_iuser2);
  110.  
  111. if(target) {
  112. weapon = get_user_weapon(target);
  113.  
  114. SetSkin(target, cd_handle, weapon, id);
  115.  
  116. }
  117.  
  118. return FMRES_IGNORED;
  119. }
  120.  
  121. public SetSkin(id, cd, weapon, owner) {
  122.  
  123. if(pSkins[id][weapon] == -1 && g_iPickedSkin[id][weapon][1] == -1)
  124. return FMRES_HANDLED;
  125.  
  126. new picked = g_iPickedSkin[id][weapon][1];
  127.  
  128. new skin = pSkins[id][weapon];
  129. set_cd(cd, CD_ViewModel, SkinCache[weapon][picked > -1 ? picked : skin]);
  130.  
  131. return FMRES_IGNORED;
  132. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement