Page 1 of 10

ZCC - Zandronum Community Client [Zandronum 3.1] [V1.0]

Posted: Tue Jun 09, 2015 8:06 pm
by Fused
Image
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
And Much More!


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.*


Miscellaneous
  • 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.

    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.
    
    If you don't want to mess around directly with this cvar you can set each information individually using ZCC's menu.
Scoreboard
  • 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.
Chat
  • 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.
Console
  • 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.
Sound
  • 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.
Weapons
  • 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:

    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.
    
    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.
    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:

    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.
    
    Combining this with a negative zcc_hudpitchoffset value will reverse the scaling as expected.
  • 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)
Spectating
  • 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

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:

  • 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.
Note that those cvars can only be very useful if you are an advanced console user.
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:
When ZCC says something about missing a libeay32.dll file, it probably means you don't have OpenSSL installed. Use this to fix it: http://downloads.sourceforge.net/gnuwin ... -setup.exe



Spoiler: Older versions (Open)
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.

RE: ZCC - Zandronum Community Client [ZAN 2.0 v1.0]

Posted: Tue Jun 09, 2015 8:23 pm
by Slim
Hggn. It's here.

I can hardly contain my excitement!

Thanks for the birthday present ;)

RE: ZCC - Zandronum Community Client [ZAN 2.0 v1.0]

Posted: Tue Jun 09, 2015 8:26 pm
by fr blood
You did it well, good job guys, thanks for that.

RE: ZCC - Zandronum Community Client [ZAN 2.0 v1.0]

Posted: Tue Jun 09, 2015 8:38 pm
by Daedalus
Great stuff, many thanks.

RE: ZCC - Zandronum Community Client [ZAN 2.0 v1.0]

Posted: Wed Jun 10, 2015 12:05 am
by DevilHunter
Great job! Here is a mirror from me

ZandronumZCC

EDIT: ok I have to ask.. What happened to the IfSpectator thing from Cata's Client? it seems to be missing... I liked that feature. :/

RE: ZCC - Zandronum Community Client [ZAN 2.0 v1.0]

Posted: Wed Jun 10, 2015 1:16 am
by Catastrophe
DevilHunter wrote: Great job! Here is a mirror from me

ZandronumZCC

EDIT: ok I have to ask.. What happened to the IfSpectator thing from Cata's Client? it seems to be missing... I liked that feature. :/
It was removed because Leonard's cvar pointers can do the same thing and much more.

RE: ZCC - Zandronum Community Client [ZAN 2.0 v1.0]

Posted: Wed Jun 10, 2015 1:51 am
by Kara Kurt
Uh, I'm lost with all those binaries. What is this, an SSJ10 fusion of previously released binaries? Can't read quite well when it's this late, sorry!

RE: ZCC - Zandronum Community Client [ZAN 2.0 v1.0]

Posted: Wed Jun 10, 2015 12:30 pm
by -Jes-
This is basically the two recent binaries combined into a package of pure
Image

RE: ZCC - Zandronum Community Client [ZAN 2.0 v1.0]

Posted: Wed Jun 10, 2015 3:18 pm
by DevilHunter
Catastrophe wrote:
DevilHunter wrote: Great job! Here is a mirror from me

ZandronumZCC

EDIT: ok I have to ask.. What happened to the IfSpectator thing from Cata's Client? it seems to be missing... I liked that feature. :/
It was removed because Leonard's cvar pointers can do the same thing and much more.
If that is the case... How do I adjust my bind to do so then? I just copied the one from your topic btw.

RE: ZCC - Zandronum Community Client [ZAN 2.0 v1.0]

Posted: Wed Jun 10, 2015 3:25 pm
by Catastrophe
Leonard posted this

Code: Select all

alias +attackorspy "+attack;test $zptr_spectating spynext"
alias -attackorspy "-attack"
bind mouse1 +attackorspy
Mess around with it

RE: ZCC - Zandronum Community Client [ZAN 2.0 v1.0]

Posted: Wed Jun 10, 2015 5:01 pm
by DevilHunter
Ok I got it.. I just replaced ifspectator in my bind to test $zptr_spectating. Kinda seemed pointless for changing the name and junk but eh..

RE: ZCC - Zandronum Community Client [ZAN 2.0 v1.0]

Posted: Wed Jun 10, 2015 5:49 pm
by Kara Kurt
Okay so that's great idea you guys got by merging two binaries into one, a couple of questions now:

