Ejemplo n.º 1
0
def notice_del_confirm(request):
    """
    删除广播确认
    """
    if request.method == 'POST':
        uid = str(request.POST.get("uid"))
        del_notice_dict = dict()
        all_cmem_dict = server_define.CMEM_MAP
        for key, val in all_cmem_dict.items():
            cmem_url = str(val)
            if cmem_url:
                server_notice_box_model = memcache.get_cmem_val(cmem_url, model_define.NOTICE_MODEL)
                if server_notice_box_model:
                    memcache.put_cmem_val(cmem_url, model_define.NOTICE_MODEL, server_notice_box_model)
                    print server_notice_box_model
                    check_notice_expiry(server_notice_box_model)
                    notices_lst = server_notice_box_model['notices']
                    if notices_lst:
                        for notice_dict in notices_lst:
                            if notice_dict:
                                if uid == str(notice_dict['uid']):
                                    del_notice_dict = notice_dict
                                    break

        del_notice_dict['start_time'] = str(del_notice_dict['start_time'].strftime('%Y-%m-%d %H:%M:%S'))
        del_notice_dict['expiry_date'] = str(del_notice_dict['expiry_date'].strftime('%Y-%m-%d %H:%M:%S'))
        return render_to_response("notice/notice_del_confirm.html", {'notice_info': del_notice_dict,'head_lst': head_lst}, RequestContext(request))
    else:
        return HttpResponseRedirect('/Tyranitar6/server/notice_lst/')
Ejemplo n.º 2
0
def system_mail_del(request):
    """
    删除系统邮件
    """
    if request.method == "POST":
        version = str(request.POST.get("version"))
        del_notice_dict = dict()
        all_cmem_dict = server_define.CMEM_MAP
        for key, val in all_cmem_dict.items():
            cmem_url = str(val)
            if cmem_url:
                server_notice_box_model = memcache.get_cmem_val(cmem_url, model_define.SYSTEM_MAIL_BOX_MODEL)
                if server_notice_box_model:
                    memcache.put_cmem_val(cmem_url, model_define.SYSTEM_MAIL_BOX_MODEL, server_notice_box_model)
                    print server_notice_box_model
                    check_system_expiry(server_notice_box_model)
                    notices_lst = server_notice_box_model["mails"]
                    if notices_lst:
                        for notice_dict in notices_lst:
                            if notice_dict:
                                if version == str(notice_dict["version"]):
                                    server_notice_box_model["mails"].remove(notice_dict)
                                    memcache.put_cmem_val(
                                        cmem_url, model_define.SYSTEM_MAIL_BOX_MODEL, server_notice_box_model
                                    )
                                    # 操作日志记录
                                    manager = GameManager.get_by_request(request)
                                    insert_action_delete_mail(manager, version)
                                    break

        return HttpResponseRedirect("/Tyranitar6/server/system_mail_lst/")
    else:
        return render_to_response("system_mail/system_mail_add.html", RequestContext(request))
Ejemplo n.º 3
0
def notice_del(request):
    """
    删除广播
    """
    if request.method == 'POST':
        uid = str(request.POST.get("uid"))
        # del_notice_dict = dict()
        all_cmem_dict = server_define.CMEM_MAP
        for key, val in all_cmem_dict.items():
            cmem_url = str(val)
            if cmem_url:
                server_notice_box_model = memcache.get_cmem_val(cmem_url, model_define.NOTICE_MODEL)
                if server_notice_box_model:
                    print server_notice_box_model
                    check_notice_expiry(server_notice_box_model)
                    notices_lst = server_notice_box_model['notices']
                    if notices_lst:
                        for notice_dict in notices_lst:
                            if notice_dict:
                                if uid == str(notice_dict['uid']):
                                    # del_notice_dict = notice_dict
                                    server_notice_box_model['notices'].remove(notice_dict)
                                    memcache.put_cmem_val(cmem_url, model_define.NOTICE_MODEL, server_notice_box_model)
                                    # 操作日志记录
                                    manager = GameManager.get_by_request(request)
                                    insert_action_delete_notice(manager, uid)
                                    break

        return HttpResponseRedirect('/Tyranitar6/server/notice_lst/')
    else:
        return render_to_response("notice/notice_add.html",RequestContext(request))
Ejemplo n.º 4
0
def notice_lst(request):
    """
    广播列表
    """
    data = {}
    table_list = []
    all_background_notice_dict = dict()
    all_cmem_dict = server_define.CMEM_MAP
    for key, val in all_cmem_dict.items():
        cmem_url = str(val)
        if cmem_url:
            server_notice_box_model = memcache.get_cmem_val(cmem_url, model_define.NOTICE_MODEL)
            if server_notice_box_model:
                # server_notice_box_model = {
                #     'uid': 'game_notice',
                #     'notices': [],
                #     'player_notices': [],
                #     'seq_id': 1
                # }
                # server_notice_box_model = memcache.put_cmem_val(cmem_url, model_define.NOTICE_MODEL, server_notice_box_model)
                memcache.put_cmem_val(cmem_url, model_define.NOTICE_MODEL, server_notice_box_model)
                print server_notice_box_model
                check_notice_expiry(server_notice_box_model)
                notices_lst = server_notice_box_model['notices']
                if notices_lst:
                    for notice_dict in notices_lst:
                        if notice_dict:
                            notice_uid = notice_dict['uid']
                            # if notice_uid in all_background_notice_dict:
                            #     print("notice_uid: "+str(notice_uid))
                            #     notice_dict['server_id'] = notice_dict.get('server_id','')+","+str(key)
                            # else:
                            #     notice_dict['server_id'] = str(key)
                            all_background_notice_dict[notice_uid] = notice_dict

    print("all_background_notice_dict: "+str(all_background_notice_dict))
    for key_uid, value in all_background_notice_dict.items():
        if value:
            temp_content = []
            temp_content.insert(0,str(key_uid))
            temp_content.insert(1,value['server_id'])
            temp_content.insert(2,str(value['content']))
            temp_content.insert(3,value['start_time'].strftime('%Y-%m-%d %H:%M:%S'))
            temp_content.insert(4,value['expiry_date'].strftime('%Y-%m-%d %H:%M:%S'))
            temp_content.insert(5,str(value['distance_time']))
            table_list.append(temp_content)

    data['notice_info'] = table_list
    data['head_lst'] = head_lst
    return render_to_response("notice/notice_lst.html", data, RequestContext(request))
Ejemplo n.º 5
0
def remove_monster(manager, user_id, server_id, uid, star_level, level):
    """
        移除一个怪
    """
    cmem_url = server_define.CMEM_MAP[int(server_id)]
    monster_model = memcache.get_cmem_val(cmem_url, model_define.MONSTER_MODEL.format(user_id=str(user_id)))
    for mon in monster_model["monsters"]:
        if mon["uid"] == int(uid):
            monster_tid = mon["tid"]
            monster_model["monsters"].remove(mon)
            memcache.put_cmem_val(cmem_url, model_define.MONSTER_MODEL.format(user_id=str(user_id)), monster_model)
            # 操作日志记录
            insert_action_delete_monster(manager, server_id, user_id, uid, monster_tid, star_level, level)
            break
def set_player_activity_regist_recharge_function(value_dict):
    """
    修改memcache数据

    value_dict['tem_id'] has_reward_lst$$0 complete_id$$-1  active_id$$-1
    value_dict['input_value'] int
    """
    cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])]
    if cmem_url:
        if len(value_dict['user_id']):
            source = memcache.get_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_REGIST_RECHARGE_MODEL.format(user_id=value_dict['user_id']))
            try:
                print 'this is source is: ', source
                # second_key 是int类型
                input_value = int(value_dict['input_value'])
                (first_key, second_key) = value_dict['item_id'].split('$$')
                second_key = int(second_key)
                if second_key >= 0:     # has_reward_lst
                    if input_value == 0:
                        source[first_key].remove(second_key)
                    elif input_value == 1:
                        source[first_key].append(second_key)
                    else:
                        return False
                elif second_key == -1:  # complete_id     active_id
                    source[first_key] = input_value
                else:
                    return False
            except:
                return False
            # source = {'uid': '1000103005', 'complete_id': 2, 'recharge_date': datetime.date(2015, 8, 1), 'has_reward_lst': [1], 'reward_end_date': datetime.date(2015, 7, 25), 'active_id': 4}
            # 传回 url  uid  以及数据 做外层检测
            result = memcache.put_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_REGIST_RECHARGE_MODEL.format(user_id=value_dict['user_id']), source)
            return result
Ejemplo n.º 7
0
def add_item(value_dict):
    '''
    增加物品push memcache

    '''
    user_id = int(value_dict['user_id'])
    item_tid = int(value_dict['item_id'])
    server_id = int(value_dict['server_id'])
    cmem_url = server_define.CMEM_MAP[server_id]

    if cmem_url:
        if user_id:
            source = memcache.get_cmem_val(cmem_url, model_define.TREASURE_ITEM_MODEL.format(user_id=user_id))
            for _dict in source['treasure_items']:
                if item_tid == _dict['tid']:
                    print ' same'
                    return False
            print source
            source['treasure_items'].append(
                {'tid': item_tid,
                 'phase': 0,
                 'level': 1,
                 'uid': source['seq'],
                 'level_exp': 0}
            )
            source['seq'] += 1
            result = memcache.put_cmem_val(cmem_url, model_define.TREASURE_ITEM_MODEL.format(user_id=user_id),source)
            return result
