home *** CD-ROM | disk | FTP | other *** search
/ Ultra Collection Level Ad…e, Duke, Warcraft 2, C&C / ULTRA_Collection_Level_AddOn_-_Quake_Duke.iso / hexenlev / prg8.zip / OCTARE01.ACS next >
Text File  |  1996-04-24  |  12KB  |  614 lines

  1. #include "common.acs"
  2. #define CURRENT_MAP 1
  3.  
  4. script 100 OPEN
  5. {
  6.     int i;
  7.  
  8.     ambientsound("BellRing", 127);
  9.     printbold(s: "CREATED BY JOHN H. FRENCH");
  10.  
  11.  
  12.     Light_Glow(25, 240, 64, 8);
  13.  
  14. }  // END SCRIPT 100
  15.  
  16.  
  17. // CAROUSEL TELEPORTER
  18. script 11 ( int iTid )
  19. {
  20.     Teleport(iTid);
  21.  
  22.     setlinetexture(iTid, SIDE_FRONT, TEXTURE_MIDDLE, "-");
  23.     setlinetexture(iTid, SIDE_BACK, TEXTURE_MIDDLE, "-");
  24.     setlineblocking(iTid, OFF);
  25.  
  26. }  // END SCRIPT 10 (CAROUSEL TELEPORTER)
  27.  
  28.  
  29. // RESET CAGE
  30. script 12 ( int iTid )
  31. {
  32.     setlinetexture(iTid, SIDE_FRONT, TEXTURE_MIDDLE, "gate02");
  33.     setlinetexture(iTid, SIDE_BACK, TEXTURE_MIDDLE, "gate02");
  34.     setlineblocking(iTid, ON);
  35.  
  36. }  // END SCRIPT 12 (RESET CAGE)
  37.  
  38.  
  39. // FIREBALL ROOM TRAP
  40. script 13 (void)
  41. {
  42.     int i;
  43.  
  44.  
  45.     // CLOSE DOORS QUICKLY
  46.     Polyobj_Move(1, 64, 0, 144);
  47.     polywait(1);
  48.  
  49.     // FIREBALLS!!!
  50.     i = 0;
  51.     while ( i++ < 10 )
  52.     {
  53.         setlinetexture(60, SIDE_FRONT, TEXTURE_MIDDLE, "spawn09");
  54.         delay(const: 5);
  55.         setlinetexture(60, SIDE_FRONT, TEXTURE_MIDDLE, "spawn10");
  56.         delay(const: 3);
  57.  
  58.         Thing_Projectile(60, T_FIREBALL1, 224, 128, 0);
  59.         Thing_Projectile(61, T_FIREBALL1, 160, 128, 0);
  60.         Thing_Projectile(62, T_FIREBALL1, 96, 128, 0);
  61.         Thing_Projectile(63, T_FIREBALL1, 32, 128, 0);
  62.  
  63.         setlinetexture(60, SIDE_FRONT, TEXTURE_MIDDLE, "spawn08");
  64.         delay(const: 10);
  65.  
  66.  
  67.         setlinetexture(60, SIDE_FRONT, TEXTURE_MIDDLE, "spawn09");
  68.         delay(const: 5);
  69.         setlinetexture(60, SIDE_FRONT, TEXTURE_MIDDLE, "spawn10");
  70.         delay(const: 3);
  71.  
  72.         Thing_Projectile(60, T_FIREBALL1, 0, 128, 0);
  73.         Thing_Projectile(61, T_FIREBALL1, 64, 128, 0);
  74.         Thing_Projectile(62, T_FIREBALL1, 128, 128, 0);
  75.         Thing_Projectile(63, T_FIREBALL1, 192, 128, 0);
  76.  
  77.         setlinetexture(60, SIDE_FRONT, TEXTURE_MIDDLE, "spawn08");
  78.         delay(const: 10);
  79.  
  80.  
  81.         setlinetexture(60, SIDE_FRONT, TEXTURE_MIDDLE, "spawn09");
  82.         delay(const: 5);
  83.         setlinetexture(60, SIDE_FRONT, TEXTURE_MIDDLE, "spawn10");
  84.         delay(const: 3);
  85.  
  86.         Thing_Projectile(60, T_FIREBALL1, 32, 128, 0);
  87.         Thing_Projectile(61, T_FIREBALL1, 96, 128, 0);
  88.         Thing_Projectile(62, T_FIREBALL1, 160, 128, 0);
  89.         Thing_Projectile(63, T_FIREBALL1, 224, 128, 0);
  90.  
  91.         setlinetexture(60, SIDE_FRONT, TEXTURE_MIDDLE, "spawn08");
  92.         delay(const: 10);
  93.     }
  94.  
  95.     // OPEN DOORS QUICKLY
  96.     Polyobj_Move(1, 128, 128, 144);
  97.     polywait(1);
  98.  
  99.  
  100. }  // END SCRIPT 13 (FIREBALL ROOM TRAP)
  101.  
  102.  
  103. // ICE SHARD ROOM TRAP
  104. script 14 (void)
  105. {
  106.     int i;
  107.  
  108.  
  109.     // CLOSE DOORS QUICKLY
  110.     Polyobj_Move(3, 64, 0, 144);
  111.     polywait(3);
  112.  
  113.     // ICE SHARDS!!!
  114.     i = 0;
  115.     while ( i++ < 10 )
  116.     {
  117.         setlinetexture(70, SIDE_FRONT, TEXTURE_MIDDLE, "spawn06");
  118.         delay(const: 3);
  119.         setlinetexture(70, SIDE_FRONT, TEXTURE_MIDDLE, "spawn07");
  120.         delay(const: 3);
  121.  
  122.         Thing_Projectile(70, T_ICESHARD, 224, 128, 0);
  123.         Thing_Projectile(71, T_ICESHARD, 160, 128, 0);
  124.         Thing_Projectile(72, T_ICESHARD, 96, 128, 0);
  125.         delay(const: 2);
  126.         Thing_Projectile(70, T_ICESHARD, 224, 128, 0);
  127.         Thing_Projectile(71, T_ICESHARD, 160, 128, 0);
  128.         Thing_Projectile(72, T_ICESHARD, 96, 128, 0);
  129.         delay(const: 2);
  130.         Thing_Projectile(70, T_ICESHARD, 224, 128, 0);
  131.         Thing_Projectile(71, T_ICESHARD, 160, 128, 0);
  132.         Thing_Projectile(72, T_ICESHARD, 96, 128, 0);
  133.  
  134.         setlinetexture(70, SIDE_FRONT, TEXTURE_MIDDLE, "spawn05");
  135.         delay(const: 10);
  136.  
  137.  
  138.         setlinetexture(70, SIDE_FRONT, TEXTURE_MIDDLE, "spawn06");
  139.         delay(const: 3);
  140.         setlinetexture(70, SIDE_FRONT, TEXTURE_MIDDLE, "spawn07");
  141.         delay(const: 3);
  142.  
  143.         Thing_Projectile(70, T_ICESHARD, 0, 128, 0);
  144.         Thing_Projectile(71, T_ICESHARD, 64, 128, 0);
  145.         Thing_Projectile(72, T_ICESHARD, 128, 128, 0);
  146.         delay(const: 2);
  147.         Thing_Projectile(70, T_ICESHARD, 0, 128, 0);
  148.         Thing_Projectile(71, T_ICESHARD, 64, 128, 0);
  149.         Thing_Projectile(72, T_ICESHARD, 128, 128, 0);
  150.         delay(const: 2);
  151.         Thing_Projectile(70, T_ICESHARD, 0, 128, 0);
  152.         Thing_Projectile(71, T_ICESHARD, 64, 128, 0);
  153.         Thing_Projectile(72, T_ICESHARD, 128, 128, 0);
  154.  
  155.         setlinetexture(70, SIDE_FRONT, TEXTURE_MIDDLE, "spawn05");
  156.         delay(const: 10);
  157.  
  158.  
  159.         setlinetexture(70, SIDE_FRONT, TEXTURE_MIDDLE, "spawn06");
  160.         delay(const: 3);
  161.         setlinetexture(70, SIDE_FRONT, TEXTURE_MIDDLE, "spawn07");
  162.         delay(const: 3);
  163.  
  164.         Thing_Projectile(70, T_ICESHARD, 32, 128, 0);
  165.         Thing_Projectile(71, T_ICESHARD, 96, 128, 0);
  166.         Thing_Projectile(72, T_ICESHARD, 160, 128, 0);
  167.         delay(const: 2);
  168.         Thing_Projectile(70, T_ICESHARD, 32, 128, 0);
  169.         Thing_Projectile(71, T_ICESHARD, 96, 128, 0);
  170.         Thing_Projectile(72, T_ICESHARD, 160, 128, 0);
  171.         delay(const: 2);
  172.         Thing_Projectile(70, T_ICESHARD, 32, 128, 0);
  173.         Thing_Projectile(71, T_ICESHARD, 96, 128, 0);
  174.         Thing_Projectile(72, T_ICESHARD, 160, 128, 0);
  175.  
  176.         setlinetexture(70, SIDE_FRONT, TEXTURE_MIDDLE, "spawn05");
  177.         delay(const: 10);
  178.     }
  179.  
  180.     // OPEN DOORS QUICKLY
  181.     Polyobj_Move(3, 128, 128, 144);
  182.     polywait(3);
  183.  
  184.  
  185. }  // END SCRIPT 14 (ICE SHARD ROOM TRAP)
  186.  
  187.  
  188. // CAROUSEL DOOR
  189. int miFloorDoor;
  190. script 19 OPEN
  191. {
  192.     // FIGURE NEXT SECTOR NUMBER
  193.     miFloorDoor += 3;
  194.     
  195.     if ( miFloorDoor > 8 )
  196.     {
  197.         miFloorDoor -= 8;
  198.     }
  199.  
  200.     // LOWER SECTOR FLOOR
  201.     Floor_MoveToValueTimes8(miFloorDoor, 16, 0, FALSE);
  202.     tagwait(miFloorDoor);
  203.  
  204.     delay(const: 35);
  205.  
  206.     // RAISE SECTOR FLOOR
  207.     Floor_MoveToValueTimes8(miFloorDoor, 16, 16, FALSE);
  208.     tagwait(miFloorDoor);
  209.  
  210.     restart;
  211.  
  212. }  // END SCRIPT 19 (CAROUSEL DOOR)
  213.  
  214.  
  215. // DAYTIME CYCLE
  216. script 20 OPEN
  217. {
  218.     int i;
  219.  
  220.  
  221.     // WAIT FOR 2 MINUTES
  222.     delay(const: 4200);
  223.  
  224.     
  225.     // DARKNESS
  226.     i = 192;
  227.     while ( i > 32 )
  228.     {
  229.         i -= 16;
  230.         Light_ChangeToValue(20, i);
  231.         Light_ChangeToValue(22, i);
  232.         Light_ChangeToValue(23, i - 32);
  233.         delay(const: 350);
  234.     }
  235.  
  236.     // DARK AND WINDY FOR 1 MINUTE
  237.     i = 0;
  238.     while ( i++ < 6 )
  239.     {
  240.         ambientsound("Wind", 127);
  241.         delay(const: 140);
  242.  
  243.         Light_ForceLightning(0);
  244.         delay(const: 175);
  245.     }
  246.  
  247.     // FREEZE WATER
  248.     thingsound(23, "FreezeDeath", 127);
  249.     delay(const: 35);
  250.  
  251.     // ICY WATER
  252.     changefloor(21, "F_033");
  253.     changefloor(23, "F_033");
  254.  
  255.     // FOR 10 SECONDS
  256.     delay(const: 525);
  257.  
  258.  
  259.     // ICY FLOOR
  260.     ambientsound("FreezeDeath", 127);
  261.     delay(const: 35);
  262.     changefloor(20, "F_033");
  263.  
  264.     // DARK AND ICY FOR 30 SECONDS
  265.     i = 0;
  266.     while ( i++ < 10 )
  267.     {
  268.         Light_ForceLightning(0);
  269.         delay(const: 105);
  270.     }
  271.  
  272.     // DAYLIGHT
  273.     i = 32;
  274.     while ( i < 192 )
  275.     {
  276.         i += 16;
  277.         Light_ChangeToValue(20, i);
  278.         Light_ChangeToValue(22, i);
  279.         Light_ChangeToValue(23, i - 32);
  280.         delay(const: 350);
  281.     }
  282.  
  283.     // DAYLIGHT AND ICY FOR 30 SECONDS
  284.     delay(const: 1050);
  285.  
  286.     // DAWN OF SPRING
  287.     ambientsound("Ambient7", 127);
  288.  
  289.     // WAIT 10 SECONDS
  290.     delay(const: 350);
  291.  
  292.     // ICE BREAKS
  293.     thingsound(23, "FreezeShatter", 127);
  294.     Floor_LowerInstant(const: 21, 0, 126);
  295.     tagwait(const: 21);
  296.     Floor_MoveToValueTimes8(const: 24, 255, 128, TRUE);
  297.     changefloor(21, "X_005");
  298.  
  299.     // SPRAY ICE SHARDS
  300.     Thing_ProjectileGravity(23, T_ICESHARD,
  301.         random(0,63), random(2,20), random(0, 20));
  302.     Thing_ProjectileGravity(23, T_ICESHARD,
  303.         random(64,127), random(2,20), random(0, 20));
  304.     Thing_ProjectileGravity(23, T_ICESHARD,
  305.         random(128,191), random(2,20), random(0, 20));
  306.     Thing_ProjectileGravity(23, T_ICESHARD,
  307.         random(192,255), random(2,20), random(0, 20));
  308.  
  309.     // WAIT 30 SECONDS
  310.     delay(const: 1050);
  311.  
  312.     // FLOOR TO NORMAL
  313.     changefloor(20, "F_044");
  314.     delay(const: 350);
  315.  
  316.     // FILL MOAT
  317.     Floor_MoveToValueTimes8(const: 21, 8, 2, TRUE);
  318.     Floor_RaiseAndCrush(const: 24, 8, 10);
  319.     tagwait(const: 21);
  320.  
  321.     // WATER TO NORMAL
  322.     changefloor(23, "X_005");
  323.  
  324.     restart;
  325.  
  326. }  // END SCRIPT 20 (DAYTIME CYCLE)
  327.  
  328.  
  329. // RANDOM EARTHQUAKE AND SOUNDS
  330. script 21 OPEN
  331. {
  332.     switch ( random(1, 5) )
  333.     {
  334.         case 1:
  335.             // EARTHQUAKE
  336.             Radius_Quake( random(1, 9), random(70, 255), 0, 16, 30);
  337.             break;
  338.  
  339.         case 2:
  340.         case 4:
  341.             ambientsound("Ambient14", 127);
  342.             break;
  343.  
  344.         case 3:
  345.         case 5:
  346.             ambientsound("Ambient15", 127);
  347.             break;
  348.     }
  349.  
  350.     // DELAY 10, 20, 30, 40, 50, OR 60 SECONDS
  351.     delay( random(1, 6) * 350 );
  352.  
  353.     restart;
  354.  
  355. }  // END SCRIPT 21 (RANDOM EARTHQUAKE AND SOUNDS)
  356.  
  357.  
  358. int miDeathTimer;
  359.  
  360. script 50 ( void )
  361. {
  362.     if ( gameskill() == SKILL_VERY_HARD )
  363.     {
  364.         ACS_Execute(51, CURRENT_MAP, 0, 0, 0);
  365.         ACS_Execute(52, CURRENT_MAP, 0, 0, 0);
  366.         ACS_Execute(53, CURRENT_MAP, 0, 0, 0);
  367.         ACS_Execute(54, CURRENT_MAP, 0, 0, 0);
  368.         ACS_Execute(55, CURRENT_MAP, 0, 0, 0);
  369.         ACS_Execute(56, CURRENT_MAP, 0, 0, 0);
  370.         ACS_Execute(57, CURRENT_MAP, 0, 0, 0);
  371.         ACS_Execute(58, CURRENT_MAP, 0, 0, 0);
  372.     }
  373. }
  374.  
  375.  
  376. script 51 ( void )
  377. {
  378.     ACS_Terminate(50, CURRENT_MAP);
  379.  
  380.     while ( TRUE )
  381.     {
  382.         // CHECK IF 15 MINUTES HAVE PASSED
  383.         if ( timer() > miDeathTimer + 31500 )
  384.         {
  385.             ambientsound("Ambient13", 127);
  386.             printbold(s: "TIME TO DIE");
  387.  
  388.             // WAIT SO OTHERS MAY BE KILLED
  389.             delay(const: 140);
  390.  
  391.             DamageThing(255);
  392.  
  393.             // RESET TIMER
  394.             miDeathTimer = timer();
  395.  
  396.             // EXIT SCRIPT
  397.             break;
  398.         }
  399.  
  400.         // CHECK EVERY 3 SECONDS
  401.         delay(const: 105);
  402.     }
  403. }
  404.  
  405.  
  406. script 52 ( void )
  407. {
  408.     ACS_Terminate(50, CURRENT_MAP);
  409.  
  410.     while ( TRUE )
  411.     {
  412.         // CHECK IF 15 MINUTES HAVE PASSED
  413.         if ( timer() > miDeathTimer + 31500 )
  414.         {
  415.             ambientsound("Ambient13", 127);
  416.             printbold(s: "TIME TO DIE");
  417.  
  418.             // WAIT SO OTHERS MAY BE KILLED
  419.             delay(const: 140);
  420.  
  421.             DamageThing(255);
  422.  
  423.             // RESET TIMER
  424.             miDeathTimer = timer();
  425.  
  426.             // EXIT SCRIPT
  427.             break;
  428.         }
  429.  
  430.         // CHECK EVERY 3 SECONDS
  431.         delay(const: 105);
  432.     }
  433. }
  434.  
  435.  
  436. script 53 ( void )
  437. {
  438.     ACS_Terminate(50, CURRENT_MAP);
  439.  
  440.     while ( TRUE )
  441.     {
  442.         // CHECK IF 15 MINUTES HAVE PASSED
  443.         if ( timer() > miDeathTimer + 31500 )
  444.         {
  445.             ambientsound("Ambient13", 127);
  446.             printbold(s: "TIME TO DIE");
  447.  
  448.             // WAIT SO OTHERS MAY BE KILLED
  449.             delay(const: 140);
  450.  
  451.             DamageThing(255);
  452.  
  453.             // RESET TIMER
  454.             miDeathTimer = timer();
  455.  
  456.             // EXIT SCRIPT
  457.             break;
  458.         }
  459.  
  460.         // CHECK EVERY 3 SECONDS
  461.         delay(const: 105);
  462.     }
  463. }
  464.  
  465.  
  466. script 54 ( void )
  467. {
  468.     ACS_Terminate(50, CURRENT_MAP);
  469.  
  470.     while ( TRUE )
  471.     {
  472.         // CHECK IF 15 MINUTES HAVE PASSED
  473.         if ( timer() > miDeathTimer + 31500 )
  474.         {
  475.             ambientsound("Ambient13", 127);
  476.             printbold(s: "TIME TO DIE");
  477.  
  478.             // WAIT SO OTHERS MAY BE KILLED
  479.             delay(const: 140);
  480.  
  481.             DamageThing(255);
  482.  
  483.             // RESET TIMER
  484.             miDeathTimer = timer();
  485.  
  486.             // EXIT SCRIPT
  487.             break;
  488.         }
  489.  
  490.         // CHECK EVERY 3 SECONDS
  491.         delay(const: 105);
  492.     }
  493. }
  494.  
  495.  
  496. script 55 ( void )
  497. {
  498.     ACS_Terminate(50, CURRENT_MAP);
  499.  
  500.     while ( TRUE )
  501.     {
  502.         // CHECK IF 15 MINUTES HAVE PASSED
  503.         if ( timer() > miDeathTimer + 31500 )
  504.         {
  505.             ambientsound("Ambient13", 127);
  506.             printbold(s: "TIME TO DIE");
  507.  
  508.             // WAIT SO OTHERS MAY BE KILLED
  509.             delay(const: 140);
  510.  
  511.             DamageThing(255);
  512.  
  513.             // RESET TIMER
  514.             miDeathTimer = timer();
  515.  
  516.             // EXIT SCRIPT
  517.             break;
  518.         }
  519.  
  520.         // CHECK EVERY 3 SECONDS
  521.         delay(const: 105);
  522.     }
  523. }
  524.  
  525.  
  526. script 56 ( void )
  527. {
  528.     ACS_Terminate(50, CURRENT_MAP);
  529.  
  530.     while ( TRUE )
  531.     {
  532.         // CHECK IF 15 MINUTES HAVE PASSED
  533.         if ( timer() > miDeathTimer + 31500 )
  534.         {
  535.             ambientsound("Ambient13", 127);
  536.             printbold(s: "TIME TO DIE");
  537.  
  538.             // WAIT SO OTHERS MAY BE KILLED
  539.             delay(const: 140);
  540.  
  541.             DamageThing(255);
  542.  
  543.             // RESET TIMER
  544.             miDeathTimer = timer();
  545.  
  546.             // EXIT SCRIPT
  547.             break;
  548.         }
  549.  
  550.         // CHECK EVERY 3 SECONDS
  551.         delay(const: 105);
  552.     }
  553. }
  554.  
  555.  
  556. script 57 ( void )
  557. {
  558.     ACS_Terminate(50, CURRENT_MAP);
  559.  
  560.     while ( TRUE )
  561.     {
  562.         // CHECK IF 15 MINUTES HAVE PASSED
  563.         if ( timer() > miDeathTimer + 31500 )
  564.         {
  565.             ambientsound("Ambient13", 127);
  566.             printbold(s: "TIME TO DIE");
  567.  
  568.             // WAIT SO OTHERS MAY BE KILLED
  569.             delay(const: 140);
  570.  
  571.             DamageThing(255);
  572.  
  573.             // RESET TIMER
  574.             miDeathTimer = timer();
  575.  
  576.             // EXIT SCRIPT
  577.             break;
  578.         }
  579.  
  580.         // CHECK EVERY 3 SECONDS
  581.         delay(const: 105);
  582.     }
  583. }
  584.  
  585.  
  586. script 58 ( void )
  587. {
  588.     ACS_Terminate(50, CURRENT_MAP);
  589.  
  590.     while ( TRUE )
  591.     {
  592.         // CHECK IF 15 MINUTES HAVE PASSED
  593.         if ( timer() > miDeathTimer + 31500 )
  594.         {
  595.             ambientsound("Ambient13", 127);
  596.             printbold(s: "TIME TO DIE");
  597.  
  598.             // WAIT SO OTHERS MAY BE KILLED
  599.             delay(const: 140);
  600.  
  601.             DamageThing(255);
  602.  
  603.             // RESET TIMER
  604.             miDeathTimer = timer();
  605.  
  606.             // EXIT SCRIPT
  607.             break;
  608.         }
  609.  
  610.         // CHECK EVERY 3 SECONDS
  611.         delay(const: 105);
  612.     }
  613. }
  614.