Easiest way would be in a Procon plugin, but here is an example of what we used for other games that support punkbuster.
Code:
pb_sv_task 1 900 say VISIT OUR FORUM AT AAQUACKS.COM
pb_sv_task 2 900 say WELCOME TO .=QUACK=. CLAN SERVER
pb_sv_task 100 900 say JOIN US ON TS3
pb_sv_task 120 900 say LOADING INFO.....
pb_sv_task 140 900 say Hostname: 74.201.57.251
pb_sv_task 150 900 say Port: 9988
pb_sv_task 160 900 say Password: quackspond
pb_sv_task 200 900 say PLEASE FOLLOW OUR RULES
pb_sv_task 210 900 say LOADING RULES.....
pb_sv_task 230 900 say RESPECT CLAN MEMBERS
pb_sv_task 240 900 say HACKERS WILL NOT BE TOLERATED
pb_sv_task 250 900 say NO USING KNOWN EXPLOITS
pb_sv_task 260 900 say NO INTENTIONAL INCAPPING
pb_sv_task 270 900 say NO FOUL LANGUAGE PLEASE
pb_sv_task 280 900 say CLAN MEMBERS HAVE PRIORITY
pb_sv_task 290 900 say SERVER KICKS FOR 5 BLACK SS
pb_sv_task 300 900 say BLACK SS CAN BE FIXED NOW
pb_sv_task 310 900 say WE MAY KICK FOR PINGS OVER 225
pb_sv_task 320 900 say PLAY NICE OR PLAY ELSEWHERE
pb_sv_task 330 900 say DONATE AT AAQUACKS.COM
pb_sv_task 340 900 say HELP KEEP OUR SERVER RUNNING
pb_sv_task 350 900 say WE STREAMING TO PbBans
pb_sv_task 360 900 say WE STREAMING TO AON
You add this to your pbsv.cfg
Copy some of the above lines, and adjust the time and the message.
First # is the number of secs from the time pb is restarted, that the message will first appear.
Second number is the number of seconds after it will continuously repeat.
eg: if you want 3 messages to appear 5 minutes apart, and to appear every 30 minutes.
Code:
pb_sv_task 300 1800 say VISIT OUR FORUM AT AAQUACKS.COM
pb_sv_task 600 1800 say WELCOME TO .=QUACK=. CLAN SERVER
pb_sv_task 900 1800 say JOIN US ON TS3
One you create your code and copy it into pbsv.cfg, save the file.
Then in the pb console, type "pb_sv_restart" to restart pb and load the new commands. (Or a server restart should do this too)