def check_exist(self, server_id, char_id): from core.club import Club from core.bag import Bag from core.staff import StaffManger, StaffRecruit from core.territory import Territory from core.arena import Arena from core.energy import Energy money_text = self.money_as_text_dict() if money_text: Club(server_id, char_id).check_money(**money_text) if self.bag: Bag(server_id, char_id).check_items(self.bag) if self.staff: StaffManger(server_id, char_id).check_original_staff_is_initial_state( self.staff) if self.territory_product: Territory(server_id, char_id).check_product(self.territory_product) if self.work_card: Territory(server_id, char_id).check_work_card(self.work_card) if self.arena_point: Arena(server_id, char_id).check_point(self.arena_point) if self.energy: Energy(server_id, char_id).check(self.energy) if self.staff_recruit_score: StaffRecruit(server_id, char_id).check_score(self.staff_recruit_score) if self.resource_data: _r = _Resource() _r.resource = dict(self.resource_data) _r.check_exists(server_id, char_id)
def add(self, server_id, char_id, message=""): from core.club import Club from core.bag import Bag from core.staff import StaffManger, StaffRecruit from core.talent import TalentManager from core.territory import Territory from core.vip import VIP from core.arena import Arena from core.energy import Energy from core.plunder import Plunder club_property = self.money_as_text_dict() if self.club_exp: club_property['exp'] = self.club_exp if club_property: club_property['message'] = message Club(server_id, char_id).update(**club_property) if self.vip_exp: VIP(server_id, char_id).add_exp(self.vip_exp) if self.bag: bag = Bag(server_id, char_id) bag.batch_add(self.bag) sm = StaffManger(server_id, char_id) if self.staff: sm.batch_add(self.staff) if self.staff_exp_pool: sm.add_exp_pool(self.staff_exp_pool) if self.talent_point: TalentManager(server_id, char_id).add_talent_points(self.talent_point) if self.arena_point: Arena(server_id, char_id).add_point(self.arena_point) if self.territory_product: Territory(server_id, char_id).add_product(self.territory_product) if self.work_card: Territory(server_id, char_id).add_work_card(self.work_card) if self.energy: Energy(server_id, char_id).add(self.energy) if self.staff_recruit_score: StaffRecruit(server_id, char_id).add_score(self.staff_recruit_score) if self.station_exp: Plunder(server_id, char_id).add_station_exp(self.station_exp) if self.resource_data: _r = _Resource() _r.resource = dict(self.resource_data) _r.add(server_id, char_id)
def territory_auto_increase_product(*args): logger = Logger("territory_auto_increase_product") logger.write("Start") try: for sid in Server.duty_server_ids(): Territory.auto_increase_product(sid) logger.write("Server {0} Finish".format(sid)) except: logger.error(traceback.format_exc()) else: logger.write("Done") finally: logger.close()
def get_reward(request): server_id = request._game_session.server_id char_id = request._game_session.char_id building_id = request._proto.building_id slot_id = request._proto.slot_id t = Territory(server_id, char_id) resource_classified = t.training_get_reward(building_id, slot_id) response = TerritoryTrainingGetRewardResponse() response.ret = 0 response.drop.MergeFrom(resource_classified.make_protomsg()) return ProtobufResponse(response)
def start(request): server_id = request._game_session.server_id char_id = request._game_session.char_id building_id = request._proto.building_id slot_id = request._proto.slot_id staff_id = request._proto.staff_id hour = request._proto.hour t = Territory(server_id, char_id) t.training_star(building_id, slot_id, staff_id, hour) response = TerritoryTrainingStartResponse() response.ret = 0 return ProtobufResponse(response)
def inspire(request): server_id = request._game_session.server_id char_id = request._game_session.char_id building_id = request._proto.building_id t = Territory(server_id, char_id) drop = t.inspire_building(building_id) response = TerritoryInspireResponse() response.ret = 0 if drop: response.drop.MergeFrom(drop.make_protomsg()) return ProtobufResponse(response)
def remove(self, server_id, char_id, message=""): from core.club import Club from core.bag import Bag from core.staff import StaffManger, StaffRecruit from core.territory import Territory from core.arena import Arena from core.energy import Energy money_text = self.money_as_text_dict() if money_text: money_text = {k: -v for k, v in money_text.iteritems()} money_text['message'] = message Club(server_id, char_id).update(**money_text) if self.bag: bag = Bag(server_id, char_id) for _id, _amount in self.bag: bag.remove_by_item_id(_id, _amount) if self.staff: StaffManger(server_id, char_id).internal_remove_by_oid(self.staff) if self.territory_product: Territory(server_id, char_id).remove_product(self.territory_product) if self.work_card: Territory(server_id, char_id).remove_work_card(self.work_card) if self.arena_point: Arena(server_id, char_id).remove_point(self.arena_point) if self.energy: Energy(server_id, char_id).remove(self.energy) if self.staff_recruit_score: StaffRecruit(server_id, char_id).remove_score(self.staff_recruit_score) if self.resource_data: _r = _Resource() _r.resource = dict(self.resource_data) _r.remove(server_id, char_id)
def _destroy_check(self, staff_id): from core.territory import Territory _checker = StaffWorkingChecker(self.server_id, self.char_id) _checker.is_not_working(staff_id) if Territory( self.server_id, self.char_id).is_staff_training_check_by_unique_id(staff_id): raise GameException( ConfigErrorMessage.get_error_id( "STAFF_CANNOT_DESTROY_IN_TERRITORY"))
def game_start_handler(server_id, char_id, **kwargs): MessagePipe(char_id).clean() msg = UTCNotify() msg.timestamp = arrow.utcnow().timestamp MessagePipe(char_id).put(msg=msg) msg = SocketServerNotify() ss = random.choice(settings.SOCKET_SERVERS) msg.ip = ss['host'] msg.port = ss['tcp'] MessagePipe(char_id).put(msg=msg) _Resource.send_notify(server_id, char_id) UnitManager(server_id, char_id).send_notify() Bag(server_id, char_id).send_notify() StaffManger(server_id, char_id).send_notify() StaffRecruit(server_id, char_id).send_notify() f = Formation(server_id, char_id) f.send_formation_notify() f.send_slot_notify() club = Club(server_id, char_id) club.set_login() club.send_notify() msg = CreateDaysNotify() msg.days = days_passed(club.create_at) msg.create_at = club.create_at MessagePipe(char_id).put(msg=msg) chall = Challenge(server_id, char_id) chall.send_chapter_notify() chall.send_challenge_notify() FriendManager(server_id, char_id).send_notify() MailManager(server_id, char_id).send_notify() TaskMain(server_id, char_id).send_notify() TaskDaily(server_id, char_id).send_notify() Chat(server_id, char_id).send_notify() Notification(server_id, char_id).send_notify() FinanceStatistics(server_id, char_id).send_notify() TalentManager(server_id, char_id).send_notify() Dungeon(server_id, char_id).send_notify() a = Arena(server_id, char_id) a.send_notify() a.send_honor_notify() t = Tower(server_id, char_id) t.send_notify() t.send_goods_notify() Territory(server_id, char_id).send_notify() TerritoryStore(server_id, char_id).send_notify() TerritoryFriend(server_id, char_id).send_remained_times_notify() Store(server_id, char_id).send_notify() VIP(server_id, char_id).send_notify() Collection(server_id, char_id).send_notify() Energy(server_id, char_id).send_notify() w = Welfare(server_id, char_id) w.send_signin_notify() w.send_new_player_notify() w.send_level_reward_notify() w.send_energy_reward_notify() Union(server_id, char_id).send_all_notify() Purchase(server_id, char_id).send_notify() ac = ActivityNewPlayer(server_id, char_id) ac.send_notify() ac.send_daily_buy_notify() ActivityOnlineTime(server_id, char_id).send_notify() ActivityChallenge(server_id, char_id).send_notify() ActivityPurchaseDaily(server_id, char_id).send_notify() ActivityPurchaseContinues(server_id, char_id).send_notify() ActivityLevelGrowing(server_id, char_id).send_notify() p = Plunder(server_id, char_id) p.send_search_notify() p.send_result_notify() p.send_revenge_notify() p.send_station_notify() p.send_formation_notify() p.send_plunder_times_notify() p.send_plunder_daily_reward_notify() SpecialEquipmentGenerator(server_id, char_id).send_notify() Party(server_id, char_id).send_notify() ins = Inspire(server_id, char_id) ins.try_open_slots(send_notify=False) ins.send_notify() cs = Championship(server_id, char_id) cs.try_initialize(send_notify=False) cs.send_notify() WinningPlunder(server_id, char_id).send_notify() WinningArena(server_id, char_id).send_notify() WinningChampionship(server_id, char_id).send_notify() Worship(server_id, char_id).send_notify() CommonArenaWinningChat(server_id, char_id).send_notify() CommonPlunderWinningChat(server_id, char_id).send_notify() CommonChampionshipChat(server_id, char_id).send_notify() send_system_notify(server_id, char_id) BroadCast(server_id, char_id).try_cast_login_notify()
def vip_level_up_signal(server_id, char_id, new_level, **kwargs): TaskDaily(server_id, char_id).try_open() Territory(server_id, char_id).try_unlock_slot()
def _single_response(_char): context['show'] = True context['char_id'] = _char.id context['char_name'] = _char.name context['server_id'] = _char.server_id _club = Club(_char.server_id, _char.id) _bag = Bag(_char.server_id, _char.id) _vip = VIP(_char.server_id, _char.id) _sm = StaffManger(_char.server_id, _char.id) _fm = Formation(_char.server_id, _char.id) _te = Territory(_char.server_id, _char.id) _union = Union(_char.server_id, _char.id) context['last_login'] = arrow.get(_club.last_login).to(settings.TIME_ZONE).format("YYYY-MM-DD HH:mm:ss") context['club_level'] = _club.level context['vip_level'] = _vip.doc['vip'] context['vip_exp'] = _vip.doc['exp'] context['power'] = _club.power context['diamond'] = _club.diamond context['gold'] = _club.gold context['crystal'] = _club.crystal context['gas'] = _club.gas context['item_30007'] = _bag.get_amount_by_item_id(30007) context['item_30008'] = _bag.get_amount_by_item_id(30008) context['item_30009'] = _bag.get_amount_by_item_id(30009) context['item_30015'] = _te.get_work_card_amount() _res = MongoResource.db(_char.server_id).find_one({'_id': _char.id}) if not _res: _res = {'resource': {}} context['item_30022'] = _res['resource'].get('30022', 0) context['item_30023'] = _res['resource'].get('30023', 0) context['item_30019'] = _res['resource'].get('30019', 0) _union_id = _union.get_joined_union_id() if not _union_id: context['union'] = {} else: context['union'] = { 'id': _union_id, 'name': _union.union_doc['name'], 'joined_at': arrow.get(_union.member_doc['joined_at']).to(settings.TIME_ZONE).format( "YYYY-MM-DD HH:mm:ss"), 'contribution': _union.member_doc['contribution'] } in_formation_staffs = _fm.in_formation_staffs() staffs_data = [] equip_data = [] for k, v in in_formation_staffs.iteritems(): staff_obj = _sm.get_staff_object(k) staff_name = ConfigItemNew.get(staff_obj.oid).name staffs_data.append({ 'id': staff_obj.id, 'oid': staff_obj.oid, 'name': staff_name, 'level': staff_obj.level, 'step': staff_obj.step, 'star': staff_obj.star, 'power': staff_obj.power, 'unit_id': v['unit_id'], 'position': v['position'], }) for bag_slot_id in [staff_obj.equip_special, staff_obj.equip_decoration, staff_obj.equip_keyboard, staff_obj.equip_monitor, staff_obj.equip_mouse]: if not bag_slot_id: continue equip = _bag.get_slot(bag_slot_id) equip_data.append({ 'oid': equip['item_id'], 'level': equip['level'], 'name': ConfigItemNew.get(equip['item_id']).name, 'staff_name': staff_name }) context['staffs'] = staffs_data context['equips'] = equip_data return render_to_response( 'dianjing_statistics_char.html', context=context )