1 void vehicle_stdproc_enter()
5 void vehicle_stdproc_exit(float eject)
9 void vehicle_stdproc_regen()
13 smax = CCVAR("_shield");
14 hmax = CCVAR("_health");
16 if(self.vehicle_flags & VHF_HASSHIELD)
17 if(self.vehicle_flags & VHF_SHIELDREGEN)
18 if(self.vehicle_shield < smax)
19 if(self.dmg_time + CCVAR("_shield_regen_dmgpause") < time)
21 self.vehicle_shield = min(self.vehicle_shield + CCVAR("_shield_regen") / server_fps,smax);
24 self.owner.vehicle_shield = self.vehicle_shield / cvar(strcat(self.cvar_basename,"_shield"));
27 if(self.vehicle_flags & VHF_HEALTHREGEN)
28 if(self.dmg_time + CCVAR("_health_regen_dmgpause") < time)
29 if(self.vehicle_health < hmax)
31 self.vehicle_health = min(self.vehicle_health + CCVAR("_health_regen") / server_fps,hmax);
34 self.owner.vehicle_health = self.vehicle_health / CCVAR("_health");
38 void shieldhit_think()
40 self.alpha = self.alpha - 0.125;
41 if not(self.alpha <= 0)
43 self.nextthink = time;
50 //self.think = SUB_Remove;
53 void vehicle_stdproc_damage(entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force)
60 if((self.vehicle_flags & VHF_HASSHIELD) && (self.vehicle_shield > 0))
62 if not (self.tur_head.enemy)
63 self.tur_head.enemy = spawn();
67 sh = self.tur_head.enemy;
68 sh.colormod = '1 1 1';
70 sh.scale = (128 / vlen(self.maxs - self.mins))*2;
73 sh.effects = EF_LOWPRECISION;
74 sh.angles = vectoangles(normalize(hitloc - self.origin)) - self.angles;
76 setmodel(sh,"models/vhshield.md3");
77 setattachment(sh,self,"");
78 sh.think = shieldhit_think;
82 self.vehicle_shield -= damage;
83 if(self.vehicle_shield < 0)
85 sh.colormod = '10 0 -1';
86 ddmg_take = fabs(self.vehicle_shield);
87 self.vehicle_shield = 0;
89 self.vehicle_health -= ddmg_take;
93 self.vehicle_health -= damage;
98 self.owner.vehicle_health = self.vehicle_health / CCVAR("_health");
100 if(self.vehicle_flags & VHF_HASSHIELD)
101 self.owner.vehicle_shield = self.vehicle_shield / cvar(strcat(self.cvar_basename,"_shield"));
105 if(self.vehicle_health <= 0)
108 self.vehicle_exit(VHEF_EJECT);
118 self.vehicle_exit = self.vehicle_exit;
119 self.vehicle_enter = self.vehicle_exit;
120 self.vehicle_die = self.vehicle_exit;
121 self.vehicle_spawn = self.vehicle_exit;
122 self.vehicle_message = self.vehicle_exit;