def set_player_activity_time_limited_shift_shop_function(value_dict):
    """
    修改memcache数据

    value_dict['tem_id'] u'2'$$'num_dict'
    value_dict['input_value'] int
    """
    cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])]
    if cmem_url:
        if len(value_dict['user_id']):
            source = memcache.get_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_TIME_LIMITED_SHIFT_SHOP_MODEL.format(user_id=value_dict['user_id']))
            # print 'source__', source
            try:
                input_int_val = int(value_dict['input_value'])
                (second_key, first_key) = (value_dict['item_id']).split('$$')        # 要修改的key
                second_key = int(second_key)
                if input_int_val > 0 and second_key > 0:
                    if second_key in source[first_key].keys():
                        source[first_key][second_key] = input_int_val
                    else:
                        source[first_key].update({second_key: input_int_val})
                elif input_int_val == 0 and second_key > 0:
                    if second_key in source[first_key].keys():
                        source[first_key].pop(second_key)
                else:
                    return False
            except:
                return False
            # 传回 url  uid  以及数据 做外层检测
            result = memcache.put_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_TIME_LIMITED_SHIFT_SHOP_MODEL.format(user_id=value_dict['user_id']), source)
            return result
def set_player_catch_monster_function(value_dict):
    """
    修改memcache数据

    tem_id 40801 value_dict['input_value'] num
    """
    cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])]
    if cmem_url:
        if len(value_dict['user_id']):
            source = memcache.get_cmem_val(cmem_url, model_define.CATCH_MONSTER_MODEL.format(user_id=value_dict['user_id']))
            try:
                stage_id = int(value_dict['item_id'])
                input_value = int(value_dict['input_value'])
                print stage_id, input_value

                if 0 <= input_value:
                    index_id = source['catch_monster_stage_id_lst'].index(stage_id)
                    source['catch_monster_stage_lst'][index_id] = input_value
                else:
                    return False
            except:
                return False
            # 传回 url  uid  以及数据 做外层检测
            result = memcache.put_cmem_val(cmem_url, model_define.CATCH_MONSTER_MODEL.format(user_id=value_dict['user_id']), source)
            return result
Ejemplo n.º 10
0
def set_player_treasure_function(value_dict):
    """
    修改memcache数据

    value_dict['tem_id'] 100001 or 'treasure_point' or  'reset_treasure_count'
    """
    cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])]
    if cmem_url:
        if len(value_dict['user_id']):
            source = memcache.get_cmem_val(cmem_url, model_define.TREASURE_MODEL.format(user_id=value_dict['user_id']))
            try:
                treasure_debris_id = int(value_dict['item_id'])
                if int(value_dict['input_value']) >= 0:
                    source['treasure_fragment_dict'][treasure_debris_id] = int(value_dict['input_value'])
                else:
                    return False
            except:
                try:
                    key = str(value_dict['item_id'])
                    if isinstance(source[key], int):
                        if int(value_dict['input_value']) >= 0:
                            source[key] = int(value_dict['input_value'])
                    else:
                        return False
                except:
                    return False
            # 传回 url  uid  以及数据 做外层检测
            result = memcache.put_cmem_val(cmem_url, model_define.TREASURE_MODEL.format(user_id=value_dict['user_id']), source)
            return result
Ejemplo n.º 11
0
def set_union_stage_function(value_dict):
    """
    修改memcache数据

    tem_id 30057$$num
    """
    cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])]
    if cmem_url:
        if len(value_dict['user_id']):# 注 此处user_id 是union_id
            source = memcache.get_cmem_val(cmem_url, model_define.UNION_STAGE_CAS_MODEL.format(union_id=value_dict['union_id']))
            # try:
            #     (first_key, second_key) = value_dict['item_id'].split('$$')
            #     first_key = int(first_key)
            #     input_value = int(value_dict['input_value'])
            #     second_key = str(second_key)
            #     # print first_key, second_key, input_value
            #
            #     if 'num' == second_key and 0 <= input_value:
            #         source['stages'][first_key][second_key] = input_value
            #     elif 'rank' == second_key and (0 == input_value or -1 == input_value):
            #         source['stages'][first_key][second_key] = input_value
            #     elif 'buy_count' == second_key and 0 <= input_value:
            #         source['stages'][first_key][second_key] = input_value
            #     else:
            #         return False
            # except:
            #     return False
            # 传回 url  uid  以及数据 做外层检测
            result = memcache.put_cmem_val(cmem_url, model_define.UNION_STAGE_CAS_MODEL.format(union_id=value_dict['union_id']), source)
            return result
def set_player_activity_weixin_share_function(value_dict):
    """
    修改memcache数据

    value_dict['tem_id'] has_reward_lst&&1   or complete$$1
    value_dict['input_value'] int
    """
    cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])]
    if cmem_url:
        if len(value_dict['user_id']):
            source = memcache.get_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_WEIXIN_SHARE_MODEL.format(user_id=value_dict['user_id']))
            # print 'source_neww', source,"ss"
            try:
                input_val = int(value_dict['input_value'])
                (first_key, second_val) = value_dict['item_id'].split('$$')
                second_val = int(second_val)
                if 0 == input_val:
                    if second_val in source[first_key]:
                        source[first_key].remove(second_val)
                elif 1 == input_val:
                    if second_val not in source[first_key]:
                        source[first_key].append(second_val)
                else:
                    return False
            except:
                return False
            # 传回 url  uid  以及数据 做外层检测
            result = memcache.put_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_WEIXIN_SHARE_MODEL.format(user_id=value_dict['user_id']), source)
            return result
Ejemplo n.º 13
0
def set_stage_data_function(value_dict):
    """
    修改memcache数据

    tem_id 30057$$num
    """
    cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])]
    if cmem_url:
        if len(value_dict['user_id']):
            source = memcache.get_cmem_val(cmem_url, model_define.STAGE_MODEL.format(user_id=value_dict['user_id']))
            try:
                (first_key, second_key) = value_dict['item_id'].split('$$')
                first_key = int(first_key)
                input_value = int(value_dict['input_value'])
                second_key = str(second_key)
                # print first_key, second_key, input_value

                if 'num' == second_key and 0 <= input_value:
                    source['stages'][first_key][second_key] = input_value
                elif 'rank' == second_key and (0 == input_value or -1 == input_value):
                    source['stages'][first_key][second_key] = input_value
                elif 'buy_count' == second_key and 0 <= input_value:
                    source['stages'][first_key][second_key] = input_value
                else:
                    return False
            except:
                return False
            # 传回 url  uid  以及数据 做外层检测
            result = memcache.put_cmem_val(cmem_url, model_define.STAGE_MODEL.format(user_id=value_dict['user_id']), source)
            return result
Ejemplo n.º 14
0
def system_mail_del_confirm(request):
    """
    删除邮件确认
    """
    if request.method == "POST":
        version = str(request.POST.get("version"))
        del_notice_dict = dict()
        all_cmem_dict = server_define.CMEM_MAP
        for key, val in all_cmem_dict.items():
            cmem_url = str(val)
            if cmem_url:
                server_notice_box_model = memcache.get_cmem_val(cmem_url, model_define.SYSTEM_MAIL_BOX_MODEL)
                if server_notice_box_model:
                    memcache.put_cmem_val(cmem_url, model_define.SYSTEM_MAIL_BOX_MODEL, server_notice_box_model)
                    print server_notice_box_model
                    check_system_expiry(server_notice_box_model)
                    notices_lst = server_notice_box_model["mails"]
                    if notices_lst:
                        for notice_dict in notices_lst:
                            if notice_dict:
                                if version == str(notice_dict["version"]):
                                    del_notice_dict = notice_dict
                                    break

        del_notice_dict["send_time"] = str(del_notice_dict["send_time"].strftime("%Y-%m-%d %H:%M:%S"))
        del_notice_dict["expiry_date"] = str(del_notice_dict["expiry_date"].strftime("%Y-%m-%d %H:%M:%S"))
        item_config = game_config.get_item_config(del_notice_dict["item"])
        if item_config:
            del_notice_dict["item"] = str(item_config["name"])
        else:
            del_notice_dict["item"] = str(u"")

        monster_config = game_config.get_monster_config(del_notice_dict["monster"])
        if monster_config:
            del_notice_dict["monster"] = str(monster_config["name"])
        else:
            del_notice_dict["monster"] = str(u"")

        return render_to_response(
            "system_mail/system_mail_del_confirm.html",
            {"system_mail_info": del_notice_dict, "head_lst": head_lst},
            RequestContext(request),
        )
    else:
        return HttpResponseRedirect("/Tyranitar6/server/system_mail_lst/")
Ejemplo n.º 15
0
def notice_update(request):
    """
    更新广播
    """
    if request.method == 'POST':
        content = str(request.POST.get('content'))
        start_time = datetime.datetime.strptime(request.POST.get('start_time'),"%Y-%m-%d %H:%M:%S")
        end_time = datetime.datetime.strptime(request.POST.get('end_time'),"%Y-%m-%d %H:%M:%S")
        distance_time = int(request.POST.get('distance_time'))
        str_server_id = str(request.POST.get('server_id'))
        uid = str(request.POST.get('uid'))

        #插入系统邮件
        notice = dict()
        notice['content'] = content
        notice['start_time'] = start_time
        notice['distance_time'] = distance_time
        notice['expiry_date'] = end_time
        notice['server_id'] = str_server_id
        notice['uid'] = uid
        print("notice: "+str(notice))
        server_int_lst = string_split_to_int_list(str_server_id,',')
        for server_int in server_int_lst:
            cmem_url = server_define.CMEM_MAP[int(server_int)]
            if cmem_url:
                server_notice_box_model = memcache.get_cmem_val(cmem_url, model_define.NOTICE_MODEL)
                if not server_notice_box_model:
                    server_notice_box_model = {
                        'uid': 'game_notice',
                        'notices': [],
                        'player_notices': [],
                        'seq_id': '20150729_1'
                    }
                add_background_notice(server_notice_box_model,notice)
                print("server_notice_box_model: "+str(server_notice_box_model))
                memcache.put_cmem_val(cmem_url, model_define.NOTICE_MODEL, server_notice_box_model)

                # 操作日志记录
                manager = GameManager.get_by_request(request)
                insert_action_update_notice(manager, notice)

        return HttpResponseRedirect('/Tyranitar6/server/notice_lst/')
    else:
        return render_to_response("notice/notice_add.html",RequestContext(request))
Ejemplo n.º 16
0
def body_forbiden(request):
    server_id =  request.POST.get('server_id')
    # manager = GameManager.get_by_request(request)
    # btn_lst = manager.check_admin_permission()
    # if btn_lst:
    head_lst = [
        {'width': 70, 'name': u'日期'},
        {'width': 50, 'name': u'UID'},
        {'width': 55, 'name': u'昵称'},
        {'width': 50, 'name': u'等级'},
        {'width': 50, 'name': u'VIP等级'},
        {'width': 50, 'name': u'聊天内容'},
        {'width': 50, 'name': u'服务器ID'},
        {'width': 50, 'name': u'封禁'},
    ]
    server_list_dat = server_list.get_server_list_dat()
    if request.method == 'POST':
        server_id =  request.POST.get('server')
        user_id = request.POST.get('user_id')
        cmem_url=server_define.CMEM_MAP[int(server_id)]
        row_lst = _get_chat_content(server_id)
        for i in range(len(row_lst)):
            row_lst[i-1].append(server_id)
        if cmem_url:
            try:
                source=memcache.get_cmem_val(cmem_url,model_define.USER_MODEL.format(user_id=user_id))
                source['state']=USER_STATE_FREEZE
                memcache.put_cmem_val(cmem_url,model_define.USER_MODEL.format(user_id=user_id),source)
            except:
                print 'Error: not Forzen'
        return render_to_response("gm/get_chat_content.html",
                                  # {'account': manager.account, 'btn_lst': btn_lst,
                                   {'row_lst': row_lst,
                                   'head_lst': head_lst, 'server_list': server_list_dat,'cur_server_id':server_id}, RequestContext(request))
    else:
        server_id =  request.POST.get('server')
        row_lst = _get_chat_content(server_id)
        for i in range(len(row_lst)):
            row_lst[i-1].append(server_id)
        return render_to_response("gm/get_chat_content.html",
                                  # {'account': manager.account, 'btn_lst': btn_lst,
                                   {
                                      'row_lst': row_lst,
                                   'head_lst': head_lst, 'server_list': server_list_dat,'cur_server_id':server_id,}, RequestContext(request))
Ejemplo n.º 17
0
def player_commit_bugs_del_all(request):
    """
    删除玩家提交的BUG
    """
    if request.method == 'POST':
        server_id = int(request.POST.get("server_id"))
        cmem_url = str(server_define.CMEM_MAP.get(server_id))
        if cmem_url:
            player_commit_bugs_model = memcache.get_cmem_val(cmem_url, model_define.PLAYER_COMMIT_BUGS_MODEL)
            if player_commit_bugs_model:
                print player_commit_bugs_model
                remove_all_bugs(player_commit_bugs_model)
                memcache.put_cmem_val(cmem_url, model_define.PLAYER_COMMIT_BUGS_MODEL, player_commit_bugs_model)

                # 操作日志记录
                manager = GameManager.get_by_request(request)
                insert_action_delete_bug_all(manager)

    return HttpResponseRedirect('/Tyranitar6/server/player_commit_bugs_lst/')
Ejemplo n.º 18
0
def set_player_team_function(value_dict):
    """
    修改memcache数据
                        key2$$key1$$key3(>=0才有)
    value_dict['tem_id'] 0$$team_monsters$$None
    value_dict['tem_id'] 0$$team_equips$$0
    value_dict['input_value'] int
    """
    print "PWPIASD"
    cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])]
    if cmem_url:
        if len(value_dict['user_id']):
            source = memcache.get_cmem_val(cmem_url, model_define.TEAM_MODEL.format(user_id=value_dict['user_id']))

            try:
                (second_key, first_key, three_key) = value_dict['item_id'].split('$$')
                input_value = int(value_dict['input_value'])
                print first_key, second_key, three_key, input_value, "A"
                first_key, second_key, three_key = str(first_key), int(second_key), int(three_key)
                print first_key, second_key, three_key, input_value, "B"
                print "PWPIASD111114"
                if 0 <= second_key and 0 <= input_value:
                    if 0 <= three_key:                                      # 装备宝石 二维数组
                        if input_value not in source[first_key][second_key] and 0 < input_value:    # 重复UID检测
                            print "PWPIASD111116"
                            source[first_key][second_key][three_key] = input_value
                            print "PWPIASD111117"
                        elif 0 == input_value:
                            source[first_key][second_key][three_key] = input_value
                        else:
                            print 'repetition'
                            return False
                    else:                                                   # 宠物 一维数组
                        """注:宠物tid uid 都不能重复"""
                        if input_value not in source[first_key] and 0 < input_value:            # 重复 UID 检测
                            print "PWPIASD11111511"
                    #     if three_key <= 0:
                            source[first_key][second_key] = input_value
                            print "PWPIASD111115"
                        elif 0 == input_value:
                            source[first_key][second_key] = input_value
                        else:
                            print 'repetition'
                            return False
                else:
                        print "PWPIASD111113"
                        return False
                print "PWPIASD111111"

            except:
                print "PWPIASD111112"
                return False
            # 传回 url  uid  以及数据 做外层检测
            result = memcache.put_cmem_val(cmem_url, model_define.TEAM_MODEL.format(user_id=value_dict['user_id']), source)
            return result
Ejemplo n.º 19
0
def system_mail_del(request):
    """
    删除系统邮件
    """
    if request.method == 'POST':
        version = str(request.POST.get("version"))
        del_notice_dict = dict()
        all_cmem_dict = server_define.CMEM_MAP
        for key, val in all_cmem_dict.items():
            cmem_url = str(val)
            if cmem_url:
                server_notice_box_model = memcache.get_cmem_val(
                    cmem_url, model_define.SYSTEM_MAIL_BOX_MODEL)
                if server_notice_box_model:
                    memcache.put_cmem_val(cmem_url,
                                          model_define.SYSTEM_MAIL_BOX_MODEL,
                                          server_notice_box_model)
                    print server_notice_box_model
                    check_system_expiry(server_notice_box_model)
                    notices_lst = server_notice_box_model['mails']
                    if notices_lst:
                        for notice_dict in notices_lst:
                            if notice_dict:
                                if version == str(notice_dict['version']):
                                    server_notice_box_model['mails'].remove(
                                        notice_dict)
                                    memcache.put_cmem_val(
                                        cmem_url,
                                        model_define.SYSTEM_MAIL_BOX_MODEL,
                                        server_notice_box_model)
                                    # 操作日志记录
                                    manager = GameManager.get_by_request(
                                        request)
                                    insert_action_delete_mail(manager, version)
                                    break

        return HttpResponseRedirect('/Tyranitar6/server/system_mail_lst/')
    else:
        return render_to_response("system_mail/system_mail_add.html",
                                  RequestContext(request))
Ejemplo n.º 20
0
def set_memcache(value_dict):
    """
        修改memcache数据
    """
    server_id = int(value_dict["server_id"])
    user_id = value_dict["user_id"]
    item_id = value_dict["item_id"]
    old_value = int(value_dict["value"])
    new_value = int(value_dict["input_value"])
    manager = value_dict["manager"]

    data = item_id.split("&&")
    monster_uid = int(data[0])
    change_key = str(data[1])
    cmem_url = server_define.CMEM_MAP[int(server_id)]
    monster_tid = 0

    if cmem_url:
        if len(user_id):
            if int(new_value) < 0:
                return False
            monster_model = memcache.get_cmem_val(cmem_url, model_define.MONSTER_MODEL.format(user_id=int(user_id)))
            for _monster in monster_model["monsters"]:
                if monster_uid == _monster["uid"]:
                    monster_tid = _monster["tid"]
                    if change_key in ["individual", "skillsLevel", "skillsExp"]:
                        change_index = int(data[2])
                        _monster[change_key][change_index] = int(new_value)
                    else:
                        _monster[change_key] = int(new_value)
                    break
            memcache.put_cmem_val(cmem_url, model_define.MONSTER_MODEL.format(user_id=user_id), monster_model)
            # 操作日志记录
            insert_action_change_monster(
                manager, server_id, user_id, monster_uid, monster_tid, change_key, old_value, new_value
            )

            return True
    return False
