Advertisement
MasamuneDate

Armor

Apr 11th, 2018
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 2.36 KB | None | 0 0
  1. /**
  2.  *
  3.  * Description:
  4.  *  This is a _WORKING_ real armor plugin for Counter-Strike.
  5.  *
  6.  *
  7.  * Commands / Cvars:
  8.  *  Cvar: "ra_kevlar_flags"   "cd"  // armor flags for normal armor
  9.  *  Cvar: "ra_vesthelm_flags" "bcd" // armor flags for armor with vest helmet
  10.  *  + cvar flags:
  11.  *  - "a" unknown (explosion for example)
  12.  *  - "b" head
  13.  *  - "c" chest
  14.  *  - "d" stomach
  15.  *  - "e" leftarm
  16.  *  - "f" rightarm
  17.  *  - "g" leftleg
  18.  *  - "h" rightleg
  19.  *
  20.  *
  21.  * Requires:
  22.  *  CStrike
  23.  *  CSX
  24.  *  Fun
  25.  *
  26.  *
  27.  * Additional Info:
  28.  *  Tested with amxmodx 1.8.1. But should work with some older amxx versions.
  29.  *
  30.  *
  31.  * Notes:
  32.  *  + Armor scan is preformed after damage is taken so deadly hits will be the way they should (awp hit for example).
  33.  *
  34.  *
  35.  * ChangeLog:
  36.  *
  37.  *  + 1.1 (1114 downloads reseted)
  38.  *  - Fixed: When armor is set to 0 you cannot pick it up again.
  39.  *  - Changed: Code style.
  40.  *
  41.  *  + 1.0
  42.  *  - First release.
  43.  *
  44.  *
  45.  * Downloads:
  46.  *  AMXMODX Community: http://forums.alliedmods.net/showthread.php?t=70773
  47.  *
  48. **/
  49.  
  50. #include <amxmodx>
  51. #include <cstrike>
  52. #include <csx>
  53. #include <fun>
  54.  
  55. #define PLUGIN_NAME    "Real Armor"
  56. #define PLUGIN_VERSION "1.1"
  57. #define PLUGIN_AUTHOR  "Numb"
  58.  
  59. new g_iCvarP_karmor;
  60. new g_iCvarP_varmor;
  61.  
  62. public plugin_init()
  63. {
  64.  register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
  65.  
  66.  g_iCvarP_karmor = register_cvar("ra_kevlar_flags",   "abcdefgh");
  67.  g_iCvarP_varmor = register_cvar("ra_vesthelm_flags", "abcdefgh");
  68. }
  69.  
  70. public client_damage(iAttacker, iVictim, iDamage, iWpnIndex, iHitPlace, iTA)
  71. {
  72.  if( is_user_alive(iVictim) && iDamage>0 )
  73.  {
  74.   static s_iArmor, CsArmorType:s_iArmorType;
  75.   s_iArmor = cs_get_user_armor(iVictim, s_iArmorType);
  76.   if( s_iArmor>0 && s_iArmorType!=CS_ARMOR_NONE )
  77.   {
  78.    if( get_armor_cvar_flags((s_iArmorType==CS_ARMOR_VESTHELM)?true:false)&(1<<iHitPlace) )
  79.    {
  80.     if( s_iArmor>iDamage )
  81.     {
  82.      set_user_health(iVictim, get_user_health(iVictim)+iDamage);
  83.      cs_set_user_armor(iVictim, s_iArmor-iDamage, s_iArmorType);
  84.     }
  85.     else
  86.     {
  87.      set_user_health(iVictim, get_user_health(iVictim)+s_iArmor);
  88.      cs_set_user_armor(iVictim, 0, CS_ARMOR_NONE);
  89.     }
  90.    }
  91.   }
  92.  }
  93. }
  94.  
  95. get_armor_cvar_flags(bool:bVestHelm)
  96. {
  97.  static s_iCvarStr[32];
  98.  get_pcvar_string(bVestHelm?g_iCvarP_varmor:g_iCvarP_karmor, s_iCvarStr, 31);
  99.  return read_flags(s_iCvarStr);
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement