def player_shutup(request, player_id=0): req_type = 102 result_msgs = {-1: '未知错误', 0: '成功'} result_code = -1 if player_id == 0: player_id = int(request.GET.get('player_id', '0')) if player_id == 0: player_id = int(request.POST.get('player_id', '0')) is_ajax = request.GET.get('ajax', False) server_id = int(player_id) >> 20 server_id = center_cache.get_server_config(server_id, 'master_server_id', server_id) time_len = int(request.GET.get('time', '1800')) req_params = 'req_type=%d&player_id=%s&server_id=%d&time=%d' % ( req_type, player_id, server_id, time_len) err_msg = '' try: result = http_post(game_server_url.GM_PLAYER_URL, req_params, timeout_param=10) result = json.loads(result) if result['code'] == 0: result_code = result['content'][0] write_gm_log(request, [req_type, server_id, player_id, result_code, time_len]) except Exception, e: err_msg = '发生错误:%s!' % e
def seience_modify(request, player_id=0): if player_id == 0: player_id = int(request.GET.get('player_id', '0')) req_type = 131 result_msgs = {-1:'未知错误', 0:'成功', 1:'更新信息中存在不允许更新的布阵科技ID'} result_code = -1 #modify_science_info = json.dumps(request.POST) # modify_science_info = json.dumps(modify_science_info) log_param = {} request_param = do_filter_seience_param(request.POST, get_seience_info(player_id), log_param) request_param = json.dumps(request_param, ensure_ascii=False) log_param = json.dumps(log_param, ensure_ascii=False) err_msg = '' server_id = int(player_id) >> 20 server_id = center_cache.get_server_config(server_id, 'master_server_id', server_id) req_params = 'req_type=%d&player_id=%s&server_id=%d&modify_science_info=%s' % (req_type, player_id, server_id, request_param) try: result = http_post(game_server_url.GM_PLAYER_URL, req_params, timeout_param=10) result = json.loads(result) print(game_server_url.GM_PLAYER_URL, req_params, result) if result['code'] == 0: result_code = result['content'][0] write_gm_log(request, [req_type, server_id, player_id, result_code, log_param]) except Exception, e: err_msg = '发生错误:%s!' % e
def equip_del(request, player_id=0): req_type = 112 result_msgs = {-1: '未知错误', 0: '成功'} result_code = -1 if player_id == 0: player_id = int(request.GET.get('player_id', '0')) server_id = int(player_id) >> 20 server_id = center_cache.get_server_config(server_id, 'master_server_id', server_id) equip_id = int(request.GET.get('equip_id', '0')) err_msg = '' req_params = 'req_type=%d&player_id=%s&server_id=%d&equip_id=%s' % ( req_type, player_id, server_id, equip_id) try: result = http_post(game_server_url.GM_PLAYER_URL, req_params, timeout_param=10) result = json.loads(result) if result['code'] == 0: result_code = result['content'][0] write_gm_log(request, [req_type, server_id, player_id, result_code, equip_id]) except Exception, e: err_msg = '发生错误:%s!' % e
def equip_add(request, player_id=0): if player_id == 0: player_id = int(request.GET.get('player_id', '0')) req_type = 111 result_msgs = {-1: '未知错误', 0: '成功', 1: '增加列表存在不存在的装备ID'} result_code = -1 err_msg = '' server_id = int(player_id) >> 20 server_id = center_cache.get_server_config(server_id, 'master_server_id', server_id) equip_id = int(request.POST.get('equip_id', '1')) equip_level = int(request.POST.get('equip_level', '0')) equip_num = int(request.POST.get('equip_num', '1')) req_params = 'req_type=%d&player_id=%s&server_id=%d&equip_list=[[%d,%d,%d]]' % ( req_type, player_id, server_id, equip_id, equip_level, equip_num) try: result = http_post(game_server_url.GM_PLAYER_URL, req_params, timeout_param=10) result = json.loads(result) if result['code'] == 0: result_code = result['content'][0] write_gm_log(request, [ req_type, server_id, player_id, result_code, '[%d,%d,%d]' % (equip_id, equip_level, equip_num) ]) except Exception, e: err_msg = '发生错误:%s!' % e
def get_server_info(server_id, net_id=-1, config_type=0): req_type = 502 req_params = 'req_type=%d&server_id=%d&net_id=%s&config_type=%s' % ( int(req_type), int(server_id), net_id, config_type) result = http_post(game_server_url.GM_SERVER_URL, req_params, timeout_param=10) result = json.loads(result) server_info = {} if result['code'] == 0: server_info = result['content'][0] return server_info
def get_seience_info(player_id): req_type = 3 server_id = int(player_id) >> 20 server_id = center_cache.get_server_config(server_id, 'master_server_id', server_id) req_params = 'req_type=%d&player_id=%s&server_id=%d' % (req_type, player_id, server_id) result = http_post(game_server_url.GM_PLAYER_URL, req_params, timeout_param=10) result = json.loads(result) seience_info = {} if result['code'] == 0: seience_info = result['content'][0]['scl'] return seience_info
def post_getServer_list(request): req_params = 'req_type=601' result = http_post(game_server_url.GM_SERVER_URL, req_params, timeout_param=10) result = json.loads(result) msg = '失败' if result != '' and result != None: if result['code'] == '0' or result['code'] == 0: msg = '成功' return HttpResponse(msg)
def get_data(player_id, req_type): server_id = int(player_id) >> 20 server_id = center_cache.get_server_config(server_id, 'master_server_id', server_id) req_params = 'req_type=%d&player_id=%s&server_id=%d' % ( req_type, player_id, server_id) result = None try: result = http_post(game_server_url.GM_PLAYER_URL, req_params, timeout_param=20) result = json.loads(result) if result['code'] == 0: result = result['content'][0] except: pass return result
def army_info(request, player_id=0, is_read=0): req_type = 2 def_params = { "rid": u"武将RAWID", "ia": u"是否在野", "glv": u"武将等级 ", "rnl": u"转生需求等级", "exp": u"武将当前经验 ", "slv": u"士兵星级 ", "scn": u"当前士兵数", "smn": u"默认最大士兵数", "aa": u"武将培养增加值", "ee": u"武将身上的装备", "ha": u"武将体力加成" } if player_id == 0: player_id = int(request.GET.get('player_id', '0')) server_id = int(player_id) >> 20 server_id = center_cache.get_server_config(server_id, 'master_server_id', server_id) req_params = 'req_type=%d&player_id=%s&server_id=%d' % ( req_type, player_id, server_id) list_infos = [] err_msg = '' try: result = http_post(game_server_url.GM_PLAYER_URL, req_params, timeout_param=10) result = json.loads(result) print(game_server_url.GM_PLAYER_URL, req_params, result) if result['code'] == 0: player_info = result['content'][0]['rgl'] for item in player_info: item_info = [] for param in def_params: if item.get(param, None) != None: item_info.append(item.get(param)) list_infos.append(item_info) print(list_infos) except Exception, e: err_msg = '发生错误:%s!' % e
def equip_info(request, player_id=0, is_read=0): req_type = 5 def_params = { "id": u"装备ID", "rawId": u"装备原型ID", "generalName": u"装配武将", "level": u"装备等级", "attribute": u"属性", "mountlvl": u"战魂等级", "pieceNum": u"临时装备删除时间" } if player_id == 0: player_id = int(request.GET.get('player_id', '0')) server_id = int(player_id) >> 20 server_id = center_cache.get_server_config(server_id, 'master_server_id', server_id) req_params = 'req_type=%d&player_id=%s&server_id=%d' % ( req_type, player_id, server_id) list_infos = [] err_msg = '' try: result = http_post(game_server_url.GM_PLAYER_URL, req_params, timeout_param=10) result = json.loads(result) print(game_server_url.GM_PLAYER_URL, req_params, result) if result['code'] == 0: player_info = result['content'][0]['equipList'] for item in player_info: item_info = [] for param in def_params: if item.get(param, None) != None: item_info.append(item.get(param)) else: item_info.append('') list_infos.append(item_info) print(list_infos) except Exception, e: err_msg = '发生错误:%s!' % e
def kingarena_info(request): list_infos = [] list_server = get_server_list() is_search = request.GET.get('is_search', False) server_id = int(request.GET.get('server_id', '0')) err_msg = None if is_search: req_params = 'req_type=505&server_id=%d' % server_id result = '' try: result = http_post(game_server_url.GM_SERVER_URL, req_params, timeout_param=10) result = json.loads(result) except: err_msg = '获取失败!' if result != '' and result != None and err_msg == None: if result['code'] == '0' or result['code'] == 0: country_json = result.get("content")[0] position_param = get_kingarena_position_param(); player_dic = get_kingarena_player_param(); for country in country_json: position_array = [] for p_key in position_param: cname = position_param.get(p_key) value = u"没有数据" player_json = country.get(p_key) if player_json != None and player_json != '': player_attribute = get_king_player_attribute(player_json, player_dic) value = ','.join(player_attribute) tmp = "%s: %s" % (cname, value) position_array.append(tmp) list_infos.append(position_array) parg = {} parg["list_infos"] = list_infos parg["list_server"] = list_server parg["server_id"] = server_id parg["err_msg"] = err_msg return render_to_response('game/kingarena_info.html', parg)
def team_info(request, player_id=0): req_type = 7 def_params = [["createTime", u"创办时间", 0], ["creator", u"创办者ID", 0], ["creatorName", u"创办者姓名", 0], ["declaration", u"留言", 0], ["emblemLv", u"军徵等级", 0], ["kingdom", u"所属国家", 0], ["leader", u"当前领袖ID", 0], ["leaderName", u"当前领袖名字", 0], ["legionLv", u"军团等级", 0], ["name", u"军团名称", 0], ["legionId", u"军团ID", 0]] if player_id == 0: player_id = int(request.GET.get('player_id', 0)) server_id = int(player_id) >> 20 server_id = center_cache.get_server_config(server_id, 'master_server_id', server_id) legion_name = request.GET.get('legion_name', '') req_params = 'req_type=%d&player_id=%s&server_id=%d&legion_name=%s' % ( req_type, player_id, server_id, legion_name) list_infos = [] try: result = http_post(game_server_url.GM_PLAYER_URL, req_params, timeout_param=10) result = json.loads(result) print(game_server_url.GM_PLAYER_URL, req_params, result) if result['code'] == 0: player_info = result['content'][0] for item in def_params: if player_info.get(item[0], None) != None: list_infos.append({ 'name': item[1], 'key': item[0], 'value': player_info.get(item[0]), 'is_modify': item[2] }) except Exception, e: err_msg = '发生错误:%s!' % e
def post(request): player_id = get_value(request, 'player_id', 0, int) server_id = int(player_id) >> 20 server_id = center_cache.get_server_config(server_id, 'master_server_id', server_id) req_type = 141 data = [] append_hunshi = get_value(request, 'append_hunshi', None, int) if None != append_hunshi: data.append(append_hunshi) else: data.append(0) for index in range(1, 21): #1 到 20 append_value = get_value(request, 'append_zhanhun_%s' % index, None, int) if None != append_value: data.append(append_value) else: data.append(0) try: request_param = json.dumps({"data": data}) req_params = 'req_type=%d&player_id=%s&server_id=%d&modify_battle_heart_info=%s' % ( req_type, player_id, server_id, request_param) print req_params result = http_post(game_server_url.GM_PLAYER_URL, req_params, timeout_param=10) result = json.loads(result) print result except Exception, ex: print ex return HttpResponse(ex)
def shutup_list(request, server_id=0): req_type = 503 server_id = int(server_id) if server_id == 0: server_id = int(request.GET.get('server_id', '0')) net_id = request.GET.get('net_id', '-1') req_params = 'req_type=%d&server_id=%d&net_id=%s' % (req_type, server_id, net_id) list_record = [] try: result = http_post(game_server_url.GM_SERVER_URL, req_params, timeout_param=10) result = json.loads(result) print(game_server_url.GM_SERVER_URL, req_params, result) list_shutup = [] if result['code'] == 0: list_shutup = result['content'][0] conn = getConn(server_id) cursor = conn.cursor() sql2 = 'select player_id,player_name,channel_id,user_type,link_key,login_num,mobile_key,last_time,create_time,status from player_%d where player_id in(%s)' % ( server_id, ','.join(list_shutup)) cursor.execute(sql2) list_tmp = cursor.fetchall() cursor.close() int_time = int(time.time()) for item in list_tmp: # print(item) item = list(item) item.append(list_shutup.get(str(item[0]), 0) - int_time) list_record.append(item) except Exception, e: pass
def player_unshutup(request, player_id=0): if player_id == 0: player_id = int(request.GET.get('player_id', '0')) req_type = 103 result_msgs = {-1: '未知错误', 0: '成功'} result_code = -1 server_id = int(player_id) >> 20 server_id = center_cache.get_server_config(server_id, 'master_server_id', server_id) req_params = 'req_type=%d&player_id=%s&server_id=%d' % ( req_type, player_id, server_id) err_msg = '' try: result = http_post(game_server_url.GM_PLAYER_URL, req_params) result = json.loads(result) print(game_server_url.GM_PLAYER_URL, req_params, result) if result['code'] == 0: result_code = result['content'][0] except Exception, e: err_msg = '发生错误:%s!' % e
def get_Top300list(request): s = int(request.GET.get('s', 0)) server_id = int(request.GET.get('server_id', 0)) if 0 == server_id: server_id = int(request.POST.get('server_id', 0)) server_list = center_cache.get_server_list() data_list = [] if 1 == s: req_type = 507 req_params = 'req_type=%d&server_id=%d' % (int(req_type), int(server_id)) result = http_post(game_server_url.GM_SERVER_URL, req_params, timeout_param=10) print result result = json.loads(result) if result['code'] == 0: content_list = result['content'] for item in content_list: for key in item: data_item = {} date = datetime.datetime.fromtimestamp(float(key)) data_item['date'] = date.strftime('%Y-%m-%d') data_item['player_list'] = item.get(key, []) data_list.append(data_item) parg = {} parg['server_list'] = server_list parg['data_list'] = data_list return render_to_response('game/arena_list.html', parg)
def train_info(request, player_id=0, is_read=0): req_type = 4 def_params = { "gi": u"武将ID", "ft": u"训练结束时间", "tt": u"训练类型", "lu": u"最后更新时间" } #"pn":"训练位置","tl":"训练列表","hft":"突飞CD完成时间","hil":"突飞CD完成时间", if player_id == 0: player_id = int(request.GET.get('player_id', 0)) server_id = int(player_id) >> 20 server_id = center_cache.get_server_config(server_id, 'master_server_id', server_id) req_params = 'req_type=%d&player_id=%s&server_id=%d' % ( req_type, player_id, server_id) list_infos = [] err_msg = '' try: result = http_post(game_server_url.GM_PLAYER_URL, req_params, timeout_param=10) result = json.loads(result) print(game_server_url.GM_PLAYER_URL, req_params, result) if result['code'] == 0: train_info = result['content'][0]['tl'] for item in train_info: item_info = [] for param in def_params: if item.get(param, None) != None: item_info.append(item.get(param)) list_infos.append(item_info) except Exception, e: err_msg = '发生错误:%s!' % e
def hero_add(request, player_id=0): req_type = 121 result_msgs = { -1: '未知错误', 0: '成功', 2: '玩家不存在', 3: '该英雄已可招募', 4: '不存在该ID的英雄' } result_code = -1 err_msg = '' hero_id = int(request.POST.get('hero_id', '0')) if player_id == 0: player_id = int(request.GET.get('player_id', '0')) if player_id == 0: player_id = int(request.POST.get('player_id', '0')) server_id = int(player_id) >> 20 server_id = center_cache.get_server_config(server_id, 'master_server_id', server_id) req_params = 'req_type=%d&player_id=%s&server_id=%d&hero_id=%s' % ( req_type, player_id, server_id, hero_id) try: result = http_post(game_server_url.GM_PLAYER_URL, req_params, timeout_param=10) result = json.loads(result) if result['code'] == 0: result_code = result['content'][0] write_gm_log(request, [req_type, server_id, player_id, result_code, hero_id]) except Exception, e: err_msg = '发生错误:%s!' % e
def build_info(request, player_id=0, is_read=0): req_type = 6 def_params = { 0: u"主城", 1: u"银库", 2: u"民居一", 3: u"民居二", 4: u"民居三", 5: u"民居四", 6: u"商店", 7: u"校场", 8: u"军机处", 9: u"粮仓", 10: u"市场", 11: u"兵营", 12: u"民居五", 13: u"民居六", 14: u"民居七", 15: u"账房", 16: u"民居八", 17: u"铸币厂", 18: u"民居九", 19: u"驿站", 20: u"钱庄", 21: u"民居十", 22: u"第二校场", 23: u"纺织局", 24: u"铁匠铺" } if player_id == 0: player_id = int(request.GET.get('player_id', '0')) server_id = int(player_id) >> 20 server_id = center_cache.get_server_config(server_id, 'master_server_id', server_id) req_params = 'req_type=%d&player_id=%s&server_id=%d' % ( req_type, player_id, server_id) list_infos = [] err_msg = '' try: result = http_post(game_server_url.GM_PLAYER_URL, req_params, timeout_param=10) result = json.loads(result) print(game_server_url.GM_PLAYER_URL, req_params, result) if result['code'] == 0: build_list = result['content'][0]['buildingList'] for item in build_list: if def_params.get(item['rawId'], None) != None: list_infos.append({ 'name': def_params.get(item['rawId'], '未知'), 'key': item['rawId'], 'value': item['level'], 'is_modify': 0 }) except Exception, e: err_msg = '发生错误:%s!' % e
if err_msg == '': log_param = {} #<QueryDict: {u'jl': [u'50000'], u'append_gl': [u''], u'append_fd': [u''], u'append_sn': [u''], u'append_sl': [u''], u'append_ww': [u''], u'rg': [u'0'], u'append_rg': [u''], u'ww': [u'200'], u'append_jl': [u''], u'append_jg': [u''], u'fd': [u'6000'], u'sn': [u'4000'], u'jg': [u'410'], u'sl': [u'125'], u'gl': [u'1905']}> request_param = do_filter_player_param(player_info, source_player_info, log_param, req_type) #过滤 没被修改的参数,并纪录到日志集合 log_param = json.dumps(log_param, ensure_ascii=False) request_param = json.dumps(request_param, ensure_ascii=False) #转化字符串 req_params = 'req_type=%d&player_id=%s&server_id=%d&edited_player_info=%s' % ( req_type, player_id, server_id, request_param) err_msg = '' try: result = http_post(game_server_url.GM_PLAYER_URL, req_params, timeout_param=10) result = json.loads(result) print(game_server_url.GM_PLAYER_URL, req_params, result) if result['code'] == 0: result_code = result['content'][0] write_gm_log( request, [req_type, server_id, player_id, result_code, log_param ]) #写日志,保存到数据库 except Exception, e: err_msg = '发生错误:%s!' % e result_msg = result_msgs.get(result_code, '') else: result_msg = err_msg
def send_msg(request, server_id=0): server_id = int(server_id) player_id = int(request.GET.get('player_id', '0')) if player_id == 0: player_id = int(request.POST.get('player_id', '0')) if server_id == 0: server_id = int(request.GET.get('server_id', '0')) if server_id == 0: server_id = int(request.POST.get('server_id', '0')) usm = UserStateManager(request) server_list = [] if server_id == 0: if usm.current_userRole_is_root(): server_list = get_server_list() else: server_list = usm.get_the_user().server.all() err_msg = '' if request.method == 'POST': result_msgs = {-1: '未知错误', 0: '成功'} result_code = -1 if not usm.current_userRole_is_root(): the_user = usm.get_the_user() user_server_list = [] for server in the_user.server.all(): user_server_list.append(server.id) if not user_server_list.__contains__(server_id): return HttpResponse(u'没有权限') server_id = center_cache.get_server_config(server_id, 'master_server_id', server_id) msg_content = request.POST.get('content', '').encode('utf-8') try: if player_id > 0: if request.POST.get('msg_type', '0') == '0': req_type = 612 else: req_type = 616 req_params = 'req_type=%d&server_id=%d&reciver_id=%s&msg_content=%s' % ( req_type, server_id, player_id, msg_content) else: req_type = 611 net_id = request.GET.get('net_id', '-1') req_params = 'req_type=%d&server_id=%d&net_id=%s&msg_content=%s' % ( req_type, server_id, net_id, msg_content) result = http_post(game_server_url.GM_SERVER_URL, req_params, timeout_param=10) result = json.loads(result) print(game_server_url.GM_SERVER_URL, req_params, result) if result['code'] == 0: result_code = result['content'][0] write_gm_log( request, [req_type, server_id, player_id, result_code, msg_content]) except Exception, e: err_msg = '发生错误%s' % e #print(u'发生错误:%s' % e) result_msg = result_msgs.get(result_code, '') parg = {} parg["err_msg"] = err_msg parg["result_msg"] = result_msg return render_to_response('game/feedback.html', locals())
def server_modify(request, server_id=0): server_id = int(server_id) if server_id == 0: server_id = int(request.GET.get('server_id', '0')) err_msg = '' #*****定时任务设置参数 **************** task_setting = int(request.GET.get('task_setting', 0)) trigger_time = request.GET.get('trigger_time', '') recover_time = request.GET.get('recover_time', '') if 1 == task_setting: try: trigger_time = datetime.datetime.strptime(trigger_time, '%Y-%m-%d %H:%M:%S') recover_time = datetime.datetime.strptime(recover_time, '%Y-%m-%d %H:%M:%S') except: err_msg = '请输入正确的时间格式' #*****定时任务设置参数 END *********** is_ajax = request.GET.get('ajax', False) req_type = 606 result_msgs = {-1: u'未知错误', 0: u'成功'} result_code = -1 config_json = request.POST # modify_science_info = json.dumps(modify_science_info) net_id = request.GET.get('net_id', '-1') config_type = request.GET.get('config_type', '0') source_server_info = get_server_info(server_id, net_id, config_type) log_param = {} request_param = do_filter_server_param(config_json, source_server_info, log_param) #需要设置定时任务 if task_setting == 1: server = Server.objects.get(id=server_id) recover_data = {} for modify_param_key in request_param: recover_data[modify_param_key] = source_server_info.get( modify_param_key) setting_task(server, net_id, trigger_time, recover_time, recover_data, request_param) if is_ajax: return HttpResponse('{code:0,msg:"设置成功"}') return render_to_response('game/feedback.html', {"result_msg": u"设置成功"}) request_param = json.dumps(request_param, ensure_ascii=False) #转化字符串 log_param = json.dumps(log_param, ensure_ascii=False) req_params = 'req_type=%d&server_id=%d&net_id=%s&config_type=%s&config_json=%s' % ( req_type, server_id, net_id, config_type, request_param) try: result = http_post(game_server_url.GM_SERVER_URL, req_params, timeout_param=10) result = json.loads(result) #print(game_server_url.GM_SERVER_URL, req_params, result) if result['code'] == 0: result_code = result['content'][0] write_gm_log(request, [req_type, server_id, net_id, result_code, log_param]) except Exception, e: err_msg = u'发生错误%s' % e
gm_def.url = server_cfg.get('gm_url', gm_def.url) #组装内部参数(JSON格式参数) for key, value in json_param.items(): req_params += '&%s=%s' % (key, json.dumps(value)) #参数处理完毕 req_params = req_params.encode('utf-8') print '***************gm -log*******************' print u'request param::::', req_params result_json_str = '' try: #gm_def.url = 'http://203.195.147.115:8082/gm' #req_params = 'req_type=obtainquestionlist&server_id=1&secure_key=le1dou' result_json_str = http_post(gm_def.url, req_params, timeout_param=120) fb = None try: now = datetime.datetime.now() log_path = '/data/gm.log' if getsize(log_path) > 3010632: shutil.move( log_path, '/data/gm_%s.log' % (now.strftime('%Y-%m-%d_%H-%M-%S'))) fb = open('/data/gm.log', 'a') fb.write( '========================[%s]===========================\n' % now.strftime('%m-%d %H:%M:%S')) fb.write('REQUEST:\n') fb.write(gm_def.url) fb.write('\n')