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)
{
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
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");