| Author |
Topic: shutter script adjustment |
| FAFFER |
General Member Since: May 1, 2005 Posts: 647 Last: Sep 17, 2011 [view latest posts] |
|
|
|
Category: CoDWW Scripting Posted: Wednesday, Dec. 9, 2009 05:24 pm |
 |
i have working shutters using the stock cod 5 script, the only problem is that they rotate into my buildings a little...
would appreciate some help from you scripting genii to reduce there rotate angle as my guesswork has got me nowhere!
Code: #include common_scripts\utility; #include maps\mp\_utility; main() { // thread windController(); level.inc = 0; array_levelthread (getentarray("wire","targetname"), ::wireWander); leftShutters = getentarray ("shutter_left","targetname"); addShutters = getentarray ("shutter_right_open","targetname"); for (i=0;i<addShutters.size;i++) leftShutters[leftShutters.size] = addShutters[i]; addShutters = getentarray ("shutter_left_closed","targetname"); for (i=0;i<addShutters.size;i++) leftShutters[leftShutters.size] = addShutters[i]; for (i=0;i<leftShutters.size;i++) { shutter = leftShutters[i]; shutter rotateto((shutter.angles[0], shutter.angles[1] + 180, shutter.angles[2]), 0.1); } wait (0.2); for (i=0;i<leftShutters.size;i++) leftShutters[i].startYaw = leftShutters[i].angles[1]; rightShutters = getentarray ("shutter_right","targetname"); addShutters = getentarray ("shutter_left_open","targetname"); for (i=0;i<addShutters.size;i++) rightShutters[rightShutters.size] = addShutters[i]; addShutters = getentarray ("shutter_right_closed","targetname"); for (i=0;i<addShutters.size;i++) rightShutters[rightShutters.size] = addShutters[i]; for (i=0;i<rightShutters.size;i++) rightShutters[i].startYaw = rightShutters[i].angles[1]; addShutters = undefined; windDirection = "left"; for (;;) { array_levelthread (leftShutters, ::shutterWanderLeft, windDirection); array_levelthread (rightShutters, ::shutterWanderRight, windDirection); level waittill ("wind blows", windDirection); } } windController() { for (;;) { windDirection = "left"; if (randomint(100) > 50) windDirection = "right"; level notify ("wind blows", windDirection); wait (2 + randomfloat(10)); } } shutterWanderLeft(shutter, windDirection) { // println ("shutter angles ", shutter.angles[1]); // assert (shutter.angles[1] >= shutter.startYaw); // assert (shutter.angles[1] < shutter.startYaw + 180); // println ("Wind + ", level.inc); level.inc++; level endon ("wind blows"); newYaw = shutter.startYaw; if (windDirection == "left") newYaw += 179.9; newTime = 0.2; shutter rotateto((shutter.angles[0], newYaw, shutter.angles[2]), newTime); wait (newTime + 0.1); for (;;) { rot = randomint(80); if (randomint(100) > 50) rot *= -1; newYaw = shutter.angles[1] + rot; altYaw = shutter.angles[1] + (rot*-1); if ((newYaw < shutter.startYaw) || (newYaw > shutter.startYaw + 179)) { newYaw = altYaw; } dif = abs(shutter.angles[1] - newYaw); newTime = dif*0.02 + randomfloat(2); if (newTime < 0.3) newTime = 0.3; // println ("startyaw " + shutter.startyaw + " newyaw " + newYaw); // assert (newYaw >= shutter.startYaw); // assert (newYaw < shutter.startYaw + 179); shutter rotateto((shutter.angles[0], newYaw, shutter.angles[2]), newTime, newTime * 0.5, newTime * 0.5); wait (newTime); } } shutterWanderRight(shutter, windDirection) { // println ("shutter angles ", shutter.angles[1]); // assert (shutter.angles[1] >= shutter.startYaw); // assert (shutter.angles[1] < shutter.startYaw + 180); // println ("Wind + ", level.inc); level.inc++; level endon ("wind blows"); newYaw = shutter.startYaw; if (windDirection == "left") newYaw += 179.9; newTime = 0.2; shutter rotateto((shutter.angles[0], newYaw, shutter.angles[2]), newTime); wait (newTime + 0.1); for (;;) { rot = randomint(80); if (randomint(100) > 50) rot *= -1; newYaw = shutter.angles[1] + rot; altYaw = shutter.angles[1] + (rot*-1); if ((newYaw < shutter.startYaw) || (newYaw > shutter.startYaw + 179)) { newYaw = altYaw; } dif = abs(shutter.angles[1] - newYaw); newTime = dif*0.02 + randomfloat(2); if (newTime < 0.3) newTime = 0.3; // println ("startyaw " + shutter.startyaw + " newyaw " + newYaw); // assert (newYaw >= shutter.startYaw); // assert (newYaw < shutter.startYaw + 179); shutter rotateto((shutter.angles[0], newYaw, shutter.angles[2]), newTime, newTime * 0.5, newTime * 0.5); wait (newTime); } } wireWander (wire) { origins = getentarray (wire.target,"targetname"); org1 = origins[0].origin; org2 = origins[1].origin; angles = vectortoangles (org1 - org2); ent = spawn ("script_model",(0,0,0)); ent.origin = vectorScale(org1, 0.5) + vectorScale(org2, 0.5); // ent setmodel ("temp"); ent.angles = angles; wire linkto (ent); rottimer = 2; rotrange = 0.9; dist = 4 + randomfloat(2); ent rotateroll(dist*0.5,0.2); wait (0.2); for (;;) { rottime = rottimer + randomfloat (rotRange) - (rotRange * 0.5); ent rotateroll(dist,rottime, rottime*0.5, rottime*0.5); wait (rottime); ent rotateroll(dist * -1,rottime, rottime*0.5, rottime*0.5); wait (rottime); } }
thanks guys! ![[cool]](images/BBCode/smilies/cool.gif) |
 |
