信息來源:

http://nt.discuz.net/showtopic-129793.html

1 、使用官方編譯版本,未作二次修改的用户 (適用 3.1 版本)
直接下載附件,覆蓋同名文件即可 (記得先備份)

2 、源碼修改,能自行編譯的用户
打開文件:
Discuz.ForumUserCredits.cs

找到方法 public static int UpdateUserCredits(int uid),將其中的:
if (uid > 0)
return UpdateUserCredits(Users.GetShortUserInfo(uid));
else
return 0;

替換為:

            if (uid > 0)
{
Discuz.Data.UserCredits.UpdateUserCredits(uid);
ShortUserInfo userInfo = Users.GetShortUserInfo(uid);
UserGroupInfo tmpUserGroupInfo = UserGroups.GetUserGroupInfo(userInfo.Groupid);

                if (tmpUserGroupInfo != null && ((tmpUserGroupInfo.System == 0 && tmpUserGroupInfo.Radminid == 0)
|| (tmpUserGroupInfo.Groupid == 7 && userInfo.Adminid == -1)))//當用户是已刪除的特殊組成員時,則運算相應積分,並更新該用户所屬組信息
{
tmpUserGroupInfo = GetCreditsUserGroupId(userInfo.Credits);
if (tmpUserGroupInfo.Groupid != userInfo.Groupid)//當用户所屬組發生變化時
{
Discuz.Data.Users.UpdateUserGroup(userInfo.Uid.ToString(), tmpUserGroupInfo.Groupid);
Discuz.Data.OnlineUsers.UpdateGroupid(userInfo.Uid, tmpUserGroupInfo.Groupid);
}
}
return 1;

            }
else
return 0;

然後刪掉不用的方法 public static int UpdateUserCredits(ShortUserInfo userInfo)(可選)

fix_usergroupupdate

fix_usergroupupdate.zip(139 KB)