Advertisement
Guest User

Realistic Nuke Script v2.5

a guest
Jul 9th, 2011
1,216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 8.44 KB | None | 0 0
  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. #include <foreach>
  7.  
  8. #if defined FILTERSCRIPT
  9.  
  10. public OnFilterScriptInit()
  11. {
  12.     print("\n--------------------------------------");
  13.     print(" Nuclear Bomb | BlackWidow ");
  14.     // Please do not edit this tag //
  15.     print("--------------------------------------\n");
  16.     return 1;
  17. }
  18.  
  19. public OnFilterScriptExit()
  20. {
  21.     return 1;
  22. }
  23.  
  24. #endif
  25. //==============================================================================
  26. //===========================Customizeable Settings=============================
  27. //==============================================================================
  28. //
  29. // #define savelog true // change to "false" to disable logging. [coming soon]
  30. //
  31. //==============================================================================
  32. //==============================END CUSTOMIZATION===============================
  33. //==============================================================================
  34. //
  35. //==============================================================================
  36. //============================DO NOT EDIT THIS BELLOW===========================
  37. //==============================================================================
  38. #define COLOR_RED 0xAA3333AA
  39. #define COLOR_GREY 0xAFAFAFAA
  40. #define COLOR_ADMINCMD 0x007E96F6
  41.  
  42. new bool:nuke = false;
  43. new bool:nukea = false;
  44. new bool:nukeb = false;
  45. new bool:nukec = false;
  46. new bool:nuked = false;
  47. //new bool:fallout = false; planned for later version
  48. new bool:safecar[MAX_PLAYERS];
  49. new bool:safe[MAX_PLAYERS];
  50. //new Engine[MAX_VEHICLES]; planned for later version
  51. new nuketimer1;
  52. new fallouthp;
  53.  
  54. //CUSTOMS
  55. new bool:fhp = true; // change this to false to disable health loss in fallout.
  56. forward makenuke(playerid);
  57. forward nuketimer();
  58. forward LaunchNuke();
  59. forward writelog(playerid);
  60. forward Fallout();
  61. forward fallouttime();
  62. forward destroynuke(playerid);
  63. //==============================================================================
  64. //================================END VARIABLE SETS=============================
  65. //==============================================================================
  66. public OnPlayerCommandText(playerid, cmdtext[])
  67. {
  68.     if (strcmp("/makenuke", cmdtext, true, 10) == 0)
  69.     {
  70.         // YOU CAN INSERT IF HERE FOR GROUP/GANG/FACTION/ADMIN CHECK
  71.         new name[MAX_PLAYER_NAME], astr[128];
  72.         GetPlayerName(playerid, name, sizeof(name));
  73.         format(astr, sizeof(astr), "%s used /makenuke", name);
  74.         foreach(Player, i)
  75.         {
  76.             if(IsPlayerAdmin(i)) {
  77.                 SendClientMessage(i, COLOR_RED, astr); }
  78.         }
  79.         makenuke(playerid); // Starts Make Nuke Public, and Sends PlayerID
  80.         //  CLOSE IF STATEMENT; IF USED
  81.         return 1;
  82.        
  83.     }
  84.     if (strcmp("/launchnuke", cmdtext, true, 10) == 0)
  85.     {
  86.         if (nuke == true)
  87.         {
  88.         LaunchNuke();
  89.         }
  90.     }
  91.     // admin (rcon) commands
  92.     if (strcmp("/nukea", cmdtext, true, 10) ==0)
  93.     {
  94.         if(IsPlayerAdmin(playerid))
  95.         {
  96.             SetPlayerPos(playerid, -62.238136, -1116.629028, 1.078125);
  97.         }
  98.         else
  99.         {
  100.             return 0;
  101.         }
  102.         return 1;
  103.     }
  104.     if (strcmp("/nukeb", cmdtext, true, 10) ==0)
  105.     {
  106.         if(IsPlayerAdmin(playerid))
  107.         {
  108.             SetPlayerPos(playerid, 263.488922, 21.603782, 3.433196);
  109.         }
  110.         else
  111.         {
  112.             return 0;
  113.         }
  114.         return 1;
  115.     }
  116.     if (strcmp("/nukec", cmdtext, true, 10) ==0)
  117.     {
  118.         if(IsPlayerAdmin(playerid))
  119.         {
  120.             SetPlayerPos(playerid, 1080.911132, -345.248352, 73.984832);
  121.         }
  122.         else
  123.         {
  124.             return 0;
  125.         }
  126.         return 1;
  127.     }
  128.     if (strcmp("/nuked", cmdtext, true, 10) ==0)
  129.     {
  130.         if(IsPlayerAdmin(playerid))
  131.         {
  132.             SetPlayerPos(playerid, 2755.711181, -2534.867431, 13.645303);
  133.         }
  134.         else
  135.         {
  136.             return 0;
  137.         }
  138.         return 1;
  139.     }
  140.     if (strcmp("/nonuke", cmdtext, true, 10) ==0)
  141.     {
  142.         if(IsPlayerAdmin(playerid)) {
  143.             nukea = false;
  144.             nukeb = false;
  145.             nukec = false;
  146.             nuked = false;
  147.             KillTimer(nuketimer1);
  148.             }
  149.         return 1;
  150.     }
  151.     return 0;
  152. }
  153.  
  154. public makenuke(playerid)
  155. {
  156.     if(nukea == true) return SendClientMessage(playerid, COLOR_RED, "A nuke is already under construction"); // prevents dual nuke
  157.     if(nukeb == true) return SendClientMessage(playerid, COLOR_RED, "A nuke is already under construction"); // preventd dual nuke
  158.     if(nukec == true) return SendClientMessage(playerid, COLOR_RED, "A nuke is already under construction"); // prevents dual nuke
  159.     if(nuked == true) return SendClientMessage(playerid, COLOR_RED, "A nuke is already under construction"); // prevents dual nuke
  160.     if(IsPlayerInRangeOfPoint(playerid, 25.0, -62.238136, -1116.629028, 1.078125))
  161.     {
  162.         SendClientMessageToAll(COLOR_RED, "A nuclear bomb is being constructed!");
  163.         nuketimer1 = SetTimer("nuketimer",120000,false); // 2 mins before nuke will be finised.
  164.         nukea = true;
  165.         nukeb = false;
  166.         nukec = false;
  167.         nuked = false;
  168.     }
  169.     else if(IsPlayerInRangeOfPoint(playerid, 25.0, 263.488922, 21.603782, 3.433196))
  170.     {
  171.         SendClientMessageToAll(COLOR_RED, "A nuclear bomb is being constructed!");
  172.         nuketimer1 = SetTimer("nuketimer",120000,false); // 2 mins before nuke will be finised.
  173.         nukea = false;
  174.         nukeb = true;
  175.         nukec = false;
  176.         nuked = false;
  177.     }
  178.     else if(IsPlayerInRangeOfPoint(playerid, 25.0, 1080.911132, -345.248352, 73.984832))
  179.     {
  180.         SendClientMessageToAll(COLOR_RED, "A nuclear bomb is being constructed!");
  181.         nuketimer1 = SetTimer("nuketimer",120000,false); // 2 mins before nuke will be finised.
  182.         nukea = false;
  183.         nukeb = false;
  184.         nukec = true;
  185.         nuked = false;
  186.     }
  187.     else if(IsPlayerInRangeOfPoint(playerid, 25.0, 2755.711181, -2534.867431, 13.645303))
  188.     {
  189.         SendClientMessageToAll(COLOR_RED, "A nuclear bomb is being constructed!");
  190.         nuketimer1 = SetTimer("nuketimer",120000,false); // 2 mins before nuke will be finised.
  191.         nukea = false;
  192.         nukeb = false;
  193.         nukec = false;
  194.         nuked = true;
  195.     }
  196.     else
  197.     {
  198.         SendClientMessage(playerid, COLOR_GREY,("You are not at a nuke construction site")); // not at site
  199.     }
  200.     return 1;
  201. }
  202. public nuketimer() //after device created.
  203. {
  204.     SendClientMessageToAll(COLOR_RED, "A nuclear bomb is ready for deployment.");
  205.     nuke = true;
  206.     KillTimer(nuketimer1);
  207. }
  208. public LaunchNuke()
  209. {
  210.     foreach (Player, i)
  211.     {
  212.     if(IsPlayerConnected(i))
  213.         {
  214.     if(IsPlayerInRangeOfPoint(i, 250.0, 275.951751, 1816.600341, 1.007812))
  215.     {
  216.     // no action
  217.     }
  218.     else
  219.     {
  220.         new Float:x, Float:y, Float:z;
  221.         if(IsPlayerInAnyVehicle(i))
  222.         {
  223.             RemovePlayerFromVehicle(i);
  224.             SendClientMessage(i, COLOR_RED, "A light in sky forces you out of your car");
  225.         }
  226.         GetPlayerPos(i, x, y, z);
  227.         SetPlayerHealth(i, 20);
  228.         CreateExplosion(x+random(5), y+random(5), z+random(5), 7, 250.0);
  229.         GameTextForAll("~n~~r~Nuclear Device Launched",10000,5);
  230.         //fallout = true; planned.
  231.         Fallout();
  232.         fallouthp = SetTimer("Fallout",6000,false);
  233.         SetTimer("fallouttime",420000,false);
  234.         SetWeather(19);
  235.      }
  236.     }
  237.   }
  238.     return 1;
  239. }
  240. public Fallout()
  241. {
  242.     if(fhp == true) {
  243.     new Float:hp;
  244.     foreach (Player, i)
  245.         {
  246.         if(safe[i] != true){ // prevents death bug.
  247.             if(safecar[i] == false) {
  248.                 GetPlayerHealth(i, hp);
  249.                 SetPlayerHealth(i, hp - 1.0); }
  250.             else {
  251.                 GetPlayerHealth(i, hp);
  252.                 SetPlayerHealth(i, hp - 2.0); }
  253.             }
  254.         }
  255.     }
  256.     fallouthp = SetTimer("Fallout",6000,false);
  257.     return 1;
  258. }
  259.  
  260. public fallouttime()
  261. {
  262.     SetWeather(0);
  263.     //fallout = false; planned.
  264.     foreach(Player, i)
  265.     {
  266.         safe[i] = false;
  267.     }
  268.     KillTimer(fallouthp);
  269.     return 1;
  270. }
  271. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  272. {
  273.         if(GetVehicleModel(vehicleid) == 424 || GetVehicleModel(vehicleid) == 448 || GetVehicleModel(vehicleid) == 468 || GetVehicleModel(vehicleid) == 480 || GetVehicleModel(vehicleid) == 481 || GetVehicleModel(vehicleid) == 500) {
  274.             safecar[playerid] = false; }
  275.         else if(GetVehicleModel(vehicleid) == 521 || GetVehicleModel(vehicleid) == 522 || GetVehicleModel(vehicleid) == 523 || GetVehicleModel(vehicleid) == 523 || GetVehicleModel(vehicleid) == 531 || GetVehicleModel(vehicleid) == 533) {
  276.             safecar[playerid] = false; }
  277.         else if(GetVehicleModel(vehicleid) == 536 || GetVehicleModel(vehicleid) == 555 || GetVehicleModel(vehicleid) == 575) {
  278.             safecar[playerid] = false; }
  279.         else {
  280.             safecar[playerid] = true; }
  281.         return 1;
  282. }
  283. public OnPlayerExitVehicle(playerid, vehicleid)
  284. {
  285.     safecar[playerid] = false;
  286.     return 1;
  287. }
  288. public OnPlayerDeath(playerid, killerid, reason)
  289. {
  290.     safe[playerid] = true; // to protect from death bug.
  291.     return 1;
  292. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement