What's with Anni
Moderators: Moderators, Content Developer
What's with Anni
There is a rumour passing around that The Annihilator is bugged. Is this true, and is it serious?
- BrainDamage
- Lobby Developer
- Posts: 1164
- Joined: 25 Sep 2006, 13:56
Re: What's with Anni
it cannot fire unless the turret is tilted downwards, dunno how much exactly
Re: What's with Anni
anni/dd/evapourter/pene are all bugged to some extent
Re: What's with Anni
I don't understand the bug and how to fix it, it would be nice to have some help
Re: What's with Anni
so what do u need? tester, count me in. should we reproduce it?
Re: What's with Anni
I can also help to try to reproduce the bug.
Re: What's with Anni
I'm glad you want to help but its just the language scripting part, we know the issue, now its just the writing it down so-to-speak part. Unless you can screw around with the code its useless.
Re: What's with Anni
couldnt u ask an other mod-dev to help u (e.g. carrepairer or fat controller)?
- Evil4Zerggin
- Posts: 557
- Joined: 16 May 2007, 06:34
Re: What's with Anni
Post scripts, unitDefs, etc. You may want to check the fire points returned by COB.
Re: What's with Anni
Knock urself out
[ARM_TOTAL_ANNIHILATOR]
{
ID=24;
name=Annihilator Weapon;
rendertype=0;
lineofsight=1;
turret=1;
beamlaser=1;
minbarrelangle=-40;
LargeBeamLaser=1;
pulseSpeed=7.0;
Intensity=0.001;
thickness=7.5;
beamtime=1;
beamdecay=0.9;
beamttl=20;
hardStop=0;
range=1850; // downgraded in V9 by El_Barto 1995//
reloadtime=7;
energypershot=4000;
weaponvelocity=1000;
areaofeffect=8;
targetMoveError=2;
soundstart=annigun1;
soundhit=xplolrg1;
firestarter=90;
beamweapon=1;
color=144;
color2=217;
tolerance=200;
explosiongenerator=custom:ANNILAHATORLASER;
[DAMAGE]
{
default=8500;
group_commanders=2800;
group_ships=7000;
group_invincible=1;
}
}
[UNITINFO]
{
//************************************************************
// Unit Description
//********************
side=Arm;
name=Annihilator;
description=- Heavy Energy Weapon;
icontype=building;
//************************************************************
// Categories
//**************
category=ARM SPECIAL WEAPON LEVEL3 NOTAIR NOTSUB;
tedclass=FORT;
//************************************************************
// External Specs
//******************
unitname=arm_annihilator;
unitnumber=7;
objectname=arm_annihilator.3do;
corpse=arm_annihilator_dead;
buildpic=arm_annihilator.DDS;
soundcategory=ARM_ANNI;
//************************************************************
// Health/Cost/Size
//********************
maxdamage=6000;
healtime=11;
buildcostmetal=6500;
buildcostenergy=40000;
buildtime=70000;
footprintx=4;
footprintz=4;
//************************************************************
// Resources
//*************
metalstorage=0;
energymake=0;
energyuse=0;
energystorage=2500;
//************************************************************
// Building
//************
buildangle=40000;
yardmap=ooooooooo;
activatewhenbuilt=0;
//************************************************************
// Constructor
//***************
builder=0;
workertime=0;
//************************************************************
// Abilities
//*************
canattack=1;
canguard=1;
canstop=1;
//************************************************************
// Movement
//************
maxslope=10;
maxwaterdepth=33;
//************************************************************
// Sight/Radar/Sonar
//*********************
sightdistance=896;
radardistance=2100;
//************************************************************
// Weapons
//***********
weapon1=ARM_TOTAL_ANNIHILATOR;
wpri_badtargetcategory=VTOL;
explodeas=ATOMIC_BLASTPEN;
selfdestructas=ATOMIC_BLAST;
//************************************************************
// Orders
//**********
firestandorders=1;
standingfireorder=2;
defaultmissiontype=GUARD_NOMOVE;
//************************************************************
// Miscellaneous
//*****************
bmcode=0;
damagemodifier=0.5;
designation=ARM-ANN1;
downloadable=1;
shootme=1;
threed=1;
version=1.2;
zbuffer=1;
//************************************************************
// To be removed
//*****************
[customParams]
{
canAreaAttack=1;
}
}
#define TA // This is a TA script
#include "sfxtype.h"
#include "exptype.h"
piece base, flare, case5, case6, case1, case2, case4, case3,
plate1, arm, container1, container2, door1, barrel, energy, door2,
plate2, radar, gun, turret;
static-var Static_Var_1, restore_delay, Static_Var_3, Static_Var_4, Static_Var_5,
statechg_DesiredState, statechg_StateChanging, gun_1;
// Signal definitions
#define SIG_AIM 2
activatescr()
{
if( TRUE )
{
move case5 to y-axis [0.000000] now;
move case5 to y-axis [-7.000000] speed [14.000000];
move case6 to y-axis [0.000000] now;
move case6 to y-axis [-7.000000] speed [14.000000];
sleep 514;
}
if( TRUE )
{
turn case1 to z-axis <89.000000> speed <173.000000>;
sleep 518;
}
if( TRUE )
{
turn case2 to z-axis <-90.000000> speed <173.000000>;
sleep 519;
}
if( TRUE )
{
turn case4 to z-axis <89.000000> speed <172.000000>;
sleep 519;
}
if( TRUE )
{
turn case3 to z-axis <-90.000000> speed <173.000000>;
sleep 521;
}
if( TRUE )
{
move plate1 to y-axis [6.000000] speed [12.000000];
sleep 516;
}
if( TRUE )
{
move arm to y-axis [6.000000] speed [10.000000];
sleep 518;
}
if( TRUE )
{
turn container1 to z-axis <91.000000> speed <175.000000>;
sleep 519;
}
if( TRUE )
{
turn container2 to z-axis <-90.000000> speed <174.000000>;
sleep 518;
}
if( TRUE )
{
move container1 to x-axis [2.000000] speed [3.000000];
move container2 to x-axis [-2.000000] speed [3.000000];
sleep 522;
}
if( TRUE )
{
turn door1 to x-axis <88.000000> speed <169.000000>;
sleep 518;
}
if( TRUE )
{
move door1 to z-axis [-2.000000] speed [3.000000];
sleep 519;
}
if( TRUE )
{
move barrel to z-axis [10.000000] speed [18.000000];
move energy to z-axis [3.000000] speed [6.000000];
sleep 518;
}
if( TRUE )
{
turn door2 to z-axis <92.000000> speed <178.000000>;
sleep 516;
}
if( TRUE )
{
move door2 to x-axis [2.000000] speed [3.000000];
sleep 523;
}
if( TRUE )
{
move plate2 to x-axis [-2.000000] speed [4.000000];
sleep 517;
}
if( TRUE )
{
turn radar to x-axis <93.000000> speed <180.000000>;
sleep 519;
}
sleep 169;
}
deactivatescr()
{
if( TRUE )
{
move plate1 to y-axis [6.000000] now;
move case5 to y-axis [-7.000000] now;
move case6 to y-axis [-7.000000] now;
move arm to y-axis [6.000000] now;
move barrel to z-axis [10.000000] now;
move container1 to x-axis [2.000000] now;
move container2 to x-axis [-2.000000] now;
move plate2 to x-axis [-2.000000] now;
move door2 to x-axis [2.000000] now;
move door1 to z-axis [-2.000000] now;
move energy to z-axis [3.000000] now;
turn case1 to z-axis <89.000000> now;
turn case2 to z-axis <-90.000000> now;
turn case3 to z-axis <-90.000000> now;
turn case4 to z-axis <89.000000> now;
turn container1 to z-axis <91.000000> now;
turn container2 to z-axis <-90.000000> now;
turn door2 to z-axis <92.000000> now;
turn radar to x-axis <93.000000> now;
turn radar to x-axis <0.000000> speed <182.000000>;
turn door1 to x-axis <88.000000> now;
sleep 511;
}
if( TRUE )
{
move plate2 to x-axis [0.000000] speed [4.000000];
sleep 518;
}
if( TRUE )
{
move door2 to x-axis [0.000000] speed [3.000000];
sleep 519;
}
if( TRUE )
{
turn door2 to z-axis <0.000000> speed <177.000000>;
sleep 519;
}
if( TRUE )
{
move barrel to z-axis [0.000000] speed [18.000000];
move energy to z-axis [0.000000] speed [6.000000];
sleep 522;
}
if( TRUE )
{
move door1 to z-axis [0.000000] speed [3.000000];
sleep 514;
}
if( TRUE )
{
turn door1 to x-axis <0.000000> speed <169.000000>;
sleep 518;
}
if( TRUE )
{
move container1 to x-axis [0.000000] speed [3.000000];
move container2 to x-axis [0.000000] speed [3.000000];
sleep 519;
}
if( TRUE )
{
turn container2 to z-axis <0.000000> speed <173.000000>;
sleep 519;
}
if( TRUE )
{
turn container1 to z-axis <0.000000> speed <174.000000>;
sleep 521;
}
if( TRUE )
{
move arm to y-axis [0.000000] speed [10.000000];
sleep 519;
}
if( TRUE )
{
move plate1 to y-axis [0.000000] speed [12.000000];
sleep 519;
}
if( TRUE )
{
turn case3 to z-axis <0.000000> speed <174.000000>;
sleep 517;
}
if( TRUE )
{
turn case4 to z-axis <0.000000> speed <173.000000>;
sleep 517;
}
if( TRUE )
{
turn case2 to z-axis <0.000000> speed <172.000000>;
sleep 523;
}
if( TRUE )
{
turn case1 to z-axis <0.000000> speed <173.000000>;
sleep 516;
}
if( TRUE )
{
move case5 to y-axis [0.000000] speed [14.000000];
move case6 to y-axis [0.000000] speed [14.000000];
sleep 519;
}
sleep 160;
}
go()
{
dont-cache arm;
dont-cache barrel;
dont-cache case1;
dont-cache case2;
dont-cache case3;
dont-cache case4;
dont-cache case5;
dont-cache case6;
dont-cache container1;
dont-cache container2;
dont-cache door1;
dont-cache door2;
dont-cache energy;
dont-cache flare;
dont-cache gun;
dont-cache plate1;
dont-cache plate2;
dont-cache radar;
dont-cache turret;
call-script activatescr();
spin radar around x-axis speed <100.000000>;
Static_Var_1 = 1;
set ARMORED to 0;
}
stop()
{
set ARMORED to 1;
Static_Var_1 = 0;
stop-spin radar around x-axis;
turn radar to x-axis <0.000000> speed <100.000000>;
wait-for-turn radar around x-axis;
call-script deactivatescr();
cache arm;
cache barrel;
cache case1;
cache case2;
cache case3;
cache case4;
cache case5;
cache case6;
cache container1;
cache container2;
cache door1;
cache door2;
cache energy;
cache flare;
cache gun;
cache plate1;
cache plate2;
cache radar;
cache turret;
}
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;
}
}
InitState()
{
statechg_DesiredState = TRUE;
statechg_StateChanging = FALSE;
}
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;
}
Create()
{
dont-shade arm;
dont-shade barrel;
dont-shade case1;
dont-shade case2;
dont-shade case3;
dont-shade case4;
dont-shade case5;
dont-shade case6;
dont-shade container1;
dont-shade container2;
dont-shade door1;
dont-shade door2;
dont-shade energy;
dont-shade flare;
dont-shade gun;
dont-shade plate1;
dont-shade plate2;
dont-shade radar;
dont-shade turret;
hide flare;
gun_1 = 0;
Static_Var_1 = 0;
call-script InitState();
start-script SmokeUnit();
restore_delay = 3000;
while( get BUILD_PERCENT_LEFT )
{
sleep 500;
}
set ARMORED to 1;
}
Activate()
{
}
Deactivate()
{
}
SetMaxReloadTime(Func_Var_1)
{
restore_delay = Func_Var_1 * 2;
}
RestoreAfterDelay()
{
sleep restore_delay;
turn turret to y-axis <0.000000> speed <50.000000>;
turn gun to x-axis <0.000000> speed <50.000000>;
wait-for-turn turret around y-axis;
wait-for-turn gun around x-axis;
set-signal-mask 0;
start-script RequestState(1);
}
AimPrimary(heading, pitch)
{
start-script RequestState(0);
signal SIG_AIM;
set-signal-mask SIG_AIM;
while( !Static_Var_1 )
{
sleep 250;
}
turn turret to y-axis heading speed <50.000000>;
turn gun to x-axis <0.000000> - pitch speed <50.000000>;
wait-for-turn turret around y-axis;
wait-for-turn gun around x-axis;
start-script RestoreAfterDelay();
return (1);
}
TargetCleared(Func_Var_1)
{
stop-spin turret around y-axis;
stop-spin gun around x-axis;
}
FirePrimary()
{
sleep 150;
}
QueryPrimary(piecenum)
{
piecenum = flare;
}
SweetSpot(piecenum)
{
piecenum = base;
}
Killed(severity, corpsetype)
{
hide flare;
if( severity <= 25 )
{
corpsetype = 1;
explode arm type BITMAPONLY | BITMAP1;
explode barrel type BITMAPONLY | BITMAP2;
explode base type BITMAPONLY | BITMAP3;
explode case1 type BITMAPONLY | BITMAP4;
explode case2 type BITMAPONLY | BITMAP5;
explode case3 type BITMAPONLY | BITMAP1;
explode case4 type BITMAPONLY | BITMAP2;
explode case5 type BITMAPONLY | BITMAP3;
explode case6 type BITMAPONLY | BITMAP4;
explode container1 type BITMAPONLY | BITMAP5;
explode container2 type BITMAPONLY | BITMAP1;
explode door1 type BITMAPONLY | BITMAP2;
explode door2 type BITMAPONLY | BITMAP3;
explode energy type BITMAPONLY | BITMAP4;
explode flare type BITMAPONLY | BITMAP5;
explode gun type BITMAPONLY | BITMAP1;
explode plate1 type BITMAPONLY | BITMAP2;
explode plate2 type BITMAPONLY | BITMAP3;
explode radar type BITMAPONLY | BITMAP4;
explode turret type BITMAPONLY | BITMAP5;
return (0);
}
if( severity <= 50 )
{
corpsetype = 2;
explode arm type BITMAPONLY | BITMAP1;
explode barrel type FALL | BITMAP2;
explode base type BITMAPONLY | BITMAP3;
explode case1 type BITMAPONLY | BITMAP4;
explode case2 type BITMAPONLY | BITMAP5;
explode case3 type BITMAPONLY | BITMAP1;
explode case4 type BITMAPONLY | BITMAP2;
explode case5 type BITMAPONLY | BITMAP3;
explode case6 type BITMAPONLY | BITMAP4;
explode container1 type BITMAPONLY | BITMAP5;
explode container2 type BITMAPONLY | BITMAP1;
explode door1 type FALL | BITMAP2;
explode door2 type FALL | BITMAP3;
explode energy type FALL | BITMAP4;
explode flare type FALL | BITMAP5;
explode gun type SHATTER | BITMAP1;
explode plate1 type BITMAPONLY | BITMAP2;
explode plate2 type BITMAPONLY | BITMAP3;
explode radar type FALL | BITMAP4;
explode turret type BITMAPONLY | BITMAP5;
return (0);
}
if( severity <= 99 )
{
corpsetype = 3;
explode arm type BITMAPONLY | BITMAP1;
explode barrel type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP2;
explode base type BITMAPONLY | BITMAP3;
explode case1 type BITMAPONLY | BITMAP4;
explode case2 type BITMAPONLY | BITMAP5;
explode case3 type BITMAPONLY | BITMAP1;
explode case4 type BITMAPONLY | BITMAP2;
explode case5 type BITMAPONLY | BITMAP3;
explode case6 type BITMAPONLY | BITMAP3;
explode container1 type BITMAPONLY | BITMAP4;
explode container2 type BITMAPONLY | BITMAP5;
explode door1 type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP1;
explode door2 type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP2;
explode energy type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP3;
explode flare type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP4;
explode gun type SHATTER | BITMAP5;
explode plate1 type BITMAPONLY | BITMAP1;
explode plate2 type BITMAPONLY | BITMAP2;
explode radar type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP3;
explode turret type BITMAPONLY | BITMAP4;
return (0);
}
corpsetype = 3;
explode arm type BITMAPONLY | BITMAP1;
explode barrel type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP2;
explode base type BITMAPONLY | BITMAP3;
explode case1 type BITMAPONLY | BITMAP4;
explode case2 type BITMAPONLY | BITMAP5;
explode case3 type BITMAPONLY | BITMAP1;
explode case4 type BITMAPONLY | BITMAP2;
explode case5 type BITMAPONLY | BITMAP3;
explode case6 type BITMAPONLY | BITMAP3;
explode container1 type BITMAPONLY | BITMAP4;
explode container2 type BITMAPONLY | BITMAP5;
explode door1 type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP1;
explode door2 type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP2;
explode energy type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP3;
explode flare type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP4;
explode gun type SHATTER | EXPLODE_ON_HIT | BITMAP5;
explode plate1 type BITMAPONLY | BITMAP1;
explode plate2 type BITMAPONLY | BITMAP2;
explode radar type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP3;
explode turret type BITMAPONLY | BITMAP4;
}
- Evil4Zerggin
- Posts: 557
- Joined: 16 May 2007, 06:34
Re: What's with Anni
Try adding
to the script.
Apart from this I'm not sure what might be going on.
Code: Select all
AimFromPrimary(piecenum) {
piecenum=flare; //or some other piece on the gun
}
Apart from this I'm not sure what might be going on.
Re: What's with Anni
Added AimFromPrimaries to the annihilator but it still has the same severe aiming issues.