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)
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
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)
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
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
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)
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 }} )