Skip to content

Aura hotfix 3#25

Open
sabianroberts wants to merge 110 commits into
phoenixprojectsoftware:patchfrom
fireblizzard:master
Open

Aura hotfix 3#25
sabianroberts wants to merge 110 commits into
phoenixprojectsoftware:patchfrom
fireblizzard:master

Conversation

@sabianroberts
Copy link
Copy Markdown
Member

No description provided.

fireblizzard and others added 30 commits June 5, 2021 14:13
New votable cvars:
* ag_fps_limit <0|number> - Default: 144. Set to 0 to disable, any other number for the actual fps cap
* ag_fps_limit_auto <0|1> - Default: 0. Set to 1 to automatically calculate the fps that might fit best at any moment
* ag_fps_limit_auto_check_interval <number> - Default: 10 (seconds). How often to calculate the fps limit

New non-votable cvars:
* ag_fps_limit_match_only <0|1> - Default: 0
* ag_fps_limit_steampipe <0|1> - Default: 1
* ag_fps_limit_warnings <number> - Default: 3
* ag_fps_limit_warnings_interval <number> - Default: 5 (seconds)
* ag_fps_limit_punishment <slap|kick|ban> - Default: kick
* ag_fps_limit_punishment_slap_intensity <number> - Default: 1
* ag_fps_limit_punishment_slap_interval <number> - Default:ag_fps_limit_punishment_ban_timeag_fps_limit_punishment_ban_time 1 (seconds)
* ag_fps_limit_punishment_ban_time <number> - Default: 3 (minutes)

Too long to explain them here. I have to add a wiki page or similar.
The command in question can be typed by a player on their client console
while they're in an online server, and makes the server return info
about the kernel and OS versions, which doesn't seem right.

It's not info that a player would need, maybe an admin (AgAdmin) and
still doubtfully. And it can be potentially used by people with bad intentions,
to exploit some vulnerability or use the info in some other malicious way.
Defaulting it to enabled might take some people by surprise,
some people won't care if there's a fps limit and others
will want to set it to some other value than 144 anyways,
so i think it's better to leave it off by default.
Server cvar, cannot be voted:
* mp_intermission_skip_auto <0|1|2> - Default: 1

When enabled, it skips either the whole intermission or just the end of it,
only if there's 1 player or none, excluding bots, but accounting for
spectators and proxies. So if it's enabled and there's 1 player and
1 bot, it will be skipped. If there's 1 player and 1 spectator, it
won't be skipped. This is for the case where a player joins a server and
changes map while waiting for his mate(s) to join, so it changes the map
very quick. Also when you're playing in a bhop server alone, and there's
no point in waiting for the intermission, because the score is almost
meaningless in that gamemode and there's no one to chat with at the end.

If the score is meaningful, setting it to 2 might be bad; 1 would be better,
so that in case there's a player practicing against a bot, the chattime is
not skipped and they can see the score during that time, but the rest of
the intermission is skipped automatically.

When it's set to 0 it's disabled, so nothing changes.

When it's set to 1, only the part after the chattime is skipped (the 2nd part
of the intermission).

When it's set to 2, the whole intermission is skipped, including the chattime.
sv_ag_max_spectators is the one used in AG
New vote commands:
* agmaxtime - Extends the time limit to the maximum allowed
* agmoretime - Extends the time limit by a certain amount of minutes, defined by server

New cvar:
* sv_ag_vote_extra_timelimit <0|number> - How much time the `agmoretime` vote will add, default 30 minutes. 0 to disable

Quality-of-life votes. Tired of not knowing how much timelimit you can vote for?
Afraid of getting the map changed because you might vote a lower mp_timelimit
than the current one? These new votes come to resolve these issues.

`agmoretime` can actually make the timelimit go beyond the maximum allowed,
that's if it's allowed by `sv_ag_vote_extra_timelimit`. I think it's good
to let the players extend it as much as they want, because otherwise they'll
just reset the map to reset/overcome the limitation, so it's just dumb
putting obstacles to voting the timelimit.

`agmoretime` is designed to extend time by a limited amount, because the
server owner might not want to have the server 24/7 with that map, in the
end they set `sv_ag_vote_mp_fraglimit_high` for a reason. Having to actively
extend the time every X minutes is not fun, but at least you can go over
the max limit and continue playing, while probably still complying with
admin's decision on the max timelimit, because they probably don't care
if the map is still going on as long as people is actively playing on it;
the problem is when it's left empty with that map for a long time, they
probably want to have it changing so people see another map and join the
server to play it, or whatever reason.

`agmaxtime` will vote for the max mp_timelimit or will remove the timelimit
altogether if it's allowed to. Classic case where you want to grind a map
and you don't know how much time you'll spend on it. With this you don't
have to learn every servers' max timelimit anymore.
Fixed mangled game description resulting in servers not appearing in "Find servers"
People used to crash servers by rapidly changing their model to long names
containing "%", and we used to have a metamod module to fix this, so now
it's in the server dll instead
Metamod module: https://svn.aghl.ru:8443/!/#HLModules/view/head/agfix/trunk/engine_api.cpp
This happened when someone joined the server and it would say:
* has changed to team 'blue'

And you would do +showscores or check the console to see who has just
connected.

Note: the game does not always show that message when a player joins,
this commit doesn't fix that. Player instances are reused and it probably
has something to do with that, but i don't know.
New cvar:
* sv_ag_gamemode_auto <0|1> - Default: 1

When set to 1 it will change automatically to CTF or DOM if the map fulfills
the criteria for CTF or DOM. This is the classic behaviour.

