A Client Enhancement for Zandronum
By Leonard, Catastrophe, ForrestMarkX and Fused.
Features
- Chat Prefixes and Suffixes
- Cvar Pointers
- Improved cl_identifytarget
- Various Sound Commands
- Weapon Bobbing Customization
What it contains
Spoiler: spoiler (Open)*NOTE ZCC has a handy menu where you can change various options regarding most of its new features. Find it below the player options.*
MiscellaneousScoreboard
- Teleported things are no longer interpolated online.
- Lagging players no longer jitter when having a high enough velocity.
- The connect sound now plays with people not starting as spectators.
- spyback: Will cancel out spying and return the view to your own eyes. Since ZAN3.0-170416-0710 Version 1.0, this functions the same as the spycancel command.
- spyto: Will spy on the specified player using his ID if allowed by the circumstances.
- zcc_showpacketloss: Displays a little message when you experience packet loss with how many packets were missed in the same style of the "connection interrupted" messages.
- cl_identifytarget was extended. It is now a bitfield, so it works basically like a dmflag: adding one of the values listed below will make the corresponding information show up when available.
If you don't want to mess around directly with this cvar you can set each information individually using ZCC's menu.Code: Select all
1: Display a player's name. 2: Display a player's health. 4: Display a player's armor. 8: Display a player's weapon name. 16: Display a player's (alt)ammo. 32: Display a player's class/skin. 64: Display a monster's class. 128: Display a monster's ghost flag. 256: Display a monster's drops.
Chat
- zcc_autoready: Automatically marks you as "ready to go" in intermissions without the need of any inputs.
- zcc_scoretid: Replaces the standard, obsolete handicap display with the ID of the corresponding player on the scoreboard.
- zcc_intermissioninfo: Displays both a countdown during intermission and what the upcoming map will be.
Console
- Made a proper cursor for the chat that actually blinks.
- Fixed the maximum chat length to be actually 128 instead of 126.
- Made the chat support raw color codes which will be useful for the feature below:
- Added a tab auto-completion feature to the chat that works just like in the console. TAB to go forward and SHIFT+TAB to go backwards. It will cycle through every player's name it finds just like on IRC. Zandronum 3.0 has this function by default.
- zcc_chatprefix/suffix: Allows you to add text before/after your message. for example, doing zcc_chatprefix "\\cf" will change all your text to the color yellow. This also works with using the /me command.
Sound
- If the input line is empty, using ctrl+c will copy the selected line in the console's history instead, allowing you to directly copy chat lines for instance.
- zcc_timestamps: setting this to true will append timestamps at the beginning of each line in the console's history.
- The console command "wait" was always off by one tic, meaning that "wait" or "wait 1" actually delayed a command by 2 tics. To fix this and still remain compatible with older aliases, "wait 0" is now accepted and will actually properly wait one tic.
- The console cursor now uses a more robust position calculation, allowing you to copy raw color codes in the console without any troubles.
Weapons
- zcc_lockmus: will forbid any music changes as if a playlist was playing.
- snd_stopsounds: will stop all currently playing sounds without restarting the sound engine, making it a better alternative to snd_reset if you wish to stop loud and annoying looping sounds. This command is similar to "stopsounds" from some source-engine games if you are familiar.
Spectating
- zcc_interpolateweapons: When enabled, offset changes including bobbing will be interpolated, meaning that weapon movements are no longer capped at 35 fps but are actually virtually unlimited, taking advantage of your framerate. Trust me, you WILL notice the difference especially if you use weapon bobbing.
- zcc_bobstyle: Changes the way your weapon bobs. Up to 6 different values, ranging from 0 to 5. The corresponding styles are as follow:
Please do note that the code used to handle different bobbing styles comes directly from Zdoom's source except for the Quake 1 style which was made by Dark-Assassin.Code: Select all
0: Normal 1: Inversed normal 2: Alpha-style bobbing 3: Inversed alpha-style 4: Smooth bobbing 5: Inversed smooth 6: Quake 1 styled bobbing.
Since ZAN3.0-170416-0710 Version 1.0, this function is -1 by default which means that the bobstyle feature coming from the weapon's definition will be used.- zcc_bobspeed: Float type cvar that controls how fast your weapon bobs. This does NOT do the same as movebob. Default value is 1.0.
Since ZAN3.0-170416-0710 Version 1.0, this function is FALSE by default which means that the bobspeed feature coming from the weapon's definition will be used.- zcc_hudpitchoffset: Float type that lowers/raises your weapon depanding on your current pitch and the next cvar's value. Default value is 0.0 and disables this feature.
- zcc_hudpitchstyle: Controls which parts of your pitch affects the weapon offsetting and how. 4 different values are possible, ranging from 0 to 3. The values correspond to this list:
Combining this with a negative zcc_hudpitchoffset value will reverse the scaling as expected.Code: Select all
0: The whole pitch scales the offset. 1: Only half of your pitch will scale, more precisely the lower part in this case. 2: Same as above but the upper part is used this time. 3: The scaling is split in half, the bottom and lower parts scales the offsetting the same way.
- zcc_swayspeed: Float that makes your weapon sway when you look around. This is similar to what you may see in this video. Negative values will reverse the weapon sway as you would expect but looks odd. Default value is 0.0 and disables this feature.
- zcc_bobalways: Boolean that will force the weapon to bob even when firing.
- zcc_swaystyle: Specifies how you want the weapon to sway. It has 4 values, from 0 to 3. This was made to address the problem of seeing the weapon's edge.
Code: Select all
0: Normal. 1: No sway up. 2: No sway down. 3: No sway up/down.
- zcc_viewbob: Stops screen bobbing but not weapon bobbing (unlike movebob 0 which also stops weapon bobbing)
Pointer cvars
- zcc_telespy: Will teleport you to the person you were spying on once you go back to your own view if you are a spectator.
- zcc_spectsource: Will enable a source-engine like noclipping mode when spectating which means you will be able to not only pass through walls but also floors and ceilings.
Pointer cvars were a bit of an experiment. They add a very interesting capacity to cvars: pointer cvars.
Basically instead of having a cvar change/retrieve its local value, a pointer cvar can do the same directly to zandronum's memory.
If you are familiar with zdoom/zandronum's source, pointer cvars are defined much like standard cvars but with a different macro. The pointer cvars defined so far are using CVAR_NOSET, because allowing the user to change them would only cause a mess, but pointer cvars ARE able to change the value they point to if desired.
The current pointer cvars are all using a "zptr_*" prefix and are as follow:
Note that those cvars can only be very useful if you are an advanced console user.
- zptr_map: returns the current map's name as a string.
- zptr_spectating: boolean that indicates wether you are spectating or not.
- zptr_music: returns the current music's name as a string.
- zptr_playernum: returns as an int how many players are in the current game.
- zptr_team: returns an int corresponding to the team you're in. If you have no team it will return -1.
For instance, with some aliasing, you might make your mouse button attack when playing but spying when spectating using zptr_spectating.
Auto-login
The auto-login feature allows you to automatically login to a registered account using a per-server set of passwords/usernames.
The passwords/usernames aren't stored in your .ini but instead in a different file called autologins.zal located in the same directory as your zandronum executable.
This file is compressed but NOT encrypted, those are two different things.
Zandronum 3.0 has this function by default.
- zal_autologin (default false): if true will automatically log you in when you connect to a server with a corresponding account in your autologins.zal file.
NOTE: If you set this to false the autologins.zal file is still usable and can also serve you if you use the console command login without any arguments in which case it will check for an account that corresponds to the server you are currently playing on.- zal_add <username> <password>: adds an account for the server you are currently playing on.
- zal_remove <ip:port>: removes an account for the given server.
Links:
- Intel
- General
- AMD
- All three versions
Source code supplied by aXezilla after the original was removed from Bitbucket (Post)
Spoiler: Older versions (Open)These are not being managed in any way. If a link is dead, don't expect it to be fixed.
- Zandronum Community Client 3.0 v1.0
- Zandronum Community Client 2.1.2 v1.5
- Zandronum Community Client 2.1.2 v1.4 DevilHunter mirror
- Zandronum Community Client 2.1.2 v1.4
- Zandronum Community Client 2.1.2 v1.3 DevilHunter mirror
- Zandronum Community Client ZAN 2.1.2 v1.3
- Zandronum Community Client 2.1.2 v1.2 DevilHunter mirror
- Zandronum Community Client ZAN 2.1.2 v1.2
- Zandronum Community Client 2.1 v1.0 DevilHunter mirror
- Zandronum Community Client 2.0 v1.0 Linux mirror by Dark-Assassin
- Zandronum Community Client ZAN 2.0 v1.0
- Zandronum Community Client 2.0 v1.0 DevilHunter mirror
- Zandronum's Advanced Binary ZAN 2.0 v1.0
- Catastrophic Client v0.15
- Catastrophic Client v0.1
Spoiler: Credits (Open)Leonard, Catastrophe - Project leaders. Coded and build the binary.
Fused - Co-leader.
Dark-Assassin - Quake 1 style bobbing.
Zdoom - Movebob source code.
ForrestMarkX - Creator of ZCC for Zandronum 3.0-alpha-170416-0710 - v1.0
Post feedback and suggestions below. Any help is appreciated.
Anyone is free to collaborate to this project, so don't hestitate to bring ideas.