That unit functions correctly, however this one does not yet I do not see much if any difference in the script:#define TA // This is a TA script
#include "sfxtype.h"
#include "exptype.h"
piece groundplane, base, turret1, Sleeve, Barrel, Flash, Sensor, cap, turbase1, turbase2, turbase3, turret2, sleeve2, barrel2a, flare2a, barrel2b, flare2b, turret3, sleeve3, barrel3a, flare3a, barrel3b, flare3b;
static-var gun_1, gun_2, gun_3, loseweap, shiphealth, RestoreDelay;
// Signal definitions
#define SIG_AIM 2
#define SIG_AIM_2 4
#define SIG_AIM_3 8
#define SMOKEPIECE1 base
#include "SmokeUnit.h"
RestoreWeaps()
{
while( loseweap >= 1 )
{
sleep 500;
shiphealth = get HEALTH;
if( shiphealth >= 35 )
{
show turret3;
show sleeve3;
show barrel3a;
show barrel3b;
loseweap = 0;
}
}
}
HitByWeapon()
{
shiphealth = get HEALTH;
if( shiphealth <= 32 AND loseweap == 0 )
{
loseweap = 1;
explode turret3 type SHATTER | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP3;
explode sleeve3 type SHATTER | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP3;
hide turret3;
hide sleeve3;
hide barrel3a;
hide barrel3b;
}
start-script RestoreWeaps();
}
RestoreAfterDelay()
{
sleep RestoreDelay;
turn turret1 to y-axis <0.000000> speed <55.000000>;
turn sleeve to x-axis <0.000000> speed <30.000000>;
turn barrel to x-axis <0.000000> speed <30.000000>;
turn turret2 to y-axis <0.000000> speed <55.000000>;
turn sleeve2 to x-axis <0.000000> speed <30.000000>;
turn barrel2a to x-axis <0.000000> speed <30.000000>;
turn barrel2b to x-axis <0.000000> speed <30.000000>;
turn turret3 to y-axis <0.000000> speed <55.000000>;
turn sleeve3 to x-axis <0.000000> speed <30.000000>;
turn barrel3a to x-axis <0.000000> speed <30.000000>;
turn barrel3b to x-axis <0.000000> speed <30.000000>;
gun_1 = 0;
gun_2 = 0;
gun_3 = 0;
}
Create()
{
hide flash;
hide flare2a;
hide flare2b;
hide flare3a;
hide flare3b;
gun_1 = 0;
gun_2 = 0;
gun_3 = 0;
RestoreDelay=5000;
loseweap = 0;
start-script SmokeUnit();
set ARMORED to 1;
while (get BUILD_PERCENT_LEFT > 0)
{
sleep 250;
}
dont-cache sleeve3;
dont-cache turret3;
dont-cache barrel3a;
dont-cache barrel3b;
loseweap=0;
call-script HitByWeapon();
}
//AimWeapon
AimWeapon1(heading, pitch)
{
signal SIG_AIM;
set-signal-mask SIG_AIM;
turn turret1 to y-axis heading speed <45.000000>;
turn Sleeve to x-axis <0.000000> - pitch speed <50.000000>;
wait-for-turn turret1 around y-axis;
wait-for-turn Sleeve around x-axis;
if( gun_1 == 0 )
{
wait-for-move Barrel along z-axis;
}
start-script RestoreAfterDelay();
return (1);
}
AimWeapon2(heading, pitch)
{
signal SIG_AIM_2;
set-signal-mask SIG_AIM_2;
turn turret2 to y-axis heading speed <85.000000>;
turn sleeve2 to x-axis <0.000000> - pitch speed <85.000000>;
wait-for-turn turret2 around y-axis;
wait-for-turn sleeve2 around x-axis;
if( gun_2 == 0)
{
wait-for-move barrel2a along z-axis;
wait-for-move barrel2b along z-axis;
}
start-script RestoreAfterDelay();
return (1);
}
AimWeapon3(heading, pitch)
{
signal SIG_AIM_3;
set-signal-mask SIG_AIM_3;
while( loseweap >= 1 )
{
sleep 500;
}
turn turret3 to y-axis heading speed <85.000000>;
turn sleeve2 to x-axis <0.000000> - pitch speed <85.000000>;
wait-for-turn turret3 around y-axis;
wait-for-turn sleeve3 around x-axis;
if( gun_3 == 0 )
{
wait-for-move barrel3a along z-axis;
wait-for-move barrel3b along z-axis;
}
start-script RestoreAfterDelay();
return (1);
}
//FireWeapon
FireWeapon1()
{
show Flash;
move Barrel to z-axis [-1.000000] speed [500.000000];
sleep 250;
hide Flash;
move Barrel to z-axis [0.000000] speed [1.000000];
return (0);
}
FireWeapon2()
{
if( gun_2 == 0 )
{
show flare2a;
move barrel2a to z-axis [-4.000000] speed [500.000000];
sleep 150;
hide flare2a;
move barrel2a to z-axis [0.000000] speed [1.000000];
}
if( gun_2 == 1 )
{
show flare2b;
move barrel2b to z-axis [-4.000000] speed [500.000000];
sleep 150;
hide flare2b;
move barrel2b to z-axis [0.000000] speed [1.000000];
}
gun_2 = gun_2 + 1;
if( gun_2 == 2 )
{
gun_2 = 0;
}
}
FireWeapon3()
{
if( gun_3 == 0 )
{
show flare3a;
move barrel3a to z-axis [-4.000000] speed [500.000000];
sleep 150;
hide flare3a;
move barrel3a to z-axis [0.000000] speed [1.000000];
}
if( gun_3 == 1 )
{
show flare3b;
move barrel3b to z-axis [-4.000000] speed [500.000000];
sleep 150;
hide flare3b;
move barrel3b to z-axis [0.000000] speed [1.000000];
}
gun_3 = gun_3 + 1;
if( gun_3==2 )
{
gun_3=0;
}
}
AimFromWeapon1(piecenum)
{
piecenum = turret1;
}
QueryWeapon1(piecenum)
{
piecenum = Flash;
}
AimFromWeapon2(piecenum)
{
piecenum = turret2;
}
QueryWeapon2(piecenum)
{
if( gun_2 == 0 )
{
piecenum = flare2a;
}
if( gun_2 == 1 )
{
piecenum = flare2b;
}
}
AimFromWeapon3(piecenum)
{
piecenum = turret3;
}
QueryWeapon3(piecenum)
{
if( gun_3 == 0 )
{
piecenum = flare3a;
}
if( gun_3 == 1 )
{
piecenum = flare3b;
}
}
SweetSpot(piecenum)
{
piecenum = base;
}
Killed(severity, corpsetype)
{
hide Flash;
hide flare2a;
hide flare2b;
hide flare3a;
hide flare3b;
if( severity <= 40 )
{
corpsetype = 1;
explode base type BITMAPONLY | BITMAP1;
return (0);
}
corpsetype = 3;
explode base type SHATTER | EXPLODE_ON_HIT | BITMAP5;
explode cap type SHATTER | EXPLODE_ON_HIT | BITMAP3;
}
#define TA // This is a TA script
#include "sfxtype.h"
#include "exptype.h"
piece groundplane, base, turret1, sleeve1, barrel1a, flare1a, barrel1b, flare1b, turret2, sleeve2, barrel2a, flare2a, barrel2b, flare2b, turret3, sleeve3, barrel3a, flare3a, barrel3b, flare3b, barrel3c, flare3c, turret4, sleeve4, barrel4a, flare4a, barrel4b, flare4b, barrel4c, flare4c, turbase1, turbase2, turbase3, turbase4, hull, Box08, Box03, Box05, Box14, Box13, Box10, Box04, Box01, Box09, Box11, Box12, Box02, Box06, Box07;
static-var gun_1, gun_2, gun_3, gun_4, loseweap, shiphealth, RestoreDelay;
// Signal definitions
#define SIG_AIM 2
#define SIG_AIM_2 4
#define SIG_AIM_3 8
#define SIG_AIM_4 16
#define SMOKEPIECE1 base
#include "SmokeUnit.h"
RestoreWeaps()
{
while( loseweap >= 1 )
{
sleep 500;
shiphealth = get HEALTH;
if( shiphealth >= 35 )
{
show turret2;
show barrel2a;
show barrel2b;
show sleeve2;
loseweap = 2;
}
if( shiphealth >= 40 )
{
show box12;
show box11;
loseweap = 1;
}
if( shiphealth >= 50 )
{
show box14;
show box13;
loseweap = 0;
}
}
}
HitByWeapon()
{
shiphealth = get HEALTH;
if( shiphealth <= 45 AND loseweap == 0 )
{
loseweap = 1;
explode box11 type SHATTER | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP3;
explode box13 type SHATTER | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP3;
hide box11;
hide box12;
}
if( shiphealth <= 38 AND loseweap == 1 )
{
loseweap = 2;
explode box12 type SHATTER | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP3;
explode box14 type SHATTER | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP3;
hide box13;
hide box14;
}
if( shiphealth <= 32 AND loseweap == 2 )
{
loseweap = 3;
explode turret3 type SHATTER | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP3;
explode sleeve3 type SHATTER | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP3;
explode barrel3a type SHATTER | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP3;
explode barrel3b type SHATTER | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP3;
explode barrel3c type SHATTER | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP3;
hide turret2;
hide barrel2a;
hide barrel2b;
hide sleeve2;
}
start-script RestoreWeaps();
}
RestoreAfterDelay()
{
sleep RestoreDelay;
turn turret1 to y-axis <0.000000> speed <55.000000>;
turn barrel1a to x-axis <0.000000> speed <30.000000>;
turn barrel1b to x-axis <0.000000> speed <30.000000>;
turn turret2 to y-axis <0.000000> speed <55.000000>;
turn barrel2a to x-axis <0.000000> speed <30.000000>;
turn barrel2b to x-axis <0.000000> speed <30.000000>;
turn turret3 to y-axis <0.000000> speed <55.000000>;
turn barrel3a to x-axis <0.000000> speed <30.000000>;
turn barrel3b to x-axis <0.000000> speed <30.000000>;
turn barrel3c to x-axis <0.000000> speed <30.000000>;
turn turret4 to y-axis <0.000000> speed <55.000000>;
turn barrel4a to x-axis <0.000000> speed <30.000000>;
turn barrel4b to x-axis <0.000000> speed <30.000000>;
turn barrel4c to x-axis <0.000000> speed <30.000000>;
gun_1 = 0;
gun_2 = 0;
gun_3 = 0;
gun_4 = 0;
}
Create()
{
hide flare1a;
hide flare1b;
hide flare2a;
hide flare2b;
hide flare3a;
hide flare3b;
hide flare3c;
hide flare4a;
hide flare4b;
hide flare4c;
gun_2 = 0;
gun_1 = 0;
gun_3 = 0;
RestoreDelay=5000;
loseweap = 0;
start-script SmokeUnit();
set ARMORED to 1;
while (get BUILD_PERCENT_LEFT > 0)
{
sleep 250;
}
dont-cache turret2;
dont-cache barrel2a;
dont-cache barrel2b;
dont-cache sleeve2;
dont-cache box11;
dont-cache box12;
dont-cache box13;
dont-cache box14;
loseweap=0;
call-script HitByWeapon();
}
//AimWeapon
AimWeapon1(heading, pitch)
{
signal SIG_AIM;
set-signal-mask SIG_AIM;
turn turret1 to y-axis heading speed <85.000000>;
turn sleeve1 to x-axis <0.000000> - pitch speed <85.000000>;
wait-for-turn turret1 around y-axis;
wait-for-turn sleeve1 around x-axis;
if( gun_1 == 1 )
{
wait-for-move barrel1a along z-axis;
wait-for-move barrel1b along z-axis;
}
start-script RestoreAfterDelay();
return (1);
}
AimWeapon2(heading, pitch)
{
signal SIG_AIM_2;
set-signal-mask SIG_AIM_2;
while( loseweap >= 3 )
{
sleep 500;
}
turn turret2 to y-axis heading speed <125.000000>;
turn sleeve2 to x-axis <0.000000> - pitch speed <125.000000>;
wait-for-turn turret2 around y-axis;
wait-for-turn sleeve2 around x-axis;
if( gun_2 == 1 )
{
wait-for-move barrel2a along z-axis;
wait-for-move barrel2b along z-axis;
}
start-script RestoreAfterDelay();
return (1);
}
AimWeapon3(heading, pitch)
{
signal SIG_AIM_3;
set-signal-mask SIG_AIM_3;
turn turret3 to y-axis heading speed <125.000000>;
turn sleeve3 to x-axis <0.000000> - pitch speed <125.000000>;
wait-for-turn turret3 around y-axis;
wait-for-turn sleeve3 around x-axis;
if( gun_3 == 1 )
{
wait-for-move barrel3a along z-axis;
wait-for-move barrel3b along z-axis;
wait-for-move barrel3c along z-axis;
}
start-script RestoreAfterDelay();
return (1);
}
AimWeapon4(heading, pitch)
{
signal SIG_AIM_4;
set-signal-mask SIG_AIM_4;
turn turret4 to y-axis heading speed <125.000000>;
turn sleeve4 to x-axis <0.000000> - pitch speed <125.000000>;
wait-for-turn turret4 around y-axis;
wait-for-turn sleeve4 around x-axis;
if( gun_4 == 1 )
{
wait-for-move barrel4a along z-axis;
wait-for-move barrel4b along z-axis;
wait-for-move barrel4c along z-axis;
}
start-script RestoreAfterDelay();
return (1);
}
//FireWeapon
FireWeapon1()
{
if( gun_1 == 1 )
{
show flare1a;
move barrel1a to z-axis [-4.000000] now;
sleep 150;
hide flare1a;
move barrel1a to z-axis [0.000000] speed [1.000000];
return (0);
}
if( gun_1 == 2 )
{
show flare1b;
move barrel1b to z-axis [-4.000000] now;
sleep 150;
hide flare1b;
move barrel1b to z-axis [0.000000] speed [1.000000];
return (0);
}
gun_1 = gun_1 + 1;
if( gun_1==3 )
{
gun_1=1;
}
}
FireWeapon2()
{
if( gun_2 == 1 )
{
show flare2a;
move barrel2a to z-axis [-4.000000] now;
sleep 150;
hide flare2a;
move barrel2a to z-axis [0.000000] speed [1.000000];
return (0);
}
if( gun_2 == 2 )
{
show flare2b;
move barrel2b to z-axis [-4.000000] now;
sleep 150;
hide flare2b;
move barrel2b to z-axis [0.000000] speed [1.000000];
return (0);
}
gun_2 = gun_2 + 1;
if( gun_2==3 )
{
gun_2=1;
}
}
FireWeapon3()
{
if( gun_3 == 1 )
{
show flare3a;
move barrel3a to z-axis [-4.000000] now;
sleep 150;
hide flare3a;
move barrel3a to z-axis [0.000000] speed [1.000000];
return (0);
}
if( gun_3 == 2 )
{
show flare3b;
move barrel3b to z-axis [-4.000000] now;
sleep 150;
hide flare3b;
move barrel3b to z-axis [0.000000] speed [1.000000];
return (0);
}
if( gun_3 == 3 )
{
show flare3c;
move barrel3c to z-axis [-4.000000] now;
sleep 150;
hide flare3c;
move barrel3c to z-axis [0.000000] speed [1.000000];
return (0);
}
gun_3 = gun_3 + 1;
if( gun_3==4 )
{
gun_3=1;
}
}
FireWeapon4()
{
if( gun_4 == 1 )
{
show flare4a;
move barrel4a to z-axis [-4.000000] now;
sleep 150;
hide flare4a;
move barrel4a to z-axis [0.000000] speed [1.000000];
return (0);
}
if( gun_4 == 2 )
{
show flare4b;
move barrel4b to z-axis [-4.000000] now;
sleep 150;
hide flare4b;
move barrel4b to z-axis [0.000000] speed [1.000000];
return (0);
}
if( gun_4 == 3 )
{
show flare4c;
move barrel4c to z-axis [-4.000000] now;
sleep 150;
hide flare4c;
move barrel4c to z-axis [0.000000] speed [1.000000];
return (0);
}
gun_4 = gun_4 + 1;
if( gun_4==4 )
{
gun_4=1;
}
}
//AimFromWeapon
AimFromWeapon1(piecenum)
{
piecenum = turret1;
}
QueryWeapon1(piecenum)
{
if( gun_1 == 1 )
{
piecenum = flare1a;
}
if( gun_1 == 2 )
{
piecenum = flare1b;
}
}
AimFromWeapon2(piecenum)
{
piecenum = turret2;
}
QueryWeapon2(piecenum)
{
if( gun_2 == 1 )
{
piecenum = flare2a;
}
if( gun_2 == 2 )
{
piecenum = flare2b;
}
}
AimFromWeapon3(piecenum)
{
piecenum = turret3;
}
QueryWeapon3(piecenum)
{
if( gun_3 == 1 )
{
piecenum = flare3a;
}
if( gun_3 == 2 )
{
piecenum = flare3b;
}
if( gun_3 == 3 )
{
piecenum = flare3c;
}
}
AimFromWeapon4(piecenum)
{
piecenum = turret4;
}
QueryWeapon4(piecenum)
{
if( gun_4 == 1 )
{
piecenum = flare4a;
}
if( gun_4 == 2 )
{
piecenum = flare4b;
}
if( gun_4 == 3 )
{
piecenum = flare4c;
}
}
SweetSpot(piecenum)
{
piecenum = base;
}
Killed(severity, corpsetype)
{
hide flare1a;
hide flare1b;
hide flare2a;
hide flare2b;
hide flare3a;
hide flare3b;
hide flare3c;
hide flare4a;
hide flare4b;
hide flare4c;
if( severity <= 25 )
{
corpsetype = 1;
explode base type BITMAPONLY | BITMAP1;
return (0);
}
corpsetype = 3;
explode Box07 type SHATTER | EXPLODE_ON_HIT | BITMAP3;
explode Box06 type SHATTER | EXPLODE_ON_HIT | BITMAP3;
explode Box02 type SHATTER | EXPLODE_ON_HIT | BITMAP3;
explode Box03 type SHATTER | EXPLODE_ON_HIT | BITMAP1;
}
Any assistance would be appreciated, I realize i should probably replace the pieces with numbers but that confuses me..