Advertisement
ZumeZero

Custom Damage SAMP (OnPlayerTakeDamage)

Dec 27th, 2014
856
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.63 KB | None | 0 0
  1. ¡public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
  2. {
  3.     new Float:damage, Float:health, Float:armour;
  4.     if(issuerid != INVALID_PLAYER_ID)
  5.     {
  6.         if(amount == 2.64)
  7.         {
  8.             if(GetPlayerWeapon(issuerid) > 21 && GetPlayerWeapon(issuerid) < 34)
  9.             {
  10.                 damage = 11.5;
  11.             }
  12.         }
  13.         else
  14.         {
  15.             if(weaponid >= 0 && weaponid < 16)
  16.             {
  17.                 switch(weaponid)
  18.                 {
  19.                     case 0:
  20.                     {
  21.                         switch(bodypart)
  22.                         {
  23.                             case 3: damage = 3.0;
  24.                             case 4: damage = 4.5;
  25.                             case 5..8: damage = 2.0;
  26.                             case 9: damage = 4.0;
  27.                         }
  28.                     }
  29.                     case 1:
  30.                     {
  31.                         switch(bodypart)
  32.                         {
  33.                             case 3: damage = 4.0;
  34.                             case 4: damage = 5.5;
  35.                             case 5..8: damage = 3.0;
  36.                             case 9: damage = 5.0;
  37.                         }
  38.                     }
  39.                     case 2,3,5,6,7,15:
  40.                     {
  41.                         switch(bodypart)
  42.                         {
  43.                             case 3: damage = 6.0;
  44.                             case 4: damage = 10.5;
  45.                             case 5..8: damage = 5.0;
  46.                             case 9: damage = 10.0;
  47.                         }
  48.                     }
  49.                     case 4:
  50.                     {
  51.                         switch(bodypart)
  52.                         {
  53.                             case 3: damage = 10.0;
  54.                             case 4: damage = 12.5;
  55.                             case 5..8: damage = 6.0;
  56.                             case 9: damage = 12.0;
  57.                         }
  58.                     }
  59.                     case 8:
  60.                     {
  61.                         switch(bodypart)
  62.                         {
  63.                             case 3,4: damage = 15.0;
  64.                             case 5..8: damage = 12.0;
  65.                             case 9: damage = 200;
  66.                         }
  67.                     }
  68.                     default: damage = amount;
  69.                 }
  70.             }
  71.             if(weaponid > 21 && weaponid < 52)
  72.             {
  73.                 switch(weaponid)
  74.                 {
  75.                     case 22,23:
  76.                     {
  77.                         switch(bodypart)
  78.                         {
  79.                             case 3,4: damage = 45.0;
  80.                             case 5..8: damage = 20.0;
  81.                             case 9: damage = 200.0;
  82.                         }
  83.                     }
  84.                     case 24:
  85.                     {
  86.                         switch(bodypart)
  87.                         {
  88.                             case 3,4: damage = 70.0;
  89.                             case 5..8: damage = 35.0;
  90.                             case 9: damage = 200.0;
  91.                         }
  92.                     }
  93.                     case 25..27:
  94.                     {
  95.                         switch(bodypart)
  96.                         {
  97.                             case 3,4: damage = 90.0;
  98.                             case 5..8: damage = 50.0;
  99.                             case 9: damage = 200.0;
  100.                         }
  101.                     }
  102.                     case 28,32:
  103.                     {
  104.                         switch(bodypart)
  105.                         {
  106.                             case 3,4: damage = 45.0;
  107.                             case 5..8: damage = 20.0;
  108.                             case 9: damage = 200.0;
  109.                         }
  110.                     }
  111.                     case 29:
  112.                     {
  113.                         switch(bodypart)
  114.                         {
  115.                             case 3,4: damage = 55.0;
  116.                             case 5..8: damage = 30.0;
  117.                             case 9: damage = 200.0;
  118.                         }
  119.                     }
  120.                     case 30:
  121.                     {
  122.                         switch(bodypart)
  123.                         {
  124.                             case 3,4: damage = 65.0;
  125.                             case 5..8: damage = 40.0;
  126.                             case 9: damage = 200.0;
  127.                         }
  128.                     }
  129.                     case 31:
  130.                     {
  131.                         switch(bodypart)
  132.                         {
  133.                             case 3,4: damage = 60.0;
  134.                             case 5..8: damage = 35.0;
  135.                             case 9: damage = 200.0;
  136.                         }
  137.                     }
  138.                     case 33:
  139.                     {
  140.                         switch(bodypart)
  141.                         {
  142.                             case 3,4: damage = 80.0;
  143.                             case 5..8: damage = 40.0;
  144.                             case 9: damage = 200.0;
  145.                         }
  146.                     }
  147.                     case 34:
  148.                     {
  149.                         switch(bodypart)
  150.                         {
  151.                             case 3,4: damage = 100.0;
  152.                             case 5..8: damage = 60.0;
  153.                             case 9: damage = 200.0;
  154.                         }
  155.                     }
  156.                     default: damage = amount;
  157.                 }
  158.             }
  159.         }
  160.         GetPlayerHealth(playerid, health);
  161.         GetPlayerArmour(playerid, armour);
  162.         if(armour)
  163.         {
  164.             if(armour > damage) SetPlayerArmour(playerid, armour-damage);
  165.             else
  166.             {
  167.                 SetPlayerArmour(playerid, 0.0);
  168.                 armour = damage-armour;
  169.                 if(armour >= health)
  170.                 {
  171.                     SetPlayerHealth(playerid, 0.0);
  172.                 }
  173.                 else
  174.                 {
  175.                     SetPlayerHealth(playerid, health-armour);
  176.                 }
  177.             }
  178.         }
  179.         else
  180.         {
  181.             if(health > damage)
  182.             {
  183.                 SetPlayerHealth(playerid, health-damage);
  184.             }
  185.             else
  186.             {
  187.                 SetPlayerHealth(playerid, 0.0);
  188.             }
  189.         }
  190.     }
  191.     return 1;
  192. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement