PDA

View Full Version : Script mill



Henny
10th July 2014, 14:36
Hey guys,

I've have a script here to make a mill rotate. This works good but i want to change the script a little bit. So when you activate the trigger, the mill should stop rotating after e.g 1min, so you have to reactivate the trigger.
Could anyone help me here?

molen()
{
trig = getent("trigger_windmolen", "targetname");

while(1)
{
trig waittill ("trigger",user);
rotate_obj = getentarray("windmolen","targetname");
if(isdefined(rotate_obj))
{
for(i=0;i<rotate_obj.size;i++)
{
rotate_obj[i] thread ra_rotate();
}
}
}
}

ra_rotate()
{
if (!isdefined(self.speed))
self.speed = 5;
if (!isdefined(self.script_noteworthy))
self.script_noteworthy = "x";

while(true)
{
// rotateYaw(float rot, float time, <float acceleration_time>, <float deceleration_time>);
if (self.script_noteworthy == "y")
self rotateYaw(360,self.speed);
else if (self.script_noteworthy == "x")
self rotateRoll(360,self.speed);
else if (self.script_noteworthy == "z")
self rotatePitch(360,self.speed);
wait ((self.speed)-0.1); // removes the slight hesitation that waittill("rotatedone"); gives.
//self waittill("rotatedone");

}
}

Thanks!
Henny

filthy_freak_
10th July 2014, 22:43
molen()
{
trig = getent("trigger_windmolen", "targetname");

while(1)
{
trig waittill ("trigger",user);
rotate_obj = getentarray("windmolen","targetname");
if(isdefined(rotate_obj))
{
for(i=0;i<rotate_obj.size;i++)
{
rotate_obj[i] thread ra_rotate();
rotate_obj[i] thread resetTimer();
}
}
}
}

ra_rotate()
{
self endon("rotate_stop");
if (!isdefined(self.speed))
self.speed = 5;
if (!isdefined(self.script_noteworthy))
self.script_noteworthy = "x";

while(true)
{
// rotateYaw(float rot, float time, <float acceleration_time>, <float deceleration_time>);
if (self.script_noteworthy == "y")
self rotateYaw(360,self.speed);
else if (self.script_noteworthy == "x")
self rotateRoll(360,self.speed);
else if (self.script_noteworthy == "z")
self rotatePitch(360,self.speed);
wait ((self.speed)-0.1); // removes the slight hesitation that waittill("rotatedone"); gives.
//self waittill("rotatedone");

}
}

resetTimer()
{
self endon("rotate_stop");
time = 60;
while(time > 0)
{
wait 1;
time = (time-1);
}
self notify("rotate_stop");
}


Untested, and probably not the best way of doing it, but should work.

Henny
11th July 2014, 19:20
Thank you very mucht! It works excellent :)