信息来源:

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)