Ejemplo n.º 21
0
def player_commit_bugs_del(request):
    """
    删除玩家提交的BUG
    """
    if request.method == 'POST':
        user_uid = str(request.POST.get("uid"))
        time = str(request.POST.get("time"))
        server_id = int(request.POST.get("server_id"))
        cmem_url = str(server_define.CMEM_MAP.get(server_id))
        if cmem_url:
            player_commit_bugs_model = memcache.get_cmem_val(cmem_url, model_define.PLAYER_COMMIT_BUGS_MODEL)
            if player_commit_bugs_model:
                print player_commit_bugs_model
                bug_dict = get_bug_uid_time(player_commit_bugs_model,user_uid, time)
                remove_bug(player_commit_bugs_model,bug_dict)
                memcache.put_cmem_val(cmem_url, model_define.PLAYER_COMMIT_BUGS_MODEL, player_commit_bugs_model)

                # 操作日志记录
                manager = GameManager.get_by_request(request)
                insert_action_delete_bug(manager, bug_dict)

    return HttpResponseRedirect('/Tyranitar6/server/player_commit_bugs_lst/')
Ejemplo n.º 22
0
def notice_del(request):
    """
    删除广播
    """
    if request.method == 'POST':
        uid = str(request.POST.get("uid"))
        # del_notice_dict = dict()
        all_cmem_dict = server_define.CMEM_MAP
        for key, val in all_cmem_dict.items():
            cmem_url = str(val)
            if cmem_url:
                server_notice_box_model = memcache.get_cmem_val(
                    cmem_url, model_define.NOTICE_MODEL)
                if server_notice_box_model:
                    print server_notice_box_model
                    check_notice_expiry(server_notice_box_model)
                    notices_lst = server_notice_box_model['notices']
                    if notices_lst:
                        for notice_dict in notices_lst:
                            if notice_dict:
                                if uid == str(notice_dict['uid']):
                                    # del_notice_dict = notice_dict
                                    server_notice_box_model['notices'].remove(
                                        notice_dict)
                                    memcache.put_cmem_val(
                                        cmem_url, model_define.NOTICE_MODEL,
                                        server_notice_box_model)
                                    # 操作日志记录
                                    manager = GameManager.get_by_request(
                                        request)
                                    insert_action_delete_notice(manager, uid)
                                    break

        return HttpResponseRedirect('/Tyranitar6/server/notice_lst/')
    else:
        return render_to_response("notice/notice_add.html",
                                  RequestContext(request))
Ejemplo n.º 23
0
def notice_del_confirm(request):
    """
    删除广播确认
    """
    if request.method == 'POST':
        uid = str(request.POST.get("uid"))
        del_notice_dict = dict()
        all_cmem_dict = server_define.CMEM_MAP
        for key, val in all_cmem_dict.items():
            cmem_url = str(val)
            if cmem_url:
                server_notice_box_model = memcache.get_cmem_val(
                    cmem_url, model_define.NOTICE_MODEL)
                if server_notice_box_model:
                    memcache.put_cmem_val(cmem_url, model_define.NOTICE_MODEL,
                                          server_notice_box_model)
                    print server_notice_box_model
                    check_notice_expiry(server_notice_box_model)
                    notices_lst = server_notice_box_model['notices']
                    if notices_lst:
                        for notice_dict in notices_lst:
                            if notice_dict:
                                if uid == str(notice_dict['uid']):
                                    del_notice_dict = notice_dict
                                    break

        del_notice_dict['start_time'] = str(
            del_notice_dict['start_time'].strftime('%Y-%m-%d %H:%M:%S'))
        del_notice_dict['expiry_date'] = str(
            del_notice_dict['expiry_date'].strftime('%Y-%m-%d %H:%M:%S'))
        return render_to_response("notice/notice_del_confirm.html", {
            'notice_info': del_notice_dict,
            'head_lst': head_lst
        }, RequestContext(request))
    else:
        return HttpResponseRedirect('/Tyranitar6/server/notice_lst/')
Ejemplo n.º 24
0
def set_memcache(value_dict):
    '''
    修改memcache数据
    '''
    cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])]
    if cmem_url:
        if len(value_dict['user_id']):
            if  0 > int(value_dict['input_value']) > 60800:
                return False
            source = memcache.get_cmem_val(cmem_url, model_define.TREASURE_ITEM_MODEL.format(user_id=value_dict['user_id']))
            for _dict in source['treasure_items']:
                if _dict['uid'] == int(value_dict['item_id']):
                    _dict['level_exp'] = int(value_dict['input_value'])
            result = memcache.put_cmem_val(cmem_url, model_define.TREASURE_ITEM_MODEL.format(user_id=value_dict['user_id']),
                                           source)
            return result
Ejemplo n.º 25
0
def del_item(value_dict):
    '''
    删除物品
    '''
    user_id = int(value_dict['user_id'])
    item_tid = int(value_dict['item_id'])
    server_id = int(value_dict['server_id'])
    cmem_url = server_define.CMEM_MAP[server_id]
    if cmem_url:
        source = memcache.get_cmem_val(cmem_url, model_define.TREASURE_ITEM_MODEL.format(user_id=user_id))
        for _dict in source['treasure_items']:
            if item_tid == _dict['uid']:
                source['treasure_items'].remove(_dict)
        result = memcache.put_cmem_val(cmem_url, model_define.TREASURE_ITEM_MODEL.format(user_id=user_id),source)
        return result
    else:
        return False
Ejemplo n.º 26
0
def set_everyday_vip_reward_data_function(value_dict):
    """
    修改memcache数据 每日VIP奖励
    不修改
    """
    cmem_url = server_define.CMEM_MAP[int(value_dict["server_id"])]
    if cmem_url:
        if len(value_dict["user_id"]):
            source = memcache.get_cmem_val(
                cmem_url, model_define.DAILY_VIP_REWARD_MODEL.format(user_id=value_dict["user_id"])
            )

            # 传回 url  uid  以及数据 做外层检测
            result = memcache.put_cmem_val(
                cmem_url, model_define.DAILY_VIP_REWARD_MODEL.format(user_id=value_dict["user_id"]), source
            )
            return result
Ejemplo n.º 27
0
def set_memcache(value_dict):
    '''
    修改memcache数据
    '''
    cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])]
    if cmem_url:
        if len(value_dict['user_id']):
            if int(value_dict['input_value']) < 0:
                return False
            source = memcache.get_cmem_val(cmem_url, model_define.ITEM_MODEL.format(user_id=value_dict['user_id']))
            old_value = source['items'][int(value_dict['item_id'])]
            source['items'][int(value_dict['item_id'])] = int(value_dict['input_value'])
            result = memcache.put_cmem_val(cmem_url, model_define.ITEM_MODEL.format(user_id=value_dict['user_id']),
                                           source)
            # 操作日志记录
            insert_action_change_item(value_dict['manager'], str(value_dict['server_id']), str(value_dict['user_id']), value_dict['item_id'], old_value, value_dict['input_value'])

            return result
Ejemplo n.º 28
0
def set_gym_zone_star(request):
    print request.POST
    if request.POST:
        ps=request.POST.get('ps')
        server_id=request.POST.get('server_id')
        user_id=request.POST.get('user_id')
        print user_id
        value=request.POST.get('value')
        key=request.POST.get('key')
        cmem_url = server_define.CMEM_MAP[int(server_id)]
        source = memcache.get_cmem_val(cmem_url, model_define.GYM_MODEL.format(user_id=user_id))
        source[key][int(ps)-1] = int(value)
        data=memcache.put_cmem_val(cmem_url,model_define.GYM_MODEL.format(user_id=user_id),source)
        if data==True:
            data='True'
        elif data==False:
            data='False'
        return HttpResponse(data)
Ejemplo n.º 29
0
def set_everyday_vip_reward_data_function(value_dict):
    """
    修改memcache数据 每日VIP奖励
    不修改
    """
    cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])]
    if cmem_url:
        if len(value_dict['user_id']):
            source = memcache.get_cmem_val(
                cmem_url,
                model_define.DAILY_VIP_REWARD_MODEL.format(
                    user_id=value_dict['user_id']))

            # 传回 url  uid  以及数据 做外层检测
            result = memcache.put_cmem_val(
                cmem_url,
                model_define.DAILY_VIP_REWARD_MODEL.format(
                    user_id=value_dict['user_id']), source)
            return result
Ejemplo n.º 30
0
def set_user_memcache(request, template):
    '''
    返回修改后的数据
    '''
    server_list, platform_list = daily_log._get_server_list(None, None)

    if request.method == 'POST':
        state = int(request.POST.get('state'))
        uid = request.POST.get('uid')
        server_id = int(request.POST.get('server_id'))
        cmem_url = server_define.CMEM_MAP[int(server_id)]
        if cmem_url:
            source = memcache.get_cmem_val(cmem_url, model_define.USER_MODEL.format(user_id=uid))
            source['state'] = state
            a = memcache.put_cmem_val(cmem_url, model_define.USER_MODEL.format(user_id=uid), source)
        type_hidden = 'hidden'
        return render_to_response(template, locals(), RequestContext(request))
    else:
        row_list = []
        return render_to_response(template, locals(), RequestContext(request))
Ejemplo n.º 31
0
def edit_function(_cmem_url, _source, _will_edit_data, _will_edit_tid, _will_edit_tid_level,):
    try:
        # 如果有数据 求要修改数据的下标 修改数据
        if _cmem_url and _source and _will_edit_data and _will_edit_tid and _will_edit_tid_level:
            equip_data = _source['equips']
            # 求list下标
            index = equip_data.index(_will_edit_data)
            # 修改装备tid
            equip_data[index]['tid'] = _will_edit_tid
            # 修改等级
            equip_data[index]['level'] = _will_edit_tid_level
            # 修改装备类型
            equip_config = game_config.get_equipment_config(int(_will_edit_tid))
            equip_data[index]['type'] = equip_config['type']
            # 外层检测 返回TRUE FALSE
            result = memcache.put_cmem_val(_cmem_url, model_define.EQUIP_MODEL.format(user_id=int(_source['uid'])), _source)
            return result
        else:
            return False
    except:
        return False