|
|
| DemonSeed |
General Member Since: Apr 30, 2009 Posts: 1362 Last: Feb 19, 2018 [view latest posts] |
|
|
 |
|
|
| eganwotv |
 |
Deactivated Account Since: May 28, 2007 Posts: 961 Last: Oct 31, 2010 [view latest posts] |
|
|
 |
|
|
| FAFFER |
General Member Since: May 1, 2005 Posts: 647 Last: Sep 17, 2011 [view latest posts] |
|
|
|
Category: CoDWW Scripting Posted: Wednesday, Dec. 9, 2009 07:36 pm |
 |
sorry. i did try various tabs and they all jumbled it all up...
#include common_scripts\utility;
#include maps\mp\_utility;
main()
{
// thread windController();
level.inc = 0;
array_levelthread (getentarray("wire","targetname"), ::wireWander);
leftShutters = getentarray ("shutter_left","targetname");
addShutters = getentarray ("shutter_right_open","targetname");
for (i=0;i
leftShutters[leftShutters.size] = addShutters ;
addShutters = getentarray ("shutter_left_closed","targetname");
for (i=0;i
leftShutters[leftShutters.size] = addShutters;
for (i=0;i
{
shutter = leftShutters;
shutter rotateto((shutter.angles[0], shutter.angles[1] + 180, shutter.angles[2]), 0.1);
}
wait (0.2);
for (i=0;i
leftShutters.startYaw = leftShutters.angles[1];
rightShutters = getentarray ("shutter_right","targetname");
addShutters = getentarray ("shutter_left_open","targetname");
for (i=0;i
rightShutters[rightShutters.size] = addShutters;
addShutters = getentarray ("shutter_right_closed","targetname");
for (i=0;i
rightShutters[rightShutters.size] = addShutters;
for (i=0;i
rightShutters.startYaw = rightShutters.angles[1];
addShutters = undefined;
windDirection = "left";
for (;;)
{
array_levelthread (leftShutters, ::shutterWanderLeft, windDirection);
array_levelthread (rightShutters, ::shutterWanderRight, windDirection);
level waittill ("wind blows", windDirection);
}
}
windController()
{
for (;;)
{
windDirection = "left";
if (randomint(100) > 50)
windDirection = "right";
level notify ("wind blows", windDirection);
wait (2 + randomfloat(10));
}
}
shutterWanderLeft(shutter, windDirection)
{
// println ("shutter angles ", shutter.angles[1]);
// assert (shutter.angles[1] >= shutter.startYaw);
// assert (shutter.angles[1] < shutter.startYaw + 180);
// println ("Wind + ", level.inc);
level.inc++;
level endon ("wind blows");
newYaw = shutter.startYaw;
if (windDirection == "left")
newYaw += 179.9;
newTime = 0.2;
shutter rotateto((shutter.angles[0], newYaw, shutter.angles[2]), newTime);
wait (newTime + 0.1);
for (;;)
{
rot = randomint(80);
if (randomint(100) > 50)
rot *= -1;
newYaw = shutter.angles[1] + rot;
altYaw = shutter.angles[1] + (rot*-1);
if ((newYaw < shutter.startYaw) || (newYaw > shutter.startYaw + 179))
{
newYaw = altYaw;
}
dif = abs(shutter.angles[1] - newYaw);
newTime = dif*0.02 + randomfloat(2);
if (newTime < 0.3)
newTime = 0.3;
// println ("startyaw " + shutter.startyaw + " newyaw " + newYaw);
// assert (newYaw >= shutter.startYaw);
// assert (newYaw < shutter.startYaw + 179);
shutter rotateto((shutter.angles[0], newYaw, shutter.angles[2]), newTime, newTime * 0.5, newTime * 0.5);
wait (newTime);
}
}
shutterWanderRight(shutter, windDirection)
{
// println ("shutter angles ", shutter.angles[1]);
// assert (shutter.angles[1] >= shutter.startYaw);
// assert (shutter.angles[1] < shutter.startYaw + 180);
// println ("Wind + ", level.inc);
level.inc++;
level endon ("wind blows");
newYaw = shutter.startYaw;
if (windDirection == "left")
newYaw += 179.9;
newTime = 0.2;
shutter rotateto((shutter.angles[0], newYaw, shutter.angles[2]), newTime);
wait (newTime + 0.1);
for (;;)
{
rot = randomint(80);
if (randomint(100) > 50)
rot *= -1;
newYaw = shutter.angles[1] + rot;
altYaw = shutter.angles[1] + (rot*-1);
if ((newYaw < shutter.startYaw) || (newYaw > shutter.startYaw + 179))
{
newYaw = altYaw;
}
dif = abs(shutter.angles[1] - newYaw);
newTime = dif*0.02 + randomfloat(2);
if (newTime < 0.3)
newTime = 0.3;
// println ("startyaw " + shutter.startyaw + " newyaw " + newYaw);
// assert (newYaw >= shutter.startYaw);
// assert (newYaw < shutter.startYaw + 179);
shutter rotateto((shutter.angles[0], newYaw, shutter.angles[2]), newTime, newTime * 0.5, newTime * 0.5);
wait (newTime);
}
}
wireWander (wire)
{
origins = getentarray (wire.target,"targetname");
org1 = origins[0].origin;
org2 = origins[1].origin;
angles = vectortoangles (org1 - org2);
ent = spawn ("script_model",(0,0,0));
ent.origin = vectorScale(org1, 0.5) + vectorScale(org2, 0.5);
// ent setmodel ("temp");
ent.angles = angles;
wire linkto (ent);
rottimer = 2;
rotrange = 0.9;
dist = 4 + randomfloat(2);
ent rotateroll(dist*0.5,0.2);
wait (0.2);
for (;;)
{
rottime = rottimer + randomfloat (rotRange) - (rotRange * 0.5);
ent rotateroll(dist,rottime, rottime*0.5, rottime*0.5);
wait (rottime);
ent rotateroll(dist * -1,rottime, rottime*0.5, rottime*0.5);
wait (rottime);
}
}
the files located in raw/maps/mp in waw named "_shutter.gsc" otherwise if u know a host i can upload it to?
![[wink]](images/BBCode/smilies/wink.gif) |
 |
|
|
| foyleman |
 |
Preferred PLUS Member Since: Nov 7, 2001 Posts: 95762 Last: Apr 13, 2021 [view latest posts] |
|
|
 |
 |
 |
|
Category: CoDWW Scripting Posted: Wednesday, Dec. 9, 2009 08:19 pm |
 |
Zip it up and upload it to this thread. You can add zip files to any thread here.
Not sure if this helps: Code: #include common_scripts\utility; #include maps\mp\_utility; main() { // thread windController();
level.inc = 0;
array_levelthread (getentarray("wire","targetname"), ::wireWander);
leftShutters = getentarray ("shutter_left","targetname");
addShutters = getentarray ("shutter_right_open","targetname");
for (i=0;i<addShutters.size;i++)
leftShutters[leftShutters.size] = addShutters[i];
addShutters = getentarray ("shutter_left_closed","targetname");
for (i=0;i<addShutters.size;i++)
leftShutters[leftShutters.size] = addShutters[i];
for (i=0;i<leftShutters.size;i++)
{
shutter = leftShutters[i];
shutter rotateto((shutter.angles[0], shutter.angles[1] + 180, shutter.angles[2]), 0.1);
}
wait (0.2);
for (i=0;i<leftShutters.size;i++)
leftShutters[i].startYaw = leftShutters[i].angles[1];
rightShutters = getentarray ("shutter_right","targetname");
addShutters = getentarray ("shutter_left_open","targetname");
for (i=0;i<addShutters.size;i++)
rightShutters[rightShutters.size] = addShutters[i];
addShutters = getentarray ("shutter_right_closed","targetname");
for (i=0;i<addShutters.size;i++)
rightShutters[rightShutters.size] = addShutters[i];
for (i=0;i<rightShutters.size;i++)
rightShutters[i].startYaw = rightShutters[i].angles[1];
addShutters = undefined;
windDirection = "left";
for (;;)
{
array_levelthread (leftShutters, ::shutterWanderLeft, windDirection);
array_levelthread (rightShutters, ::shutterWanderRight, windDirection);
level waittill ("wind blows", windDirection);
} }
windController() {
for (;;)
{
windDirection = "left";
if (randomint(100) > 50)
windDirection = "right";
level notify ("wind blows", windDirection);
wait (2 + randomfloat(10));
} }
shutterWanderLeft(shutter, windDirection) { // println ("shutter angles ", shutter.angles[1]); // assert (shutter.angles[1] >= shutter.startYaw); // assert (shutter.angles[1] < shutter.startYaw + 180);
// println ("Wind + ", level.inc);
level.inc++;
level endon ("wind blows");
newYaw = shutter.startYaw;
if (windDirection == "left")
newYaw += 179.9;
newTime = 0.2;
shutter rotateto((shutter.angles[0], newYaw, shutter.angles[2]), newTime);
wait (newTime + 0.1);
for (;;)
{
rot = randomint(80);
if (randomint(100) > 50)
rot *= -1;
newYaw = shutter.angles[1] + rot;
altYaw = shutter.angles[1] + (rot*-1);
if ((newYaw < shutter.startYaw) || (newYaw > shutter.startYaw + 179))
{
newYaw = altYaw;
}
dif = abs(shutter.angles[1] - newYaw);
newTime = dif*0.02 + randomfloat(2);
if (newTime < 0.3)
newTime = 0.3; // println ("startyaw " + shutter.startyaw + " newyaw " + newYaw);
// assert (newYaw >= shutter.startYaw); // assert (newYaw < shutter.startYaw + 179);
shutter rotateto((shutter.angles[0], newYaw, shutter.angles[2]), newTime, newTime * 0.5, newTime * 0.5);
wait (newTime);
} }
shutterWanderRight(shutter, windDirection) { // println ("shutter angles ", shutter.angles[1]); // assert (shutter.angles[1] >= shutter.startYaw); // assert (shutter.angles[1] < shutter.startYaw + 180);
// println ("Wind + ", level.inc);
level.inc++;
level endon ("wind blows");
newYaw = shutter.startYaw;
if (windDirection == "left")
newYaw += 179.9;
newTime = 0.2;
shutter rotateto((shutter.angles[0], newYaw, shutter.angles[2]), newTime);
wait (newTime + 0.1);
for (;;)
{
rot = randomint(80);
if (randomint(100) > 50)
rot *= -1;
newYaw = shutter.angles[1] + rot;
altYaw = shutter.angles[1] + (rot*-1);
if ((newYaw < shutter.startYaw) || (newYaw > shutter.startYaw + 179))
{
newYaw = altYaw;
}
dif = abs(shutter.angles[1] - newYaw);
newTime = dif*0.02 + randomfloat(2);
if (newTime < 0.3)
newTime = 0.3; // println ("startyaw " + shutter.startyaw + " newyaw " + newYaw);
// assert (newYaw >= shutter.startYaw); // assert (newYaw < shutter.startYaw + 179);
shutter rotateto((shutter.angles[0], newYaw, shutter.angles[2]), newTime, newTime * 0.5, newTime * 0.5);
wait (newTime);
} }
wireWander (wire) {
origins = getentarray (wire.target,"targetname");
org1 = origins[0].origin;
org2 = origins[1].origin;
angles = vectortoangles (org1 - org2);
ent = spawn ("script_model",(0,0,0));
ent.origin = vectorScale(org1, 0.5) + vectorScale(org2, 0.5); // ent setmodel ("temp");
ent.angles = angles;
wire linkto (ent);
rottimer = 2;
rotrange = 0.9;
dist = 4 + randomfloat(2);
ent rotateroll(dist*0.5,0.2);
wait (0.2);
for (;;)
{
rottime = rottimer + randomfloat (rotRange) - (rotRange * 0.5);
ent rotateroll(dist,rottime, rottime*0.5, rottime*0.5);
wait (rottime);
ent rotateroll(dist * -1,rottime, rottime*0.5, rottime*0.5);
wait (rottime);
} }
|
Have you heard the MODSonair Podcast?:
MODSonair is a weekly podcast bringing you the news from a modders perspective.
Tune in every Sunday at 12pm EST to listen LIVE. |
 |
|
|
| DeekCiti |
 |
General Member Since: Mar 13, 2008 Posts: 1293 Last: Jul 9, 2016 [view latest posts] |
|
|
|
Category: CoDWW Scripting Posted: Wednesday, Dec. 9, 2009 08:30 pm |
 |
Think this is what you are looking for?
Code: #include common_scripts\utility;
#include maps\mp\_utility;
main()
{
// thread windController();
level.inc = 0;
array_levelthread (getentarray("wire","targetname"), ::wireWander);
leftShutters = getentarray ("shutter_left","targetname");
addShutters = getentarray ("shutter_right_open","targetname");
for (i=0;i<addShutters.size;i++)
leftShutters[leftShutters.size] = addShutters[i];
addShutters = getentarray ("shutter_left_closed","targetname");
for (i=0;i<addShutters.size;i++)
leftShutters[leftShutters.size] = addShutters[i];
for (i=0;i<leftShutters.size;i++)
{
shutter = leftShutters[i];
shutter rotateto((shutter.angles[0], shutter.angles[1] + 180, shutter.angles[2]), 0.1);
}
wait (0.2);
for (i=0;i<leftShutters.size;i++)
leftShutters[i].startYaw = leftShutters[i].angles[1];
rightShutters = getentarray ("shutter_right","targetname");
addShutters = getentarray ("shutter_left_open","targetname");
for (i=0;i<addShutters.size;i++)
rightShutters[rightShutters.size] = addShutters[i];
addShutters = getentarray ("shutter_right_closed","targetname");
for (i=0;i<addShutters.size;i++)
rightShutters[rightShutters.size] = addShutters[i];
for (i=0;i<rightShutters.size;i++)
rightShutters[i].startYaw = rightShutters[i].angles[1];
addShutters = undefined;
windDirection = "left";
for (;;)
{
array_levelthread (leftShutters, ::shutterWanderLeft, windDirection);
array_levelthread (rightShutters, ::shutterWanderRight, windDirection);
level waittill ("wind blows", windDirection);
}
}
windController()
{
for (;;)
{
windDirection = "left";
if (randomint(100) > 50)
windDirection = "right";
level notify ("wind blows", windDirection);
wait (2 + randomfloat(10));
}
}
shutterWanderLeft(shutter, windDirection)
{
// println ("shutter angles ", shutter.angles[1]);
// assert (shutter.angles[1] >= shutter.startYaw);
// assert (shutter.angles[1] < shutter.startYaw + 180);
// println ("Wind + ", level.inc);
level.inc++;
level endon ("wind blows");
newYaw = shutter.startYaw;
if (windDirection == "left")
newYaw += 179.9;
newTime = 0.2;
shutter rotateto((shutter.angles[0], newYaw, shutter.angles[2]), newTime);
wait (newTime + 0.1);
for (;;)
{
rot = randomint(80);
if (randomint(100) > 50)
rot *= -1;
newYaw = shutter.angles[1] + rot;
altYaw = shutter.angles[1] + (rot*-1);
if ((newYaw < shutter.startYaw) || (newYaw > shutter.startYaw + 179))
{
newYaw = altYaw;
}
dif = abs(shutter.angles[1] - newYaw);
newTime = dif*0.02 + randomfloat(2);
if (newTime < 0.3)
newTime = 0.3;
// println ("startyaw " + shutter.startyaw + " newyaw " + newYaw);
// assert (newYaw >= shutter.startYaw);
// assert (newYaw < shutter.startYaw + 179);
shutter rotateto((shutter.angles[0], newYaw, shutter.angles[2]), newTime, newTime * 0.5, newTime * 0.5);
wait (newTime);
}
}
shutterWanderRight(shutter, windDirection)
{
// println ("shutter angles ", shutter.angles[1]);
// assert (shutter.angles[1] >= shutter.startYaw);
// assert (shutter.angles[1] < shutter.startYaw + 180);
// println ("Wind + ", level.inc);
level.inc++;
level endon ("wind blows");
newYaw = shutter.startYaw;
if (windDirection == "left")
newYaw += 179.9;
newTime = 0.2;
shutter rotateto((shutter.angles[0], newYaw, shutter.angles[2]), newTime);
wait (newTime + 0.1);
for (;;)
{
rot = randomint(80);
if (randomint(100) > 50)
rot *= -1;
newYaw = shutter.angles[1] + rot;
altYaw = shutter.angles[1] + (rot*-1);
if ((newYaw < shutter.startYaw) || (newYaw > shutter.startYaw + 179))
{
newYaw = altYaw;
}
dif = abs(shutter.angles[1] - newYaw);
newTime = dif*0.02 + randomfloat(2);
if (newTime < 0.3)
newTime = 0.3;
// println ("startyaw " + shutter.startyaw + " newyaw " + newYaw);
// assert (newYaw >= shutter.startYaw);
// assert (newYaw < shutter.startYaw + 179);
shutter rotateto((shutter.angles[0], newYaw, shutter.angles[2]), newTime, newTime * 0.5, newTime * 0.5);
wait (newTime);
}
}
wireWander (wire)
{
origins = getentarray (wire.target,"targetname");
org1 = origins[0].origin;
org2 = origins[1].origin;
angles = vectortoangles (org1 - org2);
ent = spawn ("script_model",(0,0,0));
ent.origin = vectorScale(org1, 0.5) + vectorScale(org2, 0.5);
// ent setmodel ("temp");
ent.angles = angles;
wire linkto (ent);
rottimer = 2;
rotrange = 0.9;
dist = 4 + randomfloat(2);
ent rotateroll(dist*0.5,0.2);
wait (0.2);
for (;;)
{
rottime = rottimer + randomfloat (rotRange) - (rotRange * 0.5);
ent rotateroll(dist,rottime, rottime*0.5, rottime*0.5);
wait (rottime);
ent rotateroll(dist * -1,rottime, rottime*0.5, rottime*0.5);
wait (rottime);
}
}
|
 |
|
|
| FAFFER |
General Member Since: May 1, 2005 Posts: 647 Last: Sep 17, 2011 [view latest posts] |
|
|
|
Category: CoDWW Scripting Posted: Wednesday, Dec. 9, 2009 09:21 pm |
 |
| attachment: application(1.1Kb) |
never noticed the attachments bit!
i think they rotate around 180 degrees....
if that could be reduced to about 160, i think that would do it....
also does it start from where the brush is, or on the x & y?
as maybe that will affect shutters facing different directions?
thanks again. |
 |
|
|
| FAFFER |
General Member Since: May 1, 2005 Posts: 647 Last: Sep 17, 2011 [view latest posts] |
|
|
|
|