Django学习笔记(三十四):django实现游戏的服务器注册状态开关

 

需求如下:

1、后台

①后台新增一个页面,布局参考跨服战管理页面,包含的数据有:服id,服务器名,入口状态,推荐状态,开服时间,当前账号数,注册开关-时间,注册开关-账号数,注册开关状态

②入口状态为游戏服管理中的状态。注册开关状态包含四种:功能未开,运行中,注册已关,状态异常。当未配任何值时显示为功能未开;当配了值但是未达到条件前,显示运行中;当达到条件已经通知服务端关闭注册后,显示注册已关。

③注册开关-时间和注册开关-账号数需要可以编辑,编辑框跟跨服战管理里的一样即可,编辑框中只允许输入正整数数字和0。两个数据的编辑都要加上批量编辑的功能,方式参考跨服战中批量修改大组。右上角需要加上一个保存本次修改的按钮,点击该按钮后,保存本次的修改但是不发送到数据库。

④该功能需要有一个服分区条件筛选的按钮,可以点击某个分区后只显示该分区下的服务器

⑤ 注册开关-时间,默认为空值,空值时不开启该判断,可输入正整数数字和0,单位为天。时间为0的效果是立即关闭注册,0以上的数字,则是该服务器开启达到X天后自动关闭注册,比如配了2天后关闭,则该服务器在开启第3天的0点关闭注册。

⑥注册开关-账号数,默认为空值,空值时不开启该判断,可输入正整数数字和0,单位为个。账号数为0的效果是立即关闭注册,0以上的数字,则是该服务器新增的去重账号数达到X个后自动关闭注册。

⑦如果注册开关-时间和注册开关-账号都设了值,其中一个的条件满足后就关闭注册。

⑧页面右上角需要有一个生成本次修改的按钮,点击了该按钮后本次修改的所有配置才会发送到数据库,并立即判断一次所有服务器是否满足关闭注册的条件。点击该按钮的同时,需要判断本次修改的配置中注册开关-时间和注册开关-账号数是否有为0的,如果有0的配置,则需要弹窗提示“检测到有0的配置,0代表立即关闭注册,请仔细确认后再点执行”;如果检测到注册开关-时间里有1、2这两个时间,则弹窗提示“有服务器天数配置低于2天,请仔细确认后再点执行”;如果检测到注册开关-账号数里有1-500的数字,则弹窗提示“有服务器账号数配置低于500,请仔细确认后再点执行”。弹窗中需要加上执行和取消两个按钮,点击执行继续,点击取消则取消本次操作

⑨设置了注册开关-时间或注册开关-账号数后,后台需要根据设置的值每隔10分钟去计算服务器是否满足对应条件,在计算到满足条件后,通知服务端关闭注册。

⑩右上角需要加上一个“立即开启注册”按钮,勾选服务器,点击该按钮后,需要立即通知服务端把已经关闭了注册的对应服务器的注册重新打开。

新:开服一段时间会有合服操作,期望被合服的子服和主服的注册开关状态一致

# -*- coding: utf-8 -*-
#导包

def status_logic(sid,new_expect_time,new_expect_number):
    model = Server.objects.filter(id=int(sid)).first()
    # model = model[0]
    model.expect_time = int(new_expect_time)
    model.expect_number = int(new_expect_number)

    # 当预设注册人数 and 预设开服天数为 -1 时
    # 注册开关状态为(功能未开,0)
    if model.switch_status != 4:
        if model.expect_number == -1 and model.expect_time == -1:
            model.switch_status = 0
            model.save(using='write')
        elif model.expect_number != -1 and model.expect_time == -1:
            # 当实际注册人数未
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值