From: Jakob MG Date: Fri, 27 Jul 2012 03:05:00 +0000 (+0200) Subject: its allliiiivvvveeeeee. vehicle_bumblebee now mostly works. X-Git-Tag: xonotic-v0.7.0~300 X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=commitdiff_plain;h=d7b812c1948308092310e20f75a1b8d434e7b5f9 its allliiiivvvveeeeee. vehicle_bumblebee now mostly works. --- diff --git a/qcsrc/server/vehicles/bumblebee.qc b/qcsrc/server/vehicles/bumblebee.qc index fb4f568c06..84a8174d40 100644 --- a/qcsrc/server/vehicles/bumblebee.qc +++ b/qcsrc/server/vehicles/bumblebee.qc @@ -82,6 +82,9 @@ float bumb_gunner_frame() crosshair_trace(gunner); vector _ct = trace_endpos; vector ad; + float _in, _out; + _in = ((gun == vehic.gun1) ? autocvar_g_vehicle_bumblebee_cannon_turnlimit_in : autocvar_g_vehicle_bumblebee_cannon_turnlimit_out); + _out = ((gun == vehic.gun1) ? autocvar_g_vehicle_bumblebee_cannon_turnlimit_out : autocvar_g_vehicle_bumblebee_cannon_turnlimit_in); if(gun.lock_time < time) gun.enemy = world; @@ -127,15 +130,15 @@ float bumb_gunner_frame() UpdateAuxiliaryXhair(gunner, ad, '1 0 1', 1); - vehicle_aimturret(vehic, trace_endpos, vehic.gun1, "fire", + vehicle_aimturret(vehic, trace_endpos, gun, "fire", autocvar_g_vehicle_bumblebee_cannon_pitchlimit_down * -1, autocvar_g_vehicle_bumblebee_cannon_pitchlimit_up, - autocvar_g_vehicle_bumblebee_cannon_turnlimit_out * -1, autocvar_g_vehicle_bumblebee_cannon_turnlimit_in, autocvar_g_vehicle_bumblebee_cannon_turnspeed); + _out * -1, _in, autocvar_g_vehicle_bumblebee_cannon_turnspeed); } else - vehicle_aimturret(vehic, _ct, vehic.gun1, "fire", + vehicle_aimturret(vehic, _ct, gun, "fire", autocvar_g_vehicle_bumblebee_cannon_pitchlimit_down * -1, autocvar_g_vehicle_bumblebee_cannon_pitchlimit_up, - autocvar_g_vehicle_bumblebee_cannon_turnlimit_out * -1, autocvar_g_vehicle_bumblebee_cannon_turnlimit_in, autocvar_g_vehicle_bumblebee_cannon_turnspeed); + _out * -1, _in, autocvar_g_vehicle_bumblebee_cannon_turnspeed); if(gunner.BUTTON_ATCK) if(time > gun.attack_finished_single) @@ -220,13 +223,26 @@ void bumb_gunner_exit(float _exitflag) float bumb_gunner_enter() { RemoveGrapplingHook(other); - - self.gun1.vehicle_pilot = other; - self.gunner1 = other; - //self.gun1.owner = other; - self.gunner1.vehicle = self.gun1; - self.gun1.switchweapon = other.switchweapon; - self.gun1.vehicle_exit = bumb_gunner_exit; + entity _gun, _gunner; + if(!self.gunner1) + { + _gun = self.gun1; + _gunner = self.gunner1; + self.gunner1 = other; + } + else + { + _gun = self.gun2; + _gunner = self.gunner2; + self.gunner2 = other; + } + + _gun.vehicle_pilot = other; + _gunner = other; + //_gun.owner = other; + _gunner.vehicle = _gun; + _gun.switchweapon = other.switchweapon; + _gun.vehicle_exit = bumb_gunner_exit; other.angles = self.angles; @@ -236,8 +252,8 @@ float bumb_gunner_enter() other.alpha = -1; other.event_damage = SUB_Null; other.view_ofs = '0 0 0'; - other.hud = self.gun1.hud; - other.PlayerPhysplug = self.gun1.PlayerPhysplug; + other.hud = _gun.hud; + other.PlayerPhysplug = _gun.PlayerPhysplug; other.vehicle_ammo1 = self.vehicle_ammo1; other.vehicle_ammo2 = self.vehicle_ammo2; other.vehicle_reload1 = self.vehicle_reload1; @@ -248,12 +264,23 @@ float bumb_gunner_enter() msg_entity = other; WriteByte (MSG_ONE, SVC_SETVIEWPORT); - WriteEntity(MSG_ONE, self.gun1.vehicle_viewport); + WriteEntity(MSG_ONE, _gun.vehicle_viewport); WriteByte (MSG_ONE, SVC_SETVIEWANGLES); - WriteAngle(MSG_ONE, self.gun1.angles_x + self.angles_x); // tilt - WriteAngle(MSG_ONE, self.gun1.angles_y + self.angles_y); // yaw + WriteAngle(MSG_ONE, _gun.angles_x + self.angles_x); // tilt + WriteAngle(MSG_ONE, _gun.angles_y + self.angles_y); // yaw WriteAngle(MSG_ONE, 0); // roll - self.gun1.vehicle_hudmodel.viewmodelforclient = other; + _gun.vehicle_hudmodel.viewmodelforclient = other; + + if(!self.gunner1) + { + self.gun1 = other; + _gunner = self.gunner1; + } + else + { + _gun = self.gun2; + _gunner = self.gunner2; + } return TRUE; } @@ -273,6 +300,9 @@ float vehicles_valid_pilot() if (clienttype(other) != CLIENTTYPE_REAL) return FALSE; + if(teamplay && other.team != self.team) + return FALSE; + return TRUE; } @@ -466,7 +496,6 @@ void bumb_spawn(float _f) self.vehicle_shield = autocvar_g_vehicle_bumblebee_shield; self.movetype = MOVETYPE_TOSS; self.solid = SOLID_BBOX; - //self.vehicle_energy = 1; self.movetype = MOVETYPE_FLY; setorigin(self, self.origin + '0 0 25'); } @@ -494,6 +523,14 @@ void bumb_die() void bumb_dinit() { + /* + if(!teamplay) + { + remove(self); + return; + } + */ + if not (vehicle_initialize( "Bumblebee", "models/vehicles/bumblebee_body.dpm", "", "models/vehicles/spiderbot_cockpit.dpm", "", "", "tag_viewport", @@ -505,8 +542,17 @@ void bumb_dinit() remove(self); return; } + + self.vehicle_shieldent = spawn(); + self.vehicle_shieldent.effects = EF_LOWPRECISION; + setmodel(self.vehicle_shieldent, "models/vhshield.md3"); + setattachment(self.vehicle_shieldent, self, ""); + setorigin(self.vehicle_shieldent, real_origin(self) - self.origin); + self.vehicle_shieldent.scale = 512 / vlen(self.maxs - self.mins); + self.vehicle_shieldent.think = shieldhit_think; + self.vehicle_shieldent.alpha = -1; - + self.gun1 = spawn(); self.gun2 = spawn(); self.gun3 = spawn(); @@ -532,7 +578,7 @@ void bumb_dinit() setorigin(self.gun1.vehicle_hudmodel, '90 -27 -23'); setorigin(self.gun1.vehicle_viewport, '-85 0 50'); - setorigin(self.gun2.vehicle_hudmodel, '90 -27 -23'); + setorigin(self.gun2.vehicle_hudmodel, '90 27 -23'); setorigin(self.gun2.vehicle_viewport, '-85 0 50'); self.scale = 1.5; diff --git a/qcsrc/server/vehicles/vehicles.qh b/qcsrc/server/vehicles/vehicles.qh index db09d0e864..549dfeab7f 100644 --- a/qcsrc/server/vehicles/vehicles.qh +++ b/qcsrc/server/vehicles/vehicles.qh @@ -4,7 +4,7 @@ #include "racer.qc" #include "spiderbot.qc" #include "raptor.qc" -#ifdef VEHICLES_UNSTABLE +#ifndef VEHICLES_NO_UNSTABLE #include "bumblebee.qc" #endif #endif diff --git a/vehicle_bumblebee.cfg b/vehicle_bumblebee.cfg index 718287f2ca..339da5f526 100644 --- a/vehicle_bumblebee.cfg +++ b/vehicle_bumblebee.cfg @@ -9,7 +9,7 @@ set g_vehicle_bumblebee_friction 0.4 set g_vehicle_bumblebee_energy 500 set g_vehicle_bumblebee_energy_regen 50 -set g_vehicle_bumblebee_energy_regen_pause 1 +set g_vehicle_bumblebee_energy_regen_pause 1o set g_vehicle_bumblebee_health 750 set g_vehicle_bumblebee_health_regen 25 @@ -20,13 +20,13 @@ set g_vehicle_bumblebee_shield_regen 100 set g_vehicle_bumblebee_shield_regen_pause 2 set g_vehicle_bumblebee_cannon_cost 10 -set g_vehicle_bumblebee_cannon_damage 125 +set g_vehicle_bumblebee_cannon_damage 65 set g_vehicle_bumblebee_cannon_radius 300 -set g_vehicle_bumblebee_cannon_refire 0.75 -set g_vehicle_bumblebee_cannon_speed 2500 +set g_vehicle_bumblebee_cannon_refire 0.25 +set g_vehicle_bumblebee_cannon_speed 9000 set g_vehicle_bumblebee_cannon_spread 0.0125 set g_vehicle_bumblebee_cannon_force 200 -set g_vehicle_bumblebee_cannon_turnspeed 90 +set g_vehicle_bumblebee_cannon_turnspeed 180 set g_vehicle_bumblebee_cannon_pitchlimit_down 60 set g_vehicle_bumblebee_cannon_pitchlimit_up 60 set g_vehicle_bumblebee_cannon_turnlimit_in 15 @@ -37,7 +37,7 @@ set g_vehicle_bumblebee_raygun_pitchlimit_down 20 set g_vehicle_bumblebee_raygun_pitchlimit_up 30 set g_vehicle_bumblebee_raygun_turnlimit_sides 30 -set g_vehicle_bumblebee_respawntime 10 +set g_vehicle_bumblebee_respawntime 60 set g_vehicle_bumblebee_blowup_radius 500 set g_vehicle_bumblebee_blowup_coredamage 500 diff --git a/vehicles.cfg b/vehicles.cfg index 32d1498380..7f88a543df 100644 --- a/vehicles.cfg +++ b/vehicles.cfg @@ -8,7 +8,7 @@ exec vehicle_bumblebee.cfg set g_vehicle_racer 1 set g_vehicle_spiderbot 1 set g_vehicle_raptor 1 -set g_vehicle_bumblebee 0 +set g_vehicle_bumblebee 1 set g_vehicles_crush_dmg 70 set g_vehicles_crush_force 50