BDGAME

Hospital system

May 26th, 2014
324
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.41 KB | None | 0 0
  1. #include <a_samp>
  2. #include <zcmd>
  3. #include <sscanf2>
  4.  
  5. new bool:QuickCure[MAX_PLAYERS] = true;
  6. new bool:Died[MAX_PLAYERS] = false;
  7.  
  8. new TimeOfRecovery;
  9.  
  10. new HospitalTime[MAX_PLAYERS] = 0;
  11.  
  12. new Float:StretcherAfterDeath[6][4] = {
  13.             {1159.7764, -1305.0938, 9281.3076, 95.8811},
  14.             {1161.3806, -1305.1771, 9281.3076, 88.9876},
  15.             {1163.3702, -1305.0962, 9281.3076, 91.7352},
  16.             {1165.2333, -1305.1454, 9281.3076, 91.2044},
  17.             {1166.9817, -1305.3794, 9281.3076, 90.8186},
  18.             {1168.7142, -1305.3842, 9281.3076, 90.1919}
  19. };
  20.  
  21. public OnFilterScriptInit()
  22. {
  23.     print("\n\n\n          Hospital systema");
  24.     print("                     by: Rodney Francalim\n\n\n");
  25.  
  26.     TimeOfRecovery = SetTimer("Recovered", 1000, true);
  27.  
  28.     // Hospital - Interior
  29.     CreateObject(14595,1175.05078125,-1328.92089844,9283.52246094,0.00000000,0.00000000,0.00000000); //object(paperchase02) (1)
  30.     CreateObject(5020,1178.11718750,-1340.39355469,9281.22070312,0.00000000,0.00000000,0.00000000); //object(mul_las) (1)
  31.     CreateObject(5020,1178.11621094,-1340.39746094,9282.38867188,0.00000000,0.00000000,0.00000000); //object(mul_las) (2)
  32.     CreateObject(14598,1175.03491211,-1328.92651367,9283.51562500,0.00000000,0.00000000,0.00000000); //object(paperchase_glass) (1)
  33.     CreateObject(1523,1174.26074219,-1315.62304688,9279.56933594,0.00000000,0.00000000,0.00000000); //object(gen_doorext10) (1)
  34.     CreateObject(1704,1170.88537598,-1333.26599121,9279.56933594,0.00000000,0.00000000,180.00000000); //object(kb_chair03) (1)
  35.     CreateObject(1704,1167.13879395,-1325.55065918,9279.56933594,0.00000000,0.00000000,59.99938965); //object(kb_chair03) (2)
  36.     CreateObject(1726,1169.29589844,-1324.67285156,9279.56933594,0.00000000,0.00000000,0.00000000); //object(mrk_seating2) (1)
  37.     CreateObject(2293,1170.42285156,-1331.69628906,9279.49316406,0.00000000,0.00000000,0.00000000); //object(swk_1_fstool) (1)
  38.     CreateObject(3383,1170.69042969,-1305.55371094,9279.56933594,0.00000000,0.00000000,270.00000000); //object(a51_labtable1_) (1)
  39.     CreateObject(1671,1180.88574219,-1332.81640625,9280.02929688,0.00000000,0.00000000,159.99938965); //object(swivelchair_a) (1)
  40.     CreateObject(1705,1182.30761719,-1329.62500000,9279.56933594,0.00000000,0.00000000,319.49890137); //object(kb_chair04) (1)
  41.     CreateObject(2008,1180.47851562,-1331.94335938,9279.56933594,0.00000000,0.00000000,0.00000000); //object(officedesk1) (1)
  42.     CreateObject(1705,1179.29589844,-1330.18066406,9279.56933594,0.00000000,0.00000000,50.74584961); //object(kb_chair04) (2)
  43.     CreateObject(1808,1183.95117188,-1324.01953125,9279.56933594,0.00000000,0.00000000,319.99877930); //object(cj_watercooler2) (1)
  44.     CreateObject(1808,1177.81542969,-1334.52636719,9279.54980469,0.00000000,0.00000000,265.99548340); //object(cj_watercooler2) (2)
  45.     CreateObject(630,1179.38964844,-1324.77050781,9280.59472656,0.00000000,0.00000000,0.00000000); //object(veg_palmkb8) (1)
  46.     CreateObject(632,1165.56054688,-1325.03710938,9280.01855469,0.00000000,0.00000000,0.00000000); //object(veg_palmkb7) (1)
  47.     CreateObject(2245,1169.67956543,-1326.65368652,9280.30957031,0.00000000,0.00000000,0.00000000); //object(plant_pot_11) (1)
  48.     CreateObject(2251,1167.75500488,-1331.84020996,9280.84375000,0.00000000,0.00000000,0.00000000); //object(plant_pot_20) (1)
  49.     CreateObject(8659,1158.04785156,-1329.11425781,9280.56933594,0.00000000,0.00000000,90.00000000); //object(shbbyhswall11_lvs) (1)
  50.     CreateObject(8659,1158.03710938,-1329.11816406,9282.56542969,0.00000000,0.00000000,90.00000000); //object(shbbyhswall11_lvs) (2)
  51.     CreateObject(1997,1159.63012695,-1304.87231445,9279.56933594,0.00000000,0.00000000,0.00000000); //object(hos_trolley) (1)
  52.     CreateObject(1997,1161.32995605,-1304.96093750,9279.56933594,0.00000000,0.00000000,0.00000000); //object(hos_trolley) (2)
  53.     CreateObject(1997,1163.31799316,-1304.97705078,9279.56933594,0.00000000,0.00000000,0.00000000); //object(hos_trolley) (3)
  54.     CreateObject(1997,1165.15136719,-1304.99511719,9279.56933594,0.00000000,0.00000000,0.00000000); //object(hos_trolley) (4)
  55.     CreateObject(1997,1166.90063477,-1305.08386230,9279.56933594,0.00000000,0.00000000,0.00000000); //object(hos_trolley) (5)
  56.     CreateObject(1997,1168.62402344,-1305.17089844,9279.56933594,0.00000000,0.00000000,0.00000000); //object(hos_trolley) (6)
  57.     CreateObject(1663,1161.26855469,-1340.80761719,9280.03613281,0.00000000,0.00000000,129.99572754); //object(swivelchair_b) (1)
  58.     CreateObject(2009,1161.20410156,-1339.68261719,9279.56933594,0.00000000,0.00000000,270.00000000); //object(officedesk2l) (1)
  59.     CreateObject(2182,1160.41992188,-1342.13964844,9279.76660156,0.00000000,0.00000000,90.00000000); //object(med_office5_desk_1) (1)
  60.     CreateObject(1727,1164.51782227,-1340.79711914,9279.57617188,0.00000000,0.00000000,239.99818420); //object(mrk_seating2b) (1)
  61.     CreateObject(1727,1163.76611328,-1338.29174805,9279.56933594,0.00000000,0.00000000,309.99572754); //object(mrk_seating2b) (2)
  62.     CreateObject(1808,1162.06445312,-1342.57324219,9279.54980469,0.00000000,0.00000000,185.99304199); //object(cj_watercooler2) (3)
  63.     CreateObject(2921,1177.98413086,-1345.60217285,9282.83789062,0.00000000,0.00000000,330.00000000); //object(kmb_cam) (1)
  64.     CreateObject(2921,1158.33374023,-1324.11962891,9282.86621094,0.00000000,0.00000000,189.99633789); //object(kmb_cam) (2)
  65.     CreateObject(2921,1158.86291504,-1342.73022461,9282.51660156,0.00000000,0.00000000,259.99206543); //object(kmb_cam) (3)
  66.     CreateObject(2921,1183.56713867,-1323.83264160,9282.76855469,0.00000000,0.00000000,89.99145508); //object(kmb_cam) (4)
  67.     CreateObject(2921,1171.99426270,-1316.56140137,9282.96093750,0.00000000,0.00000000,139.98901367); //object(kmb_cam) (5)
  68.     CreateObject(3391,1175.07373047,-1305.24548340,9279.56933594,0.00000000,0.00000000,0.00000000); //object(a51_sdsk_ncol2_) (1)
  69.     CreateObject(3390,1175.03552246,-1308.79077148,9279.56933594,0.00000000,0.00000000,0.00000000); //object(a51_sdsk_ncol1_) (1)
  70.     CreateObject(3395,1173.14868164,-1304.05212402,9279.56933594,0.00000000,0.00000000,90.00000000); //object(a51_sdsk_3_) (1)
  71.     CreateObject(1726,1165.95532227,-1333.03588867,9279.56933594,0.00000000,0.00000000,90.00000000); //object(mrk_seating2) (3)
  72.     CreateObject(2370,1167.54455566,-1332.17419434,9279.16308594,0.00000000,0.00000000,0.00000000); //object(shop_set_1_table) (1)
  73.     CreateObject(2370,1169.28820801,-1327.00036621,9279.18847656,0.00000000,0.00000000,0.00000000); //object(shop_set_1_table) (2)
  74.     CreateObject(2855,1168.29309082,-1331.32019043,9280.00976562,0.00000000,0.00000000,0.00000000); //object(gb_bedmags05) (1)
  75.     CreateObject(2852,1170.00463867,-1326.30114746,9280.03515625,0.00000000,0.00000000,0.00000000); //object(gb_bedmags02) (1)
  76.     CreateObject(1997,1160.23461914,-1335.54052734,9279.56933594,0.00000000,0.00000000,90.00000000); //object(hos_trolley) (6)
  77.     CreateObject(1240,1174.99108887,-1315.88146973,9282.52148438,0.00000000,0.00000000,0.00000000); //object(health) (1)
  78.     CreateObject(1241,1164.36645508,-1333.81457520,9282.55859375,0.00000000,0.00000000,0.00000000); //object(adrenaline) (1)
  79.  
  80.     AddStaticPickup(1318, 1, 1172.5526, -1323.2614, 15.4028, -1);                                                  // ENTER HOSPITAL
  81.  
  82.     Create3DTextLabel("Hospital - Los Santos\n/enter", 0x008080FF, 1172.5526, -1323.2614, 15.4028, 20.0, 0, 0);   // ENTER HOSPITAL
  83.     Create3DTextLabel("Los Santos\n/exit", 0x008080FF, 1177.3695, -1340.4095, 9280.5693, 20.0, 0, 0);               // EXIT HOSPITAL
  84.     Create3DTextLabel("Quick cure\n/healme", 0x008080FF, 1163.2344, -1340.1019, 9280.5693, 20.0, 0, 0);           // QUICK CURE
  85.     return 1;
  86. }
  87.  
  88. public OnPlayerConnect(playerid)
  89. {
  90.     SendClientMessage(playerid, 0x008080FF, "This server uses the hospital system, por: Rodney Francalim");
  91.     return 1;
  92. }
  93.  
  94. public OnPlayerSpawn(playerid)
  95. {
  96.     SendClientMessage(playerid, 0x008080FF, "This server uses the hospital system, por: Rodney Francalim");
  97.     if(Died[playerid])
  98.     {
  99.         SetPlayerHealth(playerid, 5.0);
  100.         new randstretcher = random(sizeof(StretcherAfterDeath));
  101.         SetPlayerPos(playerid, StretcherAfterDeath[randstretcher][0], StretcherAfterDeath[randstretcher][1], StretcherAfterDeath[randstretcher][2]);
  102.         SetPlayerFacingAngle(playerid, StretcherAfterDeath[randstretcher][3]);
  103.         SetPlayerInterior(playerid, 1);
  104.         ClearAnimations(playerid);
  105.         ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
  106.         SetPlayerCameraPos(playerid, 1159.3287, -1314.6178, 9282.0693);
  107.         SetPlayerCameraLookAt(playerid, 1164.3419, -1305.1895, 9280.5693);
  108.         GameTextForPlayer(playerid, "~r~You will be recovered at some seconds~n~Wait...", 60000, 4);
  109.         return 1;
  110.     }
  111.     return 1;
  112. }
  113.  
  114. CMD:enter(playerid)
  115. {
  116.     if(IsPlayerInRangeOfPoint(playerid, 1.0, 1172.5526, -1323.2614, 15.4028))
  117.     {
  118.         SetPlayerInterior(playerid, 1);
  119.         SetPlayerPos(playerid, 1177.3695, -1340.4095, 9280.5693);
  120.         GameTextForPlayer(playerid, "~r~Hospital", 5000, 1);
  121.         SetPlayerFacingAngle(playerid, 90);
  122.         SetCameraBehindPlayer(playerid);
  123.     }
  124.     else SendClientMessage(playerid, 0xA9C4E4AA, "{FF0000}(ERROR){A9C4E4}: You aren't at a door.");
  125.     return 1;
  126. }
  127.  
  128. CMD:exit(playerid)
  129. {
  130.     if(IsPlayerInRangeOfPoint(playerid, 1.0, 1177.3695, -1340.4095, 9280.5693))
  131.     {
  132.         SetPlayerInterior(playerid, 0);
  133.         SetPlayerPos(playerid, 1172.5526, -1323.2614, 15.4028);
  134.         GameTextForPlayer(playerid, "~w~Los Santos", 5000, 1);
  135.         SetPlayerFacingAngle(playerid, 270);
  136.         SetCameraBehindPlayer(playerid);
  137.     }
  138.     else SendClientMessage(playerid, 0xA9C4E4AA, "{FF0000}(ERROR){A9C4E4}: You aren't at a door.");
  139.     return 1;
  140. }
  141.  
  142. CMD:healme(playerid)
  143. {
  144.     new Float:life;
  145.     GetPlayerHealth(playerid, life);
  146.     if(!IsPlayerInRangeOfPoint(playerid, 2.0, 1163.2344, -1340.1019, 9280.5693)) return SendClientMessage(playerid, 0xA9C4E4AA, "{FF0000}(ERROR){A9C4E4}: You need be at the first aid station, to heal yourself.");
  147.     if(!QuickCure[playerid]) return SendClientMessage(playerid, 0xA9C4E4AA, "{FF0000}(ERROR){A9C4E4}: You can't use it now. Back here adter 5 minutes.");
  148.     if(life > 50) return SendClientMessage(playerid, 0xA9C4E4AA, "{FF0000}(ERROR){A9C4E4}: You aren't hurt enough to a heal.");
  149.     else
  150.     {
  151.         new denominator = random(4);
  152.         SetPlayerHealth(playerid, life + life/denominator+1);
  153.         SetTimer("BlockHealMe", 300000, false);
  154.         QuickCure[playerid] = false;
  155.     }
  156.     return 1;
  157. }
  158.  
  159. public OnPlayerDeath(playerid, killerid, reason)
  160. {
  161.     Died[playerid] = true;
  162.     return 1;
  163. }
  164.  
  165. forward BlockHealMe(playerid);
  166. public BlockHealMe(playerid) return QuickCure[playerid] = true, 1;
  167.  
  168. forward Recovered();
  169. public Recovered()
  170. {
  171.     for(new p = 0; p < MAX_PLAYERS; p++)
  172.     {
  173.         if(Died[playerid])
  174.         {
  175.             HospitalTime[p]++;
  176.             new Float:life;
  177.             GetPlayerHealth(p, life);
  178.             ApplyAnimation(p, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
  179.             switch(HospitalTime[p])
  180.             {
  181.                 case 1 .. 59:
  182.                 {
  183.                     SetPlayerHealth(p, life+1);
  184.                 }
  185.                 case 60:
  186.                 {
  187.                     Died[p] = false;
  188.                     SendClientMessage(p, 0xA9C4E4AA, "");
  189.                     SendClientMessage(p, 0xA9C4E4AA, "{DD2222}Doctor{FFFFFF} says: You are restore. Be careful.");
  190.                     ClearAnimations(p);
  191.                     SetPlayerPos(p, 1175.0963, -1318.3589, 9280.5693);
  192.                     SetCameraBehindPlayer(p);
  193.                     SetPlayerFacingAngle(p, 177.8791);
  194.                     SetPlayerInterior(p, 1);
  195.                     HospitalTime[p] = 0;
  196.                 }
  197.             }
  198.         }
  199.     }
  200.     return 1;
  201. }
  202.  
  203. public OnFilterScriptExit()
  204. {
  205.     KillTimer(TimeOfRecovery);
  206.     return 1;
  207. }
Advertisement
Add Comment
Please, Sign In to add comment