From 65476ff645a032a7c4d7d8642bc771caeb7037f2 Mon Sep 17 00:00:00 2001 From: Jakob MG Date: Thu, 16 Aug 2012 17:26:45 +0200 Subject: [PATCH] Update bumble balance, fix healray stuck midair, set pilot/gunner to individual offsets so you can see who in in there --- qcsrc/server/vehicles/bumblebee.qc | 85 ++++++++++++++++++++---------- vehicle_bumblebee.cfg | 31 +++++------ 2 files changed, 74 insertions(+), 42 deletions(-) diff --git a/qcsrc/server/vehicles/bumblebee.qc b/qcsrc/server/vehicles/bumblebee.qc index 0d2538d77..c8f8da2e7 100644 --- a/qcsrc/server/vehicles/bumblebee.qc +++ b/qcsrc/server/vehicles/bumblebee.qc @@ -62,6 +62,7 @@ float autocvar_g_vehicle_bumblebee_healgun_hmax; float autocvar_g_vehicle_bumblebee_healgun_aps; float autocvar_g_vehicle_bumblebee_healgun_amax; float autocvar_g_vehicle_bumblebee_healgun_sps; +float autocvar_g_vehicle_bumblebee_healgun_locktime; float autocvar_g_vehicle_bumblebee_respawntime; @@ -95,16 +96,34 @@ float bumb_gunner_frame() entity gunner = self; self = vehic; + + + vehic.solid = SOLID_NOT; - setorigin(gunner, vehic.origin); + //setorigin(gunner, vehic.origin); gunner.velocity = vehic.velocity; + + float _in, _out; + vehic.angles_x *= -1; + makevectors(vehic.angles); + vehic.angles_x *= -1; + if((gun == vehic.gun1)) + { + _in = autocvar_g_vehicle_bumblebee_cannon_turnlimit_in; + _out = autocvar_g_vehicle_bumblebee_cannon_turnlimit_out; + setorigin(gunner, vehic.origin + v_up * -16 + v_forward * -16 + v_right * 128); + } + else + { + _in = autocvar_g_vehicle_bumblebee_cannon_turnlimit_out; + _out = autocvar_g_vehicle_bumblebee_cannon_turnlimit_in; + setorigin(gunner, vehic.origin + v_up * -16 + v_forward * -16 + v_right * -128); + } + crosshair_trace(gunner); vector _ct = trace_endpos; vector ad; - float _in = ((gun == vehic.gun1) ? autocvar_g_vehicle_bumblebee_cannon_turnlimit_in : autocvar_g_vehicle_bumblebee_cannon_turnlimit_out); - float _out = ((gun == vehic.gun1) ? autocvar_g_vehicle_bumblebee_cannon_turnlimit_out : autocvar_g_vehicle_bumblebee_cannon_turnlimit_in); - if(autocvar_g_vehicle_bumblebee_cannon_lock) { if(gun.lock_time < time) @@ -462,37 +481,40 @@ float bumb_pilot_frame() vehic.velocity += newvel * frametime; pilot.velocity = pilot.movement = vehic.velocity; - setorigin(pilot, vehic.origin + '0 0 32'); + - if(vehic.tur_head.lock_time < time || vehic.tur_head.enemy.deadflag) - vehic.tur_head.enemy = world; + if(autocvar_g_vehicle_bumblebee_healgun_locktime) + { + if(vehic.tur_head.lock_time < time || vehic.tur_head.enemy.deadflag) + vehic.tur_head.enemy = world; - if(trace_ent) - if(trace_ent.movetype) - if(trace_ent.takedamage) - if(!trace_ent.deadflag) - { - if(teamplay) + if(trace_ent) + if(trace_ent.movetype) + if(trace_ent.takedamage) + if(!trace_ent.deadflag) { - if(trace_ent.team == pilot.team) + if(teamplay) { + if(trace_ent.team == pilot.team) + { + vehic.tur_head.enemy = trace_ent; + vehic.tur_head.lock_time = time + autocvar_g_vehicle_bumblebee_healgun_locktime; + } + } + else + { vehic.tur_head.enemy = trace_ent; - vehic.tur_head.lock_time = time + 1; + vehic.tur_head.lock_time = time + 0.5; } } - else - { - vehic.tur_head.enemy = trace_ent; - vehic.tur_head.lock_time = time + 0.5; + + if(vehic.tur_head.enemy) + { + trace_endpos = real_origin(vehic.tur_head.enemy); + UpdateAuxiliaryXhair(pilot, trace_endpos, '0 0.75 0', 0); } } - - if(vehic.tur_head.enemy) - { - trace_endpos = real_origin(vehic.tur_head.enemy); - UpdateAuxiliaryXhair(pilot, trace_endpos, '0 0.5 0', 0); - } - + vang = vehicle_aimturret(vehic, trace_endpos, self.gun3, "fire", autocvar_g_vehicle_bumblebee_raygun_pitchlimit_down * -1, autocvar_g_vehicle_bumblebee_raygun_pitchlimit_up, autocvar_g_vehicle_bumblebee_raygun_turnlimit_sides * -1, autocvar_g_vehicle_bumblebee_raygun_turnlimit_sides, autocvar_g_vehicle_bumblebee_raygun_turnspeed); @@ -571,7 +593,11 @@ float bumb_pilot_frame() if(vehic.vehicle_flags & VHF_HASSHIELD) VEHICLE_UPDATE_PLAYER(pilot, shield, bumblebee); - + + vehic.angles_x *= -1; + makevectors(vehic.angles); + vehic.angles_x *= -1; + setorigin(pilot, vehic.origin + v_up * 64 + v_forward * 128); pilot.BUTTON_ATCK = pilot.BUTTON_ATCK2 = pilot.BUTTON_CROUCH = 0; self = pilot; @@ -619,6 +645,7 @@ void bumb_enter() { self.touch = bumb_touch; self.nextthink = 0; + //setattachment(self.owner, self.vehicle_viewport, ""); } void bumb_exit(float eject) @@ -677,6 +704,10 @@ void bumb_diethink() void bumb_die() { entity oldself = self; + + // Hide beam + self.gun3.enemy.effects |= EF_NODRAW; + if(self.gunner1) { self = self.gunner1; diff --git a/vehicle_bumblebee.cfg b/vehicle_bumblebee.cfg index f50c2d702..705d2a988 100644 --- a/vehicle_bumblebee.cfg +++ b/vehicle_bumblebee.cfg @@ -1,32 +1,32 @@ set g_vehicle_bumblebee_respawntime 60 -set g_vehicle_bumblebee_speed_forward 250 -set g_vehicle_bumblebee_speed_strafe 250 -set g_vehicle_bumblebee_speed_up 250 -set g_vehicle_bumblebee_speed_down 250 -set g_vehicle_bumblebee_turnspeed 90 +set g_vehicle_bumblebee_speed_forward 350 +set g_vehicle_bumblebee_speed_strafe 350 +set g_vehicle_bumblebee_speed_up 350 +set g_vehicle_bumblebee_speed_down 350 +set g_vehicle_bumblebee_turnspeed 120 set g_vehicle_bumblebee_pitchspeed 60 set g_vehicle_bumblebee_pitchlimit 60 -set g_vehicle_bumblebee_friction 0.45 +set g_vehicle_bumblebee_friction 0.5 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_health 1000 -set g_vehicle_bumblebee_health_regen 50 +set g_vehicle_bumblebee_health_regen 65 set g_vehicle_bumblebee_health_regen_pause 10 -set g_vehicle_bumblebee_shield 300 -set g_vehicle_bumblebee_shield_regen 100 -set g_vehicle_bumblebee_shield_regen_pause 1 +set g_vehicle_bumblebee_shield 400 +set g_vehicle_bumblebee_shield_regen 150 +set g_vehicle_bumblebee_shield_regen_pause 0.75 set g_vehicle_bumblebee_cannon_lock 0 set g_vehicle_bumblebee_cannon_cost 2 set g_vehicle_bumblebee_cannon_damage 60 set g_vehicle_bumblebee_cannon_radius 225 set g_vehicle_bumblebee_cannon_refire 0.2 -set g_vehicle_bumblebee_cannon_speed 9000 +set g_vehicle_bumblebee_cannon_speed 20000 set g_vehicle_bumblebee_cannon_spread 0.02 set g_vehicle_bumblebee_cannon_force -35 set g_vehicle_bumblebee_cannon_turnspeed 160 @@ -38,7 +38,7 @@ set g_vehicle_bumblebee_cannon_ammo 100 set g_vehicle_bumblebee_cannon_ammo_regen 100 set g_vehicle_bumblebee_cannon_ammo_regen_pause 1 -set g_vehicle_bumblebee_raygun_turnspeed 160 +set g_vehicle_bumblebee_raygun_turnspeed 180 set g_vehicle_bumblebee_raygun_pitchlimit_down 20 set g_vehicle_bumblebee_raygun_pitchlimit_up 5 set g_vehicle_bumblebee_raygun_turnlimit_sides 35 @@ -49,12 +49,13 @@ set g_vehicle_bumblebee_raygun_dps 250 set g_vehicle_bumblebee_raygun_aps 100 set g_vehicle_bumblebee_raygun_fps 100 -set g_vehicle_bumblebee_healgun_hps 60 +set g_vehicle_bumblebee_healgun_hps 150 set g_vehicle_bumblebee_healgun_hmax 100 -set g_vehicle_bumblebee_healgun_aps 45 +set g_vehicle_bumblebee_healgun_aps 75 set g_vehicle_bumblebee_healgun_amax 100 -set g_vehicle_bumblebee_healgun_sps 55 +set g_vehicle_bumblebee_healgun_sps 100 set g_vehicle_bumblebee_healgun_smax 100 +set g_vehicle_bumblebee_healgun_locktime 2.5 set g_vehicle_bumblebee_blowup_radius 500 set g_vehicle_bumblebee_blowup_coredamage 500 -- 2.39.2