spiderbot_rocket_explode();
}
-void spiderbot_rocket_guided()
+void spiderbot_rocket_unguided()
{
vector newdir,olddir;
self.nextthink = time;
- if (self.owner.deadflag != DEAD_NO || self.cnt < time)
- {
- spiderbot_rocket_explode();
- return;
- }
- if not (self.owner.vehicle)
- {
- UpdateCSQCProjectile(self);
- return;
- }
olddir = normalize(self.velocity);
- crosshair_trace(self.owner);
- newdir = normalize(trace_endpos - self.origin) + randomvec() * cvar("g_vehicle_spiderbot_rocket_noise");
+ newdir = normalize(self.pos1 - self.origin) + randomvec() * cvar("g_vehicle_spiderbot_rocket_noise");
self.velocity = normalize(olddir + newdir * cvar("g_vehicle_spiderbot_rocket_turnrate")) * cvar("g_vehicle_spiderbot_rocket_speed");
UpdateCSQCProjectile(self);
+
+ if (self.owner.deadflag != DEAD_NO || self.cnt < time)
+ spiderbot_rocket_explode();
+
}
-void spiderbot_rocket_unguided()
+void spiderbot_rocket_guided()
{
- vector newdir,olddir;
+ vector newdir, olddir;
self.nextthink = time;
- if (self.owner.deadflag != DEAD_NO || self.cnt < time)
- {
- spiderbot_rocket_explode();
- return;
- }
if not (self.owner.vehicle)
- {
- UpdateCSQCProjectile(self);
- return;
- }
+ self.think = spiderbot_rocket_unguided;
+ crosshair_trace(self.owner);
olddir = normalize(self.velocity);
- newdir = normalize(self.pos1 - self.origin) + randomvec() * cvar("g_vehicle_spiderbot_rocket_noise");
+ newdir = normalize(trace_endpos - self.origin) + randomvec() * cvar("g_vehicle_spiderbot_rocket_noise");
self.velocity = normalize(olddir + newdir * cvar("g_vehicle_spiderbot_rocket_turnrate")) * cvar("g_vehicle_spiderbot_rocket_speed");
UpdateCSQCProjectile(self);
-}
+ if (self.owner.deadflag != DEAD_NO || self.cnt < time)
+ spiderbot_rocket_explode();
+}
void spiderbot_rocket_damage(entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force)
{
self.gun2.cnt = time + self.attack_finished_single;
}
+/*
void spiderbot_minigun_fire_Flash_Go() {
if (self.frame > 10)
{
self.scale -= 0.01;
self.nextthink = time + 0.02;
}
+*/
-void spiderbot_minigun_fire(entity gun,float trail)
+void spiderbot_minigun_fire(entity gun, float trail)
{
-
- entity flash;
vector v;
+
v = gettaginfo(gun,gettagindex(gun,"barrels"));
v_forward = normalize(v_forward);
fireBullet (v, v_forward, cvar("g_vehicle_spiderbot_minigun_spread"), cvar("g_vehicle_spiderbot_minigun_damage"),
cvar("g_vehicle_spiderbot_minigun_spread"), DEATH_SBMINIGUN, 0);
- if not (gun.enemy)
- {
- gun.enemy = spawn();
- setattachment(gun.enemy , gun, "barrels");
- setorigin(gun.enemy ,gun.enemy.origin + '52 0 0');
- }
- flash = gun.enemy;
- setmodel(flash, "models/uziflash.md3");
- flash.think = spiderbot_minigun_fire_Flash_Go;
- flash.nextthink = time + 0.02;
- flash.frame = 2;
- flash.angles_z = flash.v_angle_z + random() * 180;
- flash.alpha = 1;
- flash.effects = EF_ADDITIVE | EF_FULLBRIGHT | EF_LOWPRECISION;
- flash.scale = 1;
+ UziFlash();
+ setattachment(self.muzzle_flash, self.tur_head, "tag_fire");
if(trail)
trailparticles(self, particleeffectnum("EF_MGTURRETTRAIL"), v, trace_endpos);
return;
}
}
-#define SBS_IDLE 0
-#define SBS_JUMP 1
-#define SBS_WALK 2
-#define SBS_BACK 3
-#define SBS_LEFT 4
-#define SBS_RIGHT 5
-.float state;
float spiderbot_pplug()
{
entity player,spider;
float ftmp;
+ if not (self.owner)
+ {
+ }
+
player = self;
spider = self.vehicle;
self = spider;
if(spider.flags & FL_ONGROUND)
{
- if(player.BUTTON_JUMP)
+ if(player.BUTTON_JUMP && self.tur_head.wait < time)
{
+ self.tur_head.wait = time + 2;
player.BUTTON_JUMP = 0;
spider.velocity = v_forward * 700 + v_up * 600;
spider.frame = 4;
}
else
{
- spider.angles_y = safeangle(spider.angles_y + ftmp);
+ spider.angles_y = anglemods(spider.angles_y + ftmp);
spider.tur_head.angles_y -= ftmp;
if(player.movement_x != 0)
else
player.vehicle_reload2 = 1 - ((spider.gun2.cnt - time) / spider.attack_finished_single);
- //setorigin(spider,spider.origin);
setorigin(player,spider.origin + '0 0 64');
player.velocity = spider.velocity;
void spiderbot_think()
{
if(self.flags & FL_ONGROUND)
- {
movelib_beak_simple(cvar("g_vehicle_spiderbot_speed_stop"));
- //movelib_groundalign4point(300,100);
- }
self.nextthink = time;
}
setsize(self,spiderbot_MIN,spiderbot_MAX);
+ self.owner = world;
self.velocity = '0 0 0';
self.vehicle_health = CCVAR("_health");
self.vehicle_shield = CCVAR("_shield");