Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

Realistic Nuke Script v2

By: a guest on Jun 8th, 2011  |  syntax: None  |  size: 9.09 KB  |  views: 266  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. // This is a comment
  2. // uncomment the line below if you want to write a filterscript
  3. #define FILTERSCRIPT
  4.  
  5. #include <a_samp>
  6.  
  7. #if defined FILTERSCRIPT
  8.  
  9. public OnFilterScriptInit()
  10. {
  11.         print("\n--------------------------------------");
  12.         print(" Nuclear Bomb | BlackWidow ");
  13.         // Please do not edit this tag //
  14.         print("--------------------------------------\n");
  15.         return 1;
  16. }
  17.  
  18. public OnFilterScriptExit()
  19. {
  20.         return 1;
  21. }
  22.  
  23. #endif
  24. //==============================================================================
  25. //===========================Customizeable Settings=============================
  26. //==============================================================================
  27. //
  28. // #define savelog true // change to "false" to disable logging. [coming soon]
  29. //
  30. //==============================================================================
  31. //==============================END CUSTOMIZATION===============================
  32. //==============================================================================
  33. //
  34. //==============================================================================
  35. //============================DO NOT EDIT THIS BELLOW===========================
  36. //==============================================================================
  37. #define COLOR_RED 0xAA3333AA
  38. #define COLOR_GREY 0xAFAFAFAA
  39. #define COLOR_ADMINCMD 0x007E96F6
  40.  
  41. new bool:nuke = false;
  42. new bool:nukea = false;
  43. new bool:nukeb = false;
  44. new bool:nukec = false;
  45. new bool:nuked = false;
  46. //new bool:fallout = false; planned for later version
  47. new bool:safecar[MAX_PLAYERS];
  48. //new Engine[MAX_VEHICLES]; planned for later version
  49. new nuketimer1;
  50. new fallouthp;
  51.  
  52. //CUSTOMS
  53. new bool:lhp = true; // change this to false to disable health loss in fallout.
  54. forward makenuke(playerid);
  55. forward nuketimer();
  56. forward LaunchNuke();
  57. forward writelog(playerid);
  58. forward Fallout();
  59. forward fallouttime();
  60. forward destroynuke(playerid);
  61. //==============================================================================
  62. //================================END VARIABLE SETS=============================
  63. //==============================================================================
  64. public OnPlayerCommandText(playerid, cmdtext[])
  65. {
  66.         if (strcmp("/makenuke", cmdtext, true, 10) == 0)
  67.         {
  68.                 // YOU CAN INSERT IF HERE FOR GROUP/GANG/FACTION/ADMIN CHECK
  69.                 makenuke(playerid); // Starts Make Nuke Public, and Sends PlayerID
  70.                 //  CLOSE IF STATEMENT; IF USED
  71.                 return 1;
  72.                
  73.         }
  74.         if (strcmp("/launchnuke", cmdtext, true, 10) == 0)
  75.         {
  76.                 if (nuke == true)
  77.                 {
  78.                 LaunchNuke();
  79.                 }
  80.         }
  81.         if (strcmp("/nukea", cmdtext, true, 10) ==0)
  82.         {
  83.             if(IsPlayerAdmin(playerid))
  84.             {
  85.                 SetPlayerPos(playerid, -62.238136, -1116.629028, 1.078125);
  86.                 }
  87.                 else
  88.                 {
  89.                     return 0;
  90.                 }
  91.                 return 1;
  92.         }
  93.         if (strcmp("/nukeb", cmdtext, true, 10) ==0)
  94.         {
  95.             if(IsPlayerAdmin(playerid))
  96.             {
  97.                 SetPlayerPos(playerid, 263.488922, 21.603782, 3.433196);
  98.                 }
  99.                 else
  100.                 {
  101.                     return 0;
  102.                 }
  103.                 return 1;
  104.         }
  105.         if (strcmp("/nukec", cmdtext, true, 10) ==0)
  106.         {
  107.             if(IsPlayerAdmin(playerid))
  108.             {
  109.                 SetPlayerPos(playerid, 1080.911132, -345.248352, 73.984832);
  110.                 }
  111.                 else
  112.                 {
  113.                     return 0;
  114.                 }
  115.                 return 1;
  116.         }
  117.         if (strcmp("/nuked", cmdtext, true, 10) ==0)
  118.         {
  119.             if(IsPlayerAdmin(playerid))
  120.             {
  121.                 SetPlayerPos(playerid, 2755.711181, -2534.867431, 13.645303);
  122.                 }
  123.                 else
  124.                 {
  125.                     return 0;
  126.                 }
  127.                 return 1;
  128.         }
  129.         return 0;
  130. }
  131.  
  132. public makenuke(playerid)
  133. {
  134.         if(nukea == true) return SendClientMessage(playerid, COLOR_RED, "A nuke is already under construction"); // prevents dual nuke
  135.         if(nukeb == true) return SendClientMessage(playerid, COLOR_RED, "A nuke is already under construction"); // preventd dual nuke
  136.         if(nukec == true) return SendClientMessage(playerid, COLOR_RED, "A nuke is already under construction"); // prevents dual nuke
  137.         if(nuked == true) return SendClientMessage(playerid, COLOR_RED, "A nuke is already under construction"); // prevents dual nuke
  138.     if(IsPlayerInRangeOfPoint(playerid, 25.0, -62.238136, -1116.629028, 1.078125))
  139.     {
  140.                 SendClientMessageToAll(COLOR_RED, "NEWS WIRE: Unconfirmed reports state a local terror cell has began building a nuclear bomb");
  141.                 nuketimer1 = SetTimer("nuketimer",120000,false); // 2 mins before nuke will be finised.
  142.                 nukea = true;
  143.                 nukeb = false;
  144.                 nukec = false;
  145.                 nuked = false;
  146.         }
  147.     else if(IsPlayerInRangeOfPoint(playerid, 25.0, 263.488922, 21.603782, 3.433196))
  148.     {
  149.                 SendClientMessageToAll(COLOR_RED, "NEWS WIRE: Unconfirmed reports state a local terror cell has began building a nuclear bomb");
  150.                 nuketimer1 = SetTimer("nuketimer",120000,false); // 2 mins before nuke will be finised.
  151.                 nukea = false;
  152.                 nukeb = true;
  153.                 nukec = false;
  154.                 nuked = false;
  155.         }
  156.         else if(IsPlayerInRangeOfPoint(playerid, 25.0, 1080.911132, -345.248352, 73.984832))
  157.     {
  158.                 SendClientMessageToAll(COLOR_RED, "NEWS WIRE: Unconfirmed reports state a local terror cell has began building a nuclear bomb");
  159.                 nuketimer1 = SetTimer("nuketimer",120000,false); // 2 mins before nuke will be finised.
  160.                 nukea = false;
  161.                 nukeb = false;
  162.                 nukec = true;
  163.                 nuked = false;
  164.         }
  165.         else if(IsPlayerInRangeOfPoint(playerid, 25.0, 2755.711181, -2534.867431, 13.645303))
  166.     {
  167.                 SendClientMessageToAll(COLOR_RED, "NEWS WIRE: Unconfirmed reports state a local terror cell has began building a nuclear bomb");
  168.                 nuketimer1 = SetTimer("nuketimer",120000,false); // 2 mins before nuke will be finised.
  169.                 nukea = false;
  170.                 nukeb = false;
  171.                 nukec = false;
  172.                 nuked = true;
  173.         }
  174.         else
  175.         {
  176.             SendClientMessage(playerid, COLOR_GREY,("You are not at a nuke construction site")); // not at site
  177.         }
  178.         return 1;
  179. }
  180. public nuketimer() //after devince created
  181. {
  182.         SendClientMessageToAll(COLOR_RED, "NEWS WIRE: Confirmed reportes state a local terror cell has successfuly created a nuclear device");
  183.         nuke = true;
  184.         KillTimer(nuketimer1);
  185. }
  186. public LaunchNuke()
  187. {
  188.         for(new i=0; i<MAX_PLAYERS; i++)
  189.         {
  190.         if(IsPlayerConnected(i))
  191.         {
  192.         if(IsPlayerInRangeOfPoint(i, 250.0, 275.951751, 1816.600341, 1.007812))
  193.         {
  194.         // no action
  195.         }
  196.         else
  197.         {
  198.                 new Float:x, Float:y, Float:z;
  199.                 if(IsPlayerInAnyVehicle(i))
  200.                 {
  201.                         RemovePlayerFromVehicle(i);
  202.                         SendClientMessage(i, COLOR_RED, "A light in sky forces you out of your car");
  203.                 }
  204.                 GetPlayerPos(i, x, y, z);
  205.                 SetPlayerHealth(i, 20);
  206.         CreateExplosion(x+random(5), y+random(5), z+random(5), 7, 250.0);
  207.                 GameTextForAll("~n~~r~Nuclear Device Launched",10000,5);
  208.                 //fallout = true; planned.
  209.         Fallout();
  210.         fallouthp = SetTimer("Fallout",6000,false);
  211.                 SetTimer("fallouttime",420000,false);
  212.         SetWeather(19);
  213.      }
  214.         }
  215.   }
  216.         return 1;
  217. }
  218. public Fallout()
  219. {
  220.     for(new i=0; i<MAX_PLAYERS; i++)
  221.         {
  222.         if(lhp == true)
  223.         {
  224.                 if(IsPlayerConnected(i))
  225.                 {
  226.                     new Float:health;
  227.                         GetPlayerHealth(i, health);
  228.                         if(safecar[i] == true)
  229.                 {
  230.                                 SetPlayerDrunkLevel(i, 0);
  231.                                 fallouthp = SetTimer("Fallout",16000,false);
  232.                                 SetPlayerHealth(i, health - 1.0);
  233.                         }
  234.                         else if(safecar[i] == false)
  235.                         {
  236.                             SetPlayerDrunkLevel(i, 3000);
  237.                             fallouthp = SetTimer("Fallout",16000,false);
  238.                         SetPlayerHealth(i, health - 3.0);
  239.                         }
  240.                 }
  241.          }
  242.                 }
  243.         return 1;
  244. }
  245.  
  246. public fallouttime()
  247. {
  248.         SetWeather(0);
  249.         //fallout = false; planned.
  250.         KillTimer(fallouthp);
  251.         return 1;
  252. }
  253. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  254. {
  255.                         if(GetVehicleModel(vehicleid) == 424) // Open Top
  256.                         {
  257.                         safecar[playerid] = false;
  258.                 }
  259.                 else if(GetVehicleModel(vehicleid) == 448) // Open Top
  260.                         {
  261.                         safecar[playerid] = false;
  262.                 }
  263.                 else if(GetVehicleModel(vehicleid) == 468) // Open Top
  264.                         {
  265.                         safecar[playerid] = false;
  266.                 }
  267.                 else if(GetVehicleModel(vehicleid) == 480) // Open Top
  268.                         {
  269.                         safecar[playerid] = false;
  270.                 }
  271.                         else if(GetVehicleModel(vehicleid) == 481) // Open Top
  272.                         {
  273.                         safecar[playerid] = false;
  274.                 }
  275.                 else if(GetVehicleModel(vehicleid) == 500) // Open Top
  276.                         {
  277.                         safecar[playerid] = false;
  278.                 }
  279.                 else if(GetVehicleModel(vehicleid) == 521) // Open Top
  280.                         {
  281.                         safecar[playerid] = false;
  282.                 }
  283.                 else if(GetVehicleModel(vehicleid) == 522) // Open Top
  284.                         {
  285.                         safecar[playerid] = false;
  286.                 }
  287.                 else if(GetVehicleModel(vehicleid) == 523) // Open Top
  288.                         {
  289.                         safecar[playerid] = false;
  290.                 }
  291.                 else if(GetVehicleModel(vehicleid) == 523) // Open Top
  292.                         {
  293.                         safecar[playerid] = false;
  294.                 }
  295.                 else if(GetVehicleModel(vehicleid) == 531) // Open Top
  296.                         {
  297.                         safecar[playerid] = false;
  298.                 }
  299.                 else if(GetVehicleModel(vehicleid) == 533) // Open Top
  300.                         {
  301.                         safecar[playerid] = false;
  302.                 }
  303.                 else if(GetVehicleModel(vehicleid) == 536) // Open Top
  304.                         {
  305.                         safecar[playerid] = false;
  306.                 }
  307.             else if(GetVehicleModel(vehicleid) == 555) // Open Top
  308.                         {
  309.                         safecar[playerid] = false;
  310.                 }
  311.                 else if(GetVehicleModel(vehicleid) == 575) // Open Top
  312.                         {
  313.                         safecar[playerid] = false;
  314.                 }
  315.                 else
  316.                 {
  317.                     safecar[playerid] = true;
  318.                         }
  319.                         return 1;
  320. }
  321. public OnPlayerExitVehicle(playerid, vehicleid)
  322. {
  323.         safecar[playerid] = false;
  324.         return 1;
  325. }