1) I'd like to bind spy_next/prev on the mouse wheel however I do use the wheel for weapnext/prev and other commands so I'd like to ignore spynext/prev when playing and make them only work when spectating even though it would also be useful to be able to use spynext/prev when playing, so here is my idea:

Is it possible to implement a similar thing (let's say spect_spynext/prev) but only for spectators ?

2) Is there a way to fully disable the movebob, e.g. go back to its default state ? (default hud_pitch, default speed, default sway, etc)

When I have movebob 0, weapons keep moving up/down/left/right when I'm moving the mouse.

Perhaps make a feature which would allow us to make toggle between 2 presets.

3) Is the packetloss indicator accurate ? When I'm having some PL, they rarell can be counted on the fingers of one hand, I'm talking about 10/20 PLs and it doesn't look like I'm losing 20 packets, dunno. Maybe I should modify packets size so I'd get 1 or 2 instead.

That being said kudos for improving spectator mode and bringing it some cool spy features.

RE: ZCC - Zandronum Community Client [ZAN 2.0 v1.0]

Posted: Wed Jun 10, 2015 6:43 pm
by Leonard
Kara Kurt wrote:1) I'd like to bind spy_next/prev on the mouse wheel however I do use the wheel for weapnext/prev and other commands so I'd like to ignore spynext/prev when playing and make them only work when spectating even though it would also be useful to be able to use spynext/prev when playing, so here is my idea:

Is it possible to implement a similar thing (let's say spect_spynext/prev) but only for spectators ?
Use an alias with zptr_spectating and the test command (as written in the OP).
Kara Kurt wrote:2) Is there a way to fully disable the movebob, e.g. go back to its default state ? (default hud_pitch, default speed, default sway, etc)

When I have movebob 0, weapons keep moving up/down/left/right when I'm moving the mouse.
Set zcc_swayspeed to 0 (which is the default value).
Kara Kurt wrote:3) Is the packetloss indicator accurate ? When I'm having some PL, they rarell can be counted on the fingers of one hand, I'm talking about 10/20 PLs and it doesn't look like I'm losing 20 packets, dunno.
Why wouldn't it be? The server will only kick you if you miss more than 1024 packets which is big compared to just 10/20.

RE: ZCC - Zandronum Community Client [ZAN 2.0 v1.0]

Posted: Wed Jun 10, 2015 7:04 pm
by Catastrophe
Kara Kurt wrote: Is it possible to implement a similar thing (let's say spect_spynext/prev) but only for spectators ?
Yes, play around with the code I posted above.

RE: ZCC - Zandronum Community Client [ZAN 2.0 v1.0]

Posted: Mon Jun 15, 2015 8:20 pm
by Armitage
cl_identifytarget (Identify Players) never works for me ever since I started using the ZCC Client, none of the variables 1-4 work but Identify Monsters works just fine. Is their a server cvar which can disable the Identify Players function? I don't want to have to make a fresh config in the event that's causing the problem due to this.

RE: ZCC - Zandronum Community Client [ZAN 2.0 v1.0]

Posted: Mon Jun 15, 2015 8:56 pm
by fr blood
Armitage wrote: cl_identifytarget (Identify Players) never works for me ever since I started using the ZCC Client, none of the variables 1-4 work but Identify Monsters works just fine. Is their a server cvar which can disable the Identify Players function? I don't want to have to make a fresh config in the event that's causing the problem due to this.
Same for me, and players can't be identified if monster identification is off.

RE: ZCC - Zandronum Community Client [ZAN 2.0 v1.0]

Posted: Tue Jun 16, 2015 4:54 am
by Catastrophe
Will be fixed soon, with an expansion to identifying in general. No ETA yet as I've got to set Visual Studio up on this computer.

RE: ZCC - Zandronum Community Client [ZAN 2.0 v1.0]

Posted: Tue Jun 16, 2015 1:39 pm
by Dark-Assassin
Should have an IRC channel for this. #zcc should do.

Edit:
Got a Linux x64 build compiled.
zandronumZCC-linux64-v1.tar.gz
Goes in to /usr/games/zandronum/ if installed from the repo.

RE: ZCC - Zandronum Community Client [ZAN 2.0 v1.0]

Posted: Wed Jun 17, 2015 5:31 pm
by Fused
Added. Thanks for that.

RE: ZCC - Zandronum Community Client [ZAN 2.0 v1.0]

Posted: Thu Jun 18, 2015 7:02 am
by Dark-Assassin
No probs. I should set up another linux VM for x86 (32-bit) builds too.

Also, if there are any updates, send me a PM.