def set_player_activity_regist_recharge_function(value_dict):
    """
    修改memcache数据

    value_dict['tem_id'] has_reward_lst$$0 complete_id$$-1  active_id$$-1
    value_dict['input_value'] int
    """
    cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])]
    if cmem_url:
        if len(value_dict['user_id']):
            source = memcache.get_cmem_val(
                cmem_url,
                model_define.PLAYER_ACTIVITY_REGIST_RECHARGE_MODEL.format(
                    user_id=value_dict['user_id']))
            try:
                print 'this is source is: ', source
                # second_key 是int类型
                input_value = int(value_dict['input_value'])
                (first_key, second_key) = value_dict['item_id'].split('$$')
                second_key = int(second_key)
                if second_key >= 0:  # has_reward_lst
                    if input_value == 0:
                        source[first_key].remove(second_key)
                    elif input_value == 1:
                        source[first_key].append(second_key)
                    else:
                        return False
                elif second_key == -1:  # complete_id     active_id
                    source[first_key] = input_value
                else:
                    return False
            except:
                return False
            # source = {'uid': '1000103005', 'complete_id': 2, 'recharge_date': datetime.date(2015, 8, 1), 'has_reward_lst': [1], 'reward_end_date': datetime.date(2015, 7, 25), 'active_id': 4}
            # 传回 url  uid  以及数据 做外层检测
            result = memcache.put_cmem_val(
                cmem_url,
                model_define.PLAYER_ACTIVITY_REGIST_RECHARGE_MODEL.format(
                    user_id=value_dict['user_id']), source)
            return result
def set_player_activity_normal_stage_function(value_dict):
    """
    修改memcache数据

    value_dict['tem_id'] normal_win_count
    value_dict['input_value'] int
    """
    cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])]
    if cmem_url:
        if len(value_dict['user_id']):
            source = memcache.get_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_NORMAL_STAGE_MODEL.format(user_id=value_dict['user_id']))
            try:
                key = value_dict['item_id']
                if int(value_dict['input_value']) >= 0 and 'normal_win_count' == key:
                    source['num'] = int(value_dict['input_value'])
                else:
                    return False
            except:
                return False
            # 传回 url  uid  以及数据 做外层检测
            result = memcache.put_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_NORMAL_STAGE_MODEL.format(user_id=value_dict['user_id']), source)
            return result
Ejemplo n.º 34
0
def add_item(value_dict):
    '''
    增加物品push memcache

    '''
    user_id = int(value_dict['user_id'])
    item_tid = int(value_dict['item_id'])
    server_id = int(value_dict['server_id'])

    cmem_url = server_define.CMEM_MAP[server_id]
    if cmem_url:
        if user_id:
            source = memcache.get_cmem_val(cmem_url, model_define.ITEM_MODEL.format(user_id=user_id))
            if item_tid in source['items']:
                return False
            else:
                source['items'][item_tid] = 0
                result = memcache.put_cmem_val(cmem_url, model_define.ITEM_MODEL.format(user_id=user_id),source)
                # 操作日志记录
                insert_action_add_item(value_dict['manager'], str(server_id), str(user_id), item_tid, 0)

                return result
Ejemplo n.º 35
0
def set_player_activity_recharge_long_function(value_dict):
    """
    修改memcache数据

    value_dict['tem_id'] recharge_num
    value_dict['input_value'] int
    """
    cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])]
    if cmem_url:
        if len(value_dict['user_id']):
            source = memcache.get_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_RECHARGE_LONG_MODEL.format(user_id=value_dict['user_id']))
            try:
                key = value_dict['item_id']
                if int(value_dict['input_value']) >= 0 and 'recharge_num' == key:
                    source['recharge_rmb_num'] = int(value_dict['input_value'])
                else:
                    return False
            except:
                return False
            # 传回 url  uid  以及数据 做外层检测
            result = memcache.put_cmem_val(cmem_url, model_define.PLAYER_ACTIVITY_RECHARGE_LONG_MODEL.format(user_id=value_dict['user_id']), source)
            return result
def set_player_activity_time_limited_shop_function(value_dict):
    """
    修改memcache数据

    value_dict['tem_id'] u'2'$$'num_dict'
    value_dict['input_value'] int
    """
    cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])]
    if cmem_url:
        if len(value_dict['user_id']):
            source = memcache.get_cmem_val(
                cmem_url,
                model_define.PLAYER_ACTIVITY_TIME_LIMITED_SHOP_MODEL.format(
                    user_id=value_dict['user_id']))
            # print 'source__', source
            try:
                input_int_val = int(value_dict['input_value'])
                (second_key,
                 first_key) = (value_dict['item_id']).split('$$')  # 要修改的key
                second_key = int(second_key)
                if input_int_val > 0 and second_key > 0:
                    if second_key in source[first_key].keys():
                        source[first_key][second_key] = input_int_val
                    else:
                        source[first_key].update({second_key: input_int_val})
                elif input_int_val == 0 and second_key > 0:
                    if second_key in source[first_key].keys():
                        source[first_key].pop(second_key)
                else:
                    return False
            except:
                return False
            # 传回 url  uid  以及数据 做外层检测
            result = memcache.put_cmem_val(
                cmem_url,
                model_define.PLAYER_ACTIVITY_TIME_LIMITED_SHOP_MODEL.format(
                    user_id=value_dict['user_id']), source)
            return result
Ejemplo n.º 37
0
def set_gym_value(request):
    print request.POST
    key=request.POST.get('key')
    server_id=request.POST.get('server_id')
    user_id=request.POST.get('user_id')
    value=request.POST.get('value')
    junge=0
    alert_info=''
    print value
    cmem_url = server_define.CMEM_MAP[int(server_id)]
    source = memcache.get_cmem_val(cmem_url, model_define.GYM_MODEL.format(user_id=user_id))
    if key=='cur_reset_gym_count':
        if int(value) not in [0,1,2,3]:
            alert_info='应取值0~3之间'
    elif key=='cur_gym_id':
        if get_gym_stage_config(int(value))==None:
            alert_info='道馆关卡ID应取值1~60之间'
        else:
            value=((get_gym_stage_config(int(value))['zone']-1)*3)+1
            print value,'value'
    elif key=='cur_use_star':
        if int(value) > source['cur_star_num']:
            alert_info='‘当前已使用星级’不可大于‘当前星级’'
    if alert_info!='':
        return HttpResponse(alert_info)
    else:

        if value =='False' or value=='True':
            if value=='False':
                source[key]=False
            else:
                source[key]=True
        else:
            source[key]=int(value)
        print source
        data=memcache.put_cmem_val(cmem_url,model_define.GYM_MODEL.format(user_id=user_id),source)
        if data:
             return HttpResponse(alert_info)
Ejemplo n.º 38
0
def del_item(value_dict):
    '''
    删除物品

    '''

    user_id = int(value_dict['user_id'])
    item_tid = int(value_dict['item_id'])
    server_id = int(value_dict['server_id'])
    cmem_url = server_define.CMEM_MAP[server_id]
    if cmem_url:
        if user_id and item_tid:
            source = memcache.get_cmem_val(cmem_url, model_define.ITEM_MODEL.format(user_id=user_id))
            if item_tid in source['items']:
                print item_tid
                del_num = source['items'][item_tid]
                source['items'].pop(item_tid)
                result = memcache.put_cmem_val(cmem_url, model_define.ITEM_MODEL.format(user_id=user_id),source)
                # 操作日志记录
                insert_action_delete_item(value_dict['manager'], str(server_id), str(user_id), item_tid, del_num)
                return result
            else:
                return False
Ejemplo n.º 39
0
def set_union_stage_function(value_dict):
    """
    修改memcache数据

    tem_id 30057$$num
    """
    cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])]
    if cmem_url:
        if len(value_dict['user_id']):  # 注 此处user_id 是union_id
            source = memcache.get_cmem_val(
                cmem_url,
                model_define.UNION_STAGE_CAS_MODEL.format(
                    union_id=value_dict['union_id']))
            # try:
            #     (first_key, second_key) = value_dict['item_id'].split('$$')
            #     first_key = int(first_key)
            #     input_value = int(value_dict['input_value'])
            #     second_key = str(second_key)
            #     # print first_key, second_key, input_value
            #
            #     if 'num' == second_key and 0 <= input_value:
            #         source['stages'][first_key][second_key] = input_value
            #     elif 'rank' == second_key and (0 == input_value or -1 == input_value):
            #         source['stages'][first_key][second_key] = input_value
            #     elif 'buy_count' == second_key and 0 <= input_value:
            #         source['stages'][first_key][second_key] = input_value
            #     else:
            #         return False
            # except:
            #     return False
            # 传回 url  uid  以及数据 做外层检测
            result = memcache.put_cmem_val(
                cmem_url,
                model_define.UNION_STAGE_CAS_MODEL.format(
                    union_id=value_dict['union_id']), source)
            return result
