From: Mario Date: Wed, 5 Oct 2016 09:16:34 +0000 (+1000) Subject: Merge branch 'master' into Mario/wepent_experimental X-Git-Tag: xonotic-v0.8.2~326^2~59 X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=commitdiff_plain;h=a3d9634886e52c442bd9d68a86b8df77e6ed26ed;hp=910457448f6e80b449739f75f98ce6aa28a47536 Merge branch 'master' into Mario/wepent_experimental # Conflicts: # qcsrc/common/gamemodes/gamemode/nexball/nexball.qc # qcsrc/common/mutators/mutator/overkill/sv_overkill.qc --- diff --git a/bal-wep-mario.cfg b/bal-wep-mario.cfg index 1470c3326b..f0aeead931 100644 --- a/bal-wep-mario.cfg +++ b/bal-wep-mario.cfg @@ -397,10 +397,11 @@ set g_balance_devastator_reload_ammo 0 set g_balance_devastator_reload_time 2 set g_balance_devastator_remote_damage 70 set g_balance_devastator_remote_edgedamage 35 -set g_balance_devastator_remote_force 450 +set g_balance_devastator_remote_force 300 set g_balance_devastator_remote_jump_damage 70 -set g_balance_devastator_remote_jump_radius 0 -set g_balance_devastator_remote_jump_velocity_z_add 400 +set g_balance_devastator_remote_jump_force 450 +set g_balance_devastator_remote_jump_radius 100 +set g_balance_devastator_remote_jump_velocity_z_add 0 set g_balance_devastator_remote_jump_velocity_z_max 1500 set g_balance_devastator_remote_jump_velocity_z_min 400 set g_balance_devastator_remote_radius 110 diff --git a/bal-wep-nexuiz25.cfg b/bal-wep-nexuiz25.cfg index d4b47594d7..41c9081b92 100644 --- a/bal-wep-nexuiz25.cfg +++ b/bal-wep-nexuiz25.cfg @@ -399,6 +399,7 @@ set g_balance_devastator_remote_damage 105 set g_balance_devastator_remote_edgedamage 40 set g_balance_devastator_remote_force 600 set g_balance_devastator_remote_jump_damage 70 +set g_balance_devastator_remote_jump_force 0 set g_balance_devastator_remote_jump_radius 0 set g_balance_devastator_remote_jump_velocity_z_add 400 set g_balance_devastator_remote_jump_velocity_z_max 1500 diff --git a/bal-wep-overkill.cfg b/bal-wep-overkill.cfg index d7463338aa..82609a76ca 100644 --- a/bal-wep-overkill.cfg +++ b/bal-wep-overkill.cfg @@ -84,7 +84,7 @@ set g_balance_machinegun_reload_time 1.5 set g_balance_machinegun_solidpenetration 13.1 set g_balance_machinegun_spread_add 0.012 set g_balance_machinegun_spread_max 0.05 -set g_balance_machinegun_spread_min 0.02 +set g_balance_machinegun_spread_min 0 set g_balance_machinegun_sustained_ammo 1 set g_balance_machinegun_sustained_damage 25 set g_balance_machinegun_sustained_force 5 @@ -302,7 +302,7 @@ set g_balance_vortex_charge_shot_multiplier 0 set g_balance_vortex_charge_start 0.5 set g_balance_vortex_charge_velocity_rate 0 set g_balance_vortex_primary_ammo 10 -set g_balance_vortex_primary_animtime 0.95 +set g_balance_vortex_primary_animtime 0.65 set g_balance_vortex_primary_damage 100 set g_balance_vortex_primary_damagefalloff_forcehalflife 0 set g_balance_vortex_primary_damagefalloff_halflife 0 @@ -325,8 +325,8 @@ set g_balance_vortex_secondary_damagefalloff_maxdist 0 set g_balance_vortex_secondary_damagefalloff_mindist 0 set g_balance_vortex_secondary_force 0 set g_balance_vortex_secondary_refire 0 -set g_balance_vortex_switchdelay_drop 0.25 -set g_balance_vortex_switchdelay_raise 0.25 +set g_balance_vortex_switchdelay_drop 0.2 +set g_balance_vortex_switchdelay_raise 0.2 set g_balance_vortex_weaponreplace "" set g_balance_vortex_weaponstart 0 set g_balance_vortex_weaponstartoverride -1 @@ -399,6 +399,7 @@ set g_balance_devastator_remote_damage 70 set g_balance_devastator_remote_edgedamage 35 set g_balance_devastator_remote_force 300 set g_balance_devastator_remote_jump_damage 70 +set g_balance_devastator_remote_jump_force 0 set g_balance_devastator_remote_jump_radius 0 set g_balance_devastator_remote_jump_velocity_z_add 400 set g_balance_devastator_remote_jump_velocity_z_max 1500 @@ -777,15 +778,15 @@ set g_balance_arc_weaponthrowable 1 // }}} // {{{ #21: Heavy Machine Gun set g_balance_hmg_ammo 1 -set g_balance_hmg_damage 10 -set g_balance_hmg_force 5 +set g_balance_hmg_damage 30 +set g_balance_hmg_force 10 set g_balance_hmg_refire 0.05 set g_balance_hmg_reload_ammo 120 set g_balance_hmg_reload_time 1 set g_balance_hmg_solidpenetration 32 -set g_balance_hmg_spread_add 0.01 -set g_balance_hmg_spread_max 0.05 -set g_balance_hmg_spread_min 0.02 +set g_balance_hmg_spread_add 0.005 +set g_balance_hmg_spread_max 0.06 +set g_balance_hmg_spread_min 0.01 set g_balance_hmg_switchdelay_drop 0.2 set g_balance_hmg_switchdelay_raise 0.2 set g_balance_hmg_weaponreplace "" diff --git a/bal-wep-samual.cfg b/bal-wep-samual.cfg index fe3b9ed871..99edec78b8 100644 --- a/bal-wep-samual.cfg +++ b/bal-wep-samual.cfg @@ -465,6 +465,7 @@ set g_balance_devastator_remote_damage 70 set g_balance_devastator_remote_edgedamage 35 set g_balance_devastator_remote_force 400 set g_balance_devastator_remote_jump_damage 40 +set g_balance_devastator_remote_jump_force 0 set g_balance_devastator_remote_jump_radius 200 set g_balance_devastator_remote_jump_velocity_z_add 500 set g_balance_devastator_remote_jump_velocity_z_max 1500 diff --git a/bal-wep-xdf.cfg b/bal-wep-xdf.cfg index c9bdb2aa36..95ac919b6a 100644 --- a/bal-wep-xdf.cfg +++ b/bal-wep-xdf.cfg @@ -399,6 +399,7 @@ set g_balance_devastator_remote_damage 70 set g_balance_devastator_remote_edgedamage 35 set g_balance_devastator_remote_force 350 set g_balance_devastator_remote_jump_damage 70 +set g_balance_devastator_remote_jump_force 0 set g_balance_devastator_remote_jump_radius 0 set g_balance_devastator_remote_jump_velocity_z_add 400 set g_balance_devastator_remote_jump_velocity_z_max 1500 diff --git a/bal-wep-xonotic.cfg b/bal-wep-xonotic.cfg index 64d79e150a..87a00b110c 100644 --- a/bal-wep-xonotic.cfg +++ b/bal-wep-xonotic.cfg @@ -325,8 +325,8 @@ set g_balance_vortex_secondary_damagefalloff_maxdist 0 set g_balance_vortex_secondary_damagefalloff_mindist 0 set g_balance_vortex_secondary_force 0 set g_balance_vortex_secondary_refire 0 -set g_balance_vortex_switchdelay_drop 0.25 -set g_balance_vortex_switchdelay_raise 0.25 +set g_balance_vortex_switchdelay_drop 0.2 +set g_balance_vortex_switchdelay_raise 0.2 set g_balance_vortex_weaponreplace "" set g_balance_vortex_weaponstart 0 set g_balance_vortex_weaponstartoverride -1 @@ -399,6 +399,7 @@ set g_balance_devastator_remote_damage 70 set g_balance_devastator_remote_edgedamage 35 set g_balance_devastator_remote_force 300 set g_balance_devastator_remote_jump_damage 70 +set g_balance_devastator_remote_jump_force 0 set g_balance_devastator_remote_jump_radius 0 set g_balance_devastator_remote_jump_velocity_z_add 400 set g_balance_devastator_remote_jump_velocity_z_max 1500 diff --git a/bal-wep-xpm.cfg b/bal-wep-xpm.cfg index 64d79e150a..87a00b110c 100644 --- a/bal-wep-xpm.cfg +++ b/bal-wep-xpm.cfg @@ -325,8 +325,8 @@ set g_balance_vortex_secondary_damagefalloff_maxdist 0 set g_balance_vortex_secondary_damagefalloff_mindist 0 set g_balance_vortex_secondary_force 0 set g_balance_vortex_secondary_refire 0 -set g_balance_vortex_switchdelay_drop 0.25 -set g_balance_vortex_switchdelay_raise 0.25 +set g_balance_vortex_switchdelay_drop 0.2 +set g_balance_vortex_switchdelay_raise 0.2 set g_balance_vortex_weaponreplace "" set g_balance_vortex_weaponstart 0 set g_balance_vortex_weaponstartoverride -1 @@ -399,6 +399,7 @@ set g_balance_devastator_remote_damage 70 set g_balance_devastator_remote_edgedamage 35 set g_balance_devastator_remote_force 300 set g_balance_devastator_remote_jump_damage 70 +set g_balance_devastator_remote_jump_force 0 set g_balance_devastator_remote_jump_radius 0 set g_balance_devastator_remote_jump_velocity_z_add 400 set g_balance_devastator_remote_jump_velocity_z_max 1500 diff --git a/balance-overkill.cfg b/balance-overkill.cfg index 7571001c67..c7fa105ba8 100644 --- a/balance-overkill.cfg +++ b/balance-overkill.cfg @@ -65,15 +65,15 @@ set g_pickup_fuel_jetpack 100 set g_pickup_fuel_max 100 set g_pickup_armorsmall 5 set g_pickup_armorsmall_max 20 -set g_pickup_armorsmall_anyway 0 +set g_pickup_armorsmall_anyway 1 set g_pickup_armormedium 25 -set g_pickup_armormedium_max 200 +set g_pickup_armormedium_max 100 set g_pickup_armormedium_anyway 1 set g_pickup_armorbig 50 -set g_pickup_armorbig_max 200 +set g_pickup_armorbig_max 100 set g_pickup_armorbig_anyway 1 set g_pickup_armorlarge 100 -set g_pickup_armorlarge_max 200 +set g_pickup_armorlarge_max 100 set g_pickup_armorlarge_anyway 1 set g_pickup_healthsmall 5 set g_pickup_healthsmall_max 200 @@ -106,7 +106,7 @@ set g_pickup_respawntimejitter_ammo 0 // {{{ regen/rot set g_balance_health_regen 0 set g_balance_health_regenlinear 100 -set g_balance_pause_health_regen 2 +set g_balance_pause_health_regen 5 set g_balance_pause_health_regen_spawn 0 set g_balance_health_rot 0 set g_balance_health_rotlinear 1 @@ -119,12 +119,12 @@ set g_balance_armor_regen 0 set g_balance_armor_regenlinear 0 set g_balance_armor_rot 0 set g_balance_armor_rotlinear 1 -set g_balance_pause_armor_rot 1 +set g_balance_pause_armor_rot 5 set g_balance_pause_armor_rot_spawn 5 set g_balance_armor_regenstable 100 set g_balance_armor_rotstable 0 set g_balance_armor_limit 999 -set g_balance_armor_blockpercent 0.7 +set g_balance_armor_blockpercent 0.6 set g_balance_fuel_regen 0.1 "fuel regeneration (only applies if the player owns IT_FUEL_REGEN)" set g_balance_fuel_regenlinear 0 set g_balance_pause_fuel_regen 2 // other than this, fuel uses the health regen counter diff --git a/notifications.cfg b/notifications.cfg index 6aa1ee3b7d..8583592b9a 100644 --- a/notifications.cfg +++ b/notifications.cfg @@ -102,7 +102,7 @@ seta notification_ANNCE_VOTE_ACCEPT "2" "0 = disabled, 1 = enabled if gentle mod seta notification_ANNCE_VOTE_CALL "2" "0 = disabled, 1 = enabled if gentle mode is off, 2 = always enabled" seta notification_ANNCE_VOTE_FAIL "2" "0 = disabled, 1 = enabled if gentle mode is off, 2 = always enabled" -// MSG_INFO notifications (count = 316): +// MSG_INFO notifications (count = 320): seta notification_INFO_CA_JOIN_LATE "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)" seta notification_INFO_CA_LEAVE "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)" seta notification_INFO_CHAT_NOSPECTATORS "2" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)" @@ -311,6 +311,10 @@ seta notification_INFO_LMS_FORFEIT "1" "0 = off, 1 = print to console, 2 = print seta notification_INFO_LMS_NOLIVES "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)" seta notification_INFO_MINIGAME_INVITE "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)" seta notification_INFO_MONSTERS_DISABLED "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)" +seta notification_INFO_NEXBALL_RETURN_HELD_BLUE "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)" +seta notification_INFO_NEXBALL_RETURN_HELD_PINK "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)" +seta notification_INFO_NEXBALL_RETURN_HELD_RED "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)" +seta notification_INFO_NEXBALL_RETURN_HELD_YELLOW "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)" seta notification_INFO_ONSLAUGHT_CAPTURE "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)" seta notification_INFO_ONSLAUGHT_CPDESTROYED_BLUE "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)" seta notification_INFO_ONSLAUGHT_CPDESTROYED_PINK "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)" @@ -882,4 +886,4 @@ seta notification_show_sprees_info "3" "Show spree information in MSG_INFO messa seta notification_show_sprees_info_newline "1" "Show attacker spree information for MSG_INFO messages on a separate line than the death notification itself" seta notification_show_sprees_info_specialonly "1" "Don't show attacker spree information in MSG_INFO messages if it isn't an achievement" -// Notification counts (total = 816): MSG_ANNCE = 89, MSG_INFO = 316, MSG_CENTER = 230, MSG_MULTI = 153, MSG_CHOICE = 28 +// Notification counts (total = 820): MSG_ANNCE = 89, MSG_INFO = 320, MSG_CENTER = 230, MSG_MULTI = 153, MSG_CHOICE = 28 diff --git a/qcsrc/common/gamemodes/gamemode/nexball/nexball.qc b/qcsrc/common/gamemodes/gamemode/nexball/nexball.qc index 00ffe6ab81..4fffabdcde 100644 --- a/qcsrc/common/gamemodes/gamemode/nexball/nexball.qc +++ b/qcsrc/common/gamemodes/gamemode/nexball/nexball.qc @@ -103,7 +103,7 @@ void nexball_setstatus(entity this) { if(this.ballcarried.teamtime && (this.ballcarried.teamtime < time)) { - bprint("The ", Team_ColoredFullName(this.team), " held the ball for too long.\n"); + Send_Notification(NOTIF_ALL, NULL, MSG_INFO, APP_TEAM_NUM(this.team, INFO_NEXBALL_RETURN_HELD)); entity e = this.ballcarried; DropBall(this.ballcarried, this.ballcarried.owner.origin, '0 0 0'); ResetBall(e); @@ -256,7 +256,7 @@ void ResetBall(entity this) if(this.cnt < 2) // step 1 { if(time == this.teamtime) - bprint("The ", Team_ColoredFullName(this.team), " held the ball for too long.\n"); + Send_Notification(NOTIF_ALL, NULL, MSG_INFO, APP_TEAM_NUM(this.team, INFO_NEXBALL_RETURN_HELD)); settouch(this, func_null); set_movetype(this, MOVETYPE_NOCLIP); diff --git a/qcsrc/common/mutators/mutator/melee_only/sv_melee_only.qc b/qcsrc/common/mutators/mutator/melee_only/sv_melee_only.qc index e07034bafa..89fdfaf9ed 100644 --- a/qcsrc/common/mutators/mutator/melee_only/sv_melee_only.qc +++ b/qcsrc/common/mutators/mutator/melee_only/sv_melee_only.qc @@ -2,7 +2,7 @@ REGISTER_MUTATOR(melee_only, cvar("g_melee_only") && !cvar("g_instagib") && !g_nexball); -MUTATOR_HOOKFUNCTION(melee_only, SetStartItems) +MUTATOR_HOOKFUNCTION(melee_only, SetStartItems, CBC_ORDER_LAST) { start_ammo_shells = warmup_start_ammo_shells = 0; start_weapons = warmup_start_weapons = WEPSET(SHOTGUN); diff --git a/qcsrc/common/mutators/mutator/overkill/sv_overkill.qc b/qcsrc/common/mutators/mutator/overkill/sv_overkill.qc index caabb28233..7201aaa0d8 100644 --- a/qcsrc/common/mutators/mutator/overkill/sv_overkill.qc +++ b/qcsrc/common/mutators/mutator/overkill/sv_overkill.qc @@ -285,7 +285,7 @@ MUTATOR_HOOKFUNCTION(ok, FilterItem) return true; } -MUTATOR_HOOKFUNCTION(ok, SetStartItems) +MUTATOR_HOOKFUNCTION(ok, SetStartItems, CBC_ORDER_LAST) { WepSet ok_start_items = (WEPSET(MACHINEGUN) | WEPSET(VORTEX) | WEPSET(SHOTGUN)); diff --git a/qcsrc/common/notifications/all.inc b/qcsrc/common/notifications/all.inc index e6be6b1007..43a94c80ee 100644 --- a/qcsrc/common/notifications/all.inc +++ b/qcsrc/common/notifications/all.inc @@ -387,6 +387,8 @@ MSG_INFO_NOTIF(MONSTERS_DISABLED, 1, 0, 0, "", "", "", _("^BGMonsters are currently disabled"), "") + MULTITEAM_INFO(NEXBALL_RETURN_HELD, 4, 1, 0, 0, "", "", "", _("^BGThe ^TC^TT^BG team held the ball for too long"), "", NAME) + MSG_INFO_NOTIF(ONSLAUGHT_CAPTURE, 1, 2, 0, "s1 s2", "", "", _("^BG%s^BG captured %s^BG control point"), "") MULTITEAM_INFO(ONSLAUGHT_CPDESTROYED, 4, 1, 2, 0, "s1 s2", "", "", _("^TC^TT^BG team %s^BG control point has been destroyed by %s"), "", NAME) MULTITEAM_INFO(ONSLAUGHT_GENDESTROYED, 4, 1, 0, 0, "", "", "", _("^TC^TT^BG generator has been destroyed"), "", GENERATOR) diff --git a/qcsrc/common/weapons/weapon/devastator.qc b/qcsrc/common/weapons/weapon/devastator.qc index 13600aad36..7bae89368b 100644 --- a/qcsrc/common/weapons/weapon/devastator.qc +++ b/qcsrc/common/weapons/weapon/devastator.qc @@ -40,6 +40,7 @@ CLASS(Devastator, Weapon) P(class, prefix, remote_edgedamage, float, NONE) \ P(class, prefix, remote_force, float, NONE) \ P(class, prefix, remote_jump_damage, float, NONE) \ + P(class, prefix, remote_jump_force, float, NONE) \ P(class, prefix, remote_jump_radius, float, NONE) \ P(class, prefix, remote_jump_velocity_z_add, float, NONE) \ P(class, prefix, remote_jump_velocity_z_max, float, NONE) \ @@ -142,50 +143,56 @@ void W_Devastator_DoRemoteExplode(entity this, .entity weaponentity) this.event_damage = func_null; this.takedamage = DAMAGE_NO; - float handled_as_rocketjump = false; + bool handled_as_rocketjump = false; + entity head = NULL; - entity head = WarpZone_FindRadius( - this.origin, - WEP_CVAR(devastator, remote_jump_radius), - false - ); - - while(head) + if(WEP_CVAR(devastator, remote_jump_radius)) { - if(head.takedamage && (head == this.realowner)) + head = WarpZone_FindRadius( + this.origin, + WEP_CVAR(devastator, remote_jump_radius), + false + ); + + while(head) { - float distance_to_head = vlen(this.origin - head.WarpZone_findradius_nearest); - if(distance_to_head <= WEP_CVAR(devastator, remote_jump_radius)) + if(head.takedamage && (head == this.realowner)) { - // we handled this as a rocketjump :) - handled_as_rocketjump = true; - - // modify velocity - head.velocity_x *= 0.9; - head.velocity_y *= 0.9; - head.velocity_z = bound( - WEP_CVAR(devastator, remote_jump_velocity_z_min), - head.velocity.z + WEP_CVAR(devastator, remote_jump_velocity_z_add), - WEP_CVAR(devastator, remote_jump_velocity_z_max) - ); - - // now do the damage - RadiusDamage( - this, - head, - WEP_CVAR(devastator, remote_jump_damage), - WEP_CVAR(devastator, remote_jump_damage), - WEP_CVAR(devastator, remote_jump_radius), - NULL, - head, - 0, - this.projectiledeathtype | HITTYPE_BOUNCE, - NULL - ); - break; + if(vdist(this.origin - head.WarpZone_findradius_nearest, <=, WEP_CVAR(devastator, remote_jump_radius))) + { + // we handled this as a rocketjump :) + handled_as_rocketjump = true; + + // modify velocity + if(WEP_CVAR(devastator, remote_jump_velocity_z_add)) + { + head.velocity_x *= 0.9; + head.velocity_y *= 0.9; + head.velocity_z = bound( + WEP_CVAR(devastator, remote_jump_velocity_z_min), + head.velocity.z + WEP_CVAR(devastator, remote_jump_velocity_z_add), + WEP_CVAR(devastator, remote_jump_velocity_z_max) + ); + } + + // now do the damage + RadiusDamage( + this, + head, + WEP_CVAR(devastator, remote_jump_damage), + WEP_CVAR(devastator, remote_jump_damage), + WEP_CVAR(devastator, remote_jump_radius), + NULL, + head, + (WEP_CVAR(devastator, remote_jump_force) ? WEP_CVAR(devastator, remote_jump_force) : 0), + this.projectiledeathtype | HITTYPE_BOUNCE, + NULL + ); + break; + } } + head = head.chain; } - head = head.chain; } RadiusDamage( diff --git a/qcsrc/common/weapons/weapon/hook.qc b/qcsrc/common/weapons/weapon/hook.qc index a271714077..091e2f516d 100644 --- a/qcsrc/common/weapons/weapon/hook.qc +++ b/qcsrc/common/weapons/weapon/hook.qc @@ -388,13 +388,16 @@ void Draw_GrapplingHook(entity this) break; } - if((this.owner.sv_entnum == player_localentnum - 1) && autocvar_chase_active <= 0) + if((this.owner.sv_entnum == player_localentnum - 1)) { switch(this.HookType) { default: case NET_ENT_CLIENT_HOOK: - a = view_origin + view_forward * vs.x + view_right * -vs.y + view_up * vs.z; + if(autocvar_chase_active > 0) + a = csqcplayer.origin; + else + a = view_origin + view_forward * vs.x + view_right * -vs.y + view_up * vs.z; b = this.origin; break; case NET_ENT_CLIENT_ARC_BEAM: