#include maps\mp\_utility; main() { common_scripts\utility::array_thread( getentarray( "new_rotating_object", "targetname" ), ::fan_blade_rotate, "fixed" ); // common_scripts\utility::array_thread( getentarray( "new_rotating_object_slow", "targetname" ), ::fan_blade_rotate, "slow" ); // common_scripts\utility::array_thread( getentarray( "new_rotating_object_fast", "targetname" ), ::fan_blade_rotate, "fast" ); common_scripts\utility::array_thread (getentarray ("tree_anim","targetname"), ::treeanimation ); } /* array_thread( entities, process) { for ( index = 0; index < entities.size; index++ ) { entities[index] thread [[process]](); } } blade_rotate_fixed() { fan_blade_rotate("fixed"); } blade_rotate_slow() { fan_blade_rotate("slow"); } blade_rotate_fast() { fan_blade_rotate("fast"); } */ // wall facing xmodel, free rotate on Z axis, or full rotate axis to "ceilling", only. fan_blade_rotate(type) { speed = 0; time = 20000; speed_multiplier = 1.0; if (self.classname != "script_model") return; if (!isdefined(self.model)) return; if(self.model == "") return; if( isdefined( self.speed ) ) { speed_multiplier = self.speed; } if ( type == "slow" ) speed = randomfloatrange( 100*speed_multiplier, 360*speed_multiplier ); else if ( type == "fast" ) speed = randomfloatrange( 720*speed_multiplier, 1000*speed_multiplier ); else if ( type == "fixed" ) speed = ( 150*speed_multiplier ); else speed = 100; wait ( 1 ); // fan_angles = self.angles; fan_vec = Vector_multiply( AnglesToRight( self.angles ), (100,1,1) ); // assures normalized vector is length of "1" fan_vec = VectorNormalize( fan_vec ); while ( true ) { dot_x = abs( vectorDot( fan_vec, ( 1, 0, 0 ) ) ); dot_y = abs( vectorDot( fan_vec, ( 0, 1, 0 ) ) ); dot_z = abs( vectorDot( fan_vec, ( 0, 0, 1 ) ) ); if ( dot_x > 0.9 ) self rotatevelocity( ( speed, 0, 0 ), time ); else if ( dot_y > 0.9 ) self rotatevelocity( ( speed, 0, 0 ), time ); else if ( dot_z > 0.9 ) self rotatevelocity( ( 0, speed, 0 ), time ); else self rotatevelocity( ( 0, speed, 0 ), time ); wait time; } } treeanimation() { if (self.classname != "script_model") return; if (!isdefined(self.model)) return; if(self.model == "") return; while(1) { self rotatepitch(-1.0,2,.9,.8); self waittill("rotatedone"); self rotatepitch(1.0,2,.9,.8); self waittill("rotatedone"); } }