def start_game(request): req = request._proto session = request._game_session account_id = session.account_id server_id = req.server_id if not Server.objects.filter(id=server_id).exists(): raise GameException(ConfigErrorMessage.get_error_id("BAD_MESSAGE")) ip = request.META.get("REMOTE_ADDR") if not ip: ip = "" account_login_signal.send( sender=None, account_id=account_id, ip=ip, to_server_id=server_id, ) response = StartGameResponse() response.ret = 0 session.server_id = server_id try: char = Character.objects.get(account_id=account_id, server_id=server_id) except Character.DoesNotExist: response.next = OPT_CREATE_CLUB response.session = session.serialize() return ProtobufResponse(response) char_id = char.id session.char_id = char_id game_start_signal.send( sender=None, server_id=server_id, char_id=char_id, ) response.next = OPT_OK response.session = session.serialize() print print "NEW SESSION (base64 encoded)" print base64.b64encode(response.session) print return ProtobufResponse(response)
def get_leaderboard(request): server_id = request._game_session.server_id char_id = request._game_session.char_id info = ClubLeaderBoard(server_id, char_id).get_info() response = ClubLeaderBoardResponse() response.ret = 0 response.next_update_at = info['next_update_at'] response.my_level_rank = info['my_level_rank'] response.my_power_rank = info['my_power_rank'] for _id, level, power in info['level']: obj = Club(server_id, _id, load_staffs=False) response_level = response.clubs_by_level.add() response_level.MergeFrom(obj.make_protomsg()) response_level.level = level response_level.power = power for _id, level, power in info['power']: obj = Club(server_id, _id, load_staffs=False) response_power = response.clubs_by_power.add() response_power.MergeFrom(obj.make_protomsg()) response_power.level = level response_power.power = power return ProtobufResponse(response)
def get_server_list(request): account_id = request._game_session.account_id servers = Server.opened_servers() response = GetServerListResponse() response.ret = 0 recommend_id = 0 max_id = 0 for server in servers: s = response.servers.add() s.id = server.id s.name = server.name s.status = server.status s.is_new = server.is_new if server.recommend: recommend_id = server.id if server.id > max_id: max_id = server.id if not recommend_id: recommend_id = max_id response.recommend_id = recommend_id recent_server_ids = AccountLoginLog.get_account_recent_server_ids( account_id) response.recent_ids.extend(recent_server_ids) return ProtobufResponse(response)
def refresh(request): server_id = request._game_session.server_id char_id = request._game_session.char_id Arena(server_id, char_id).refresh() response = ArenaRefreshResponse() response.ret = 0 return ProtobufResponse(response)
def buy_times(request): server_id = request._game_session.server_id char_id = request._game_session.char_id Arena(server_id, char_id).buy_times() response = ArenaBuyTimesResponse() response.ret = 0 return ProtobufResponse(response)
def reset(request): server_id = request._game_session.server_id char_id = request._game_session.char_id TalentManager(server_id, char_id).reset() response = TalentResetTalentResponse() response.ret = 0 return ProtobufResponse(response)
def level_growing_join(request): server_id = request._game_session.server_id char_id = request._game_session.char_id ActivityLevelGrowing(server_id, char_id).join() response = ActivityLevelGrowingJoinResponse() response.ret = 0 return ProtobufResponse(response)
def buy(request): server_id = request._game_session.server_id char_id = request._game_session.char_id Energy(server_id, char_id).buy() response = EnergyBuyResponse() response.ret = 0 return ProtobufResponse(response)
def reset(request): server_id = request._game_session.server_id char_id = request._game_session.char_id t = Tower(server_id, char_id) t.reset() response = TowerResetResponse() response.ret = 0 return ProtobufResponse(response)
def sweep(request): server_id = request._game_session.server_id char_id = request._game_session.char_id t = Tower(server_id, char_id) t.sweep() response = TowerSweepResponse() response.ret = 0 return ProtobufResponse(response)
def sync_level(request): server_id = request._game_session.server_id char_id = request._game_session.char_id c = Championship(server_id, char_id) c.sync_level() response = ChampionLevelSyncResponse() response.ret = 0 return ProtobufResponse(response)
def special_equipment_speedup(request): server_id = request._game_session.server_id char_id = request._game_session.char_id s = SpecialEquipmentGenerator(server_id, char_id) s.speedup() response = SpecialEquipmentGenerateSpeedUpResponse() response.ret = 0 return ProtobufResponse(response)
def harass_buy_times(request): server_id = request._game_session.server_id char_id = request._game_session.char_id u = Union(server_id, char_id) u.harass_buy_times() response = UnionHarassBuyTimesResponse() response.ret = 0 return ProtobufResponse(response)
def quit(request): server_id = request._game_session.server_id char_id = request._game_session.char_id u = Union(server_id, char_id) u.quit() response = UnionQuitResponse() response.ret = 0 return ProtobufResponse(response)
def buy_plunder_times(request): server_id = request._game_session.server_id char_id = request._game_session.char_id p = Plunder(server_id, char_id) p.buy_plunder_times() response = PlunderBuyTimesResponse() response.ret = 0 return ProtobufResponse(response)
def apply_in(request): server_id = request._game_session.server_id char_id = request._game_session.char_id c = Championship(server_id, char_id) c.apply_in() response = ChampionApplyResponse() response.ret = 0 return ProtobufResponse(response)
def search(request): server_id = request._game_session.server_id char_id = request._game_session.char_id p = Plunder(server_id, char_id) p.search() response = PlunderSearchResponse() response.ret = 0 return ProtobufResponse(response)
def harass_query_union(request): server_id = request._game_session.server_id char_id = request._game_session.char_id u = Union(server_id, char_id) # TODO 这里是消息把 my_union 定义成 required 的了。 if not u.get_joined_union_id(): response = UnionHarassQueryResponse() response.ret = ConfigErrorMessage.get_error_id("INVALID_OPERATE") response.my_union.rank = 0 response.my_union.id = "" response.my_union.name = "" response.my_union.explore_point = 0 return ProtobufResponse(response) unions, self_union = u.query_by_explore_point_rank() response = UnionHarassQueryResponse() response.ret = 0 if not self_union: response.my_union.rank = 0 response.my_union.id = u.union_doc['_id'] response.my_union.name = u.union_doc['name'] response.my_union.explore_point = 0 else: response.my_union.rank = self_union.rank response.my_union.id = self_union.id response.my_union.name = self_union.name response.my_union.explore_point = self_union.explore_point for u in unions: res_union = response.union.add() res_union.rank = u.rank res_union.id = u.id res_union.name = u.name res_union.explore_point = u.explore_point return ProtobufResponse(response)
def use(request): server_id = request._game_session.server_id char_id = request._game_session.char_id fid = request._proto.id Formation(server_id, char_id).use_formation(fid) response = FormationUseResponse() response.ret = 0 return ProtobufResponse(response)
def skill_level_up(request): server_id = request._game_session.server_id char_id = request._game_session.char_id skill_id = request._proto.skill_id u = Union(server_id, char_id) u.skill_level_up(skill_id) response = UnionSkillLevelupResponse() response.ret = 0 return ProtobufResponse(response)
def buy_times(request): server_id = request._game_session.server_id char_id = request._game_session.char_id category_id = request._proto.id Dungeon(server_id, char_id).buy_times(category_id) response = DungeonBuyTimesResponse() response.ret = 0 return ProtobufResponse(response)
def purchase_daily_get_reward(request): server_id = request._game_session.server_id char_id = request._game_session.char_id p = ActivityPurchaseDaily(server_id, char_id) rc = p.get_reward() response = ActivityPurchaseDailyGetRewardResponse() response.ret = 0 response.drop.MergeFrom(rc.make_protomsg()) return ProtobufResponse(response)
def get_station_product(request): server_id = request._game_session.server_id char_id = request._game_session.char_id p = Plunder(server_id, char_id) drop = p.get_station_product() response = BaseStationGetProductResponse() response.ret = 0 response.drop.MergeFrom(drop.make_protomsg()) return ProtobufResponse(response)
def signin(request): server_id = request._game_session.server_id char_id = request._game_session.char_id w = Welfare(server_id, char_id) drop = w.signin() response = WelfareSignInResponse() response.ret = 0 response.drop.MergeFrom(drop.make_protomsg()) return ProtobufResponse(response)
def level_up(request): server_id = request._game_session.server_id char_id = request._game_session.char_id talent_id = request._proto.talent_id TalentManager(server_id, char_id).level_up(talent_id) response = TalentLevelUpResponse() response.ret = 0 return ProtobufResponse(response)
def newplayer_dailybuy(request): server_id = request._game_session.server_id char_id = request._game_session.char_id ac = ActivityNewPlayer(server_id, char_id) rc = ac.daily_buy() response = ActivityNewPlayerDailyBuyResponse() response.ret = 0 response.drop.MergeFrom(rc.make_protomsg()) return ProtobufResponse(response)
def online_time_get_reward(request): server_id = request._game_session.server_id char_id = request._game_session.char_id at = ActivityOnlineTime(server_id, char_id) rc = at.get_reward() response = ActivityOnlineTimeGetRewardResponse() response.ret = 0 response.drop.MergeFrom(rc.make_protomsg()) return ProtobufResponse(response)
def special_equipment_get(request): server_id = request._game_session.server_id char_id = request._game_session.char_id s = SpecialEquipmentGenerator(server_id, char_id) equip = s.get_result() response = SpecialEquipmentGetResponse() response.ret = 0 response.equipment.MergeFrom(equip.make_protomsg()) return ProtobufResponse(response)
def energy_reward_get(request): server_id = request._game_session.server_id char_id = request._game_session.char_id w = Welfare(server_id, char_id) drop = w.energy_reward_get() response = WelfareEnergyRewardGetResponse() response.ret = 0 response.drop.MergeFrom(drop.make_protomsg()) return ProtobufResponse(response)
def sweep_finish(request): server_id = request._game_session.server_id char_id = request._game_session.char_id t = Tower(server_id, char_id) resource_classified = t.sweep_finish() response = TowerSweepFinishResponse() response.ret = 0 response.drop.MergeFrom(resource_classified.make_protomsg()) return ProtobufResponse(response)