You can set it to 0 if you don't have the gamemode switching automatically,
which is useful for servers running HLKZ or other custom games.
Only try to change fps_max when a warning is about to be issued
New cvars:
* sv_ag_satchel_destroyable <0|1> - Default: 0 (indestructible)
* sv_ag_satchel_health <number> - Default: 15
* sv_ag_satchel_solid <0|1> - Default: 1 (solid)

Satchels only be destroyed with blast/radius damage.
I have tried a few things (added a comment/fixme) but couldn't
make them killable with hitscan or other damage types, so
at the moment you cannot destroy them with e.g. a glock.
Any help with that is very appreciated :))
New cvar:
* sv_ag_bots_allow_vote <0|1> - Default: 0 (bots won't count towards votes)
-1 frag for the player who changes team while on agstart,
to avoid abusing model change to get a better spawnpoint
* Added GitHub Actions CI

* Monthly reporting from GitHub Actions
Requires clientside changes. The client has to read a byte at the end
of the TextMsg message, after reading the strings. This byte tells what
type of message it is, so it should have cvars to control whether to
ignore these messages or not, and the damage and spawn types should be
ignored by default, but more might be added in the future, e.g. to be
able to ignore name and model change messages, or join/leave messages.
sv_ag_bots_allow_vote is now sv_ag_bot_allow_vote. I think
it's slightly more correct
New vote:
* spawnbot - Spawns a bot that doesn't move and respawns when you kill it

New cvars:
* sv_ag_vote_bot <0/1> - Default: 1. Allow adding bots with the spawnbot vote
* sv_ag_bot_limit <number> - Default: 5. Limit the amount of AG bots in a map

This is the AG implementation of MT Bots. A chat message will pop up when
you kill a bot, telling where it has spawned, and another message every
time you damage it. This will be sent to everyone in the server, which is not
ideal, but it's a bit of a hassle to have say commands or similar for
every type of message and stuff, and I don't think these messages should
depend on a serverside cvar, because some players might wanna see while others
won't. So it's up to the clients to implement ignoring capabilities upon
the message types that are now sent on TextMsg

Message types:
-1: type is absent, normal message
0: spawn message
1: damage message
New cvars:
* sv_ag_flood_name_cooldown <number> - Default: 2
* sv_ag_flood_name_spec_cooldown <number> - Default: 60
* sv_ag_flood_model_cooldown <number> - Default: 2
* sv_ag_flood_model_spec_cooldown <number> - Default: 60

These cvars control how many seconds you have to wait to change name/model
again, and there's also specific cvars for when you're on spectator mode,
because some people are very expressive when spectating matches and
they can bother the ones playing the match.

The default 1 minute cooldown for specs is meant to diminish the annoyance,
not to remove spectator expressivity altogether, although some servers may
increase the cooldown to 1200 seconds (20 minutes) to stop them from talking,
but that's up to the admins, I think 1 minute is good for now, we'll see if
it needs tweaking.

The 2 seconds cooldown for players ingame (not spec) is meant to stop
fast name/model changing scripts that have been seen crashing servers
in some ocassions. Again, we'll see if it needs tweaking.
fireblizzard and others added 27 commits January 23, 2022 15:53
New cvar:
* sv_ag_unlimited_uranium <0|1> - Default: 0 (normal)

Set to 1 so that gauss and egon don't use any uranium.

Useful for a Gauss% run of HL1 where you only use gauss. And for a new
version of Instagib and a new egon-only gamemode for tracking aim
practice.

Any uranium-consuming weapons added by plugins should account for this
cvar to decide whether to spend uranium.
New cvars:
* sv_ag_selfdamage <number> - Default: 1 (no changes to damage)
* sv_ag_selfdamage_boost <number> - Default: 1 (no changes to player speed)

Both of these are factors, e.g.:
`sv_ag_selfdamage 0.5` means you get half the damage from hurting yourself.
`sv_ag_selfdamage_boost 2` means you get 2x velocity boost from damaging
yourself.
Now it works without having to reload the map, so you can do `impulse 101`
immediately after `sv_cheats 1`.
New cvar:
sv_ag_say_on_changelevel_delay <0|1> - Default: 1 (print CLD in chat)

When you're doing a changelevel delay, sometimes you prefer having in chat
the info of when are you enabling the changelevel delay and when did you
actually go through the changelevel trigger, or when did it get activated.
So by default it will now print this info in chat when you're doing CLD,
and you can set it to 0 so it only displays in console, or top left on
developer 1 or more
* Don't allow to use entities if player not spawned

* Specify windows-2019 to fix CI builds

* See if player with FL_SPECTATOR flag instead of EF_NODRAW for safe check

* Revert CI, since changes been splitted to several requests
#11)

* Added spawnflags for keep player angles & velocity in trigger_teleport

* Added spawnflag for redirect velocity with yaw from teleport destination

* Updated code to keep velocity in all directions (thanks @etojuice)
Players no longer block spawn spots by being right below or above it,
when there's a floor separating the player and the spot. Same when
there's a wall in between. If there's just a small obstacle between
the player and the spot then it depends on whether the player is closer
than 128 units and they can see the head or arms of the spawning player
in that spot

This could lead to having a player spawning in the next 6th spot instead
of the 5 ones that people are used to. That may still happen but it will
be more obvious that a player has blocked a spawn spot
@sabianroberts sabianroberts reopened this Jun 16, 2025
@sabianroberts sabianroberts changed the base branch from master to patch July 5, 2025 00:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants