From: Samual Lenks Date: Mon, 10 Jun 2013 01:56:24 +0000 (-0400) Subject: Merge remote-tracking branch 'origin/samual/spawn_weapons' into samual/weapons X-Git-Tag: xonotic-v0.8.0~152^2~408 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=8675941fb13c2d91b62332c58d9e9d8da6b47524;p=xonotic%2Fxonotic-data.pk3dir.git Merge remote-tracking branch 'origin/samual/spawn_weapons' into samual/weapons Conflicts: balanceXPM.cfg balanceXonotic.cfg qcsrc/client/Defs.qc qcsrc/client/Main.qc qcsrc/client/hook.qc qcsrc/common/constants.qh qcsrc/server/autocvars.qh qcsrc/server/cl_client.qc qcsrc/server/progs.src --- 8675941fb13c2d91b62332c58d9e9d8da6b47524 diff --cc balanceXPM.cfg index e952b59d1,daaa0a477..f0f116448 --- a/balanceXPM.cfg +++ b/balanceXPM.cfg @@@ -238,11 -253,11 +253,11 @@@ set g_balance_laser_primary_animtime 0. set g_balance_laser_primary_lifetime 5 set g_balance_laser_primary_shotangle 0 set g_balance_laser_primary_delay 0 - set g_balance_laser_primary_gauntlet 0 -set g_balance_laser_primary_force_zscale 1.25 +set g_balance_laser_primary_force_zscale 1.2 set g_balance_laser_primary_force_velocitybias 0 set g_balance_laser_primary_force_other_scale 1 - set g_balance_laser_secondary 0 // when 1, a secondary laser mode exists + + set g_balance_laser_secondary 2 // 0 = switch away to last used weapon, 1 = projectile secondary, 2 = melee secondary set g_balance_laser_secondary_damage 25 set g_balance_laser_secondary_edgedamage 12.5 set g_balance_laser_secondary_force 400 diff --cc balanceXonotic.cfg index 60a746c17,f1b2426d7..a3ef4810e --- a/balanceXonotic.cfg +++ b/balanceXonotic.cfg @@@ -238,11 -253,11 +253,11 @@@ set g_balance_laser_primary_animtime 0. set g_balance_laser_primary_lifetime 5 set g_balance_laser_primary_shotangle 0 set g_balance_laser_primary_delay 0 - set g_balance_laser_primary_gauntlet 0 -set g_balance_laser_primary_force_zscale 1.25 +set g_balance_laser_primary_force_zscale 1.2 set g_balance_laser_primary_force_velocitybias 0 set g_balance_laser_primary_force_other_scale 1 - set g_balance_laser_secondary 0 // when 1, a secondary laser mode exists + + set g_balance_laser_secondary 2 // 0 = switch away to last used weapon, 1 = projectile secondary, 2 = melee secondary set g_balance_laser_secondary_damage 25 set g_balance_laser_secondary_edgedamage 12.5 set g_balance_laser_secondary_force 400 diff --cc qcsrc/client/Defs.qc index 8f1317827,83a99fc6e..4a206e55f --- a/qcsrc/client/Defs.qc +++ b/qcsrc/client/Defs.qc @@@ -224,8 -224,6 +224,8 @@@ float tempdb float ClientProgsDB; vector hook_shotorigin[4]; vector electro_shotorigin[4]; +vector lightning_shotorigin[4]; - vector gauntlet_shotorigin[4]; ++ #ifdef BLURTEST float blurtest_time0, blurtest_time1, blurtest_radius, blurtest_power; diff --cc qcsrc/client/Main.qc index d7130197e,310387b68..c1ad208d3 --- a/qcsrc/client/Main.qc +++ b/qcsrc/client/Main.qc @@@ -875,9 -875,7 +875,8 @@@ void CSQC_Ent_Update(float bIsNewEntity case ENT_CLIENT_WARPZONE_TELEPORTED: WarpZone_Teleported_Read(bIsNewEntity); break; case ENT_CLIENT_TRIGGER_MUSIC: Ent_ReadTriggerMusic(); break; case ENT_CLIENT_HOOK: Ent_ReadHook(bIsNewEntity, ENT_CLIENT_HOOK); break; - case ENT_CLIENT_LGBEAM: Ent_ReadHook(bIsNewEntity, ENT_CLIENT_LGBEAM); break; + case ENT_CLIENT_ELECTRO_BEAM: Ent_ReadHook(bIsNewEntity, ENT_CLIENT_ELECTRO_BEAM); break; + case ENT_CLIENT_LIGHTNING_BEAM: Ent_ReadHook(bIsNewEntity, ENT_CLIENT_LIGHTNING_BEAM); break; - case ENT_CLIENT_GAUNTLET: Ent_ReadHook(bIsNewEntity, ENT_CLIENT_GAUNTLET); break; case ENT_CLIENT_ACCURACY: Ent_ReadAccuracy(); break; case ENT_CLIENT_AUXILIARYXHAIR: Net_AuXair2(bIsNewEntity); break; case ENT_CLIENT_TURRET: ent_turret(); break; @@@ -1017,14 -1015,6 +1016,10 @@@ void Ent_Init( electro_shotorigin[1] = decompressShotOrigin(ReadInt24_t()); electro_shotorigin[2] = decompressShotOrigin(ReadInt24_t()); electro_shotorigin[3] = decompressShotOrigin(ReadInt24_t()); + lightning_shotorigin[0] = decompressShotOrigin(ReadInt24_t()); + lightning_shotorigin[1] = decompressShotOrigin(ReadInt24_t()); + lightning_shotorigin[2] = decompressShotOrigin(ReadInt24_t()); + lightning_shotorigin[3] = decompressShotOrigin(ReadInt24_t()); - gauntlet_shotorigin[0] = decompressShotOrigin(ReadInt24_t()); - gauntlet_shotorigin[1] = decompressShotOrigin(ReadInt24_t()); - gauntlet_shotorigin[2] = decompressShotOrigin(ReadInt24_t()); - gauntlet_shotorigin[3] = decompressShotOrigin(ReadInt24_t()); if(forcefog) strunzone(forcefog); diff --cc qcsrc/client/hook.qc index a228d22b8,c3a45ab5c..75a15834d --- a/qcsrc/client/hook.qc +++ b/qcsrc/client/hook.qc @@@ -75,15 -75,9 +75,12 @@@ void Draw_GrapplingHook( case ENT_CLIENT_HOOK: vs = hook_shotorigin[s]; break; - case ENT_CLIENT_LGBEAM: + case ENT_CLIENT_ELECTRO_BEAM: vs = electro_shotorigin[s]; break; + case ENT_CLIENT_LIGHTNING_BEAM: + vs = lightning_shotorigin[s]; + break; - case ENT_CLIENT_GAUNTLET: - vs = gauntlet_shotorigin[s]; - break; } if((self.owner.sv_entnum == player_localentnum - 1)) @@@ -95,9 -89,7 +92,8 @@@ a = view_origin + view_forward * vs_x + view_right * -vs_y + view_up * vs_z; b = self.origin; break; - case ENT_CLIENT_LGBEAM: + case ENT_CLIENT_ELECTRO_BEAM: + case ENT_CLIENT_LIGHTNING_BEAM: - case ENT_CLIENT_GAUNTLET: if(self.HookRange) b = view_origin + view_forward * self.HookRange; else @@@ -117,9 -109,7 +113,8 @@@ a = self.velocity; b = self.origin; break; - case ENT_CLIENT_LGBEAM: + case ENT_CLIENT_ELECTRO_BEAM: + case ENT_CLIENT_LIGHTNING_BEAM: - case ENT_CLIENT_GAUNTLET: a = self.origin; b = self.velocity; break; @@@ -204,9 -182,7 +193,8 @@@ self.drawmask = 0; } break; - case ENT_CLIENT_LGBEAM: + case ENT_CLIENT_ELECTRO_BEAM: + case ENT_CLIENT_LIGHTNING_BEAM: - case ENT_CLIENT_GAUNTLET: setorigin(self, a); // beam origin! break; } @@@ -216,15 -192,9 +204,12 @@@ default: case ENT_CLIENT_HOOK: break; - case ENT_CLIENT_LGBEAM: - pointparticles(particleeffectnum("electro_lightning"), trace_endpos, normalize(atrans - trace_endpos), frametime * intensity); + case ENT_CLIENT_ELECTRO_BEAM: + pointparticles(particleeffectnum("electro_lightning"), trace_endpos, normalize(atrans - trace_endpos), frametime * intensity); // todo: new effect + break; + case ENT_CLIENT_LIGHTNING_BEAM: + pointparticles(particleeffectnum("electro_lightning"), trace_endpos, normalize(atrans - trace_endpos), frametime * intensity); // todo: new effect break; - case ENT_CLIENT_GAUNTLET: - pointparticles(particleeffectnum("gauntlet_lightning"), b, normalize(a - b), frametime * intensity); - break; } } @@@ -252,11 -222,9 +237,10 @@@ void Ent_ReadHook(float bIsNew, float t { default: case ENT_CLIENT_HOOK: - case ENT_CLIENT_GAUNTLET: self.HookRange = 0; break; - case ENT_CLIENT_LGBEAM: + case ENT_CLIENT_ELECTRO_BEAM: + case ENT_CLIENT_LIGHTNING_BEAM: self.HookRange = ReadCoord(); break; } @@@ -290,15 -258,9 +274,12 @@@ setmodel(self, "models/hook.md3"); self.drawmask = MASK_NORMAL; break; - case ENT_CLIENT_LGBEAM: + case ENT_CLIENT_ELECTRO_BEAM: + sound (self, CH_SHOTS_SINGLE, "weapons/lgbeam_fly.wav", VOL_BASE, ATTN_NORM); + break; + case ENT_CLIENT_LIGHTNING_BEAM: sound (self, CH_SHOTS_SINGLE, "weapons/lgbeam_fly.wav", VOL_BASE, ATTN_NORM); break; - case ENT_CLIENT_GAUNTLET: - sound (self, CH_SHOTS_SINGLE, "weapons/gauntletbeam_fly.wav", VOL_BASE, ATTN_NORM); - break; } } diff --cc qcsrc/common/constants.qh index 6e3e8027d,2ff27d743..3a410b793 --- a/qcsrc/common/constants.qh +++ b/qcsrc/common/constants.qh @@@ -86,18 -87,17 +87,17 @@@ const float ENT_CLIENT_WARPZONE = 24 const float ENT_CLIENT_WARPZONE_CAMERA = 25; const float ENT_CLIENT_TRIGGER_MUSIC = 26; const float ENT_CLIENT_HOOK = 27; -const float ENT_CLIENT_LGBEAM = 28; -const float ENT_CLIENT_ACCURACY = 29; -const float ENT_CLIENT_SHOWNAMES = 30; -const float ENT_CLIENT_WARPZONE_TELEPORTED = 31; -const float ENT_CLIENT_MODEL = 32; -const float ENT_CLIENT_ITEM = 33; -const float ENT_CLIENT_BUMBLE_RAYGUN = 34; -const float ENT_CLIENT_SPAWNPOINT = 35; -const float ENT_CLIENT_SPAWNEVENT = 36; -const float ENT_CLIENT_NOTIFICATION = 37; - +const float ENT_CLIENT_ELECTRO_BEAM = 28; +const float ENT_CLIENT_LIGHTNING_BEAM = 29; - const float ENT_CLIENT_GAUNTLET = 30; - const float ENT_CLIENT_ACCURACY = 31; - const float ENT_CLIENT_SHOWNAMES = 32; - const float ENT_CLIENT_WARPZONE_TELEPORTED = 33; - const float ENT_CLIENT_MODEL = 34; - const float ENT_CLIENT_ITEM = 35; - const float ENT_CLIENT_BUMBLE_RAYGUN = 36; - const float ENT_CLIENT_SPAWNPOINT = 37; - const float ENT_CLIENT_SPAWNEVENT = 38; - const float ENT_CLIENT_NOTIFICATION = 39; ++const float ENT_CLIENT_ACCURACY = 30; ++const float ENT_CLIENT_SHOWNAMES = 31; ++const float ENT_CLIENT_WARPZONE_TELEPORTED = 32; ++const float ENT_CLIENT_MODEL = 33; ++const float ENT_CLIENT_ITEM = 34; ++const float ENT_CLIENT_BUMBLE_RAYGUN = 35; ++const float ENT_CLIENT_SPAWNPOINT = 36; ++const float ENT_CLIENT_SPAWNEVENT = 37; ++const float ENT_CLIENT_NOTIFICATION = 38; const float ENT_CLIENT_TURRET = 40; const float ENT_CLIENT_AUXILIARYXHAIR = 50; diff --cc qcsrc/server/autocvars.qh index bc6a80faf,2ae723012..7e6e6ef46 --- a/qcsrc/server/autocvars.qh +++ b/qcsrc/server/autocvars.qh @@@ -433,41 -450,41 +450,68 @@@ float autocvar_g_balance_laser_secondar float autocvar_g_balance_laser_secondary_damage; float autocvar_g_balance_laser_secondary_edgedamage; float autocvar_g_balance_laser_secondary_force; - float autocvar_g_balance_laser_secondary_force_other_scale; - float autocvar_g_balance_laser_secondary_force_velocitybias; - float autocvar_g_balance_laser_secondary_force_zscale; + //float autocvar_g_balance_laser_secondary_force_other_scale; + //float autocvar_g_balance_laser_secondary_force_velocitybias; + //float autocvar_g_balance_laser_secondary_force_zscale; float autocvar_g_balance_laser_secondary_lifetime; float autocvar_g_balance_laser_secondary_radius; - float autocvar_g_balance_laser_secondary_speed; - float autocvar_g_balance_laser_reload_ammo; - float autocvar_g_balance_laser_reload_time; + float autocvar_g_balance_laser_secondary_refire; + //float autocvar_g_balance_laser_secondary_speed; + float autocvar_g_balance_laser_shockwave_damage; + float autocvar_g_balance_laser_shockwave_distance; + float autocvar_g_balance_laser_shockwave_edgedamage; + float autocvar_g_balance_laser_shockwave_force; + float autocvar_g_balance_laser_shockwave_force_forwardbias; + float autocvar_g_balance_laser_shockwave_force_zscale; + float autocvar_g_balance_laser_shockwave_jump_damage; + float autocvar_g_balance_laser_shockwave_jump_edgedamage; + float autocvar_g_balance_laser_shockwave_jump_force; + float autocvar_g_balance_laser_shockwave_jump_force_velocitybias; + float autocvar_g_balance_laser_shockwave_jump_force_zscale; + float autocvar_g_balance_laser_shockwave_jump_multiplier_accuracy; + float autocvar_g_balance_laser_shockwave_jump_multiplier_distance; + float autocvar_g_balance_laser_shockwave_jump_multiplier_min; + float autocvar_g_balance_laser_shockwave_jump_radius; + float autocvar_g_balance_laser_shockwave_multiplier_accuracy; + float autocvar_g_balance_laser_shockwave_multiplier_distance; + float autocvar_g_balance_laser_shockwave_multiplier_min; + float autocvar_g_balance_laser_shockwave_splash_damage; + float autocvar_g_balance_laser_shockwave_splash_edgedamage; + float autocvar_g_balance_laser_shockwave_splash_force; + float autocvar_g_balance_laser_shockwave_splash_force_forwardbias; + float autocvar_g_balance_laser_shockwave_splash_multiplier_accuracy; + float autocvar_g_balance_laser_shockwave_splash_multiplier_distance; + float autocvar_g_balance_laser_shockwave_splash_multiplier_min; + float autocvar_g_balance_laser_shockwave_splash_radius; + float autocvar_g_balance_laser_shockwave_spread_max; + float autocvar_g_balance_laser_shockwave_spread_min; +float autocvar_g_balance_lightning_primary_ammo; +float autocvar_g_balance_lightning_primary_animtime; +float autocvar_g_balance_lightning_primary_damage; +float autocvar_g_balance_lightning_primary_edgedamage; +float autocvar_g_balance_lightning_primary_falloff_halflifedist; +float autocvar_g_balance_lightning_primary_falloff_maxdist; +float autocvar_g_balance_lightning_primary_falloff_mindist; +float autocvar_g_balance_lightning_primary_force; +float autocvar_g_balance_lightning_primary_lifetime; +float autocvar_g_balance_lightning_primary_radius; +float autocvar_g_balance_lightning_primary_range; +float autocvar_g_balance_lightning_primary_refire; +float autocvar_g_balance_lightning_primary_speed; +float autocvar_g_balance_lightning_secondary_ammo; +float autocvar_g_balance_lightning_secondary_animtime; +float autocvar_g_balance_lightning_secondary_damage; +float autocvar_g_balance_lightning_secondary_damageforcescale; +float autocvar_g_balance_lightning_secondary_edgedamage; +float autocvar_g_balance_lightning_secondary_flyingdamage; +float autocvar_g_balance_lightning_secondary_flyingforce; +float autocvar_g_balance_lightning_secondary_flyingradius; +float autocvar_g_balance_lightning_secondary_force; +float autocvar_g_balance_lightning_secondary_health; +float autocvar_g_balance_lightning_secondary_lifetime; +float autocvar_g_balance_lightning_secondary_radius; +float autocvar_g_balance_lightning_secondary_refire; +float autocvar_g_balance_lightning_secondary_speed; float autocvar_g_balance_minelayer_ammo; float autocvar_g_balance_minelayer_animtime; float autocvar_g_balance_minelayer_damage; diff --cc qcsrc/server/cl_client.qc index 290895840,feff34dab..dd7a4d37e --- a/qcsrc/server/cl_client.qc +++ b/qcsrc/server/cl_client.qc @@@ -620,14 -620,7 +620,11 @@@ float ClientInit_SendEntity(entity to, WriteInt24_t(MSG_ENTITY, compressShotOrigin(electro_shotorigin[1])); WriteInt24_t(MSG_ENTITY, compressShotOrigin(electro_shotorigin[2])); WriteInt24_t(MSG_ENTITY, compressShotOrigin(electro_shotorigin[3])); + WriteInt24_t(MSG_ENTITY, compressShotOrigin(lightning_shotorigin[0])); + WriteInt24_t(MSG_ENTITY, compressShotOrigin(lightning_shotorigin[1])); + WriteInt24_t(MSG_ENTITY, compressShotOrigin(lightning_shotorigin[2])); + WriteInt24_t(MSG_ENTITY, compressShotOrigin(lightning_shotorigin[3])); - WriteInt24_t(MSG_ENTITY, compressShotOrigin(gauntlet_shotorigin[0])); - WriteInt24_t(MSG_ENTITY, compressShotOrigin(gauntlet_shotorigin[1])); - WriteInt24_t(MSG_ENTITY, compressShotOrigin(gauntlet_shotorigin[2])); - WriteInt24_t(MSG_ENTITY, compressShotOrigin(gauntlet_shotorigin[3])); + if(sv_foginterval && world.fog != "") WriteString(MSG_ENTITY, world.fog); else diff --cc qcsrc/server/g_world.qc index 9e7fa78a5,bd6b83ffa..ffc8cdb8b --- a/qcsrc/server/g_world.qc +++ b/qcsrc/server/g_world.qc @@@ -654,9 -654,7 +654,8 @@@ void spawnfunc_worldspawn (void InitGameplayMode(); readlevelcvars(); GrappleHookInit(); + LightningInit(); ElectroInit(); - LaserInit(); player_count = 0; bot_waypoints_for_items = autocvar_g_waypoints_for_items; diff --cc qcsrc/server/progs.src index 5ebd833f8,0aefa4997..5b9c5917c --- a/qcsrc/server/progs.src +++ b/qcsrc/server/progs.src @@@ -77,8 -77,6 +77,7 @@@ portals.q g_hook.qh w_electro.qh +w_lightning.qh - w_laser.qh scores.qh