Just a thought, but create a meter field for players, then call ch->meter in ooc and osay, and make your adjustments to ch->meter wherever you want it adjusted.
i.e.
I use ooc to talk, it drops it by 1 bar out of the 6, so in the ooc command, have it update ch->meter to decrease by 1 and update the meter accordingly.
Could probably make a simple struct to hold the 6 meter stages and have it associated to a value.
If this isn't what you were looking for, sorry. Best I could think of off the top of my head. There's probably a better way to implement something like that.