Advertisement
Guest User

Damage System by nesguide2

a guest
Jan 22nd, 2020
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 11.49 KB | None | 0 0
  1. // New Damage System by nesguide2
  2. // Version 1.3
  3.  
  4. #include <a_samp>
  5.  
  6. new Float:Player_AP[MAX_PLAYERS];
  7. new Float:Player_HP[MAX_PLAYERS];
  8. new PlayerText:textdraw_PlayerAP[MAX_PLAYERS];
  9. new PlayerText:textdraw_PlayerHP[MAX_PLAYERS];
  10. new PlayerAP_str[144];
  11. new PlayerHP_str[144];
  12. new bool:IsDead[MAX_PLAYERS];
  13.  
  14. public OnPlayerConnect(playerid)
  15. {
  16.     IsDead[playerid] = false;
  17.     Player_AP[playerid] = 0.0;
  18.     Player_HP[playerid] = 200.0;
  19.     SetPlayerArmour(playerid, Player_AP[playerid]);
  20.     SetPlayerHealth(playerid, Player_HP[playerid]);
  21.  
  22.     // AP HP TextDraw
  23.     // AP
  24.     format(PlayerAP_str,sizeof(PlayerAP_str),"%f", Player_AP[playerid]);
  25.     textdraw_PlayerAP[playerid] = CreatePlayerTextDraw(playerid, 578.000000, 44.000000, PlayerAP_str);
  26.     PlayerTextDrawFont(playerid, textdraw_PlayerAP[playerid], 2);
  27.     PlayerTextDrawLetterSize(playerid, textdraw_PlayerAP[playerid], 0.241666, 0.899999);
  28.     PlayerTextDrawTextSize(playerid, textdraw_PlayerAP[playerid], 400.000000, 17.000000);
  29.     PlayerTextDrawSetOutline(playerid, textdraw_PlayerAP[playerid], 1);
  30.     PlayerTextDrawSetShadow(playerid, textdraw_PlayerAP[playerid], 0);
  31.     PlayerTextDrawAlignment(playerid, textdraw_PlayerAP[playerid], 2);
  32.     PlayerTextDrawColor(playerid, textdraw_PlayerAP[playerid], -1);
  33.     PlayerTextDrawBackgroundColor(playerid, textdraw_PlayerAP[playerid], 255);
  34.     PlayerTextDrawBoxColor(playerid, textdraw_PlayerAP[playerid], 50);
  35.     PlayerTextDrawUseBox(playerid, textdraw_PlayerAP[playerid], 0);
  36.     PlayerTextDrawSetProportional(playerid, textdraw_PlayerAP[playerid], 1);
  37.     PlayerTextDrawSetSelectable(playerid, textdraw_PlayerAP[playerid], 0);
  38.  
  39.     // HP
  40.     format(PlayerHP_str,sizeof(PlayerHP_str),"%f", Player_HP[playerid]);
  41.     textdraw_PlayerHP[playerid] = CreatePlayerTextDraw(playerid, 578.000000, 66.000000, PlayerHP_str);
  42.     PlayerTextDrawFont(playerid, textdraw_PlayerHP[playerid], 2);
  43.     PlayerTextDrawLetterSize(playerid, textdraw_PlayerHP[playerid], 0.241666, 0.899999);
  44.     PlayerTextDrawTextSize(playerid, textdraw_PlayerHP[playerid], 400.000000, 17.000000);
  45.     PlayerTextDrawSetOutline(playerid, textdraw_PlayerHP[playerid], 1);
  46.     PlayerTextDrawSetShadow(playerid, textdraw_PlayerHP[playerid], 0);
  47.     PlayerTextDrawAlignment(playerid, textdraw_PlayerHP[playerid], 2);
  48.     PlayerTextDrawColor(playerid, textdraw_PlayerHP[playerid], -1);
  49.     PlayerTextDrawBackgroundColor(playerid, textdraw_PlayerHP[playerid], 255);
  50.     PlayerTextDrawBoxColor(playerid, textdraw_PlayerHP[playerid], 50);
  51.     PlayerTextDrawUseBox(playerid, textdraw_PlayerHP[playerid], 0);
  52.     PlayerTextDrawSetProportional(playerid, textdraw_PlayerHP[playerid], 1);
  53.     PlayerTextDrawSetSelectable(playerid, textdraw_PlayerHP[playerid], 0);
  54.     return 1;
  55. }
  56.  
  57. public OnPlayerSpawn(playerid)
  58. {
  59.     IsDead[playerid] = false;
  60.     Player_AP[playerid] = 0.0;
  61.     Player_HP[playerid] = 100.0;
  62.     SetPlayerArmour(playerid, Player_AP[playerid]);
  63.     SetPlayerHealth(playerid, Player_HP[playerid]);
  64.     // AP HP TextDraw
  65.     PlayerTextDrawShow(playerid, textdraw_PlayerAP[playerid]);
  66.     PlayerTextDrawShow(playerid, textdraw_PlayerHP[playerid]);
  67.     return 1;
  68. }
  69.  
  70. public OnPlayerUpdate(playerid)
  71. {
  72.     // AP HP TextDraw
  73.     format(PlayerAP_str,sizeof(PlayerAP_str),"%f", Player_AP[playerid]);
  74.     format(PlayerHP_str,sizeof(PlayerHP_str),"%f", Player_HP[playerid]);
  75.     PlayerTextDrawSetString(playerid, textdraw_PlayerAP[playerid], PlayerAP_str);
  76.     PlayerTextDrawSetString(playerid, textdraw_PlayerHP[playerid], PlayerHP_str);
  77.     return 1;
  78. }
  79.  
  80. public OnPlayerDeath(playerid, killerid, reason)
  81. {
  82.     if(killerid != INVALID_PLAYER_ID)
  83.     {
  84.         if(IsDead[playerid] == true) return 1;
  85.         IsDead[playerid] = true;
  86.         GetPlayerColor(killerid);
  87.         GetPlayerColor(playerid);
  88.         Player_AP[playerid]=0.0;
  89.         Player_HP[playerid]=0.0;
  90.         SetPlayerArmour(playerid, Player_AP[playerid]);
  91.         SetPlayerHealth(playerid, Player_HP[playerid]);
  92.         // AP HP TextDraw
  93.         PlayerTextDrawSetString(playerid, textdraw_PlayerAP[playerid], PlayerAP_str);
  94.         PlayerTextDrawSetString(playerid, textdraw_PlayerHP[playerid], PlayerHP_str);
  95.         GivePlayerMoney(killerid, GetPlayerMoney(playerid));
  96.         SetPlayerScore(killerid, GetPlayerScore(killerid)+1);
  97.         ResetPlayerMoney(playerid);
  98.         SendDeathMessage(killerid, playerid, reason);
  99.     }
  100.     ResetPlayerMoney(playerid);
  101.     ResetPlayerWeapons(playerid);
  102.     return 1;
  103. }
  104.  
  105. // Damage System
  106. public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid, bodypart)
  107. {
  108.     if(playerid != INVALID_PLAYER_ID)
  109.     {
  110.         if(Player_AP[damagedid] > amount)
  111.         {
  112.             if(IsDead[damagedid] == true) return 1;
  113.             Player_AP[damagedid]-=amount;
  114.             SetPlayerArmour(damagedid, Player_AP[damagedid]);
  115.             SetPlayerHealth(damagedid, Player_HP[damagedid]);
  116.             // AP HP TextDraw
  117.             format(PlayerAP_str,sizeof(PlayerAP_str),"%f", Player_AP[damagedid]);
  118.             PlayerTextDrawSetString(damagedid, textdraw_PlayerAP[damagedid], PlayerAP_str);
  119.             format(PlayerHP_str,sizeof(PlayerHP_str),"%f", Player_HP[damagedid]);
  120.             PlayerTextDrawSetString(damagedid, textdraw_PlayerHP[damagedid], PlayerHP_str);
  121.         }
  122.         else
  123.         {
  124.             if(IsDead[damagedid] == true) return 1;
  125.             Player_AP[damagedid]=0.0;
  126.             SetPlayerArmour(damagedid, Player_AP[damagedid]);
  127.             SetPlayerHealth(damagedid, Player_HP[damagedid]);
  128.             // AP HP TextDraw
  129.             format(PlayerAP_str,sizeof(PlayerAP_str),"%f", Player_AP[damagedid]);
  130.             PlayerTextDrawSetString(damagedid, textdraw_PlayerAP[damagedid], PlayerAP_str);
  131.             format(PlayerHP_str,sizeof(PlayerHP_str),"%f", Player_HP[damagedid]);
  132.             PlayerTextDrawSetString(damagedid, textdraw_PlayerHP[damagedid], PlayerHP_str);
  133.             if(Player_HP[damagedid] > amount)
  134.             {
  135.                 if(IsDead[damagedid] == true) return 1;
  136.                 Player_HP[damagedid]-=amount;
  137.                 SetPlayerArmour(damagedid, Player_AP[damagedid]);
  138.                 SetPlayerHealth(damagedid, Player_HP[damagedid]);
  139.                 // AP HP TextDraw
  140.                 format(PlayerAP_str,sizeof(PlayerAP_str),"%f", Player_AP[damagedid]);
  141.                 PlayerTextDrawSetString(damagedid, textdraw_PlayerAP[damagedid], PlayerAP_str);
  142.                 format(PlayerHP_str,sizeof(PlayerHP_str),"%f", Player_HP[damagedid]);
  143.                 PlayerTextDrawSetString(damagedid, textdraw_PlayerHP[damagedid], PlayerHP_str);
  144.             }
  145.             else
  146.             {
  147.                 if(IsDead[damagedid] == true) return 1;
  148.                 CallLocalFunction("OnPlayerDeath", "iid", damagedid, playerid, weaponid);
  149.             }
  150.         }
  151.         return 1;
  152.     }
  153.  
  154.     if(Player_AP[playerid] > amount)
  155.     {
  156.         Player_AP[playerid]-=amount;
  157.         SetPlayerArmour(playerid, Player_AP[playerid]);
  158.         SetPlayerHealth(playerid, Player_HP[playerid]);
  159.         // AP HP TextDraw
  160.         format(PlayerAP_str,sizeof(PlayerAP_str),"%f", Player_AP[playerid]);
  161.         PlayerTextDrawSetString(playerid, textdraw_PlayerAP[playerid], PlayerAP_str);
  162.         format(PlayerHP_str,sizeof(PlayerHP_str),"%f", Player_HP[playerid]);
  163.         PlayerTextDrawSetString(playerid, textdraw_PlayerHP[playerid], PlayerHP_str);
  164.     }
  165.     else
  166.     {
  167.         Player_AP[playerid]=0.0;
  168.         SetPlayerArmour(playerid, Player_AP[playerid]);
  169.         SetPlayerHealth(playerid, Player_HP[playerid]);
  170.         // AP HP TextDraw
  171.         format(PlayerAP_str,sizeof(PlayerAP_str),"%f", Player_AP[playerid]);
  172.         PlayerTextDrawSetString(playerid, textdraw_PlayerAP[playerid], PlayerAP_str);
  173.         format(PlayerHP_str,sizeof(PlayerHP_str),"%f", Player_HP[playerid]);
  174.         PlayerTextDrawSetString(playerid, textdraw_PlayerHP[playerid], PlayerHP_str);
  175.         if(Player_HP[playerid] > amount)
  176.         {
  177.             Player_AP[playerid]=0.0;
  178.             Player_HP[playerid]-=amount;
  179.             SetPlayerArmour(playerid, Player_AP[playerid]);
  180.             SetPlayerHealth(playerid, Player_HP[playerid]);
  181.             // AP HP TextDraw
  182.             format(PlayerAP_str,sizeof(PlayerAP_str),"%f", Player_AP[playerid]);
  183.             PlayerTextDrawSetString(playerid, textdraw_PlayerAP[playerid], PlayerAP_str);
  184.             format(PlayerHP_str,sizeof(PlayerHP_str),"%f", Player_HP[playerid]);
  185.             PlayerTextDrawSetString(playerid, textdraw_PlayerHP[playerid], PlayerHP_str);
  186.         }
  187.         else
  188.         {
  189.             Player_AP[playerid]=0.0;
  190.             Player_HP[playerid]=0.0;
  191.             SetPlayerArmour(playerid, Player_AP[playerid]);
  192.             SetPlayerHealth(playerid, Player_HP[playerid]);
  193.             // AP HP TextDraw
  194.             format(PlayerAP_str,sizeof(PlayerAP_str),"%f", Player_AP[playerid]);
  195.             PlayerTextDrawSetString(playerid, textdraw_PlayerAP[playerid], PlayerAP_str);
  196.             format(PlayerHP_str,sizeof(PlayerHP_str),"%f", Player_HP[playerid]);
  197.             PlayerTextDrawSetString(playerid, textdraw_PlayerHP[playerid], PlayerHP_str);
  198.         }
  199.         return 1;
  200.     }
  201.     return 1;
  202. }
  203.  
  204. public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
  205. {
  206.     if(issuerid != INVALID_PLAYER_ID)
  207.     {
  208.         // Damage System
  209.         if(Player_AP[playerid] > amount)
  210.         {
  211.             if(IsDead[playerid] == true) return 1;
  212.             Player_AP[playerid]-=amount;
  213.             SetPlayerArmour(playerid, Player_AP[playerid]);
  214.             format(PlayerAP_str,sizeof(PlayerAP_str),"%f", Player_AP[playerid]);
  215.             PlayerTextDrawSetString(playerid, textdraw_PlayerAP[playerid], PlayerAP_str);
  216.         }
  217.         else
  218.         {
  219.             if(IsDead[playerid] == true) return 1;
  220.             Player_AP[playerid]=0.0;
  221.             SetPlayerArmour(playerid, Player_AP[playerid]);
  222.             format(PlayerAP_str,sizeof(PlayerAP_str),"%f", Player_AP[playerid]);
  223.             PlayerTextDrawSetString(playerid, textdraw_PlayerAP[playerid], PlayerAP_str);
  224.             if(Player_HP[playerid] > amount)
  225.             {
  226.                 if(IsDead[playerid] == true) return 1;
  227.                 Player_HP[playerid]-=amount;
  228.                 SetPlayerHealth(playerid, Player_HP[playerid]);
  229.                 format(PlayerHP_str,sizeof(PlayerHP_str),"%f", Player_HP[playerid]);
  230.                 PlayerTextDrawSetString(playerid, textdraw_PlayerHP[playerid], PlayerHP_str);
  231.             }
  232.             else
  233.             {
  234.                 if(IsDead[playerid] == true) return 1;
  235.                 CallLocalFunction("OnPlayerDeath", "iid", playerid, issuerid, weaponid);
  236.             }
  237.         }
  238.         return 1;
  239.     }
  240.  
  241.     if(Player_AP[playerid] > amount)
  242.     {
  243.         Player_AP[playerid]-=amount;
  244.         SetPlayerArmour(playerid, Player_AP[playerid]);
  245.         SetPlayerHealth(playerid, Player_HP[playerid]);
  246.         // AP HP TextDraw
  247.         format(PlayerAP_str,sizeof(PlayerAP_str),"%f", Player_AP[playerid]);
  248.         PlayerTextDrawSetString(playerid, textdraw_PlayerAP[playerid], PlayerAP_str);
  249.         format(PlayerHP_str,sizeof(PlayerHP_str),"%f", Player_HP[playerid]);
  250.         PlayerTextDrawSetString(playerid, textdraw_PlayerHP[playerid], PlayerHP_str);
  251.     }
  252.     else
  253.     {
  254.         Player_AP[playerid]=0.0;
  255.         SetPlayerArmour(playerid, Player_AP[playerid]);
  256.         SetPlayerHealth(playerid, Player_HP[playerid]);
  257.         // AP HP TextDraw
  258.         format(PlayerAP_str,sizeof(PlayerAP_str),"%f", Player_AP[playerid]);
  259.         PlayerTextDrawSetString(playerid, textdraw_PlayerAP[playerid], PlayerAP_str);
  260.         format(PlayerHP_str,sizeof(PlayerHP_str),"%f", Player_HP[playerid]);
  261.         PlayerTextDrawSetString(playerid, textdraw_PlayerHP[playerid], PlayerHP_str);
  262.         if(Player_HP[playerid] > amount)
  263.         {
  264.             Player_AP[playerid]=0.0;
  265.             Player_HP[playerid]-=amount;
  266.             SetPlayerArmour(playerid, Player_AP[playerid]);
  267.             SetPlayerHealth(playerid, Player_HP[playerid]);
  268.             // AP HP TextDraw
  269.             format(PlayerAP_str,sizeof(PlayerAP_str),"%f", Player_AP[playerid]);
  270.             PlayerTextDrawSetString(playerid, textdraw_PlayerAP[playerid], PlayerAP_str);
  271.             format(PlayerHP_str,sizeof(PlayerHP_str),"%f", Player_HP[playerid]);
  272.             PlayerTextDrawSetString(playerid, textdraw_PlayerHP[playerid], PlayerHP_str);
  273.         }
  274.         else
  275.         {
  276.             Player_AP[playerid]=0.0;
  277.             Player_HP[playerid]=0.0;
  278.             SetPlayerArmour(playerid, Player_AP[playerid]);
  279.             SetPlayerHealth(playerid, Player_HP[playerid]);
  280.             // AP HP TextDraw
  281.             format(PlayerAP_str,sizeof(PlayerAP_str),"%f", Player_AP[playerid]);
  282.             PlayerTextDrawSetString(playerid, textdraw_PlayerAP[playerid], PlayerAP_str);
  283.             format(PlayerHP_str,sizeof(PlayerHP_str),"%f", Player_HP[playerid]);
  284.             PlayerTextDrawSetString(playerid, textdraw_PlayerHP[playerid], PlayerHP_str);
  285.         }
  286.         return 1;
  287.     }
  288.     return 1;
  289. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement