From d265be33ff02a503fe8fb15c38def1c3f44d13d9 Mon Sep 17 00:00:00 2001 From: Jakob MG Date: Wed, 30 Mar 2011 02:38:31 +0200 Subject: [PATCH] Racer fires one rocket at the time. All vehicles crush. Raptor primary fires two bolts ber side then has a slight refire added. Tweak settings --- qcsrc/server/vehicles/racer.qc | 29 ++++++++++++++++--------- qcsrc/server/vehicles/raptor.qc | 22 ++++++++++++++----- qcsrc/server/vehicles/spiderbot.qc | 9 ++++---- qcsrc/server/vehicles/vehicles.qc | 28 +++++++++++++++++++++++- vehicle_racer.cfg | 35 +++++++++++++++--------------- vehicle_raptor.cfg | 34 ++++++++++++++--------------- vehicles.cfg | 3 +++ 7 files changed, 105 insertions(+), 55 deletions(-) diff --git a/qcsrc/server/vehicles/racer.qc b/qcsrc/server/vehicles/racer.qc index 410490c09..96dbc4268 100644 --- a/qcsrc/server/vehicles/racer.qc +++ b/qcsrc/server/vehicles/racer.qc @@ -459,14 +459,22 @@ float racer_frame() if(time > racer.delay) if(player.BUTTON_ATCK2) { - racer_fire_rocket("tag_rocket_r", (self.lock_strength == 1 && self.lock_target) ? self.lock_target : world); - racer_fire_rocket("tag_rocket_l", (self.lock_strength == 1 && self.lock_target) ? self.lock_target : world); + self.misc_bulletcounter += 1; + racer.delay = time + 0.2; + if(self.misc_bulletcounter == 1) + racer_fire_rocket("tag_rocket_r", (self.lock_strength == 1 && self.lock_target) ? self.lock_target : world); + else if(self.misc_bulletcounter == 2) + racer_fire_rocket("tag_rocket_l", (self.lock_strength == 1 && self.lock_target) ? self.lock_target : world); + else + { + self.lock_strength = 0; + self.lock_target = world; + self.misc_bulletcounter = 0; - self.lock_strength = 0; - self.lock_target = world; + racer.delay = time + autocvar_g_vehicle_racer_rocket_refire; + racer.lip = time; - racer.delay = time + autocvar_g_vehicle_racer_rocket_refire; - racer.lip = time; + } } player.fire2_waspressed = player.BUTTON_ATCK2; @@ -556,9 +564,9 @@ void racer_exit(float eject) self.owner = world; } -void racer_touch() +/*void racer_touch() { - vehicles_touch(); + //vehicles_touch(); if(self.owner) { return; @@ -574,7 +582,7 @@ void racer_touch() return; vehicles_enter(); -} +}*/ void racer_spawn() { @@ -588,7 +596,8 @@ void racer_spawn() self.vehicle_shield = autocvar_g_vehicle_racer_shield; self.event_damage = vehicles_damage; - self.touch = racer_touch; + //self.touch = racer_touch; + self.touch = vehicles_touch; self.iscreature = TRUE; self.scale = 0.5; diff --git a/qcsrc/server/vehicles/raptor.qc b/qcsrc/server/vehicles/raptor.qc index 9ea9bcf04..e4adc57bf 100644 --- a/qcsrc/server/vehicles/raptor.qc +++ b/qcsrc/server/vehicles/raptor.qc @@ -506,13 +506,22 @@ float raptor_frame() if(raptor.vehicle_energy > autocvar_g_vehicle_raptor_cannon_cost) { raptor.misc_bulletcounter += 1; - if(mod(raptor.misc_bulletcounter, 2)) + raptor.attack_finished_single = time + autocvar_g_vehicle_raptor_cannon_refire; + //if(mod(raptor.misc_bulletcounter, 2)) + if(raptor.misc_bulletcounter <= 2) raptor_fire_cannon(self.gun1, "fire1"); + else if(raptor.misc_bulletcounter == 3) + raptor_fire_cannon(self.gun2, "fire1"); else + { + raptor.attack_finished_single = time + autocvar_g_vehicle_raptor_cannon_refire * 2; raptor_fire_cannon(self.gun2, "fire1"); + raptor.misc_bulletcounter = 0; + } + raptor.vehicle_energy -= autocvar_g_vehicle_raptor_cannon_cost; - raptor.attack_finished_single = time + autocvar_g_vehicle_raptor_cannon_refire; + self.cnt = time; } @@ -552,9 +561,9 @@ float raptor_frame() return 1; } -void raptor_touch() +/*void raptor_touch() { - vehicles_touch(); + //vehicles_touch(); if(self.owner) { if(vlen(self.velocity) == 0) @@ -576,7 +585,7 @@ void raptor_touch() return; vehicles_enter(); -} +}*/ void raptor_blowup() { @@ -633,7 +642,8 @@ void raptor_spawn() self.vehicle_health = autocvar_g_vehicle_raptor_health; self.vehicle_shield = autocvar_g_vehicle_raptor_shield; self.event_damage = vehicles_damage; - self.touch = raptor_touch; + //self.touch = raptor_touch; + self.touch = vehicles_touch; self.iscreature = TRUE; self.movetype = MOVETYPE_FLY; self.solid = SOLID_BBOX; diff --git a/qcsrc/server/vehicles/spiderbot.qc b/qcsrc/server/vehicles/spiderbot.qc index 5668bd264..07d676789 100644 --- a/qcsrc/server/vehicles/spiderbot.qc +++ b/qcsrc/server/vehicles/spiderbot.qc @@ -575,9 +575,9 @@ float spiderbot_crushable(entity e) return 0; } -void spiderbot_touch() +/*void spiderbot_touch( { - vehicles_touch(); + //vehicles_touch(); if(self.owner) { if(vlen(self.velocity) == 0) @@ -602,7 +602,7 @@ void spiderbot_touch() return; vehicles_enter(); -} +}*/ void spiderbot_spawn() @@ -619,7 +619,8 @@ void spiderbot_spawn() self.movetype = MOVETYPE_WALK; self.solid = SOLID_SLIDEBOX; self.takedamage = DAMAGE_AIM; - self.touch = spiderbot_touch; + //self.touch = spiderbot_touch; + self.touch = vehicles_touch; self.alpha = self.tur_head.alpha = self.gun1.alpha = self.gun2.alpha = 1; self.tur_head.angles = '0 0 0'; self.deadflag = DEAD_NO; diff --git a/qcsrc/server/vehicles/vehicles.qc b/qcsrc/server/vehicles/vehicles.qc index 1cd45691c..647c6c77e 100644 --- a/qcsrc/server/vehicles/vehicles.qc +++ b/qcsrc/server/vehicles/vehicles.qc @@ -1,3 +1,6 @@ +float autocvar_g_vehicles_crush_dmg; +float autocvar_g_vehicles_crush_force; + void vehicles_damage(entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force); void vehicles_return(); void vehicles_clearrturn(); @@ -168,6 +171,21 @@ vector vehicles_force_fromtag_maglev(string tag_name, float spring_length, float return v_forward * force_fromtag_power; } +// Better way of determening whats crushable needed! (fl_crushable?) +float vehicles_crushable(entity e) +{ + if(e.classname == "corpse") + return TRUE; + + if(e.classname == "player") + return TRUE; + + if(e.classname == "monster_zombie") + return TRUE; + + return FALSE; +} + void vehicles_enter(); void vehicles_touch() { @@ -185,7 +203,14 @@ void vehicles_touch() { //other.velocity += self.velocity * (self.mass / other.mass); } + else if(vehicles_crushable(other)) + { + if(vlen(self.velocity) != 0) + Damage(other, self, self.owner, autocvar_g_vehicles_crush_dmg, DEATH_SBCRUSH, '0 0 0', normalize(other.origin - self.origin) * autocvar_g_vehicles_crush_force); + } } + + return; } if(other.classname != "player") @@ -385,6 +410,8 @@ void vehicles_damage(entity inflictor, entity attacker, float damage, float deat else self.vehicle_health -= damage; + self.velocity += force * (vlen(force) / self.mass); + if(self.vehicle_health <= 0) { if(self.owner) @@ -607,5 +634,4 @@ void bugmenot() self.vehicle_die = self.vehicle_exit; self.vehicle_spawn = self.vehicle_exit; self.AuxiliaryXhair = self.AuxiliaryXhair; - //self.vehicle_message = self.vehicle_exit; } diff --git a/vehicle_racer.cfg b/vehicle_racer.cfg index 1dfeba427..8895746f3 100644 --- a/vehicle_racer.cfg +++ b/vehicle_racer.cfg @@ -25,7 +25,7 @@ set g_vehicle_racer_upforcedamper 0.94 set g_vehicle_racer_downforce 0.01 set g_vehicle_racer_springlength 40 -set g_vehicle_racer_collision_multiplier 0.55 +set g_vehicle_racer_collision_multiplier 0.05 set g_vehicle_racer_anglestabilizer 2 set g_vehicle_racer_turnspeed 200 @@ -39,21 +39,22 @@ set g_vehicle_racer_laser_radius 100 set g_vehicle_racer_laser_refire 0.1 set g_vehicle_racer_laser_cost 2 -set g_vehicle_racer_rocket_speed 1250 -set g_vehicle_racer_rocket_accel 1000 -set g_vehicle_racer_rocket_turnrate 0.12 -set g_vehicle_racer_rocket_damage 120 +set g_vehicle_racer_rocket_speed 1000 +set g_vehicle_racer_rocket_accel 1300 +set g_vehicle_racer_rocket_turnrate 0.14 +set g_vehicle_racer_rocket_damage 150 set g_vehicle_racer_rocket_radius 100 -set g_vehicle_racer_rocket_refire 3 +set g_vehicle_racer_rocket_refire 5 set g_vehicle_racer_rocket_cost 0 -set g_vehicle_racer_rocket_locktarget 1 -set g_vehicle_racer_rocket_locking_time 0.5 -set g_vehicle_racer_rocket_locking_releasetime 1 -set g_vehicle_racer_rocket_locked_time 2 -set g_vehicle_racer_rocket_locked_maxangle 1.4 -set g_vehicle_racer_blowup_radius 250 -set g_vehicle_racer_blowup_coredamage 250 -set g_vehicle_racer_blowup_edgedamage 15 -set g_vehicle_racer_blowup_forceintensity 250 - -set g_vehicle_racer_mass 900 +set g_vehicle_racer_rocket_locktarget 1 +set g_vehicle_racer_rocket_locking_time 0.45 +set g_vehicle_racer_rocket_locking_releasetime 1.2 +set g_vehicle_racer_rocket_locked_time 3.5 +set g_vehicle_racer_rocket_locked_maxangle 1.42 + +set g_vehicle_racer_blowup_radius 250 +set g_vehicle_racer_blowup_coredamage 250 +set g_vehicle_racer_blowup_edgedamage 15 +set g_vehicle_racer_blowup_forceintensity 250 + +set g_vehicle_racer_mass 900 diff --git a/vehicle_raptor.cfg b/vehicle_raptor.cfg index adfd0a06c..8af257393 100644 --- a/vehicle_raptor.cfg +++ b/vehicle_raptor.cfg @@ -16,15 +16,15 @@ set g_vehicle_raptor_speed_up 600 set g_vehicle_raptor_speed_down 900 set g_vehicle_raptor_friction 0.7 -set g_vehicle_raptor_bomblets 12 +set g_vehicle_raptor_bomblets 10 set g_vehicle_raptor_bomblet_alt 750 set g_vehicle_raptor_bomblet_time 0.5 -set g_vehicle_raptor_bomblet_spread 0.4 -set g_vehicle_raptor_bomblet_damage 35 -set g_vehicle_raptor_bomblet_edgedamage 15 -set g_vehicle_raptor_bomblet_radius 300 +set g_vehicle_raptor_bomblet_spread 0.45 +set g_vehicle_raptor_bomblet_damage 40 +set g_vehicle_raptor_bomblet_edgedamage 20 +set g_vehicle_raptor_bomblet_radius 310 set g_vehicle_raptor_bomblet_force 150 -set g_vehicle_raptor_bomblet_explode_delay 0.25 +set g_vehicle_raptor_bomblet_explode_delay 0.35 set g_vehicle_raptor_bombs_refire 5 set g_vehicle_raptor_cannon_turnspeed 90 @@ -32,21 +32,21 @@ set g_vehicle_raptor_cannon_turnlimit 20 set g_vehicle_raptor_cannon_pitchlimit_up 12 set g_vehicle_raptor_cannon_pitchlimit_down 32 -set g_vehicle_raptor_cannon_locktarget 1 -set g_vehicle_raptor_cannon_locking_time 0.5 -set g_vehicle_raptor_cannon_locking_releasetime 1 -set g_vehicle_raptor_cannon_locked_time 2 -set g_vehicle_raptor_cannon_predicttarget 1 +set g_vehicle_raptor_cannon_locktarget 1 +set g_vehicle_raptor_cannon_locking_time 0.6 +set g_vehicle_raptor_cannon_locking_releasetime 1.5 +set g_vehicle_raptor_cannon_locked_time 3.5 +set g_vehicle_raptor_cannon_predicttarget 1 set g_vehicle_raptor_cannon_cost 1 set g_vehicle_raptor_cannon_damage 25 -set g_vehicle_raptor_cannon_radius 50 -set g_vehicle_raptor_cannon_refire 0.075 -set g_vehicle_raptor_cannon_speed 12500 -set g_vehicle_raptor_cannon_spread 0.0125 +set g_vehicle_raptor_cannon_radius 60 +set g_vehicle_raptor_cannon_refire 0.1 +set g_vehicle_raptor_cannon_speed 12000 +set g_vehicle_raptor_cannon_spread 0.01 -set g_vehicle_raptor_energy 30 -set g_vehicle_raptor_energy_regen 15 +set g_vehicle_raptor_energy 40 +set g_vehicle_raptor_energy_regen 20 set g_vehicle_raptor_energy_regen_pause 0.75 set g_vehicle_raptor_health 200 diff --git a/vehicles.cfg b/vehicles.cfg index 840ed5122..2b9a94754 100644 --- a/vehicles.cfg +++ b/vehicles.cfg @@ -7,3 +7,6 @@ exec vehicle_spiderbot.cfg set g_vehicle_racer_respawntime 10 set g_vehicle_spiderbot_respawntime 10 set g_vehicle_raptor_respawntime 10 + +set g_vehicles_crush_dmg 70 +set g_vehicles_crush_force 50 -- 2.39.2