30. 游戏运营Part 1: 公告功能

iFun引擎提供了可以管理向客户端传输的公告文的功能。 该功能通过与游戏服务器分开的名为 iFun Announcer 的Python Django程序所提供。

当游戏运营者在Django管理员公告板上发布公告后,将通过iFun引擎的客户端插件iFun Announcer接收公告列表。

30.1. 安装iFun Announcer

为了使用公告事项服务,需要安装 iFun Announcer 包。需要该包文件的用户, 请发送邮件至 Funapi support 申请。

30.1.1. 所需程序

30.1.1.1. Python 2

iFun Announcer需要2.7以上版本的 Python 2 。 通过如下命令语可查看版本。

30.1.1.2. Python Django

公告事项服务须安装 Django 1.7版本 以上。 通过如下命令语可查看版本。

30.2. 设置iFun Announcer

下载iFun Announcer包后,解压到服务器的任一文件夹中。 按如下过程操作并设置DB。

30.2.1. 设置DB

30.2.1.1. Announcer for Django 1.7时

$ python ./manage.py makemigrations board
$ python ./manage.py migrate

30.2.1.2. Announcer for Django 1.10时

$ python ./manage.py makemigrations
$ python ./manage.py migrate

执行该操作,即生成名为 db.sqlite3 的DB文件。

30.2.2. 创建管理员账号

现在我们将创建管理公告板的管理员账号。

$ python ./manage.py createsuperuser

Username (leave blank to use 'master'):
Email address:
Password:
Password (again):

30.2.3. 更改管理员账号密码

想要更改密码时,使用**changepassword**命令语即可。

$ python ./manage.py changepassword [username]

30.3. 运行iFun Announcer

服务器可通过 manage.pyrunserver 命令语运行。

$ python ./manage.py runserver 0.0.0.0:8080

若显示服务器已开启,没有其他报错消息,则公告服务器已正常开启。 在浏览器访问 http://127.0.0.1:8080/admin/ ,将显示登录画面。 외부에서 접속 시에는 announcer/settings.py 파일의 ALLOWED_HOSTS 에 서버 아이피 주소를 추가해줍니다.

$ vi announcer/settings.py

ALLOWED_HOSTS = ['{서버 아이피 주소}']

그리고 http://{서버 아이피 주소}:8080/admin/ 으로 접속하시면 됩니다. 通过上面创建的管理员账号登录,即可访问管理员页面。

Note

若在运行时输出如下日志,须要先执行 python ./manage.py migrate

Performing system checks...

System check identified no issues (0 silenced).

You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.

30.4. 发布/删除公告

登录到管理员页面,有一个名为 Announcements 的公告板。该公告板即为公告事项公告板。 点击进入,即可通过右上方的 Add announcement + 按钮发布公告事项。 对于帖子的删除,进入相应项目的详情页面后有删除按钮。

发布帖子时,可以添加图片或URL等。公告事项中包含的项目并不是既定的。 管理员自己定义必要的项目进行使用即可。

30.5. (高级) iFun Announcer扩展

通过iFun Announcer可添加文本、图片、URL到帖子中。 若除此以外有其他需要添加的项目,可在iFun Announcer的 board/models.py 文件中添加必要的字段。

添加或修改字段后,按如下方式,须在DB结构中体现变更事项。

$ python manage.py migrate

Tip

字段被更改后,将难以使用原来的DB文件,所以构建完DB后最好不要更改字段。

Important

默认提供的字段也是在客户端插件中使用的字段,所以不得修改或删除。

30.5.1. 客户端代码

客户端示例,请参考已发布的Client Plugin的tester代码。更具体的内容 ,请参考 插件的公告事项消息