Ejemplo n.º 40
0
def set_stage_data_function(value_dict):
    """
    修改memcache数据

    tem_id 30057$$num
    """
    cmem_url = server_define.CMEM_MAP[int(value_dict['server_id'])]
    if cmem_url:
        if len(value_dict['user_id']):
            source = memcache.get_cmem_val(
                cmem_url,
                model_define.STAGE_MODEL.format(user_id=value_dict['user_id']))
            try:
                (first_key, second_key) = value_dict['item_id'].split('$$')
                first_key = int(first_key)
                input_value = int(value_dict['input_value'])
                second_key = str(second_key)
                # print first_key, second_key, input_value

                if 'num' == second_key and 0 <= input_value:
                    source['stages'][first_key][second_key] = input_value
                elif 'rank' == second_key and (0 == input_value
                                               or -1 == input_value):
                    source['stages'][first_key][second_key] = input_value
                elif 'buy_count' == second_key and 0 <= input_value:
                    source['stages'][first_key][second_key] = input_value
                else:
                    return False
            except:
                return False
            # 传回 url  uid  以及数据 做外层检测
            result = memcache.put_cmem_val(
                cmem_url,
                model_define.STAGE_MODEL.format(user_id=value_dict['user_id']),
                source)
            return result
Ejemplo n.º 41
0
def system_mail_update(request):
    """
    更新广播
    """
    if request.method == 'POST':
        version = str(request.POST.get('version'))
        server_id_str = str(request.POST.get('server_id'))
        target_user_uid = str(request.POST.get('target_user_uid'))
        title = str(request.POST.get('title'))
        send_time = datetime.datetime.strptime(request.POST.get('send_time'),
                                               "%Y-%m-%d %H:%M:%S")
        indate = datetime.datetime.strptime(request.POST.get('indate'),
                                            "%Y-%m-%d %H:%M:%S")
        gold = int(request.POST.get('gold'))
        stone = int(request.POST.get('stone'))
        free_draw_material = int(request.POST.get('free_draw_material'))
        item = int(request.POST.get('item'))
        item_num = int(request.POST.get('item_num'))
        monster = int(request.POST.get('monster'))
        star = int(request.POST.get('star'))

        # 插入系统邮件
        mail = dict()
        mail['version'] = version
        mail['server_id'] = server_id_str
        mail['target_user_uid'] = target_user_uid
        mail['title'] = title
        mail['indate'] = indate
        mail['send_time'] = send_time
        mail['gold'] = gold
        mail['stone'] = stone
        mail['free_draw_material'] = free_draw_material
        mail['item'] = item
        mail['item_num'] = item_num
        mail['monster'] = monster
        mail['monster_star_level'] = star

        print("mail: " + str(mail))
        if not server_id_str:
            all_cmem_dict = server_define.CMEM_MAP
            for key, val in all_cmem_dict.items():
                cmem_url = str(val)
                if cmem_url:
                    server_notice_box_model = memcache.get_cmem_val(
                        cmem_url, model_define.SYSTEM_MAIL_BOX_MODEL)
                    if not server_notice_box_model:
                        server_notice_box_model = {
                            'uid': 'game_system_mail_box',
                            'mails': [],
                            'seq_id': '20150729_1'
                        }
                    add_system_mail(server_notice_box_model, mail)
                    print("server_notice_box_model: " +
                          str(server_notice_box_model))
                    memcache.put_cmem_val(cmem_url,
                                          model_define.SYSTEM_MAIL_BOX_MODEL,
                                          server_notice_box_model)

                    # 操作日志记录
                    manager = GameManager.get_by_request(request)
                    insert_action_add_mail(manager, mail)
        else:
            server_int_lst = string_split_to_int_list(server_id_str, ',')
            for server_int in server_int_lst:
                cmem_url = server_define.CMEM_MAP[int(server_int)]
                if cmem_url:
                    server_notice_box_model = memcache.get_cmem_val(
                        cmem_url, model_define.SYSTEM_MAIL_BOX_MODEL)
                    if not server_notice_box_model:
                        server_notice_box_model = {
                            'uid': 'game_system_mail_box',
                            'mails': [],
                            'seq_id': '20150729_1'
                        }
                    add_system_mail(server_notice_box_model, mail)
                    print("server_notice_box_model: " +
                          str(server_notice_box_model))
                    memcache.put_cmem_val(cmem_url,
                                          model_define.SYSTEM_MAIL_BOX_MODEL,
                                          server_notice_box_model)

                    # 操作日志记录
                    manager = GameManager.get_by_request(request)
                    insert_action_add_mail(manager, mail)
        return HttpResponseRedirect('/Tyranitar6/server/system_mail_lst/')

    else:
        return render_to_response("system_mail/system_mail_add.html",
                                  RequestContext(request))
Ejemplo n.º 42
0
def create_monster(user_id, monster_uid, server_id, monster_tid, star_level,
                   level):
    """
        创建一个宠物
    """
    try:
        cmem_url = server_define.CMEM_MAP[int(server_id)]
        monster_model = memcache.get_cmem_val(
            cmem_url, model_define.MONSTER_MODEL.format(user_id=str(user_id)))

        mon_config = game_config.get_monster_config(monster_tid)

        mon = dict()
        mon["uid"] = int(monster_uid)  # 序号
        mon["playerID"] = str(user_id)  # 所属玩家ID
        mon["tid"] = int(monster_tid)  # 数据表ID

        rand_sex = _random_sex(monster_tid)
        mon["sex"] = rand_sex  # 性别(0-1)

        mon["individual"] = [0] * 6  # 个体值
        mon["effort"] = 0  # 努力值    (变化: 突破)
        mon["personality"] = random.randint(1, 25)  # 性格 (1-25)
        mon["generation"] = 1  # 世代值 (1-6)
        mon["createTime"] = datetime.datetime.now()
        mon["exp"] = 0  # 经验
        mon["level"] = int(level)  # 等级
        mon["maxLevel"] = 30  # 等级上限

        # 技能等级
        skills_level = []
        # 技能经验
        skills_exp = []
        for index in range(1, 3):
            skills_level.append(1)
            skills_exp.append(0)
        mon["skillsLevel"] = skills_level  # 技能等级
        mon["skillsExp"] = skills_exp  # 技能经验

        # 星级部分
        mon["starLevel"] = int(star_level)  # 星级
        mon['star_level_exp'] = get_monster_star_num(
            mon['starLevel'])  # 星级对应的吃卡
        mon['star_level_rate'] = 0  # 升星比率

        # 进化部分
        mon['evo_sun_stone'] = 0  # 进化太阳石
        mon['evo_level'] = mon_config['defeatEvoClass']  # 进化等级
        mon['evo_fail_count'] = 0  # 进化失败次数

        monster_model['seq_id'] += 1
        monster_model['monsters'].append(mon)

        # 检测最高数值
        if monster_model['monster_high_level'] < mon['level']:
            monster_model['monster_high_level'] = mon['level']
        if monster_model['monster_high_star_level'] < mon['starLevel']:
            monster_model['monster_high_star_level'] = mon['starLevel']
        if monster_model['monster_high_quality'] < mon_config['color']:
            monster_model['monster_high_quality'] = mon_config['color']
        if monster_tid not in monster_model['monster_kind']:
            monster_model['monster_kind'].append(monster_tid)

        memcache.put_cmem_val(
            cmem_url, model_define.MONSTER_MODEL.format(user_id=str(user_id)),
            monster_model)
        return True
    except:
        return False
