示例#1
0
        public static void ChangeRole(Player p, CustomRole newRole)
        {
            if (p == null)
            {
                return;
            }
            if (newRole == null || !roles.ContainsKey(newRole.id))
            {
                if (users.ContainsKey(p.UserId))
                {
                    users.Remove(p.UserId);
                }
                return;
            }

            AdvancedSubclassing.RemovePlayer(p);

            if (!users.ContainsKey(p.UserId))
            {
                users[p.UserId] = newRole.id;
                roles[newRole.id].members.Add(p.UserId);
            }
            else
            {
                roles[users[p.UserId]].members.Remove(p.UserId);

                users[p.UserId] = newRole.id;
                roles[newRole.id].members.Add(p.UserId);
            }

            if (newRole.isSubclass)
            {
                AdvancedSubclassing.SetClass(p, newRole.id.Substring(2));
            }
        }