Advertisement
Guest User

Untitled

a guest
Sep 29th, 2010
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.80 KB | None | 0 0
  1. #include common_scripts\utility;
  2. #include maps\mp\_utility;
  3. main()
  4. {
  5. // thread windController();
  6. level.inc = 0;
  7.  
  8. array_levelthread (getentarray("wire","targetname"), ::wireWander);
  9.  
  10. leftShutters = getentarray ("shutter_left","targetname");
  11. addShutters = getentarray ("shutter_right_open","targetname");
  12. for (i=0;i<addShutters.size;i++)
  13. leftShutters[leftShutters.size] = addShutters[i];
  14. addShutters = getentarray ("shutter_left_closed","targetname");
  15. for (i=0;i<addShutters.size;i++)
  16. leftShutters[leftShutters.size] = addShutters[i];
  17.  
  18. for (i=0;i<leftShutters.size;i++)
  19. {
  20. shutter = leftShutters[i];
  21. shutter rotateto((shutter.angles[0], shutter.angles[1] + 180, shutter.angles[2]), 0.1);
  22. }
  23. wait (0.2);
  24.  
  25. for (i=0;i<leftShutters.size;i++)
  26. leftShutters[i].startYaw = leftShutters[i].angles[1];
  27.  
  28. rightShutters = getentarray ("shutter_right","targetname");
  29. addShutters = getentarray ("shutter_left_open","targetname");
  30. for (i=0;i<addShutters.size;i++)
  31. rightShutters[rightShutters.size] = addShutters[i];
  32. addShutters = getentarray ("shutter_right_closed","targetname");
  33. for (i=0;i<addShutters.size;i++)
  34. rightShutters[rightShutters.size] = addShutters[i];
  35.  
  36. for (i=0;i<rightShutters.size;i++)
  37. rightShutters[i].startYaw = rightShutters[i].angles[1];
  38.  
  39. addShutters = undefined;
  40.  
  41. windDirection = "left";
  42. for (;;)
  43. {
  44. array_levelthread (leftShutters, ::shutterWanderLeft, windDirection);
  45. array_levelthread (rightShutters, ::shutterWanderRight, windDirection);
  46. level waittill ("wind blows", windDirection);
  47. }
  48. }
  49.  
  50. windController()
  51. {
  52. for (;;)
  53. {
  54. windDirection = "left";
  55. if (randomint(100) > 50)
  56. windDirection = "right";
  57. level notify ("wind blows", windDirection);
  58. wait (2 + randomfloat(10));
  59. }
  60. }
  61.  
  62. shutterWanderLeft(shutter, windDirection)
  63. {
  64. // println ("shutter angles ", shutter.angles[1]);
  65. // assert (shutter.angles[1] >= shutter.startYaw);
  66. // assert (shutter.angles[1] < shutter.startYaw + 180);
  67.  
  68. // println ("Wind + ", level.inc);
  69. level.inc++;
  70. level endon ("wind blows");
  71.  
  72. newYaw = shutter.startYaw;
  73. if (windDirection == "left")
  74. newYaw += 179.9;
  75.  
  76. newTime = 0.2;
  77. shutter rotateto((shutter.angles[0], newYaw, shutter.angles[2]), newTime);
  78. wait (newTime + 0.1);
  79.  
  80. for (;;)
  81. {
  82. rot = randomint(80);
  83. if (randomint(100) > 50)
  84. rot *= -1;
  85.  
  86. newYaw = shutter.angles[1] + rot;
  87. altYaw = shutter.angles[1] + (rot*-1);
  88. if ((newYaw < shutter.startYaw) || (newYaw > shutter.startYaw + 179))
  89. {
  90. newYaw = altYaw;
  91. }
  92.  
  93. dif = abs(shutter.angles[1] - newYaw);
  94.  
  95. newTime = dif*0.02 + randomfloat(2);
  96. if (newTime < 0.3)
  97. newTime = 0.3;
  98. // println ("startyaw " + shutter.startyaw + " newyaw " + newYaw);
  99.  
  100. // assert (newYaw >= shutter.startYaw);
  101. // assert (newYaw < shutter.startYaw + 179);
  102.  
  103. shutter rotateto((shutter.angles[0], newYaw, shutter.angles[2]), newTime, newTime * 0.5, newTime * 0.5);
  104. wait (newTime);
  105. }
  106. }
  107.  
  108. shutterWanderRight(shutter, windDirection)
  109. {
  110. // println ("shutter angles ", shutter.angles[1]);
  111. // assert (shutter.angles[1] >= shutter.startYaw);
  112. // assert (shutter.angles[1] < shutter.startYaw + 180);
  113.  
  114. // println ("Wind + ", level.inc);
  115. level.inc++;
  116. level endon ("wind blows");
  117.  
  118. newYaw = shutter.startYaw;
  119. if (windDirection == "left")
  120. newYaw += 179.9;
  121.  
  122. newTime = 0.2;
  123. shutter rotateto((shutter.angles[0], newYaw, shutter.angles[2]), newTime);
  124. wait (newTime + 0.1);
  125.  
  126. for (;;)
  127. {
  128. rot = randomint(80);
  129. if (randomint(100) > 50)
  130. rot *= -1;
  131.  
  132. newYaw = shutter.angles[1] + rot;
  133. altYaw = shutter.angles[1] + (rot*-1);
  134. if ((newYaw < shutter.startYaw) || (newYaw > shutter.startYaw + 179))
  135. {
  136. newYaw = altYaw;
  137. }
  138.  
  139. dif = abs(shutter.angles[1] - newYaw);
  140.  
  141. newTime = dif*0.02 + randomfloat(2);
  142. if (newTime < 0.3)
  143. newTime = 0.3;
  144. // println ("startyaw " + shutter.startyaw + " newyaw " + newYaw);
  145.  
  146. // assert (newYaw >= shutter.startYaw);
  147. // assert (newYaw < shutter.startYaw + 179);
  148.  
  149. shutter rotateto((shutter.angles[0], newYaw, shutter.angles[2]), newTime, newTime * 0.5, newTime * 0.5);
  150. wait (newTime);
  151. }
  152. }
  153.  
  154. wireWander (wire)
  155. {
  156. origins = getentarray (wire.target,"targetname");
  157. org1 = origins[0].origin;
  158. org2 = origins[1].origin;
  159.  
  160. angles = vectortoangles (org1 - org2);
  161. ent = spawn ("script_model",(0,0,0));
  162. ent.origin = vector_multiply(org1, 0.5) + vector_multiply(org2, 0.5);
  163. // ent setmodel ("temp");
  164. ent.angles = angles;
  165. wire linkto (ent);
  166. rottimer = 2;
  167. rotrange = 0.9;
  168. dist = 4 + randomfloat(2);
  169. ent rotateroll(dist*0.5,0.2);
  170. wait (0.2);
  171. for (;;)
  172. {
  173. rottime = rottimer + randomfloat (rotRange) - (rotRange * 0.5);
  174. ent rotateroll(dist,rottime, rottime*0.5, rottime*0.5);
  175. wait (rottime);
  176. ent rotateroll(dist * -1,rottime, rottime*0.5, rottime*0.5);
  177. wait (rottime);
  178. }
  179. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement