[INC] ColorLib
ColorLib is built as a replacement for Colors, it uses a a less naive approach to formatting messages to improve the performance of C* functions.
Why? The reason for this is that Colors and More Colors both make heavy use of many ReplaceString operations each one looping through the buffer being formatted, whereas this could be avoided by writing a single pass formatter as used here and was done for ColorVariables. And to why replace ColorVariables? it also adds extra overhead with forwards and allowing for more "dynamic" colors, which isnt always needed. So ColorLib was created. Performance: ColorLib is currently twice over twice as fast as MultiColors when using CPrintToChat, further and improved benchmarks will be availible at the GitHub Repository Example: Code:
#pragma semicolon 1 |
Re: [INC] ColorLib
Think I'll add support for this to my ST3 syntax highlighting. Very nice stuff.
|
Re: [INC] ColorLib
This is awesome, thanks for this.
|
Re: [INC] ColorLib
Thanks, I'd originally planned this as an extension, but spent too much time fighting with AMBuild, so that has been delayed till I either stop hating it or I wait uppon the Rust bindings.
I shall be improving color customisation by making the color generator configurable without touching code with a config file. |
Re: [INC] ColorLib
Thanks for this! I'm going to be using this in the next version of my Deathmatch plugin.
|
Re: [INC] ColorLib
:bacon!:
Will already used in TTT (release soon). :up: |
Re: [INC] ColorLib
Already using in my plugins.
Clean code, good job. |
Re: [INC] ColorLib
Hey I'm running into some chaos when using the inc.
https://imgur.com/66hdoXA.png The stuff -> PHP Code:
|
Re: [INC] ColorLib
"{olive][VSH 2]{default} %s"
You're missing a closing brace for olive. Should be: "{olive}[VSH 2]{default} %s" |
Re: [INC] ColorLib
Quote:
I made a small reproduction plugin and fat-fingered that. With fixed code:
Spoiler
Provides this output:
Spoiler
|
Re: [INC] ColorLib
It seems there's an error with CSayText2 function:
PHP Code:
|
Re: [INC] ColorLib
Quote:
Thanks for the report, this is now fixed on the git, as well as another issue from Bara where the 'z' flag wasnt working for CPrintToChatAdmins, there is also an example GitHub workflow for building the color_map.inc in your actions. |
Re: [INC] ColorLib
If you write %t to include translations it won't work, it only works with %T, I hope you add support for %t if plausible.
|
Re: [INC] ColorLib
Quote:
I see there's SetGlobalTransTarget, that should do it for %t. |
Re: [INC] ColorLib
CRemoveTags doesn't work well for me. If there's no tags, the first index is removed (ex: for my name "Ilusion" appears "lusion"). Maybe use a buffer and construct again the message like in CFormat function?
|
Re: [INC] ColorLib
Yeah I've gone though and fixed the issue, was to do with me checking if the index's are the same and skipping copying values, this has now been sorted along with adding a new function to remove color escape codes from a message `CRemoveColors`.
Also there was an additional bug fix for CSayText2 where I was calling SetString on the proto buffer instead of AddString for the params. This was why you had the error before, didnt notice it as rarely use CPrintToChatEx in code, I have gone back to using view_as<ProtoBuff> for now as the check done by UserMessageToProtobuf is already done in _CL_SupportsProtoBuf. |
Re: [INC] ColorLib
Have you thought about checking if the color is valid? If not, keep the tag.
Something like: PHP Code:
|
Re: [INC] ColorLib
Made the change to keep bad / incorrect color tags, but just using 0 or well null, `CPrintToChat(client, "{bad tag here}Hello {green}World");` will remove green but `bad tag here` would stay.
|
| All times are GMT -4. The time now is 22:22. |
Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.