Ejemplo n.º 43
0
def index(request, equip_info_edit):
    """
        ①
        玩家装备数据
        此函数功能:1.显示最新数据 2.修改装备 3.删除装备 4.添加装备
    """
    # 获取当前管理员
    # 1.公用代码部分 即每次修改 删除 添加 数据后 显示最新数据
    manager = GameManager.get_by_request(request)
    server_list, platform_list = daily_log._get_server_list(None, None)
    server_list.remove(server_list[0])
    if request.method == 'POST':

        user_uid = request.POST.get("user_uid")
        user_name = request.POST.get("user_name")
        user_openid = request.POST.get("user_openid")
        server_id = int(request.POST.get("server_id"))

        type_hidden = 'visible'
        cmem_url = server_define.CMEM_MAP[int(server_id)]
        if cmem_url:
            print 'cmem_url', cmem_url
            try:
                source = {}
                if len(user_uid):
                    source = memcache.get_cmem_val(
                        cmem_url,
                        model_define.EQUIP_MODEL.format(user_id=user_uid))
                    # print source
                elif len(user_name):
                    name = hashlib.md5(
                        user_name.encode('utf-8')).hexdigest().upper()
                    key = model_define.PLAYER_NICK_NAME_MODEL.format(
                        player_nick_md5=name)
                    user_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
                    source = memcache.get_cmem_val(
                        cmem_url,
                        model_define.EQUIP_MODEL.format(user_id=user_uid))
                    # print source
                elif len(user_openid):
                    result = memcache.get_cmem_val(
                        cmem_url,
                        model_define.ACCOUNT_MAPPING_MODEL.format(
                            open_id=user_openid))
                    user_uid = result['uid']
                    source = memcache.get_cmem_val(
                        cmem_url,
                        model_define.EQUIP_MODEL.format(user_id=user_uid))
                    # print source
                if source:
                    """以上是公用部分,以下是修改 删除 添加"""
                    # 2.修改装备
                    try:
                        old_edit_data = eval(request.POST.get("old_edit_data"))
                        old_edit_data.pop('name')  # 得到编辑的源数据
                        will_edit_tid = request.POST.get(
                            "will_edit_tid")  # 要改成装备tid
                        will_edit_tid_level = request.POST.get(
                            "will_edit_tid_level")  # 要改的装备的等级
                        result = edit_function(cmem_url, source, old_edit_data,
                                               int(will_edit_tid),
                                               int(will_edit_tid_level))
                        if result:
                            # 操作日志记录
                            insert_action_change_equip(manager, str(server_id),
                                                       str(source['uid']),
                                                       old_edit_data['uid'],
                                                       old_edit_data['tid'],
                                                       will_edit_tid,
                                                       old_edit_data['level'],
                                                       will_edit_tid_level)
                    except:
                        # 不是编辑 或 数据不对 跳过
                        pass

                    # 3.删除装备 删除比较简单不单写函数
                    try:
                        delete_data = eval(request.POST.get('delete_data'))
                        delete_data.pop('name')
                        if delete_data:
                            # 操作日志记录
                            insert_action_delete_equip(manager, str(server_id),
                                                       str(user_uid),
                                                       delete_data['uid'],
                                                       delete_data['tid'],
                                                       delete_data['level'])

                            source['equips'].remove(delete_data)
                            result = memcache.put_cmem_val(
                                cmem_url,
                                model_define.EQUIP_MODEL.format(
                                    user_id=int(user_uid)), source)
                    except:
                        # 不是删除 或 数据不对 跳过
                        pass

                    # 4.添加装备 添加比较简单不单写函数
                    try:
                        add_data = eval(request.POST.get('add_data'))
                        if add_data:
                            will_edit_tid = request.POST.get("will_edit_tid")
                            will_edit_tid_level = request.POST.get(
                                "will_edit_tid_level")
                            if will_edit_tid and will_edit_tid_level:
                                equip_config = game_config.get_equipment_config(
                                    int(will_edit_tid))
                                source['equips'].append({
                                    'uid':
                                    int(add_data),
                                    'tid':
                                    int(will_edit_tid),
                                    'level':
                                    int(will_edit_tid_level),
                                    'type':
                                    int(equip_config['type'])
                                })
                                # 下个装备序列计数加1
                                source['seq_id'] = int(add_data) + 1
                                result = memcache.put_cmem_val(
                                    cmem_url,
                                    model_define.EQUIP_MODEL.format(
                                        user_id=int(user_uid)), source)
                                # 操作日志记录
                                insert_action_add_equip(
                                    manager, str(server_id), str(user_uid),
                                    add_data, will_edit_tid,
                                    will_edit_tid_level)
                                print "Finish"
                    except:
                        # 不是添加 或 数据不对 跳过
                        pass
                """以下是公用部分,以上是修改 删除 添加"""
                if source:
                    row_list = source['equips']
                    for each_value in row_list:
                        equip_config = game_config.get_item_config(
                            each_value['tid'])
                        each_value['name'] = equip_config['name']

                return render_to_response(equip_info_edit, locals(),
                                          RequestContext(request))
            except UnboundLocalError:
                type_hidden = 'hidden'
                return render_to_response(equip_info_edit, locals(),
                                          RequestContext(request))
            except TypeError:
                type_hidden = 'hidden'
                return render_to_response(equip_info_edit, locals(),
                                          RequestContext(request))

    else:
        row_list = []
        type_hidden = 'hidden'
        row_dict = {}
        return render_to_response(equip_info_edit, locals(),
                                  RequestContext(request))
Ejemplo n.º 44
0
def index(request, equip_info_edit):
    """
        ①
        玩家装备数据
        此函数功能:1.显示最新数据 2.修改装备 3.删除装备 4.添加装备
    """
    # 获取当前管理员
    # 1.公用代码部分 即每次修改 删除 添加 数据后 显示最新数据
    manager = GameManager.get_by_request(request)
    server_list, platform_list = daily_log._get_server_list(None, None)
    server_list.remove(server_list[0])
    if request.method == 'POST':

        user_uid = request.POST.get("user_uid")
        user_name = request.POST.get("user_name")
        user_openid = request.POST.get("user_openid")
        server_id = int(request.POST.get("server_id"))

        type_hidden = 'visible'
        cmem_url = server_define.CMEM_MAP[int(server_id)]
        if cmem_url:
            print 'cmem_url', cmem_url
            try:
                source = {}
                if len(user_uid):
                    source = memcache.get_cmem_val(cmem_url, model_define.EQUIP_MODEL.format(user_id=user_uid))
                    # print source
                elif len(user_name):
                    name = hashlib.md5(user_name.encode('utf-8')).hexdigest().upper()
                    key = model_define.PLAYER_NICK_NAME_MODEL.format(player_nick_md5=name)
                    user_uid = memcache.get_cmem_val_no_pick(cmem_url, key)
                    source = memcache.get_cmem_val(cmem_url, model_define.EQUIP_MODEL.format(user_id=user_uid))
                    # print source
                elif len(user_openid):
                    result = memcache.get_cmem_val(cmem_url,model_define.ACCOUNT_MAPPING_MODEL.format(open_id=user_openid))
                    user_uid = result['uid']
                    source = memcache.get_cmem_val(cmem_url, model_define.EQUIP_MODEL.format(user_id=user_uid))
                    # print source
                if source:
                    """以上是公用部分,以下是修改 删除 添加"""
                    # 2.修改装备
                    try:
                        old_edit_data = eval(request.POST.get("old_edit_data"))
                        old_edit_data.pop('name')                                       # 得到编辑的源数据
                        will_edit_tid = request.POST.get("will_edit_tid")               # 要改成装备tid
                        will_edit_tid_level = request.POST.get("will_edit_tid_level")   # 要改的装备的等级
                        result = edit_function(cmem_url, source, old_edit_data, int(will_edit_tid), int(will_edit_tid_level))
                        if result:
                            # 操作日志记录
                            insert_action_change_equip(manager, str(server_id), str(source['uid']), old_edit_data['uid'], old_edit_data['tid'], will_edit_tid, old_edit_data['level'], will_edit_tid_level)
                    except:
                        # 不是编辑 或 数据不对 跳过
                        pass

                    # 3.删除装备 删除比较简单不单写函数
                    try:
                        delete_data = eval(request.POST.get('delete_data'))
                        delete_data.pop('name')
                        if delete_data:
                            # 操作日志记录
                            insert_action_delete_equip(manager, str(server_id), str(user_uid), delete_data['uid'], delete_data['tid'], delete_data['level'])

                            source['equips'].remove(delete_data)
                            result = memcache.put_cmem_val(cmem_url, model_define.EQUIP_MODEL.format(user_id=int(user_uid)), source)
                    except:
                        # 不是删除 或 数据不对 跳过
                        pass

                    # 4.添加装备 添加比较简单不单写函数
                    try:
                        add_data = eval(request.POST.get('add_data'))
                        if add_data:
                            will_edit_tid = request.POST.get("will_edit_tid")
                            will_edit_tid_level = request.POST.get("will_edit_tid_level")
                            if will_edit_tid and will_edit_tid_level:
                                equip_config = game_config.get_equipment_config(int(will_edit_tid))
                                source['equips'].append({
                                    'uid': int(add_data),
                                    'tid': int(will_edit_tid),
                                    'level': int(will_edit_tid_level),
                                    'type': int(equip_config['type'])
                                    })
                                # 下个装备序列计数加1
                                source['seq_id'] = int(add_data) + 1
                                result = memcache.put_cmem_val(cmem_url,model_define.EQUIP_MODEL.format(user_id=int(user_uid)), source)
                                # 操作日志记录
                                insert_action_add_equip(manager, str(server_id), str(user_uid), add_data, will_edit_tid, will_edit_tid_level)
                                print "Finish"
                    except:
                        # 不是添加 或 数据不对 跳过
                        pass

                """以下是公用部分,以上是修改 删除 添加"""
                if source:
                    row_list = source['equips']
                    for each_value in row_list:
                        equip_config = game_config.get_item_config(each_value['tid'])
                        each_value['name'] = equip_config['name']

                return render_to_response(equip_info_edit, locals(), RequestContext(request))
            except UnboundLocalError:
                type_hidden = 'hidden'
                return render_to_response(equip_info_edit, locals(), RequestContext(request))
            except TypeError:
                type_hidden = 'hidden'
                return render_to_response(equip_info_edit, locals(), RequestContext(request))

    else:
        row_list = []
        type_hidden = 'hidden'
        row_dict = {}
        return render_to_response(equip_info_edit, locals(), RequestContext(request))
