Advertisement
Guest User

Realistic Hardcore Sobs Mod Script

a guest
Feb 19th, 2018
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 22.79 KB | None | 0 0
  1. using System;
  2. using GTA;
  3. using GTA.Native;
  4.  
  5.  
  6. namespace Injury0
  7. {
  8.     public class Injury0 : Script
  9.     {
  10.         //EDITED BY SIRBACKENBART AKA FLEDRON
  11.         //ORIGINAL BY SOB
  12.         public Injury0()
  13.         {
  14.             Tick += OnTick;
  15.         }
  16.         public void OnTick(object sender, EventArgs e)
  17.         {
  18.             String AnimationName = "move_m@generic";
  19.  
  20.             int MaxArmour = 3;
  21.             int MaxHealth = 36;
  22.             int InjuryPoints = 0;
  23.             int PlayerHealth = Game.Player.Character.Health;
  24.             Random rnd = new Random();
  25.            
  26.             Function.Call(Hash.SET_PLAYER_HEALTH_RECHARGE_MULTIPLIER, Game.Player.Character, 0);
  27.             Function.Call(Hash.SET_PLAYER_MAX_ARMOUR, Game.Player.Character, MaxArmour);
  28.             //DONT KNOW IF THIS DOES WORK FOR PLAYERS, HAVE TO TEST
  29.             //Function.Call(Hash.SET_PED_MAX_HEALTH, Game.Player.Character, MaxHealth);
  30.            
  31.             int HState = rnd.Next(0, 9);
  32.             int AState = rnd.Next(0, 9);
  33.             int BState = rnd.Next(0, 9);
  34.             int CState = rnd.Next(0, 9);
  35.             int DState = rnd.Next(0, 9);
  36.             int EState = rnd.Next(0, 10);
  37.             int FState = rnd.Next(0, 10);
  38.             int LState = rnd.Next(0, 10);
  39.             int MState = rnd.Next(0, 10);
  40.  
  41.  
  42.             if (Game.Player.Character.Armor > MaxArmour)
  43.             {
  44.                 Function.Call(Hash.SET_PED_ARMOUR, Game.Player.Character, MaxArmour);
  45.             }
  46.  
  47.            
  48.  
  49.  
  50.  
  51.  
  52.             if (PlayerHealth > MaxHealth)
  53.             {
  54.                 Function.Call(Hash.SET_ENTITY_HEALTH, Game.Player.Character, 136);
  55.                 Function.Call(Hash.REQUEST_ANIM_SET, AnimationName);
  56.                 Function.Call(Hash._SET_CAM_EFFECT, 0);
  57.                
  58.             }
  59.  
  60.             if (PlayerHealth == MaxHealth)
  61.             {
  62.                 AnimationName = "move_m@generic";
  63.  
  64.                 Function.Call(Hash.SET_PED_MOVE_RATE_OVERRIDE, Game.Player.Character, 1.04);
  65.  
  66.                 Function.Call(Hash._SET_CAM_EFFECT, 0);
  67.                
  68.                 Function.Call(Hash.CLEAR_PED_BLOOD_DAMAGE, Game.Player.Character);
  69.                 Function.Call(Hash.REQUEST_ANIM_SET, AnimationName);
  70.                
  71.  
  72.  
  73.             }
  74.             else if (PlayerHealth <= MaxHealth-1 && PlayerHealth >= MaxHealth-2)
  75.             {
  76.                 AnimationName = "move_m@gangster@a";
  77.                 Function.Call(Hash.SET_PED_MOVE_RATE_OVERRIDE, Game.Player.Character, 1.02);
  78.                 Function.Call(Hash.REQUEST_ANIM_SET, AnimationName);
  79.                 Wait(6130); Game.Player.Character.Health = Game.Player.Character.Health + 1;
  80.                 Function.Call(Hash._SET_CAM_EFFECT, 0);
  81.             }
  82.  
  83.             else if (PlayerHealth <= MaxHealth-3 && PlayerHealth >= MaxHealth-4)
  84.             {
  85.                 AnimationName = "move_m@drunk@moderatedrunk";
  86.                 Function.Call(Hash.SET_PED_MOVE_RATE_OVERRIDE, Game.Player.Character, 1.01);
  87.                 Function.Call(Hash._SET_CAM_EFFECT, 0);
  88.                 Function.Call(Hash.REQUEST_ANIM_SET, AnimationName);
  89.                 Wait(6330); Game.Player.Character.Health = Game.Player.Character.Health + 1;
  90.                 switch (AState)
  91.                 {
  92.                     case 0: UI.Notify("Large bruise/grazing blow"); Wait(6130); Game.Player.Character.Health = Game.Player.Character.Health - 1; break;
  93.                     case 1: UI.Notify("Minor bleeding (external)"); Game.Player.Character.Health = Game.Player.Character.Health - 3; break;
  94.                     case 2: UI.Notify("Winded"); Game.Player.Character.Health = Game.Player.Character.Health + 1; break;
  95.                     case 3: UI.Notify("Minor scrapes/contusions"); Wait(10230); Game.Player.Character.Health = Game.Player.Character.Health + 3; break;
  96.                     case 4: UI.Notify("Possible onset of concussion or shock detected"); Wait(12230); Game.Player.Character.Health = Game.Player.Character.Health - 5; break;
  97.                 }
  98.             }
  99.  
  100.  
  101.             else if (PlayerHealth <= MaxHealth-5 && PlayerHealth >= MaxHealth-6)
  102.             {
  103.                 AnimationName = "move_m@drunk@moderatedrunk";
  104.                 Function.Call(Hash.SET_PED_MOVE_RATE_OVERRIDE, Game.Player.Character, 0.95);
  105.                 Function.Call(Hash._SET_CAM_EFFECT, 1);
  106.                 Function.Call(Hash.REQUEST_ANIM_SET, AnimationName);
  107.                 Wait(9130); Game.Player.Character.Health = Game.Player.Character.Health + 1;
  108.  
  109.                 switch (BState)
  110.                 {
  111.                     case 0: UI.Notify("Large bruise"); Game.Player.Character.Health = Game.Player.Character.Health + 4; break;
  112.                     case 1: UI.Notify("Minor bleeding (external)"); Game.Player.Character.Health = Game.Player.Character.Health - 3; break;
  113.                     case 2: UI.Notify("Significant lacerations"); Game.Player.Character.Health = Game.Player.Character.Health + 1; break;
  114.                     case 3: UI.Notify("Minor scrapes/contusions");  Game.Player.Character.Health = Game.Player.Character.Health + 3; break;
  115.                     case 4: UI.Notify("Possible onset of concussion or shock detected"); Game.Player.Character.Health = Game.Player.Character.Health - 5; break;
  116.                 }
  117.             }
  118.  
  119.             else if (PlayerHealth <= MaxHealth-7 && PlayerHealth >= MaxHealth-11)
  120.             {
  121.                 AnimationName = "move_m@drunk@verydrunk";
  122.                 Function.Call(Hash.SET_PED_MOVE_RATE_OVERRIDE, Game.Player.Character, 0.91);
  123.                 Function.Call(Hash.SET_PLAYER_SPRINT, Game.Player.Character, false);
  124.                 Function.Call(Hash._SET_CAM_EFFECT, 1);
  125.                 Function.Call(Hash.REQUEST_ANIM_SET, AnimationName);
  126.                 Wait(3130); Game.Player.Character.Health = Game.Player.Character.Health + 1;
  127.                 switch (HState)
  128.                 {
  129.                     case 0: UI.Notify("Subdural hematoma detected"); Game.Player.Character.Health = Game.Player.Character.Health - 1; break;
  130.                     case 1: UI.Notify("Moderate bleeding (external) detected"); Game.Player.Character.Health = Game.Player.Character.Health - 3; break;
  131.                     case 2: UI.Notify("Moderate trauma detected"); Game.Player.Character.Health = Game.Player.Character.Health + 1; break;
  132.                     case 3: UI.Notify("Limited limb mobility due to blunt force trauma"); Game.Player.Character.Health = Game.Player.Character.Health + 3; break;
  133.                     case 4: UI.Notify("Potential internal injuries or life threatening condition detected"); Game.Player.Character.Health = Game.Player.Character.Health - 6; break;
  134.                 }
  135.                 Function.Call(Hash.SET_AUDIO_FLAG, "ForceSniperAudio", 0);
  136.  
  137.             }
  138.             else if (PlayerHealth < MaxHealth-12)
  139.             {
  140.                 AnimationName = "move_m@drunk@verydrunk";
  141.                 Function.Call(Hash.SET_PLAYER_SPRINT, Game.Player.Character, false);
  142.                 Function.Call(Hash.SET_PED_MOVE_RATE_OVERRIDE, Game.Player.Character, 0.94);
  143.                 Function.Call(Hash._SET_CAM_EFFECT, 1);
  144.                 Function.Call(Hash.SET_AUDIO_FLAG, "ForceSniperAudio", 0);
  145.                 Function.Call(Hash.SET_PLAYER_HEALTH_RECHARGE_MULTIPLIER, 0.0f);
  146.                 Function.Call(Hash.REQUEST_ANIM_SET, AnimationName);
  147.  
  148.                 switch (HState)
  149.                 {
  150.                     case 0: UI.Notify("Internal injuries (significant)"); Game.Player.Character.Health = Game.Player.Character.Health - 1; break;
  151.                     case 1: UI.Notify("Internal injuries (severe)"); Game.Player.Character.Health = Game.Player.Character.Health - 2; break;
  152.                     case 2: UI.Notify("Sprained or badly damaged limb"); Game.Player.Character.Health = Game.Player.Character.Health + 5;  break;
  153.                     case 3: UI.Notify("Stabilizing in emergency state"); Game.Player.Character.Health = Game.Player.Character.Health + 2; break;
  154.                     case 4: UI.Notify("Internal bleeding (deadly) detected. Blackout/death imminent"); Game.Player.Character.Health = Game.Player.Character.Health - 2; break;
  155.                 }
  156.             }
  157.  
  158.             if (Function.Call<bool>(Hash.HAS_PED_BEEN_DAMAGED_BY_WEAPON, Game.Player.Character, 0x99B507EA, 0, true))
  159.             {
  160.                
  161.                 switch (DState)
  162.                 {
  163.                     case 0: UI.Notify("Grazing cut through clothing; superficial damage"); Game.Player.Character.Health = Game.Player.Character.Health + 2; break;
  164.                     case 1: UI.Notify("Long shallow cut on extremities; superficial damage"); Game.Player.Character.Health = Game.Player.Character.Health + 2; break;
  165.                     case 2: UI.Notify("Defense wounds to fingers; superficial damage (capability to grasp impaired)"); Game.Player.Character.Health = Game.Player.Character.Health + 3; break;
  166.                     case 3: UI.Notify("Shallow stab wound/defense wounds to extremities; profuse bleeding"); Game.Player.Character.Health = Game.Player.Character.Health + 3; break;
  167.                     case 4: UI.Notify("Very painful but shallow cut.  Light bleeding detected"); Game.Player.Character.Health = Game.Player.Character.Health - 1; break;
  168.                     case 5: UI.Notify("Stab wound to extremities. Moderate bleeding"); Game.Player.Character.Health = Game.Player.Character.Health - 3; break;
  169.                     case 6: UI.Notify("Deep stab wound detected"); Game.Player.Character.Health = Game.Player.Character.Health - 5; break;
  170.                     case 7: UI.Notify("Possible nerve damage/life threatening bleeding detected"); Game.Player.Character.Health = Game.Player.Character.Health - 6; break;
  171.                     case 8: UI.Notify("Punctured or collapsed lung detected; potentially fatal injury"); Game.Player.Character.Health = Game.Player.Character.Health - 8; break;
  172.                     case 9: UI.Notify("Artery severed"); Game.Player.Character.Health = Game.Player.Character.Health - 12; break;
  173.                 }
  174.             }
  175.             if (Function.Call<bool>(Hash.HAS_PED_BEEN_DAMAGED_BY_WEAPON, Game.Player.Character, 0xF9E6AA4B, 0, true))
  176.             {
  177.                
  178.                 switch (DState)
  179.                 {
  180.                     case 0: UI.Notify("Very light jagged cut through clothing; superficial damage"); Game.Player.Character.Health = Game.Player.Character.Health + 6; break;
  181.                     case 1: UI.Notify("Superficial damage; some glass in wound."); Game.Player.Character.Health = Game.Player.Character.Health + 4; break;
  182.                     case 2: UI.Notify("Defense wounds to fingers; superficial damage (capability to grasp impaired)"); Game.Player.Character.Health = Game.Player.Character.Health + 2; break;
  183.                     case 3: UI.Notify("Shallow stab wound/defense wounds to extremities; profuse bleeding"); Game.Player.Character.Health = Game.Player.Character.Health + 3; break;
  184.                     case 4: UI.Notify("Very painful but shallow cut.  Light bleeding detected"); Game.Player.Character.Health = Game.Player.Character.Health - 1; break;
  185.                     case 5: UI.Notify("Stab wound to extremities. Moderate bleeding"); Game.Player.Character.Health = Game.Player.Character.Health - 3; break;
  186.                     case 6: UI.Notify("Deep stab wound detected"); Game.Player.Character.Health = Game.Player.Character.Health - 5; break;
  187.                     case 7: UI.Notify("Possible nerve damage/life threatening bleeding detected"); Game.Player.Character.Health = Game.Player.Character.Health - 3; break;
  188.                     case 8: UI.Notify("Punctured or collapsed lung detected; potentially fatal injury"); Game.Player.Character.Health = Game.Player.Character.Health - 3; break;
  189.                     case 9: UI.Notify("A chunk of the bottle breaks off!"); Game.Player.Character.Health = Game.Player.Character.Health - 1; break;
  190.                 }
  191.             }
  192.             if (Function.Call<bool>(Hash.HAS_PED_BEEN_DAMAGED_BY_WEAPON, Game.Player.Character, 0x92A27487, 0, true))
  193.             {
  194.                
  195.                 switch (DState)
  196.                 {
  197.                     case 0: UI.Notify("Grazing cut through clothing; superficial damage"); Game.Player.Character.Health = Game.Player.Character.Health + 2; break;
  198.                     case 1: UI.Notify("Long shallow cut on extremities; superficial damage"); Game.Player.Character.Health = Game.Player.Character.Health + 2; break;
  199.                     case 2: UI.Notify("Defense wounds to fingers; superficial damage (capability to grasp impaired)"); Game.Player.Character.Health = Game.Player.Character.Health + 3; break;
  200.                     case 3: UI.Notify("Shallow stab wound/defense wounds to extremities; profuse bleeding"); Game.Player.Character.Health = Game.Player.Character.Health + 3; break;
  201.                     case 4: UI.Notify("Very painful but shallow cut.  Light bleeding detected"); Game.Player.Character.Health = Game.Player.Character.Health - 1; break;
  202.                     case 5: UI.Notify("Stab wound to extremities. Moderate bleeding"); Game.Player.Character.Health = Game.Player.Character.Health - 3; break;
  203.                     case 6: UI.Notify("Deep stab wound detected"); Game.Player.Character.Health = Game.Player.Character.Health - 5; break;
  204.                     case 7: UI.Notify("Possible nerve damage/life threatening bleeding detected"); Game.Player.Character.Health = Game.Player.Character.Health - 6; break;
  205.                     case 8: UI.Notify("Punctured or collapsed lung detected; potentially fatal injury"); Game.Player.Character.Health = Game.Player.Character.Health - 8; break;
  206.                     case 9: UI.Notify("Artery severed"); Game.Player.Character.Health = Game.Player.Character.Health - 12; break;
  207.                 }
  208.             }
  209.             if (Function.Call<bool>(Hash.HAS_PED_BEEN_DAMAGED_BY_WEAPON, Game.Player.Character, 0x1B06D571, 0, true))
  210.             {
  211.                
  212.                 switch (FState)
  213.                 {
  214.                     case 0: UI.Notify("Grazing puncture through soft tissue only; superficial damage"); Game.Player.Character.Health = Game.Player.Character.Health + 2; break;
  215.                     case 1: UI.Notify("Long shallow GSW on extremities; superficial damage and some bleeding"); Game.Player.Character.Health = Game.Player.Character.Health - 2; break;
  216.                     case 2: UI.Notify("Significant damage from small-caliber GSW"); Game.Player.Character.Health = Game.Player.Character.Health + 3; break;
  217.                     case 3: UI.Notify("Internal bleeding from GSW path"); Game.Player.Character.Health = Game.Player.Character.Health - 2; break;
  218.                     case 4: UI.Notify("Graze injury from richochet/fragment to extremities. Light bleeding detected"); Game.Player.Character.Health = Game.Player.Character.Health - 1; break;
  219.                     case 5: UI.Notify("Through-and-through small caliber gunshot wound to extremities. Moderate bleeding"); Game.Player.Character.Health = Game.Player.Character.Health - 3; break;
  220.                     case 6: UI.Notify("Spalling/Fragmentation risk detected; bleeding continues"); Game.Player.Character.Health = Game.Player.Character.Health - 5; break;
  221.                     case 7: UI.Notify("Possible nerve damage/life threatening bleeding detected"); Game.Player.Character.Health = Game.Player.Character.Health - 6; break;
  222.                     case 8: UI.Notify("Punctured or collapsed lung detected; potentially fatal injury"); Game.Player.Character.Health = Game.Player.Character.Health - 8; break;
  223.                     case 9: UI.Notify("Artery severed"); Game.Player.Character.Health = Game.Player.Character.Health - 12; break;
  224.                 }
  225.             }
  226.            
  227.             if (Function.Call<bool>(Hash.HAS_PED_BEEN_DAMAGED_BY_WEAPON, Game.Player.Character, 0xA2719263, 0, true))
  228.             {
  229.                
  230.                 switch (LState)
  231.                 {
  232.                     case 0: UI.Notify("Very light bruising"); Game.Player.Character.Health = Game.Player.Character.Health + 1; break;
  233.                     case 1: UI.Notify("Possible small-joint strain detected"); Game.Player.Character.Health = Game.Player.Character.Health + 2; break;
  234.                     case 2: UI.Notify("Bruised or fractured pinky finger, left hand"); Game.Player.Character.Health = Game.Player.Character.Health + 1; break;
  235.                     case 3: UI.Notify("Winded from impact"); Game.Player.Character.Health = Game.Player.Character.Health + 3; break;
  236.                     case 4: UI.Notify("Injured from impact"); Game.Player.Character.Health = Game.Player.Character.Health + 1; break;
  237.                     case 5: UI.Notify("Stunned from impact"); Game.Player.Character.Health = Game.Player.Character.Health - 1; break;
  238.                     case 6: UI.Notify("Mobility temporarily limited from impact"); Game.Player.Character.Health = Game.Player.Character.Health + 3; break;
  239.                     case 7: UI.Notify("Dazed from blow"); Game.Player.Character.Health = Game.Player.Character.Health - 2; break;
  240.                     case 8: UI.Notify("Major blunt trauma/TBI detected"); Game.Player.Character.Health = Game.Player.Character.Health - 1; break;
  241.                     case 9: UI.Notify("Blackout possible"); Game.Player.Character.Health = Game.Player.Character.Health - 1; break;
  242.                 }
  243.             }
  244.             if (Function.Call<bool>(Hash.HAS_PED_BEEN_DAMAGED_BY_WEAPON, Game.Player.Character, 0x4E875F73, 0, true))
  245.             {
  246.                
  247.                 switch (LState)
  248.                 {
  249.                     case 0: UI.Notify("Very light bruising"); Game.Player.Character.Health = Game.Player.Character.Health + 4; break;
  250.                     case 1: UI.Notify("Glancing blow from hammer; bruised extremities"); Game.Player.Character.Health = Game.Player.Character.Health + 2; break;
  251.                     case 2: UI.Notify("Possible concussion"); Game.Player.Character.Health = Game.Player.Character.Health + 3; break;
  252.                     case 3: UI.Notify("Winded from impact"); Game.Player.Character.Health = Game.Player.Character.Health + 3; break;
  253.                     case 4: UI.Notify("Injured from impact"); Game.Player.Character.Health = Game.Player.Character.Health + 1; break;
  254.                     case 5: UI.Notify("Stunned from impact"); Game.Player.Character.Health = Game.Player.Character.Health + 1; break;
  255.                     case 6: UI.Notify("Mobility temporarily limited from impact"); Game.Player.Character.Health = Game.Player.Character.Health + 3; break;
  256.                     case 7: UI.Notify("Dazed from blow"); Game.Player.Character.Health = Game.Player.Character.Health - 2; break;
  257.                     case 8: UI.Notify("Major blunt trauma/TBI detected"); Game.Player.Character.Health = Game.Player.Character.Health - 4; break;
  258.                     case 9: UI.Notify("Possible broken collarbone detected"); Game.Player.Character.Health = Game.Player.Character.Health - 1; break;
  259.                 }
  260.             }
  261.             if (Function.Call<bool>(Hash.HAS_PED_BEEN_DAMAGED_BY_WEAPON, Game.Player.Character, 0x678B81B1, 0, true))
  262.             {
  263.                
  264.                 Game.Player.Character.Health = Game.Player.Character.Health + 1;
  265.                 switch (LState)
  266.                 {
  267.                     case 0: UI.Notify("Very light bruising; glancing blow connected"); Game.Player.Character.Health = Game.Player.Character.Health + 4; break;
  268.                     case 1: UI.Notify("Grazing blow past extremities"); Game.Player.Character.Health = Game.Player.Character.Health + 2; break;
  269.                     case 2: UI.Notify("Possible concussion from nightstick detected"); Game.Player.Character.Health = Game.Player.Character.Health + 3; break;
  270.                     case 3: UI.Notify("Winded from impact"); Game.Player.Character.Health = Game.Player.Character.Health + 3; break;
  271.                     case 4: UI.Notify("Injured from impact"); Game.Player.Character.Health = Game.Player.Character.Health + 1; break;
  272.                     case 5: UI.Notify("Forearm damaged from nightstick contact"); Game.Player.Character.Health = Game.Player.Character.Health + 1; break;
  273.                     case 6: UI.Notify("Mobility temporarily limited from impact"); Game.Player.Character.Health = Game.Player.Character.Health + 3; break;
  274.                     case 7: UI.Notify("Dazed from blow"); Game.Player.Character.Health = Game.Player.Character.Health - 2; break;
  275.                     case 8: UI.Notify("Major blunt trauma/TBI detected"); Game.Player.Character.Health = Game.Player.Character.Health - 4; break;
  276.                     case 9: UI.Notify("Possible broken collarbone detected"); Game.Player.Character.Health = Game.Player.Character.Health - 1; break;
  277.                 }
  278.             }
  279.                 if (Function.Call<bool>(Hash.HAS_PED_BEEN_DAMAGED_BY_WEAPON, Game.Player.Character, 0x958A4A8F, 0, true))
  280.                 {
  281.                
  282.                 switch (LState)
  283.                     {
  284.                         case 0: UI.Notify("Very light bruising"); Game.Player.Character.Health = Game.Player.Character.Health + 4; break;
  285.                         case 1: UI.Notify("Possible small-joint strain detected"); Game.Player.Character.Health = Game.Player.Character.Health + 2; break;
  286.                         case 2: UI.Notify("Bruised or fractured pinky finger, left hand"); Game.Player.Character.Health = Game.Player.Character.Health + 3; break;
  287.                         case 3: UI.Notify("Winded from impact"); Game.Player.Character.Health = Game.Player.Character.Health + 3; break;
  288.                         case 4: UI.Notify("Injured from impact"); Game.Player.Character.Health = Game.Player.Character.Health + 1; break;
  289.                         case 5: UI.Notify("Stunned from impact"); Game.Player.Character.Health = Game.Player.Character.Health + 1; break;
  290.                         case 6: UI.Notify("Mobility temporarily limited from impact"); Game.Player.Character.Health = Game.Player.Character.Health + 3; break;
  291.                         case 7: UI.Notify("Dazed from blow"); Game.Player.Character.Health = Game.Player.Character.Health - 2; break;
  292.                         case 8: UI.Notify("Major blunt trauma/TBI detected"); Game.Player.Character.Health = Game.Player.Character.Health - 1; break;
  293.                         case 9: UI.Notify("Blackout possible"); Game.Player.Character.Health = Game.Player.Character.Health - 1; break;
  294.                     }
  295.             }
  296.            
  297.  
  298.             if (Game.Player.Character.IsAlive)
  299.                     {
  300.                         if (!Function.Call<bool>(Hash.HAS_ANIM_SET_LOADED, AnimationName))
  301.                         {
  302.                             Function.Call(Hash.REQUEST_ANIM_SET, AnimationName);
  303.  
  304.  
  305.                         }
  306.                         else
  307.                         {
  308.                             Function.Call(Hash.SET_PED_MOVEMENT_CLIPSET, Game.Player.Character, AnimationName, 1.0f);
  309.  
  310.                         }
  311.                     }
  312.                 }
  313.             }
  314.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement