Ejemplo n.º 1
0
    def __init__(self, server_id, char_id):
        self.server_id = server_id
        self.char_id = char_id
        self.doc = MongoActivityPurchaseContinues.db(self.server_id).find_one({'_id': self.char_id})
        if not self.doc:
            self.doc = MongoActivityPurchaseContinues.document()
            self.doc['_id'] = self.char_id
            MongoActivityPurchaseContinues.db(self.server_id).insert_one(self.doc)

        self.create_days = Club.create_days(self.server_id, self.char_id)
Ejemplo n.º 2
0
    def get_new_player_item_status(self, _id, login_days=None):
        if _id in self.doc['new_player']:
            return WELFARE_HAS_GOT

        if login_days is None:
            login_days = Club.create_days(self.server_id, self.char_id)

        if login_days >= _id:
            return WELFARE_CAN_GET

        return WELFARE_CAN_NOT
Ejemplo n.º 3
0
    def __init__(self, server_id, char_id):
        self.server_id = server_id
        self.char_id = char_id
        self.doc = MongoActivityPurchaseContinues.db(self.server_id).find_one(
            {'_id': self.char_id})
        if not self.doc:
            self.doc = MongoActivityPurchaseContinues.document()
            self.doc['_id'] = self.char_id
            MongoActivityPurchaseContinues.db(self.server_id).insert_one(
                self.doc)

        self.create_days = Club.create_days(self.server_id, self.char_id)
Ejemplo n.º 4
0
    def __init__(self, server_id, char_id):
        self.server_id = server_id
        self.char_id = char_id
        self.doc = MongoActivityNewPlayer.db(self.server_id).find_one({'_id': self.char_id})
        if not self.doc:
            self.doc = MongoActivityNewPlayer.document()
            self.doc['_id'] = self.char_id
            MongoActivityNewPlayer.db(self.server_id).insert_one(self.doc)

        self.create_day = Club.create_days(server_id, char_id)

        today = get_start_time_of_today()
        self.create_start_date = today.replace(days=-(self.create_day - 1))

        self.activity_end_at = self.create_start_date.replace(days=7).timestamp
        self.reward_end_at = self.create_start_date.replace(days=8).timestamp
Ejemplo n.º 5
0
    def __init__(self, server_id, char_id):
        self.server_id = server_id
        self.char_id = char_id
        self.doc = MongoActivityNewPlayer.db(self.server_id).find_one(
            {'_id': self.char_id})
        if not self.doc:
            self.doc = MongoActivityNewPlayer.document()
            self.doc['_id'] = self.char_id
            MongoActivityNewPlayer.db(self.server_id).insert_one(self.doc)

        self.create_day = Club.create_days(server_id, char_id)

        today = get_start_time_of_today()
        self.create_start_date = today.replace(days=-(self.create_day - 1))

        self.activity_end_at = self.create_start_date.replace(days=7).timestamp
        self.reward_end_at = self.create_start_date.replace(days=8).timestamp
Ejemplo n.º 6
0
    def send_new_player_notify(self, _id=None):
        if _id:
            act = ACT_UPDATE
            ids = [_id]
        else:
            act = ACT_INIT
            ids = ConfigWelfareNewPlayer.INSTANCES.keys()

        login_days = Club.create_days(self.server_id, self.char_id)

        notify = WelfareNewPlayerNotify()
        notify.act = act
        for i in ids:
            notify_item = notify.items.add()
            notify_item.id = i
            notify_item.status = self.get_new_player_item_status(i, login_days=login_days)

        MessagePipe(self.char_id).put(msg=notify)
Ejemplo n.º 7
0
    def set_today_max_star(self):
        # 今天重置后的最高星数,
        # 不重置还不算!!!
        # 这里不能直接 $set, 得用 $inc
        # 因为有定时任务在 直接清零
        # NOTE: 因为用了 sef.doc 的数据,必须在 设置完后 才能调用
        # NOTE: 还要判断是不是当天创建的新角色,新角色就算没重置也得记录啊啊啊
        if Club.create_days(self.server_id, self.char_id) > 1:
            ri = ResetInfo(self.server_id, self.char_id)
            if not ri.reset_times:
                # 只有当天重置过的,才记录当天最高星数
                return

        inc_value = self.get_total_current_star() - self.doc['today_max_star']
        if inc_value <= 0:
            return

        self.doc['today_max_star'] += inc_value
        MongoTower.db(self.server_id).update_one(
            {'_id': self.char_id},
            {'$inc': {
                'today_max_star': inc_value
            }}
        )