Ejemplo n.º 45
0
def player_commit_bugs_mail_update(request):
    """
    回信
    """
    time = str(request.POST.get("time"))
    version = str(request.POST.get('version'))
    server_id_str = str(request.POST.get('server_id'))
    target_user_uid = str(request.POST.get('target_user_uid'))
    title = str(request.POST.get('title'))
    send_time = datetime.datetime.strptime(request.POST.get('send_time'),"%Y-%m-%d %H:%M:%S")
    indate = datetime.datetime.strptime(request.POST.get('indate'),"%Y-%m-%d %H:%M:%S")
    gold = int(request.POST.get('gold'))
    stone = int(request.POST.get('stone'))
    free_draw_material = int(request.POST.get('free_draw_material'))
    item = int(request.POST.get('item'))
    item_num = int(request.POST.get('item_num'))
    monster = int(request.POST.get('monster'))
    star = int(request.POST.get('star'))

    # 插入系统邮件
    mail = dict()
    mail['version'] = version
    mail['server_id'] = server_id_str
    mail['target_user_uid'] = target_user_uid
    mail['title'] = title
    mail['indate'] = indate
    mail['send_time'] = send_time
    mail['gold'] = gold
    mail['stone'] = stone
    mail['free_draw_material'] = free_draw_material
    mail['item'] = item
    mail['item_num'] = item_num
    mail['monster'] = monster
    mail['monster_star_level'] = star

    print("mail: "+str(mail))
    cmem_url = server_define.CMEM_MAP[int(server_id_str)]
    if cmem_url:
        player_mail_box_model = memcache.get_cmem_val(cmem_url, model_define.PLAYER_MAIL_BOX_MODEL.format(user_id=target_user_uid))
        if not player_mail_box_model:
            player_mail_box_model = {
                'uid': target_user_uid,
                'system_mail': [],
                'seq': '1000'
            }
        # 给玩家发送邮件 告知返还事宜
        add_system_mail(player_mail_box_model, mail)
        print("player_mail_box_model: "+str(player_mail_box_model))
        memcache.put_cmem_val(cmem_url, model_define.PLAYER_MAIL_BOX_MODEL.format(user_id=target_user_uid), player_mail_box_model)

        # 操作日志记录
        manager = GameManager.get_by_request(request)
        insert_action_add_bug_mail(manager, mail)

        player_commit_bugs_model = memcache.get_cmem_val(cmem_url, model_define.PLAYER_COMMIT_BUGS_MODEL)
        if player_commit_bugs_model:
            print player_commit_bugs_model
            mail_bug = get_bug_uid_time(player_commit_bugs_model,target_user_uid, time)
            mail_bug['handle'] = True
            memcache.put_cmem_val(cmem_url, model_define.PLAYER_COMMIT_BUGS_MODEL, player_commit_bugs_model)

    return HttpResponseRedirect('/Tyranitar6/server/player_commit_bugs_lst/')
Ejemplo n.º 46
0
def system_mail_lst(request):
    """
    广播列表
    """
    data = {}
    table_list = []
    all_background_notice_dict = dict()
    all_cmem_dict = server_define.CMEM_MAP
    for key, val in all_cmem_dict.items():
        cmem_url = str(val)
        if cmem_url:
            server_notice_box_model = memcache.get_cmem_val(
                cmem_url, model_define.SYSTEM_MAIL_BOX_MODEL)
            if server_notice_box_model:
                memcache.put_cmem_val(cmem_url,
                                      model_define.SYSTEM_MAIL_BOX_MODEL,
                                      server_notice_box_model)
                print server_notice_box_model
                check_system_expiry(server_notice_box_model)
                notices_lst = server_notice_box_model['mails']
                if notices_lst:
                    for mail_dict in notices_lst:
                        if mail_dict:
                            print mail_dict
                            mail_dict['version'] = mail_dict.get('version', 0)
                            if 'send_time' in mail_dict:
                                send_time = mail_dict['send_time']
                                mail_dict['send_time'] = send_time.strftime(
                                    "%Y-%m-%d %H:%M:%S")
                                if send_time <= datetime.datetime.now():
                                    mail_dict['send_time'] += " (已开始)"
                            else:
                                mail_dict['send_time'] = " 错误 "

                            if 'expiry_date' in mail_dict:
                                expiry_date = mail_dict['expiry_date']
                                mail_dict[
                                    'expiry_date'] = expiry_date.strftime(
                                        "%Y-%m-%d %H:%M:%S")
                                if expiry_date <= datetime.datetime.now():
                                    mail_dict['expiry_date'] += " (已开始)"
                            else:
                                mail_dict['expiry_date'] = " 错误 "
                            all_background_notice_dict[
                                mail_dict['version']] = mail_dict

    print("all_background_notice_dict: " + str(all_background_notice_dict))
    for key_uid, value in all_background_notice_dict.items():
        if value:
            temp_content = []
            temp_content.insert(0, str(key_uid))
            temp_content.insert(1, value.get('server_id', ''))
            temp_content.insert(2, value['target_user_uid'])
            temp_content.insert(3, str(value['title']))
            temp_content.insert(4, value['send_time'])
            temp_content.insert(5, value['expiry_date'])
            temp_content.insert(6, str(value['gold']))
            temp_content.insert(7, str(value['stone']))
            temp_content.insert(8, str(value['free_draw_material']))
            item_config = game_config.get_item_config(value['item'])
            if item_config:
                temp_content.insert(9, str(item_config['name']))
            else:
                temp_content.insert(9, str(u''))
            temp_content.insert(10, str(value['item_num']))

            monster_config = game_config.get_monster_config(value['monster'])
            if monster_config:
                temp_content.insert(11, str(monster_config['name']))
            else:
                temp_content.insert(11, str(u''))

            temp_content.insert(12, str(value['monster_star_level']))
            table_list.append(temp_content)

    data['system_mail_info'] = table_list
    data['head_lst'] = head_lst
    return render_to_response("system_mail/system_mail_lst.html", data,
                              RequestContext(request))
Ejemplo n.º 47
0
def set_player_data(request):
    # 获取管理员信息
    manager = GameManager.get_by_request(request)
    head_lst = [
        #{'width': 50, 'name': u'UID'},
        {
            'width': 50,
            'name': u'名称'
        },
        {
            'width': 50,
            'name': u'当前值'
        },
        {
            'width': 50,
            'name': u'修改'
        },
    ]
    server_list_dat = get_server_list_dat()
    if request.method == 'POST':
        print request.POST, 'post'
        user_id = request.POST.get('user_id')
        server_id = int(request.POST.get('server_id'))
        typ = request.POST.get('type')
        value = request.POST.get('value')
        #print 'value',value
        if value <> '':
            if typ <> 'str':
                if typ == 'bool':
                    value = eval(typ)(eval(value))
                else:
                    value = eval(typ)(value)
                #print value
        key = request.POST.get('key')
        data = ''
        if key == 'newbie':
            # print 'newbie'
            # print int(value)
            # print get_newbie_phase_config(int(value))
            if get_newbie_phase_config(int(value)) == None:
                data = '新手引导ID应在1~5之间'
        elif key == 'gold':
            pass
        elif key == 'champion_index':
            if int(value) not in [1, 2, 3, 4, 0]:
                data = '冠军宠物位置应该在0~4之间'
        elif key == 'reward_cur_monster_star_level_id':
            if get_reward_monster_star_level_config(int(value)) == None:
                data = u'宠物等级奖励序列应在1~18之间'
        elif key == 'universal_fragment':
            pass
        elif key == 'title':
            if get_the_title_config(int(value)) == None:
                data = '玩家爵位应在1~21之间'
        elif key == 'consumption_point':
            pass
        elif key == 'role_id':
            pass
        elif key == 'reward_login_series_id':
            pass
        elif key == 'reward_cur_monster_kind_id':
            if get_reward_monster_kind_config(int(value)) == None:
                data = '宠物种类奖励序列应在1~18之间'
        elif key == 'has_first_recharge_lst':
            pass
        elif key == 'is_stone_one_draw':
            if int(value) not in [0, 1]:
                data = '首次钻石单抽状态取值应为0或1,0代表未抽过,1代表抽过'
        elif key == 'is_ten_draw':
            if int(value) not in [0, 1]:
                data = '首次钻石十连抽状态取值应为0或1,0代表未抽过,1代表抽过'
        elif key == 'champion_tid':
            cmem_url = server_define.CMEM_MAP[int(server_id)]
            source = memcache.get_cmem_val(
                cmem_url, model_define.MONSTER_MODEL.format(user_id=user_id))
            # print source['monsters']
            sign = 0
            for i in source['monsters']:
                if int(value) == i['tid']:
                    sign = 1
            # print sign
            if sign == 0:
                data = u'输入的宠物id不属于玩家拥有的宠物之一,请正确输入,玩家现有宠物:'
                for i in source['monsters']:
                    a = '(%s:%s)' % (i['tid'], get_monster_config(
                        i['tid'])['name'])
                    data += a
        elif key == 'champion_power':
            pass
        elif key == 'name':
            pass
        elif key == 'level':
            if int(value) > 120 or int(value) < 1:
                data = u'玩家等级应在1~120级之间,请输入正确的值'
        elif key == 'cur_stage':
            if get_stages_config(int(value)) == None:
                data = u'关卡ID输入错误'
        elif key == 'reward_cur_monster_quality_id':
            if get_reward_monster_quality_config(int(value)) == None:
                data = u'当前宠物品质奖励序列应在1~3之间'
        elif key == 'reward_cur_team_combat_power_id':
            if get_reward_team_power(int(value)) == None:
                data = u'当前队伍战斗力奖励序列应在1~47之间'
        elif key == 'reward_friend_num_id':
            if get_fried_num_config(int(value)) == None:
                data = u'好友数量奖励序列应在1~6之间'
        elif key == 'reward_cur_monster_level_id':
            if get_reward_monster_level_config(int(value)) == None:
                data = u'宠物等级奖励序列应在1~10之间'

        if value <> '' and data == '':
            # print "i'work"
            cmem_url = server_define.CMEM_MAP[int(server_id)]
            if cmem_url:
                source = memcache.get_cmem_val(
                    cmem_url,
                    model_define.PLAYER_MODEL.format(user_id=user_id))
                if eval(typ) == type(value) or (typ == 'str'
                                                and type(value) == unicode):
                    #print source,key,value,user_id,type(user_id)
                    old_value = source[key]
                    source[key] = value
                    memcache.put_cmem_val(
                        cmem_url,
                        model_define.PLAYER_MODEL.format(user_id=user_id),
                        source)
                    # 操作日志记录
                    insert_action_edit_player(manager, str(server_id),
                                              str(user_id), key, old_value,
                                              value)
        return HttpResponse(data)