再次研究攻击主动性,蜜狐请进

你把花猫的视野改到400,看看是不是一进视野就冲

听花猫说,单位的最大速度是固定的,炸弹突然加速不好实现吧?

测试完毕。。。似乎就是视野内目标就会自动攻击。。。

我把视野改到500后发现也是会自动冲上去,这样我们能不能把这个应用到近战的单位上?让他们冲上去战斗而不会自爆

试试看哦?
不过也有可能只有kamikaze类单位才会利用视野作为攻击敌方单位的准则。。。我不知道普通攻击型单位是不是只按照射程来还是综合的。

这个自杀的过程是怎样的呢?
我猜是检测视野内有无单位,冲上去,检查距离是否到自杀距离,距离到了自爆

[
就是这样的。

那么我可以给近战单位的类型改为自杀型。
自杀距离改为0,稍微加大其碰撞体积
这样能否让其因为无法到达自杀距离而不自杀呢?这个自杀距离是计算中心的距离还是边缘的距离呢?

哈哈。。。如果这样设置,理论上是没问题的。我觉得可能性很大,你可以试试看。

测试结果是没爆:7_341:

但是呢,行为不知道好不好,它会跑过去,发现爆不了,跑回原位,尝试爆另一个,爆不了又跑回去,如此跑来跑去:6_313:

不知道具体应用到近战单位会怎样

。。。居然还会这样!?大囧。。。

如果改为正常单位,把视野改为400,武器射程40,会怎么样?
不会自动上去攻击?

好像不进射程就不开打。
很难说,似乎会,但大多数情况下是进入了射程,然后才开始追敌人打。

这个是zealot的脚本,它不能攻击建筑物,不知道是如何实现的
#define TA // This is a TA script

#include “sfxtype.h”
#include “exptype.h”

piece base, pelvis, torsoaim, torso, backpack, head, uppertorso,
lshoulder, luparmy, luparmx, luparmz, larm, lelbow,
rarmaim, rshoulder, ruparmy, ruparmx, ruparmz, rarm, relbow, handx, grip, naginata, energy1, energy2,
lleg, lboot, rleg, rboot, loinplate, damagepoint, shield, shi1, shi2, shi3;

static-var bMoving, bAiming, Static_Var_3, attack, attacktype, shieldon, shieldblocks, shieldpower, damagenow, lastdamage;

// Signal definitions
#define SIG_AIM 2
#define SIG_AIM_2 4

ShieldHitFX()
{
signal 256;
set-signal-mask 256;
show shi1;
show shi2;
show shi3;
sleep 150;
hide shi1;
sleep 100;
hide shi2;
sleep 100;
hide shi3;
return (0);
}

ShieldUnit()
{
while( TRUE )
{
sleep 1000;
//no sub-zero power levels
if( shieldpower < 0 )
{
shieldpower = 0;
}
//shield generator is active and recharges
if( shieldon == 1 )
{
shieldpower = shieldpower + 8 + (lastdamage / 57 );
//limit maximum charge
if( shieldpower > 600 )
{
shieldpower = 600;
if( Rand( 1, 30 ) <= 2 )
{
start-script ShieldHitFX();
}
}
}
//shield generator is inactive and shield dissolves (since there is no onoffable=1 in .fbi now, this will not happen)
if( shieldon == 0 )
{
shieldpower = shieldpower - 100;
if( shieldpower <= 0 )
{
set ARMORED to 0;
shieldblocks = 0;
shieldpower = 0;
}
}
//shield generator becomes charged enough to start blocking shots!
if( shieldblocks == 0 )
{
if( shieldpower >= 300 )
{
shieldblocks = 1;
set ARMORED to 1;
start-script ShieldHitFX();
}
}
}
}

HitByWeapon(anglex, anglez)
{
damagenow = get HEALTH;
damagenow = damagenow * 4;
if( shieldblocks == 1 )
{
start-script ShieldHitFX();
shieldpower = shieldpower - (3 * ( lastdamage - damagenow ));
lastdamage = damagenow;
if( shieldpower <= 0 )
{
set ARMORED to 0;
shieldblocks = 0;
shieldpower = 0;
}
return (0);
}
lastdamage = damagenow;
}

MotionControl(moving, aiming, justmoved)
{
justmoved = TRUE;
while( TRUE )
{
moving = bMoving;
aiming = bAiming;
if( moving )
{
if( aiming )
{
Static_Var_3 = 1;
if( bMoving )
{
turn lleg to x-axis <15.000000> speed <120.000000>;
turn lboot to x-axis <30.000000> speed <120.000000>;
turn rleg to x-axis <-75.000000> speed <360.000000>;
turn rboot to x-axis <45.000000> speed <300.000000>;
move pelvis to y-axis [3.000000] speed [12.000000];

				turn torso to x-axis <0.000000> speed <20.000000>;
				
				sleep 250;
			}
			
			if( bMoving )
			{
				turn lleg to x-axis <45.000000> speed <120.000000>;
				turn lboot to x-axis <15.000000> speed <60.000000>;
				turn rleg to x-axis <-90.000000> speed <60.000000>;
				turn rboot to x-axis <90.000000> speed <180.000000>;
				move pelvis to y-axis [0.000000] speed [12.000000];
				
				sleep 250;
			}
			
			if( bMoving )
			{
				turn lleg to x-axis <15.000000> speed <120.000000>;
				turn lboot to x-axis <30.000000> speed <60.000000>;
				turn rleg to x-axis <-15.000000> speed <300.000000>;
				turn rboot to x-axis <30.000000> speed <240.000000>;
				move pelvis to y-axis [3.000000] speed [12.000000];
				
				turn torso to x-axis <15.000000> speed <60.000000>;
				
				sleep 250;
			}
			
			if( bMoving )
			{
				turn lleg to x-axis <-75.000000> speed <360.000000>;
				turn lboot to x-axis <45.000000> speed <60.000000>;
				turn rleg to x-axis <15.000000> speed <120.000000>;
				turn rboot to x-axis <30.000000> speed <120.000000>;
				move pelvis to y-axis [3.000000] speed [12.000000];
				
				turn torso to x-axis <0.000000> speed <20.000000>;
				
				sleep 250;
			}
			
			if( bMoving )
			{
				turn lleg to x-axis <-90.000000> speed <60.000000>;
				turn lboot to x-axis <90.000000> speed <180.000000>;
				turn rleg to x-axis <45.000000> speed <120.000000>;
				turn rboot to x-axis <15.000000> speed <60.000000>;
				move pelvis to y-axis [0.000000] speed [12.000000];
				
				sleep 250;
			}
			
			if( bMoving )
			{
				turn lleg to x-axis <-15.000000> speed <300.000000>;
				turn lboot to x-axis <30.000000> speed <240.000000>;
				turn rleg to x-axis <15.000000> speed <120.000000>;
				turn rboot to x-axis <-30.000000> speed <180.000000>;
				move pelvis to y-axis [3.000000] speed [12.000000];
				
				turn torso to x-axis <15.000000> speed <60.000000>;
				
				sleep 250;
			}
		}
		if( !aiming )
		{
			Static_Var_3 = 0;
			if( bMoving )
			{
				turn lleg to x-axis <15.000000> speed <120.000000>;
				turn lboot to x-axis <30.000000> speed <120.000000>;
				turn rleg to x-axis <-75.000000> speed <360.000000>;
				turn rboot to x-axis <45.000000> speed <300.000000>;
				move pelvis to y-axis [3.000000] speed [12.000000];
				
				turn larm to x-axis <-30.000000> speed <40.000000>;
				turn rarm to x-axis <-30.000000> speed <40.000000>;

				turn luparmx to x-axis <-15.000000> speed <30.000000>;
				turn ruparmx to x-axis <15.000000> speed <30.000000>;
				turn lshoulder to x-axis <-15.000000> speed <30.000000>;
				turn rshoulder to x-axis <15.000000> speed <30.000000>;
				
				turn torso to x-axis <0.000000> speed <20.000000>;
				
				sleep 250;
			}
			
			if( bMoving )
			{
				turn lleg to x-axis <45.000000> speed <120.000000>;
				turn lboot to x-axis <15.000000> speed <60.000000>;
				turn rleg to x-axis <-90.000000> speed <60.000000>;
				turn rboot to x-axis <90.000000> speed <180.000000>;
				move pelvis to y-axis [0.000000] speed [12.000000];
				
				sleep 250;
			}
			
			if( bMoving )
			{
				turn lleg to x-axis <15.000000> speed <120.000000>;
				turn lboot to x-axis <30.000000> speed <60.000000>;
				turn rleg to x-axis <-15.000000> speed <300.000000>;
				turn rboot to x-axis <30.000000> speed <240.000000>;
				move pelvis to y-axis [3.000000] speed [12.000000];
				
				turn larm to x-axis <-10.000000> speed <80.000000>;
				turn rarm to x-axis <-10.000000> speed <80.000000>;

				turn luparmx to x-axis <15.000000> speed <30.000000>;
				turn ruparmx to x-axis <-15.000000> speed <30.000000>;
				turn lshoulder to x-axis <15.000000> speed <30.000000>;
				turn rshoulder to x-axis <-15.000000> speed <30.000000>;
				
				turn torso to x-axis <15.000000> speed <60.000000>;
				
				sleep 250;
			}
			
			if( bMoving )
			{
				turn lleg to x-axis <-75.000000> speed <360.000000>;
				turn lboot to x-axis <45.000000> speed <60.000000>;
				turn rleg to x-axis <15.000000> speed <120.000000>;
				turn rboot to x-axis <30.000000> speed <120.000000>;
				move pelvis to y-axis [3.000000] speed [12.000000];
				
				turn larm to x-axis <-30.000000> speed <40.000000>;
				turn rarm to x-axis <-30.000000> speed <40.000000>;

				turn luparmx to x-axis <15.000000> speed <30.000000>;
				turn ruparmx to x-axis <-15.000000> speed <30.000000>;
				turn lshoulder to x-axis <15.000000> speed <30.000000>;
				turn rshoulder to x-axis <-15.000000> speed <30.000000>;
				
				turn torso to x-axis <0.000000> speed <20.000000>;
				
				sleep 250;
			}
			
			if( bMoving )
			{
				turn lleg to x-axis <-90.000000> speed <60.000000>;
				turn lboot to x-axis <90.000000> speed <180.000000>;
				turn rleg to x-axis <45.000000> speed <120.000000>;
				turn rboot to x-axis <15.000000> speed <60.000000>;
				move pelvis to y-axis [0.000000] speed [12.000000];
				
				sleep 250;
			}
			
			if( bMoving )
			{
				turn lleg to x-axis <-15.000000> speed <300.000000>;
				turn lboot to x-axis <30.000000> speed <240.000000>;
				turn rleg to x-axis <15.000000> speed <120.000000>;
				turn rboot to x-axis <-30.000000> speed <180.000000>;
				move pelvis to y-axis [3.000000] speed [12.000000];
				
				turn larm to x-axis <-10.000000> speed <80.000000>;
				turn rarm to x-axis <-10.000000> speed <80.000000>;

				turn luparmx to x-axis <-15.000000> speed <30.000000>;
				turn ruparmx to x-axis <15.000000> speed <30.000000>;
				turn lshoulder to x-axis <-15.000000> speed <30.000000>;
				turn rshoulder to x-axis <15.000000> speed <30.000000>;
				
				turn torso to x-axis <15.000000> speed <60.000000>;
				
				sleep 250;
			}
		}
		justmoved = TRUE;
	}
	if( !moving )
	{
		Static_Var_3 = 1;
		if( justmoved )
		{
			turn lleg to x-axis <0.000000> speed <180.000000>;
			turn lboot to x-axis <0.000000> speed <180.000000>;
			turn rleg to x-axis <0.000000> speed <180.000000>;
			turn rboot to x-axis <0.000000> speed <180.000000>;
			move pelvis to y-axis [0.000000] speed [8.000000];
			
			turn torso to x-axis <0.000000> speed <20.000000>;
			
			if( !aiming )
			{
				turn larm to x-axis <0.000000> speed <60.000000>;
				turn rarm to x-axis <0.000000> speed <60.000000>;
				turn luparmx to x-axis <0.000000> speed <60.000000>;
				turn ruparmx to x-axis <0.000000> speed <60.000000>;
				turn lshoulder to x-axis <0.000000> speed <60.000000>;
				turn rshoulder to x-axis <0.000000> speed <60.000000>;
			}
			justmoved = FALSE;
		}
		sleep 100;
	}
}

}

Attack1()//stab
{
set-signal-mask 0;
attacktype = 1;

turn torso to y-axis <-45.000000> speed <180.000000>;//prepare

turn lshoulder to x-axis <-45.000000> speed <180.000000>;
turn luparmy to y-axis <-45.000000> speed <180.000000>;
turn luparmx to x-axis <-45.000000> speed <180.000000>;

// turn luparmz to z-axis <0.000000> speed <0.000000>;
turn larm to x-axis <-90.000000> speed <360.000000>;

turn rshoulder to x-axis <45.000000> speed <180.000000>;
turn ruparmy to y-axis <45.000000> speed <180.000000>;
turn ruparmx to x-axis <45.000000> speed <180.000000>;

// turn ruparmz to z-axis <0.000000> speed <0.000000>;
turn rarm to x-axis <-90.000000> speed <360.000000>;
turn handx to x-axis <45.000000> speed <180.000000>;
move grip to z-axis [4.000000] speed [16.000000];

sleep 250;

turn torso to y-axis <45.000000> speed <360.000000>;//stab!

turn lshoulder to x-axis <45.000000> speed <360.000000>;
turn luparmy to y-axis <0.000000> speed <180.000000>;
turn luparmx to x-axis <45.000000> speed <360.000000>;
turn luparmz to z-axis <15.000000> speed <60.000000>;
turn larm to x-axis <-120.000000> speed <120.000000>;

turn rshoulder to x-axis <-60.000000> speed <420.000000>;
turn ruparmy to y-axis <-45.000000> speed <360.000000>;
turn ruparmx to x-axis <-60.000000> speed <420.000000>;

// turn ruparmz to z-axis <0.000000> speed <0.000000>;
turn rarm to x-axis <0.000000> speed <360.000000>;
turn handx to x-axis <60.000000> speed <60.000000>;
move grip to z-axis [6.000000] speed [8.000000];

sleep 250;

turn torso to y-axis <-15.000000> speed <180.000000>;//return

turn lshoulder to x-axis <-45.000000> speed <360.000000>;
turn luparmy to y-axis <-45.000000> speed <180.000000>;
turn luparmx to x-axis <-45.000000> speed <360.000000>;
turn luparmz to z-axis <0.000000> speed <60.000000>;
turn larm to x-axis <-30.000000> speed <360.000000>;

turn rshoulder to x-axis <30.000000> speed <360.000000>;
turn ruparmy to y-axis <15.000000> speed <240.000000>;
turn ruparmx to x-axis <30.000000> speed <360.000000>;

// turn ruparmz to z-axis <0.000000> speed <0.000000>;
turn rarm to x-axis <-45.000000> speed <180.000000>;
turn handx to x-axis <0.000000> speed <240.000000>;
move grip to z-axis [0.000000] speed [24.000000];

sleep 250;

turn torso to y-axis <0.000000> speed <60.000000>;//restore

turn lshoulder to x-axis <0.000000> speed <180.000000>;
turn luparmy to y-axis <0.000000> speed <180.000000>;
turn luparmx to x-axis <0.000000> speed <180.000000>;

// turn luparmz to z-axis <0.000000> speed <0.000000>;
turn larm to x-axis <0.000000> speed <120.000000>;

turn rshoulder to x-axis <0.000000> speed <120.000000>;
turn ruparmy to y-axis <0.000000> speed <60.000000>;
turn ruparmx to x-axis <0.000000> speed <120.000000>;

// turn ruparmz to z-axis <0.000000> speed <0.000000>;
turn rarm to x-axis <0.000000> speed <180.000000>;
// turn handx to x-axis <0.000000> speed <0.000000>;
// move grip to z-axis [0.000000] speed [0.000000];

attack = 0;

}

Attack2()//hack
{
set-signal-mask 0;
attacktype = 2;

turn torso to y-axis <-45.000000> speed <180.000000>;//raise

turn lshoulder to x-axis <-45.000000> speed <180.000000>;
turn luparmy to y-axis <-45.000000> speed <180.000000>;
turn luparmx to x-axis <-45.000000> speed <180.000000>;

// turn luparmz to z-axis <0.000000> speed <0.000000>;
turn larm to x-axis <-90.000000> speed <360.000000>;

turn rshoulder to x-axis <-90.000000> speed <360.000000>;
turn ruparmy to y-axis <40.000000> speed <160.000000>;
turn ruparmx to x-axis <-135.000000> speed <540.000000>;

// turn ruparmz to z-axis <0.000000> speed <0.000000>;
turn rarm to x-axis <-90.000000> speed <360.000000>;
turn handx to x-axis <30.000000> speed <120.000000>;
move grip to z-axis [6.000000] speed [24.000000];

sleep 250;

turn torso to y-axis <15.000000> speed <240.000000>;//hack!

turn lshoulder to x-axis <45.000000> speed <360.000000>;
turn luparmy to y-axis <0.000000> speed <180.000000>;
turn luparmx to x-axis <45.000000> speed <360.000000>;
turn luparmz to z-axis <15.000000> speed <60.000000>;
turn larm to x-axis <-120.000000> speed <120.000000>;

turn rshoulder to x-axis <-60.000000> speed <120.000000>;
turn ruparmy to y-axis <-15.000000> speed <220.000000>;
turn ruparmx to x-axis <-60.000000> speed <300.000000>;
turn ruparmz to z-axis <-10.000000> speed <40.000000>;
turn rarm to x-axis <0.000000> speed <360.000000>;
turn handx to x-axis <60.000000> speed <240.000000>;

// move grip to z-axis [6.000000] speed [0.000000];

sleep 250;

turn torso to y-axis <-15.000000> speed <120.000000>;//return

turn lshoulder to x-axis <-45.000000> speed <360.000000>;
turn luparmy to y-axis <-45.000000> speed <180.000000>;
turn luparmx to x-axis <-45.000000> speed <360.000000>;
turn luparmz to z-axis <0.000000> speed <60.000000>;
turn larm to x-axis <-30.000000> speed <360.000000>;

turn rshoulder to x-axis <-30.000000> speed <120.000000>;
turn ruparmy to y-axis <15.000000> speed <120.000000>;
turn ruparmx to x-axis <-30.000000> speed <120.000000>;
turn ruparmz to z-axis <0.000000> speed <40.000000>;
turn rarm to x-axis <-45.000000> speed <180.000000>;
turn handx to x-axis <75.000000> speed <60.000000>;
move grip to z-axis [0.000000] speed [24.000000];

sleep 250;

turn torso to y-axis <0.000000> speed <60.000000>;//restore

turn lshoulder to x-axis <0.000000> speed <180.000000>;
turn luparmy to y-axis <0.000000> speed <180.000000>;
turn luparmx to x-axis <0.000000> speed <180.000000>;

// turn luparmz to z-axis <0.000000> speed <0.000000>;
turn larm to x-axis <0.000000> speed <120.000000>;

turn rshoulder to x-axis <0.000000> speed <120.000000>;
turn ruparmy to y-axis <0.000000> speed <60.000000>;
turn ruparmx to x-axis <0.000000> speed <120.000000>;

// turn ruparmz to z-axis <0.000000> speed <0.000000>;
turn rarm to x-axis <0.000000> speed <180.000000>;
turn handx to x-axis <0.000000> speed <300.000000>;
// move grip to z-axis [0.000000] speed [0.000000];

attack = 0;

}

Attack3()//slash
{
set-signal-mask 0;
attacktype = 3;

turn torso to y-axis <45.000000> speed <180.000000>;//prepare

turn lshoulder to x-axis <-15.000000> speed <60.000000>;

// turn luparmy to y-axis <0.000000> speed <0.000000>;
turn luparmx to x-axis <-15.000000> speed <60.000000>;
turn luparmz to z-axis <15.000000> speed <60.000000>;
turn larm to x-axis <-45.000000> speed <180.000000>;

turn rshoulder to x-axis <-30.000000> speed <120.000000>;
turn ruparmy to y-axis <60.000000> speed <240.000000>;

// turn ruparmx to x-axis <0.000000> speed <0.000000>;
turn ruparmz to z-axis <60.000000> speed <240.000000>;
turn rarm to x-axis <-60.000000> speed <240.000000>;
// turn handx to x-axis <0.000000> speed <0.000000>;
move grip to z-axis [2.000000] speed [8.000000];

sleep 250;

turn torso to y-axis <-30.000000> speed <300.000000>;//slash!

turn lshoulder to x-axis <30.000000> speed <180.000000>;
turn luparmy to y-axis <45.000000> speed <180.000000>;
turn luparmx to x-axis <0.000000> speed <60.000000>;
turn luparmz to z-axis <-45.000000> speed <240.000000>;
turn larm to x-axis <0.000000> speed <180.000000>;

turn rshoulder to x-axis <45.000000> speed <300.000000>;
turn ruparmy to y-axis <-45.000000> speed <420.000000>;

// turn ruparmx to x-axis <0.000000> speed <0.000000>;
turn ruparmz to z-axis <75.000000> speed <60.000000>;
turn rarm to x-axis <0.000000> speed <240.000000>;
turn handx to x-axis <60.000000> speed <240.000000>;
move grip to z-axis [6.000000] speed [32.000000];

sleep 250;

turn torso to y-axis <-45.000000> speed <60.000000>;//return

turn lshoulder to x-axis <15.000000> speed <60.000000>;
turn luparmy to y-axis <0.000000> speed <180.000000>;
turn luparmx to x-axis <15.000000> speed <60.000000>;
turn luparmz to z-axis <-15.000000> speed <120.000000>;

// turn larm to x-axis <0.000000> speed <0.000000>;

turn rshoulder to x-axis <30.000000> speed <60.000000>;
turn ruparmy to y-axis <30.000000> speed <300.000000>;
turn ruparmx to x-axis <30.000000> speed <120.000000>;
turn ruparmz to z-axis <0.000000> speed <300.000000>;
turn rarm to x-axis <-45.000000> speed <180.000000>;
turn handx to x-axis <0.000000> speed <240.000000>;
move grip to z-axis [4.000000] speed [8.000000];

sleep 250;

turn torso to y-axis <0.000000> speed <180.000000>;//restore

turn lshoulder to x-axis <0.000000> speed <60.000000>;

// turn luparmy to y-axis <0.000000> speed <0.000000>;
turn luparmx to x-axis <0.000000> speed <60.000000>;
turn luparmz to z-axis <0.000000> speed <60.000000>;
// turn larm to x-axis <0.000000> speed <0.000000>;

turn rshoulder to x-axis <0.000000> speed <120.000000>;
turn ruparmy to y-axis <0.000000> speed <120.000000>;
turn ruparmx to x-axis <0.000000> speed <120.000000>;

// turn ruparmz to z-axis <0.000000> speed <0.000000>;
turn rarm to x-axis <0.000000> speed <180.000000>;
// turn handx to x-axis <0.000000> speed <0.000000>;
move grip to z-axis [0.000000] speed [16.000000];

attack = 0;

}

Attack4()//another slash
{
set-signal-mask 0;
attacktype = 4;

turn torso to y-axis <-45.000000> speed <180.000000>;//prepare

turn lshoulder to x-axis <-45.000000> speed <180.000000>;
turn luparmy to y-axis <-45.000000> speed <180.000000>;
turn luparmx to x-axis <-45.000000> speed <180.000000>;

// turn luparmz to z-axis <0.000000> speed <0.000000>;
turn larm to x-axis <-90.000000> speed <360.000000>;

// turn rshoulder to x-axis <0.000000> speed <0.000000>;
turn ruparmy to y-axis <-90.000000> speed <720.000000>;
// turn ruparmx to x-axis <0.000000> speed <0.000000>;
// turn ruparmz to z-axis <0.000000> speed <0.000000>;
turn rarm to x-axis <-90.000000> speed <720.000000>;
turn handx to x-axis <60.000000> speed <480.000000>;
move grip to z-axis [4.000000] speed [32.000000];

sleep 125;

// turn rshoulder to x-axis <0.000000> speed <0.000000>;//turn hand
turn ruparmy to y-axis <-180.000000> speed <720.000000>;
// turn ruparmx to x-axis <0.000000> speed <0.000000>;
turn ruparmz to z-axis <-60.000000> speed <480.000000>;
turn rarm to x-axis <-30.000000> speed <480.000000>;
turn handx to x-axis <45.000000> speed <120.000000>;
move grip to z-axis [6.000000] speed [16.000000];

sleep 125;

turn torso to y-axis <60.000000> speed <420.000000>;//another slash!

turn lshoulder to x-axis <45.000000> speed <360.000000>;
turn luparmy to y-axis <30.000000> speed <300.000000>;
turn luparmx to x-axis <0.000000> speed <180.000000>;
turn luparmz to z-axis <-60.000000> speed <240.000000>;
turn larm to x-axis <0.000000> speed <360.000000>;

turn rshoulder to x-axis <-90.000000> speed <360.000000>;
turn ruparmy to y-axis <-90.000000> speed <360.000000>;

// turn ruparmx to x-axis <0.000000> speed <0.000000>;
turn ruparmz to z-axis <-120.000000> speed <240.000000>;
turn rarm to x-axis <0.000000> speed <120.000000>;
turn handx to x-axis <60.000000> speed <60.000000>;
// move grip to z-axis [6.000000] speed [0.000000];

sleep 250;

turn torso to y-axis <15.000000> speed <180.000000>;//stop slash

// turn lshoulder to x-axis <45.000000> speed <0.000000>;
turn luparmy to y-axis <0.000000> speed <120.000000>;
turn luparmx to x-axis <45.000000> speed <180.000000>;
turn luparmz to z-axis <0.000000> speed <240.000000>;
turn larm to x-axis <-45.000000> speed <180.000000>;

turn rshoulder to x-axis <-30.000000> speed <240.000000>;
turn ruparmy to y-axis <45.000000> speed <540.000000>;
turn ruparmx to x-axis <-30.000000> speed <120.000000>;
turn ruparmz to z-axis <0.000000> speed <480.000000>;
turn rarm to x-axis <-15.000000> speed <60.000000>;
turn handx to x-axis <15.000000> speed <180.000000>;
move grip to z-axis [0.000000] speed [24.000000];

sleep 250;

turn torso to y-axis <0.000000> speed <60.000000>;//restore

turn lshoulder to x-axis <0.000000> speed <180.000000>;

// turn luparmy to y-axis <0.000000> speed <0.000000>;
turn luparmx to x-axis <0.000000> speed <180.000000>;
turn luparmz to z-axis <0.000000> speed <0.000000>;
turn larm to x-axis <0.000000> speed <180.000000>;

turn rshoulder to x-axis <0.000000> speed <120.000000>;
turn ruparmy to y-axis <0.000000> speed <180.000000>;
turn ruparmx to x-axis <0.000000> speed <120.000000>;

// turn ruparmz to z-axis <0.000000> speed <0.000000>;
turn rarm to x-axis <0.000000> speed <60.000000>;
turn handx to x-axis <0.000000> speed <60.000000>;
// move grip to z-axis [0.000000] speed [0.000000];

attack = 0;

}

RandomAttack()
{
var Random;
if( attacktype <= 1)
{
Random = Rand( 1, 3 );
if( Random <= 1)
{
start-script Attack2();
return (0);
}
if( Random <= 2)
{
start-script Attack3();
return (0);
}
start-script Attack4();
return (0);
}
if( attacktype <= 2)
{
Random = Rand( 1, 3 );
if( Random <= 1)
{
start-script Attack1();
return (0);
}
if( Random <= 2)
{
start-script Attack3();
return (0);
}
start-script Attack4();
return (0);
}
if( attacktype <= 3)
{
Random = Rand( 1, 3 );
if( Random <= 1)
{
start-script Attack1();
return (0);
}
if( Random <= 2)
{
start-script Attack2();
return (0);
}
start-script Attack4();
return (0);
}
Random = Rand( 1, 3 );
if( Random <= 1)
{
start-script Attack1();
return (0);
}
if( Random <= 2)
{
start-script Attack2();
return (0);
}
start-script Attack3();
return (0);
}

Create()
{
dont-cache backpack;
bMoving = FALSE;
bAiming = FALSE;
Static_Var_3 = 1;
attack = 0;
attacktype = 5;
shieldon = 0;
shieldblocks = 0;
shieldpower = 0;
damagenow = 400;
lastdamage = 400;
set ARMORED to 0;
spin shi1 around y-axis speed <800.000000>;
spin shi2 around y-axis speed <700.000000>;
spin shi3 around y-axis speed <600.000000>;
hide shi1;
hide shi2;
hide shi3;
dont-cache shi1;
dont-cache shi2;
dont-cache shi3;
spin energy1 around z-axis speed <1000.000000>;
spin energy2 around z-axis speed <-1000.000000>;
turn energy2 to x-axis <-45.000000> now;
hide energy1;
hide energy2;
dont-cache energy1;
dont-cache energy2;
start-script MotionControl();
while( get BUILD_PERCENT_LEFT )
{
sleep 1000;
}
shieldon = 1;
shieldblocks = 1;
shieldpower = 600;
set ARMORED to 1;
start-script ShieldUnit();
}

StartMoving()
{
bMoving = TRUE;
}

StopMoving()
{
bMoving = FALSE;
}

SweetSpot(piecenum)
{
piecenum = pelvis;
}

RestoreAfterDelay()
{
sleep 2500;
set-signal-mask 0;
bAiming = FALSE;
attack = 0;
hide energy1;
hide energy2;
turn torsoaim to y-axis <0.000000> speed <90.000000>;
turn rarmaim to x-axis <0.000000> speed <60.000000>;
}

AimFromPrimary(piecenum)
{
piecenum = base;
}

QueryPrimary(piecenum)
{
piecenum = base;
}

AimPrimary(heading, pitch)
{
signal SIG_AIM_2;
set-signal-mask 0;
set-signal-mask SIG_AIM_2;
return (1);
}

FirePrimary()
{
sleep 50;
}

AimFromSecondary(piecenum)
{
piecenum = rshoulder;
}

QuerySecondary(piecenum)
{
piecenum = damagepoint;
}

AimSecondary(heading, pitch)
{
bAiming = TRUE;
signal SIG_AIM;
set-signal-mask 0;
set-signal-mask SIG_AIM;
turn torsoaim to y-axis heading speed <480.000000>;
turn rarmaim to x-axis <0.000000> - pitch speed <240.000000>;
wait-for-turn torsoaim around y-axis;
wait-for-turn rarmaim around x-axis;
show energy1;
show energy2;
start-script RestoreAfterDelay();
return (1);
}

FireSecondary()
{
if( attack == 0)
{
attack = 1;
start-script RandomAttack();
}
return (0);
}

Killed(severity, corpsetype)
{
hide energy1;
hide energy2;
explode naginata type FALL | BITMAP3;
hide shi1;
hide shi2;
hide shi3;
if( severity <= 25 )
{
corpsetype = 1;
explode torso type BITMAPONLY | BITMAP5;
explode rshoulder type BITMAPONLY | BITMAP5;
explode lshoulder type BITMAPONLY | BITMAP5;
return (0);
}
if( severity <= 50 )
{
corpsetype = 2;
explode torso type BITMAPONLY | BITMAP2;
explode rshoulder type FALL | BITMAP3;
explode lshoulder type FALL | BITMAP3;
explode rarm type FALL | BITMAP3;
explode larm type FALL | BITMAP3;
explode rboot type FALL | BITMAP3;
explode lboot type FALL | BITMAP3;
return (0);
}
corpsetype = 3;
explode torso type SHATTER | EXPLODE_ON_HIT | BITMAP4;
explode rshoulder type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP3;
explode lshoulder type FALL | SMOKE | EXPLODE_ON_HIT | BITMAP3;
explode rarm type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP3;
explode larm type FALL | SMOKE | EXPLODE_ON_HIT | BITMAP3;
explode rboot type FALL | SMOKE | EXPLODE_ON_HIT | BITMAP3;
explode lboot type FALL | SMOKE | EXPLODE_ON_HIT | BITMAP5;
explode head type BITMAPONLY | BITMAP1;
}

GOK的陆地大刀兵超猛啊,在陆地上溜得贼快,还砍得死疼
设置 +shootall后会主动攻击进入射程的单位(包括建筑物)

会吗,好像不会啊,1.31版的大刀被改为不能攻击建筑物,手动叫它攻击也全无反应
而且这个单位射程只有120,不会上前主动攻击,比较烦

进入单位可以砍到的距离

感觉大刀的攻击不是很利索有时会被卡住而不攻击

60秒悲剧:6_327:
刚刚将大刀改了自杀,测试结果还算不错,会攻击到目标死了才返回原地。但是有时会把建筑物里面的单位当成目标,跑不进去的话在外面干站着。

脚本里完全没有不攻击建筑物的设定。。。也许要看看武器的代码。。