the guns. they won't fire . ..
Posted: 30 May 2006, 01:19
alrighty, I have a unit, with 5 weapons, I am using AimWeapon1 etc. I have custom weapons for them (displayed below). the unit will not fire or aim its weapons and I am unsure of why. Help is appriciated, thanks
Skript
and my two weapons in their TDF file
thanks
Skript
Code: Select all
#define TA // This is a TA script
#include "sfxtype.h"
#include "exptype.h"
piece base, pad, nano, swivle, mturret, maingunpoint, smbase1, pivot1, smgun1, fp1;
piece smbase2, pivot2, smgun2, fp2,smbase3, pivot3, smgun3, fp3,smbase4, pivot4, smgun4, fp4;
static-var Static_Var_1, statechg_DesiredState, statechg_StateChanging;
// Signal definitions
#define SIG_ACTIVATE 2
#define SIG_AIM1 2
#define SIG_AIM2 4
#define SIG_AIM3 6
#define SIG_AIM4 8
#define SIG_AIM5 10
#define SIG_RESTORE1 1
#define SIG_RESTORE2 3
#define SIG_RESTORE3 5
#define SIG_RESTORE4 7
#define SIG_RESTORE5 9
OpenYard()
{
set YARD_OPEN to 1;
while( !get YARD_OPEN )
{
set BUGGER_OFF to 1;
sleep 1500;
set YARD_OPEN to 1;
}
set BUGGER_OFF to 0;
return (0);
}
CloseYard()
{
set YARD_OPEN to 0;
while( get YARD_OPEN )
{
set BUGGER_OFF to 1;
sleep 10000;
set YARD_OPEN to 0;
}
set BUGGER_OFF to 0;
return (0);
}
activatescr()
{
if( TRUE )
{
sleep 1820;
}
return (0);
}
deactivatescr()
{
if( TRUE )
{
sleep 1820;
}
return (0);
}
SmokeUnit(healthpercent, sleeptime, smoketype)
{
while( get BUILD_PERCENT_LEFT )
{
sleep 400;
}
while( TRUE )
{
healthpercent = get HEALTH;
if( healthpercent < 66 )
{
smoketype = 256 | 2;
if( Rand( 1, 66 ) < healthpercent )
{
smoketype = 256 | 1;
}
emit-sfx smoketype from base;
}
sleeptime = healthpercent * 50;
if( sleeptime < 200 )
{
sleeptime = 200;
}
sleep sleeptime;
}
return (0);
}
Go()
{
call-script activatescr();
call-script OpenYard();
set INBUILDSTANCE to 1;
return (0);
}
Stop()
{
set INBUILDSTANCE to 0;
call-script CloseYard();
call-script deactivatescr();
return (0);
}
InitState()
{
statechg_DesiredState = TRUE;
statechg_StateChanging = FALSE;
return (0);
}
RequestState(requestedstate, currentstate)
{
if( statechg_StateChanging )
{
statechg_DesiredState = requestedstate;
return (0);
}
statechg_StateChanging = TRUE;
currentstate = statechg_DesiredState;
statechg_DesiredState = requestedstate;
while( statechg_DesiredState != currentstate )
{
if( statechg_DesiredState == 0 )
{
call-script Go();
currentstate = 0;
}
if( statechg_DesiredState == 1 )
{
call-script Stop();
currentstate = 1;
}
}
statechg_StateChanging = FALSE;
return (0);
}
Create()
{
Static_Var_1 = 0;
call-script InitState();
start-script SmokeUnit();
}
QueryNanoPiece(piecenum)
{
piecenum = nano;
return (0);
}
Activate()
{
signal SIG_ACTIVATE;
start-script RequestState(0);
return (0);
}
Deactivate()
{
signal SIG_ACTIVATE;
set-signal-mask SIG_ACTIVATE;
set-signal-mask 0;
start-script RequestState(1);
return (0);
}
StartBuilding()
{
return (0);
}
StopBuilding()
{
return (0);
}
QueryBuildInfo(piecenum)
{
piecenum = pad;
return (0);
}
SweetSpot(piecenum)
{
piecenum = base;
return (0);
}
RestoreAfterDelay1()
{
signal SIG_RESTORE1;
set-signal-mask SIG_RESTORE1;
sleep 500;
turn pivot1 to y-axis <0.0> speed <200.0>;
turn pivot1 to x-axis <0.0> speed <200.0>;
return 0;
}
RestoreAfterDelay2()
{
signal SIG_RESTORE2;
set-signal-mask SIG_RESTORE2;
sleep 500;
turn pivot2 to y-axis <0.0> speed <200.0>;
turn pivot2 to x-axis <0.0> speed <200.0>;
return 0;
}
RestoreAfterDelay3()
{
signal SIG_RESTORE3;
set-signal-mask SIG_RESTORE3;
sleep 500;
turn pivot3 to y-axis <0.0> speed <200.0>;
turn pivot3 to x-axis <0.0> speed <200.0>;
return 0;
}
RestoreAfterDelay4()
{
signal SIG_RESTORE4;
set-signal-mask SIG_RESTORE4;
sleep 500;
turn pivot4 to y-axis <0.0> speed <200.0>;
turn pivot4 to x-axis <0.0> speed <200.0>;
return 0;
}
RestoreAfterDelay5()
{
signal SIG_RESTORE5;
set-signal-mask SIG_RESTORE5;
sleep 700;
turn swivle to y-axis <0.0> speed <100.0>;
return 0;
}
AimWeapon1(heading,pitch)
{
signal SIG_AIM1;
set-signal-mask SIG_AIM1;
turn pivot1 to y-axis heading speed <200>;
turn pivot1 to x-axis (0-pitch) speed <200>;
wait-for-turn pivot1 around y-axis;
wait-for-turn pivot1 around x-axis;
start-script RestoreAfterDelay1();
return(TRUE);
}
AimWeapon2(heading,pitch)
{
signal SIG_AIM2;
set-signal-mask SIG_AIM2;
turn pivot2 to y-axis heading speed <200>;
turn pivot2 to x-axis (0-pitch) speed <200>;
wait-for-turn pivot2 around y-axis;
wait-for-turn pivot2 around x-axis;
start-script RestoreAfterDelay2();
return(TRUE);
}
AimWeapon3(heading,pitch)
{
signal SIG_AIM3;
set-signal-mask SIG_AIM3;
turn pivot3 to y-axis heading speed <200>;
turn pivot3 to x-axis (0-pitch) speed <200>;
wait-for-turn pivot3 around y-axis;
wait-for-turn pivot3 around x-axis;
start-script RestoreAfterDelay3();
return(TRUE);
}
AimWeapon4(heading,pitch)
{
signal SIG_AIM4;
set-signal-mask SIG_AIM4;
turn pivot4 to y-axis heading speed <200>;
turn pivot4 to x-axis (0-pitch) speed <200>;
wait-for-turn pivot4 around y-axis;
wait-for-turn pivot4 around x-axis;
start-script RestoreAfterDelay4();
return(TRUE);
}
AimWeapon5(heading,pitch)
{
signal SIG_AIM5;
set-signal-mask SIG_AIM5;
turn swivle to y-axis heading speed <100>;
wait-for-turn swivle around y-axis;
start-script RestoreAfterDelay5();
return(TRUE);
}
AimFromWeapon1(piecenum)
{
piecenum = pivot1;
return 0;
}
AimFromWeapon2(piecenum)
{
piecenum = pivot2;
return 0;
}
AimFromWeapon3(piecenum)
{
piecenum = pivot3;
return 0;
}
AimFromWeapon4(piecenum)
{
piecenum=pivot4;
return 0;
}
AimFromWeapon5(piecenum)
{
piecenum=swivle;
return 0;
}
QuaryWeapon1(piecenum)
{
piecenum=fp1;
return 0;
}
QuaryWeapon2(piecenum)
{
piecenum=fp2;
return 0;
}
QuaryWeapon3(piecenum)
{
piecenum=fp3;
return 0;
}
QuaryWeapon4(piecenum)
{
piecenum=fp4;
return 0;
}
QuaryWeapon5(piecenum)
{
piecenum=maingunpoint;
return 0;
}
FireWeapon1(piecenum)
{
return 0;
}
FireWeapon2(piecenum)
{
return 0;
}
FireWeapon3(piecenum)
{
return 0;
}
FireWeapon4(piecenum)
{
return 0;
}
FireWeapon5(piecenum)
{
return 0;
}
Killed(severity, corpsetype)
{
if( severity <= 25 )
{
corpsetype = 1;
explode base type SHATTER | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP2;
return (0);
}
if( severity <= 50 )
{
corpsetype = 2;
explode base type SHATTER | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP2;
return (0);
}
if( severity <= 99 )
{
corpsetype = 3;
explode base type SHATTER | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP2;
return (0);
}
corpsetype = 3;
explode base type SHATTER | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP2;
return (0);
}
and my two weapons in their TDF file
Code: Select all
[DSHATTER]
{
ID = 30;
name=Shatter Gun;
rendertype=1;
lineofsight=1;
turret = 1;
Impulsefactor = -5;
reloadtime = .5;
weapontimer = .5;
wobble = 5;
range = 300;
model = DSHATTER;
weaponvelocity = 150;
areaofeffect=60;
[DAMAGE]
{
defualt = 20;
}
}
[DIMPLOSION]
{
ID = 31;
name=Implosion round;
rendertype=1;
weapontimer = 2;
Turret = 1;
impulsefactor = -10;
balistic = 1;
AreaOfEffect = 50
Range =1000;
ReloadTime = 1.5;
Wobble = 10;
Model = DIMPLOSION.s3o;
weaponvelocity = 90;
[DAMAGE]
{
defualt = 100;
}
}