This is a simple advertisements plugin based on basechat. It supports say, csay, hsay, msay and tsay.
sm_advertisements_enabled (0/1, def 1)
Enable/disable displaying advertisements.
sm_advertisements_file (def "advertisements.txt")
File to read the advertisements from. Useful if you're running multiple servers from one installation, and want to use different advertisements per server.
sm_advertisements_interval (def 30)
Amount of seconds between advertisements.
sm_advertisements_reload
Server command to reload the advertisements from advertisements.txt.
By default the plugin reads the advertisements from
configs/advertisements.txt, which has this format:
Code:
"Advertisements"
{
"1"
{
"type" "S"
"text" "{GREEN}contact@domain.com"
}
"2"
{
"type" "T"
"text" "www.domain.com"
"flags" "a"
}
}
Type
This field can contain the following letters:
C A center message, like sm_csay.
H A hint message, like sm_hsay.
M A menu message, like sm_msay, but without the title or the Exit-option. 0 will still hide the message though. Will block 1-9 from switching weapons as long as it's showing.
S A chat message, like sm_say. It supports the following colors: {DEFAULT}, {TEAM}, {GREEN} and {LIGHTGREEN}. {TEAM} and {LIGHTGREEN} unfortunately don't work together in a single advertisement, so it's one or the other. For example: {GREEN}Current {LIGHTGREEN}Map: {DEFAULT}{CURRENTMAP}
T A top-left message, like sm_tsay. It supports one of the following colors: {WHITE}, {RED}, {GREEN}, {BLUE}, {YELLOW}, {PURPLE}, {CYAN}, {ORANGE}, {PINK}, {OLIVE}, {LIME}, {VIOLET} and {LIGHTBLUE}. You can omit the color if you just want the normal color. For example to have an orange message, set
text to: {ORANGE} Text here
Multiple types per advertisement are allowed, so you can show a single advertisement in multiple places at the same time.
Text
This field supports the following variables: {CURRENTMAP}, {DATE}, {TICKRATE}, {TIME}, {TIME24} and {TIMELEFT}. Next to that you can print the value of a cvar by enclosing the name with {}. For example you can use {SM_NEXTMAP} to show the name of the next map. Last but not least, for a boolean cvar you might want to have it print OFF/ON instead of 0/1. For that you can use {BOOL:name}. For example {BOOL:MP_FRIENDLYFIRE} will print OFF if mp_friendlyfire is set to 0, and ON if it's set to 1. If you want it to print something other than OFF/ON, you will have to open the source code, change the defines at the top and recompile. Also supports \n for newlines (confirmed to work for C, M and S messages). A couple of examples are given in the attached advertisements.txt.
Flags
This field is optional. It accepts a list of flags of admins that will not see the advertisement if they have any of those flags. If left empty, only admins will see the advertisement. If omitted everyone will see the advertisement.
Changelog- 0.5.5
- Fixed {LIGHTGREEN}.
- Added \n for newlines.
- 0.5
- Support for boolean cvars has been added.
- {LIGHTGREEN} was added to say messages.
- Multiple types per advertisement are now supported.
- Multiple flags per advertisement are now supported, with the possibility to leave it empty so they only show to admins.
- Added sm_advertisements_file in case you're running multiple servers from one installation, and want different advertisements per server.
- Made center messages show for 5 seconds, so they don't disappear anymore within 2 seconds.
- Switched to a KeyValues file, the format is explained above and shown in the attached advertisements.txt.
- 0.4
- I skipped it! Why? Because I can

- 0.3
- Support for cvars has been added, for example to print the next map use {SM_NEXTMAP}. Because of this {NEXTMAP} has been removed. I haven't been able to get bounds to work yet (the upper bound of for example mp_friendlyfire always returned 0.0) so for now boolean cvars just show 0/1.
- {TICKRATE} was added and obviously shows the server's tickrate (thanks to Nican's code he posted on the forums).
- {TIME24} was added and shows a 24-hour clock.
- SayText2 is now only used when you use {TEAM}, otherwise it uses PrintToChat. This should fix the problems with mods that don't support SayText2 (Insurgency, and contrary to what I thought earlier, Day of Defeat: Source doesn't support it either), so as long as you don't use {TEAM} you should be good on those mods. Two notes: {GREEN} is actually red in DoD:S, and SayText2 in CS:S produces the same tick sound that you hear when someone types something. So if you use {TEAM} in CS:S note that it will give a tick sound when that ad shows.
- Advertisements can now be hidden from clients with a specific flag by adding that flag's letter after the type, like this: SA This say ad will be hidden from clients with a reserved slot
Of course by omitting the letter it will be shown to everyone.
- 0.2
- Added colors to chat messages, it now has {DEFAULT} (white), {TEAM} (the color of on the team you're on, or light green if you're a spectator) and {GREEN} (green). Those are the colors in TF2, they might be different in other games. You can just use them wherever you want, for example: S He{GREEN}llo t{TEAM}he{DEFAULT}re
- Split {TIME} into {DATE} and {TIME} where {TIME} returns a 12-hour clock with AM/PM.
- The timer is now restarted when you change sm_advertisements_interval, it doesn't require a map change anymore.
- 0.1