1 void vehicle_stdproc_enter()
\r
6 WriteByte (MSG_ONE, SVC_SETVIEWPORT);
\r
7 WriteEntity( MSG_ONE, self.vehicle_viewport);
\r
9 WriteByte (MSG_ONE, SVC_SETVIEWANGLES);
\r
10 WriteAngle(MSG_ONE, self.vehicle_viewport.angles_x + self.angles_x); // tilt
\r
11 WriteAngle(MSG_ONE, self.vehicle_viewport.angles_y + self.angles_y); // yaw
\r
12 WriteAngle(MSG_ONE, self.vehicle_viewport.angles_z + self.angles_z); // flip
\r
14 //setattachment(other,self,"");
\r
16 self.owner.takedamage = DAMAGE_NO;
\r
17 self.owner.solid = SOLID_NOT;
\r
18 self.owner.alpha = -1;
\r
19 //self.owner.PlayerPhysplug = spiderbot_pplug;
\r
20 self.owner.vehicle = self;
\r
21 self.owner.event_damage = SUB_Null;
\r
22 self.owner.vehicle_health = (self.health / cvar("g_vehicle_spiderbot_health"));
\r
23 self.owner.hud = HUD_SPIDEBOT;
\r
24 self.colormap = self.owner.colormap;
\r
25 self.tur_head.colormap = self.owner.colormap;
\r
26 self.vehicle_hudmodel.viewmodelforclient = self.owner;
\r
27 //self.tur_head.nodrawtoclient = self.owner;
\r
32 void vehicle_stdproc_exit(float eject)
\r
34 self.velocity = '0 0 0';
\r
36 msg_entity = self.owner;
\r
37 WriteByte (MSG_ONE, SVC_SETVIEWPORT);
\r
38 WriteEntity( MSG_ONE, self.owner);
\r
40 //setattachment(self.owner,world,"");
\r
41 //self.think = spiderbot_think;
\r
42 //self.nextthink = time;
\r
44 self.owner.takedamage = DAMAGE_AIM;
\r
45 self.owner.solid = SOLID_SLIDEBOX;
\r
46 self.owner.alpha = 1;
\r
47 self.owner.PlayerPhysplug = SUB_Null;
\r
48 self.owner.vehicle = world;
\r
49 self.owner.view_ofs = PL_VIEW_OFS;
\r
50 self.owner.hud = HUD_NORMAL;
\r
51 self.owner.event_damage = PlayerDamage;
\r
52 self.colormap = 1024;
\r
53 self.tur_head.colormap = 1024;
\r
54 self.vehicle_hudmodel.viewmodelforclient = self;
\r
55 //self.tur_head.nodrawtoclient = self;
\r
59 makevectors(self.angles);
\r
60 setorigin(self.owner,self.origin + v_forward * 100);
\r
61 self.owner.velocity = (v_up + v_forward * 0.25) * 750;
\r
64 setorigin(self.owner,self.origin - v_forward * 200);
\r
69 void vehicle_stdproc_regen()
\r
73 smax = CCVAR("_shield");
\r
74 hmax = CCVAR("_health");
\r
76 if(self.vehicle_flags & VHF_HASSHIELD)
\r
77 if(self.vehicle_flags & VHF_SHIELDREGEN)
\r
78 if(self.vehicle_shield < smax)
\r
79 if(self.dmg_time + CCVAR("_shield_regen_dmgpause") < time)
\r
81 self.vehicle_shield = min(self.vehicle_shield + CCVAR("_shield_regen") / server_fps,smax);
\r
84 self.owner.vehicle_shield = self.vehicle_shield / cvar(strcat(self.cvar_basename,"_shield"));
\r
87 if(self.vehicle_flags & VHF_HEALTHREGEN)
\r
88 if(self.dmg_time + CCVAR("_health_regen_dmgpause") < time)
\r
89 if(self.vehicle_health < hmax)
\r
91 self.vehicle_health = min(self.vehicle_health + CCVAR("_health_regen") / server_fps,hmax);
\r
94 self.owner.vehicle_health = self.vehicle_health / CCVAR("_health");
\r
98 void shieldhit_think()
\r
100 self.alpha = self.alpha - 0.125;
\r
101 if not(self.alpha <= 0)
\r
103 self.nextthink = time;
\r
110 //self.think = SUB_Remove;
\r
113 void vehicle_stdproc_damage(entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force)
\r
118 self.dmg_time = time;
\r
120 if((self.vehicle_flags & VHF_HASSHIELD) && (self.vehicle_shield > 0))
\r
122 if not (self.tur_head.enemy)
\r
123 self.tur_head.enemy = spawn();
\r
127 sh = self.tur_head.enemy;
\r
128 sh.colormod = '1 1 1';
\r
130 sh.scale = (128 / vlen(self.maxs - self.mins))*2;
\r
133 sh.effects = EF_LOWPRECISION;
\r
134 sh.angles = vectoangles(normalize(hitloc - self.origin)) - self.angles;
\r
136 setmodel(sh,"models/vhshield.md3");
\r
137 setattachment(sh,self,"");
\r
138 sh.think = shieldhit_think;
\r
139 sh.nextthink = time;
\r
142 self.vehicle_shield -= damage;
\r
143 if(self.vehicle_shield < 0)
\r
145 sh.colormod = '10 0 -1';
\r
146 ddmg_take = fabs(self.vehicle_shield);
\r
147 self.vehicle_shield = 0;
\r
149 self.vehicle_health -= ddmg_take;
\r
153 self.vehicle_health -= damage;
\r
158 self.owner.vehicle_health = self.vehicle_health / CCVAR("_health");
\r
160 if(self.vehicle_flags & VHF_HASSHIELD)
\r
161 self.owner.vehicle_shield = self.vehicle_shield / cvar(strcat(self.cvar_basename,"_shield"));
\r
165 if(self.vehicle_health <= 0)
\r
168 self.vehicle_exit(VHEF_EJECT);
\r
170 self.vehicle_die();
\r
178 self.vehicle_exit = self.vehicle_exit;
\r
179 self.vehicle_enter = self.vehicle_exit;
\r
180 self.vehicle_die = self.vehicle_exit;
\r
181 self.vehicle_spawn = self.vehicle_exit;
\r
182 self.vehicle_message = self.vehicle_exit;
\r