PMB I looked at your plugin solution. It seems that you won't detect the very first round start because "round_end" is set to true only after the round ends. To start off, round_end should be initialized to true, that way on the first start frame the first round start will be detected.
Your code may be fine if the intention is to detect only the end of a round, but I did not dig into it that far.
*edit*
I see another problem. What about a map change before a round ends? For example, if you issue a changelevel command in the middle of a round, will the roundend message be sent? Even if the roundend message is sent, several frames may go by before the map starts to load up, and your plugin will not be aware of exactly when the first round of the new map started. It will instead think the round started before the map even started to load up.
Tosolve this, you will have to also add the round_end detection in pfnChangeLevel, in PMB's case, set the bool
in there. After the pfnChangeLevel function call, the next frame should be the first frame of the newly loaded map, which hopefully will also be the first frame of the round start (or close enough).
I have not yet tested any of this with the new CS 1.6 update (I am coding the changes now as I type), so don't assume I know what I'm talking about. I'll post updates once I have my updates coded and tested.
*edit*
I am assuming that the roundtime message is sent directly after a round ends, not when a round begins.