Вот такой вот вариант реализации денег(бонусов), как хотите. Скрипт работает очень просто - берет количество сообщений пользователя, умножает на стоимость одного сообщения, добавляет к этому значению число из какого-то дополнительного поля и в итоге вы видите кол-во денег пользователя.
И так, нам нужно дополнительное поле(любое название, но лучше чтобы совпадало с названием в скрипте), в которое каждому пользователю будут вносится поощрения или штрафы(отрицательные числа тоже можно) от администрации
Каждый пользователь будет получать плюс к своим деньгам за каждое сообщение, которое засчитывается в профиле.чуть не забыл - html-низ или форма ответа

Код:
<script type="text/javascript">
if(location.href.indexOf('viewtopic')!=-1) {
        var field = 'fld1';
        var diff = 0.5
var default_name = 'Деньги';
        var ulf=document.getElementById('pun-main').getElementsByTagName("ul");
        var lip = '';
        var i = 0;
        var j=0;
var flag =false;
        while (ulf[i]){
                j=0;
                if (ulf[i].parentNode.className.indexOf("post-author")!=-1)
                {
                        lif = ulf[i].getElementsByTagName('li');
                        while(lif[j] && !flag) {
        if(lif[j].className=='pa-posts')
        lip = lif[j];
                                else if(lif[j].className=='pa-'+field) {
                                        var money = parseInt(lip.innerHTML.substring(lip.innerHTML.indexOf(':')+2))*diff;
                                        money = money + (parseFloat(lif[j].innerHTML.substring(lif[j].innerHTML.indexOf(':')+2)) || 0);
                                        lif[j].innerHTML = default_name+': '+money;
                                        flag = true;
                                }
        j++;
                        }
    if(!flag) {
        lif = document.createElement('li');
        lif.className = 'pa-'+field;
        lif.innerHTML = default_name+': ' +parseInt(lip.innerHTML.substring(lip.innerHTML.indexOf(':')+2))*diff;
        ulf[i].insertBefore(lif,lip.nextSibling);
                        }
                        flag=false;
                }
                i++;
        }
}
</script>