Exemplo n.º 1
0
	def gift(self, sendRoleid, receiveRoleid):
		"""
		送礼
		"""
		sendUsr = user.get(sendRoleid)
		receiveUsr = user.get(receiveRoleid)
		
		if (not sendUsr) or (not receiveUsr):
			return {'msg':'usr_not_exist'}
				
		sendUsrNw = sendUsr.getNetwork()
		receiveUsrNw = receiveUsr.getNetwork()
		
		gameConf = config.getConfig('game')				
		
		if receiveRoleid in self.charm_ladder:
			self.charm_ladder = filter(lambda x: x != receiveRoleid, self.charm_ladder)
				
		if sendRoleid in self.tuhao_ladder:
			self.tuhao_ladder = filter(lambda x: x != sendRoleid, self.tuhao_ladder)		
		
		tuhao_position = -1
		for (i, rid) in enumerate(self.tuhao_ladder):			
			if receiveUsrNw.tuhao > self.user[rid]['tuhao']:
				tuhao_position = i
				break
		if len(self.tuhao_ladder) < gameConf['gift_ladder_max_size'] and tuhao_position < 0:
			tuhao_position = len(self.tuhao_ladder)		
		if tuhao_position >= 0:
			self.tuhao_ladder.insert(tuhao_position, sendRoleid)
	
		charm_position = -1
		
		for (i, rid) in enumerate(self.charm_ladder):			
			if receiveUsrNw.charm > self.user[rid]['charm']:
				charm_position = i
				break
		if len(self.charm_ladder) < gameConf['gift_ladder_max_size'] and charm_position < 0:
			charm_position = len(self.charm_ladder)
				
		if charm_position >= 0:
			self.charm_ladder.insert(charm_position, receiveRoleid)

		if tuhao_position >= 0:
			self.user[sendRoleid] = {'roleid':sendRoleid, 'charm':sendUsrNw.charm, 'tuhao': sendUsrNw.tuhao, 'charm': receiveUsrNw.charm, 'name': sendUsr.name, 'level':sendUsr.level}
		if charm_position >= 0:
			self.user[receiveRoleid] = {'roleid':receiveRoleid, 'charm':receiveUsrNw.charm, 'tuhao': receiveUsrNw.tuhao, 'charm': receiveUsrNw.charm, 'name': receiveUsr.name, 'level':receiveUsr.level}
			
		self.update_ladder(gameConf)		
		self.save()
		
		return {'charm_user_position': charm_position, 'tuhao_user_position': tuhao_position}
Exemplo n.º 2
0
def gm_tool_set_item(request):
    data = {}
    if request.method == 'POST':
        skillopt = request.POST['itemopt']
        roleid = request.POST['roleid']

        usr = user.get(roleid)
        if not usr:
            return HttpResponse('玩家不存在')
        acc = usr.getAccount()

        if skillopt == 'add':
            itemid = request.POST['itemSelect']
            cnt = request.POST['tfItemCount']
            cnt = int(cnt)
            inv = usr.getInventory()
            s = inv.addItemCount(itemid, cnt)
            inv.save()
            if not s:
                return HttpResponse('添加失败')
            data = gm.show_profile(acc, usr)
        elif skillopt == 'remove':
            id = request.POST['itemid']
            inv = usr.getInventory()
            if inv.delItem(id) == 0:
                return HttpResponse('删除失败')
            inv.save()
            data = gm.show_profile(acc, usr)
        return render(request, 'profile.html', data)
    return HttpResponse('未知命令')
Exemplo n.º 3
0
    def stand(self, roleid):
        """
		站上天梯
		"""
        usr = user.get(roleid)

        if not usr:
            return {'msg': 'user_not_exist'}

        md = medal_arena.instance()
        md.role_level(usr.roleid, usr.level)
        md.save()

        if not self.item.has_key(roleid):
            rd = {}
            rd['roleid'] = roleid
            rd['name'] = usr.name
            rd['level'] = usr.level
            rd['last_update'] = currentTime()
            rd['score'] = 0
            rd['avatar_id'] = usr.avatar_id
            self.item[roleid] = rd
            self.rank.append(roleid)
            self.save()
            return {'position': (len(self.rank) - 1)}
        return {'msg': 'arena_ladder_already_stand'}
Exemplo n.º 4
0
	def stand(self, roleid):
		"""
		站上天梯
		"""
		usr = user.get(roleid)
		
		if not usr:
			return {'msg':'user_not_exist'}	
				
		md = medal_arena.instance()
		md.role_level(usr.roleid, usr.level)
		md.save()
		
		if not self.item.has_key(roleid):			
			rd = {}
			rd['roleid'] = roleid
			rd['name'] = usr.name
			rd['level'] = usr.level
			rd['last_update'] = currentTime()
			rd['score'] = 0
			rd['avatar_id'] = usr.avatar_id
			self.item[roleid] = rd
			self.rank.append(roleid)
			self.save()
			return {'position':(len(self.rank) -1)}
		return {'msg':'arena_ladder_already_stand'}
Exemplo n.º 5
0
def gm_tool_set_stone(request):
	data = {}
	if request.method == 'POST':
		stoneopt = request.POST['stoneopt']
		roleid = request.POST['roleid']
		
		usr = user.get(roleid)
		
		if not usr:
			return HttpResponse('玩家不存在')
		acc = usr.getAccount()		
		
		if stoneopt == 'add':
			stoneid = request.POST['stoneSelect']
			cnt = int(request.POST['tfStoneCount'])
			inv = usr.getInventory()
			s = inv.addStoneCount(stoneid, cnt)
			inv.save()
			if not s:
				return HttpResponse('添加失败')
		elif stoneopt == 'remove':
			id = request.POST['stoneid']
			inv = usr.getInventory()
			if not inv.delStone(id):
				return HttpResponse('删除失败')
			inv.save()
		data = gm.show_profile(acc, usr)
		return render(request, 'profile.html', data)
	return HttpResponse('未知命令')
Exemplo n.º 6
0
def gm_tool_set_item(request):
	data = {}
	if request.method == 'POST':
		skillopt = request.POST['itemopt']
		roleid = request.POST['roleid']	
		
		usr = user.get(roleid)		
		if not usr:
			return HttpResponse('玩家不存在')
		acc = usr.getAccount()		
		
		if skillopt == 'add':
			itemid = request.POST['itemSelect']
			cnt = request.POST['tfItemCount']
			cnt = int(cnt)
			inv = usr.getInventory()
			s = inv.addItemCount(itemid, cnt)
			inv.save()
			if not s:
				return HttpResponse('添加失败')
			data = gm.show_profile(acc, usr)
		elif skillopt == 'remove':
			id = request.POST['itemid']
			inv = usr.getInventory()			
			if inv.delItem(id) == 0:
				return HttpResponse('删除失败')			
			inv.save()		
			data = gm.show_profile(acc, usr)
		return render(request, 'profile.html', data)
	return HttpResponse('未知命令')
Exemplo n.º 7
0
def gm_tool_set_medal(request):
	data = {}
	if request.method == 'POST':
		medalopt = request.POST['medalopt']
		roleid = request.POST['roleid']
		
		usr = user.get(roleid)
		if not usr:
			return HttpResponse('玩家不存在')
		acc = usr.getAccount()
			
		if medalopt == 'add':
			medalid = request.POST['medalSelect']
			chipnum = int(request.POST['chipSelect'])
			cnt = int(request.POST['tfChipCount'])
			inv = usr.getInventory()
			mc = inv.addMedalChip(medalid, chipnum, cnt)
			medal.newMedal(usr, medalid, chipnum, cnt)				
			if not mc:
				return HttpResponse('删除失败')
			inv.save()
			data = gm.show_profile(acc, usr)
		return render(request, 'profile.html', data)
	return HttpResponse('未知命令')
				
				
				
		
		
		
	
Exemplo n.º 8
0
def gm_tool_set_stone(request):
    data = {}
    if request.method == 'POST':
        stoneopt = request.POST['stoneopt']
        roleid = request.POST['roleid']

        usr = user.get(roleid)

        if not usr:
            return HttpResponse('玩家不存在')
        acc = usr.getAccount()

        if stoneopt == 'add':
            stoneid = request.POST['stoneSelect']
            cnt = int(request.POST['tfStoneCount'])
            inv = usr.getInventory()
            s = inv.addStoneCount(stoneid, cnt)
            inv.save()
            if not s:
                return HttpResponse('添加失败')
        elif stoneopt == 'remove':
            id = request.POST['stoneid']
            inv = usr.getInventory()
            if not inv.delStone(id):
                return HttpResponse('删除失败')
            inv.save()
        data = gm.show_profile(acc, usr)
        return render(request, 'profile.html', data)
    return HttpResponse('未知命令')
Exemplo n.º 9
0
def feed(request):
	targetid = request.GET['target']
	target = None
	if targetid:
		target = user.get(targetid)
		if not target:
			return {'msg':'friend_not_exist'}
	return luckycat.feed(request.user, target)
Exemplo n.º 10
0
def detail(request):
    """
	玩家详细信息
	"""
    roleid = request.GET['role_id']
    other = user.get(roleid)
    if not other:
        return {'msg': 'user_not_exist'}
    return other.getBattleData()
Exemplo n.º 11
0
def detail(request):
	"""
	玩家详细信息
	"""
	roleid = request.GET['role_id']	
	other = user.get(roleid)
	if not other:
		return {'msg':'user_not_exist'}	
	return other.getBattleData()
Exemplo n.º 12
0
def pk(request):
    """
	PK
	"""
    roleid = request.GET['roleid']
    other = user.get(roleid)
    if not other:
        return {'msg': 'usr_not_exist'}
    pvpData = other.pvpProperty()
    return {'pvpProperty': pvpData}
Exemplo n.º 13
0
def pk(request):
	"""
	PK
	"""
	roleid = request.GET['roleid']
	other = user.get(roleid)
	if not other:
		return {'msg':'usr_not_exist'}
	pvpData= other.pvpProperty()	
	return {'pvpProperty':pvpData}
Exemplo n.º 14
0
def get_message(request):
    """
	刷新留言
	"""
    friendid = request.GET['friend_id']
    friend = user.get(friendid)
    if not friend:
        return {'msg': 'friend_not_exist'}
    friendNw = friend.getNetwork()

    return {'message': friendNw.message}
Exemplo n.º 15
0
def feed(request):
    """
	喂养
	"""
    targetid = request.GET['target']
    target = None
    if targetid:
        target = user.get(targetid)
        if not target:
            return {'msg': 'friend_not_exist'}
    return luckycat.feed(request.user, target)
Exemplo n.º 16
0
def delete(request):
    """
	删除好友
	"""
    usr = request.user
    friendid = request.GET['friend_id']
    usrNw = usr.getNetwork()
    friend = user.get(friendid)
    if not friend:
        return {'msg': 'friend_not_exist'}
    return usrNw.deleteFriend(friend)
Exemplo n.º 17
0
def get_message(request):
	"""
	刷新留言
	"""
	friendid = request.GET['friend_id']
	friend = user.get(friendid)
	if not friend:
		return {'msg':'friend_not_exist'}
	friendNw = friend.getNetwork()
	
	return {'message':friendNw.message}
Exemplo n.º 18
0
def delete(request):
	"""
	删除好友
	"""
	usr = request.user	
	friendid = request.GET['friend_id']
	usrNw = usr.getNetwork()
	friend = user.get(friendid)
	if not friend:
		return {'msg':'friend_not_exist'}
	return usrNw.deleteFriend(friend)	
Exemplo n.º 19
0
def ban(request):
	"""
	阻止好友
	"""
	banid = request.GET['ban_id']
	
	usr = request.user
	banUser = user.get(banid)
	if banUser:
		usrNw = usr.getNetwork()
		usrNw.ban(banid, banUser.name)
		return {}		
	return {'msg':'friend_not_exist'}
Exemplo n.º 20
0
def ban(request):
    """
	阻止好友
	"""
    banid = request.GET['ban_id']

    usr = request.user
    banUser = user.get(banid)
    if banUser:
        usrNw = usr.getNetwork()
        usrNw.ban(banid, banUser.name)
        return {}
    return {'msg': 'friend_not_exist'}
Exemplo n.º 21
0
def show(request):
	
	roleid = request.GET['role_id']
	
	other = user.get(roleid)
	if not other:
		return {'msg':'user_not_exist'}
		
	
	otNw = other.getNetwork()
	data = {}
	data['name'] = other.name
	data['level'] = other.level
	data['message'] = otNw.message	
	return data
Exemplo n.º 22
0
def search(request):
	"""
	寻找好友
	"""
	usr = request.user	
	friendname = request.GET['friend_name']
	
	friendid = account.getRoleid(friendname)
	if friendid == 0:
		return {'friend': {}}
	friend = user.get(friendid)	
	if friend != None:
		return {'friend':friend.getFriendData()}
	else:
		return {'friend': {}}
Exemplo n.º 23
0
def search(request):
    """
	寻找好友
	"""
    usr = request.user
    friendname = request.GET['friend_name']

    friendid = account.getRoleid(friendname)
    if friendid == 0:
        return {'friend': {}}
    friend = user.get(friendid)
    if friend != None:
        return {'friend': friend.getFriendData()}
    else:
        return {'friend': {}}
Exemplo n.º 24
0
def request(request):
    """
	请求加好友
	"""
    usr = request.user
    friendid = request.GET['friend_id']
    friendid = int(friendid)
    if friendid == usr.roleid:
        return {'msg': 'friend_can_not_self'}
    friend = user.get(int(friendid))
    if friend != None:
        usrNw = usr.getNetwork()
        data = usrNw.addFriendRequest(friend)
        if data.has_key('msg'):
            return data
        return {'friend': data}
    return {'msg': 'friend_not_exist'}
Exemplo n.º 25
0
def request(request):
	"""
	请求加好友
	"""
	usr = request.user
	friendid = request.GET['friend_id']
	friendid = int(friendid)
	if friendid == usr.roleid:
		return {'msg':'friend_can_not_self'}
	friend = user.get(int(friendid))
	if friend != None:		
		usrNw = usr.getNetwork()
		data = usrNw.addFriendRequest(friend)
		if data.has_key('msg'):
			return data
		return {'friend':data}
	return {'msg':'friend_not_exist'}
Exemplo n.º 26
0
def show(request):
    """
	显示
	"""
    roleid = request.GET['role_id']
    other = user.get(roleid)
    if not other:
        return {'msg': 'user_not_exist'}

    otNw = other.getNetwork()
    data = {}
    data['roleid'] = other.roleid
    data['name'] = other.name
    data['gender'] = other.gender
    data['level'] = other.level
    data['vip_level'] = other.vip['level']
    data['message'] = otNw.message
    return data
Exemplo n.º 27
0
def nearby(request):
    """
	显示周围玩家
	"""
    gameConf = config.getConfig('game')

    longitude = float(request.GET['longitude'])
    latitude = float(request.GET['latitude'])
    usr = request.user
    raidus = gameConf['player_near_by_raidus']
    degree = (24901 * 1609) / 360.0
    raidusMile = raidus
    dpmLat = 1 / degree
    radiusLat = dpmLat * raidusMile
    minLat = latitude - radiusLat
    maxLat = latitude + radiusLat

    mpdLng = degree * math.cos(latitude * (math.pi / 180))
    dpmLng = 1 / mpdLng
    radiusLng = dpmLng * raidusMile
    minLng = longitude - radiusLng
    maxLng = longitude + radiusLng

    res = account.getRange(minLng, maxLng, minLat, maxLat,
                           gameConf['player_near_by_count'])
    data = []
    for r in res:
        d = {}
        roleid = r[0]
        longitude = r[1]
        latitude = r[2]
        player = user.get(roleid)
        if not player:
            continue
        d['roleid'] = roleid
        d['longitude'] = longitude
        d['latitude'] = latitude
        d['avatar_id'] = avatar.getAvatarId(roleid)
        d['name'] = player.name
        d['level'] = player.level
        d['gender'] = player.gender
        data.append(d)
    return {'player': data}
Exemplo n.º 28
0
def nearby(request):
	"""
	显示周围玩家
	"""
	gameConf = config.getConfig('game')
	
	longitude = float(request.GET['longitude'])
	latitude = float(request.GET['latitude']	)
	usr = request.user	
	raidus = gameConf['player_near_by_raidus']		
	degree = (24901*1609)/360.0
	raidusMile = raidus
	dpmLat = 1 / degree
	radiusLat = dpmLat * raidusMile
	minLat = latitude - radiusLat
	maxLat = latitude + radiusLat
	
	mpdLng = degree * math.cos(latitude * (math.pi / 180))
	dpmLng = 1 / mpdLng
	radiusLng = dpmLng * raidusMile;  
	minLng = longitude - radiusLng;  
	maxLng = longitude + radiusLng;
  
	res = account.getRange(minLng, maxLng, minLat, maxLat, gameConf['player_near_by_count'])
	data = []
	for r in res:
		d = {}
		roleid = r[0]
		longitude = r[1]
		latitude = r[2]
		player = user.get(roleid)
		if not player:
			continue
		d['roleid'] = roleid
		d['longitude'] = longitude
		d['latitude'] = latitude
		d['avatar_id'] = avatar.getAvatarId(roleid)
		d['name'] = player.name
		d['level'] = player.level
		d['gender'] = player.gender
		data.append(d)  	
	return {'player':data}
Exemplo n.º 29
0
def scene(request):
	"""
	场影中玩家
	"""
	idx = int(request.GET['index'])
	sql = 'SELECT roleid from account WHERE roleid <> 0 ORDER BY lastlogin, gender LIMIT %s, %s'	
	conn = DBConnection.getConnection()
	gameConf = config.getConfig('game')
	data = {}
	data['player'] = []
	res = conn.query(sql, [idx, gameConf['scene_player_count']])	
	for rid in res:		
		try:
			u = user.get(rid[0])
			if u:
				data['player'].append(u.getSceneData())
		except:
			pass
	
	return data
Exemplo n.º 30
0
def scene(request):
    """
	场影中玩家
	"""
    idx = int(request.GET['index'])
    sql = 'SELECT roleid from account WHERE roleid <> 0 ORDER BY lastlogin, gender LIMIT %s, %s'
    conn = DBConnection.getConnection()
    gameConf = config.getConfig('game')
    data = {}
    data['player'] = []
    res = conn.query(sql, [idx, gameConf['scene_player_count']])
    for rid in res:
        try:
            u = user.get(rid[0])
            if u:
                data['player'].append(u.getSceneData())
        except:
            pass

    return data
Exemplo n.º 31
0
def mail(request):
    """
	发送私信
	"""
    friendid = request.GET['friend_id']
    mail = request.GET['mail']
    usr = request.user

    if friendid == usr.roleid:
        return {'msg': 'friend_can_not_self'}

    toUser = user.get(friendid)
    if toUser:
        toUserNw = toUser.getNetwork()
        if toUserNw.isBan(usr.roleid):
            return {'msg': 'user_is_in_ban'}
        usrNw = usr.getNetwork()
        usrNw.sendMail(toUser, mail)
        return {}
    return {'msg': 'friend_not_exist'}
Exemplo n.º 32
0
def message(request):
	"""
	留言
	"""
	friendid = int(request.GET['friend_id'])
	msg = request.GET['message']
	usr = request.user
	toUser = None
	if friendid == usr.roleid:
		toUser = usr
	else:
		toUser = user.get(friendid)
	if toUser:	
		usrNw = usr.getNetwork()
		toUserNw = toUser.getNetwork()
		if toUserNw.isBan(usr.roleid):
			return {'msg':'user_is_in_ban'}
		usrNw.sendMessage(toUser, msg)
		return {}		
	return {'msg':'friend_not_exist'}
Exemplo n.º 33
0
def message(request):
    """
	留言
	"""
    friendid = int(request.GET['friend_id'])
    msg = request.GET['message']
    usr = request.user
    toUser = None
    if friendid == usr.roleid:
        toUser = usr
    else:
        toUser = user.get(friendid)
    if toUser:
        usrNw = usr.getNetwork()
        toUserNw = toUser.getNetwork()
        if toUserNw.isBan(usr.roleid):
            return {'msg': 'user_is_in_ban'}
        usrNw.sendMessage(toUser, msg)
        return {}
    return {'msg': 'friend_not_exist'}
Exemplo n.º 34
0
def mail(request):
	"""
	发送私信
	"""
	friendid = request.GET['friend_id']
	mail = request.GET['mail']
	usr = request.user	
	
	if friendid == usr.roleid:
		return {'msg':'friend_can_not_self'}
			
	toUser = user.get(friendid)
	if toUser:
		toUserNw = toUser.getNetwork()
		if toUserNw.isBan(usr.roleid):
			return {'msg':'user_is_in_ban'}
		usrNw = usr.getNetwork()
		usrNw.sendMail(toUser, mail)
		return {}
	return {'msg':'friend_not_exist'}
Exemplo n.º 35
0
def gm_tool_set_pet(request):
	
	data = {}
	if request.method == 'POST':
		petopt = request.POST['petopt']
		roleid = request.POST['roleid']
		
		usr = user.get(roleid)
		
		if not usr:
			return HttpResponse('玩家不存在')
		acc = usr.getAccount()		
		
		if petopt == 'add':
			cardid = request.POST['petSelect']
			cnt = int(request.POST['tfPetCount'])
			level = int(request.POST['tfPetLevel'])
			inv = usr.getInventory()
			c = inv.addCardCount(cardid, cnt, level)
			inv.save()
			if not c:
				return HttpResponse('添加失败')			
		elif petopt == 'remove':
			id = request.POST['petid']
			inv = usr.getInventory()
			if not inv.delCard(id):
				return HttpResponse('删除失败')		
			inv.save()
		elif petopt == 'add_chip':
			cardid = request.POST['petChipSelect']
			cnt = int(request.POST['tfPetChipCount'])
			inv = usr.getInventory()
			if inv.addCardChip(cardid, cnt) < 0:
				return HttpResponse('添加失败')				
			inv.save()
		else:
			return HttpResponse('无效的功能')
		data = gm.show_profile(acc, usr)
		return render(request, 'profile.html', data)
	return HttpResponse('未知命令')
Exemplo n.º 36
0
def gm_tool_set_pet(request):

    data = {}
    if request.method == 'POST':
        petopt = request.POST['petopt']
        roleid = request.POST['roleid']

        usr = user.get(roleid)

        if not usr:
            return HttpResponse('玩家不存在')
        acc = usr.getAccount()

        if petopt == 'add':
            cardid = request.POST['petSelect']
            cnt = int(request.POST['tfPetCount'])
            level = int(request.POST['tfPetLevel'])
            inv = usr.getInventory()
            c = inv.addCardCount(cardid, cnt, level)
            inv.save()
            if not c:
                return HttpResponse('添加失败')
        elif petopt == 'remove':
            id = request.POST['petid']
            inv = usr.getInventory()
            if not inv.delCard(id):
                return HttpResponse('删除失败')
            inv.save()
        elif petopt == 'add_chip':
            cardid = request.POST['petChipSelect']
            cnt = int(request.POST['tfPetChipCount'])
            inv = usr.getInventory()
            if inv.addCardChip(cardid, cnt) < 0:
                return HttpResponse('添加失败')
            inv.save()
        else:
            return HttpResponse('无效的功能')
        data = gm.show_profile(acc, usr)
        return render(request, 'profile.html', data)
    return HttpResponse('未知命令')
Exemplo n.º 37
0
def gm_tool_set_skill(request):
    data = {}
    if request.method == 'POST':
        skillopt = request.POST['skillopt']
        roleid = request.POST['roleid']

        usr = user.get(roleid)

        if not usr:
            return HttpResponse('玩家不存在')
        acc = usr.getAccount()

        if skillopt == 'add':
            skillid = request.POST['skillSelect']
            cnt = int(request.POST['tfSkillCount'])
            inv = usr.getInventory()
            s = inv.addSkillCount(skillid, cnt)
            inv.save()
            if not s:
                return HttpResponse('添加失败')
            data = gm.show_profile(acc, usr)
        elif skillopt == 'remove':
            id = request.POST['skillid']
            inv = usr.getInventory()
            if not inv.delSkill(id):
                return HttpResponse('删除失败')
            inv.save()
        elif skillopt == 'add_chip':
            skillid = request.POST['skillChipSelect']
            cnt = int(request.POST['tfSkillChipCount'])
            inv = usr.getInventory()
            if inv.addSkillChip(skillid, cnt) < 0:
                return HttpResponse('添加失败')
            inv.save()
        else:
            return HttpResponse('无效功能')
        data = gm.show_profile(acc, usr)
        return render(request, 'profile.html', data)
    return HttpResponse('未知命令')
Exemplo n.º 38
0
def gm_tool_set_skill(request):
	data = {}
	if request.method == 'POST':
		skillopt = request.POST['skillopt']
		roleid = request.POST['roleid']
		
		usr = user.get(roleid)
		
		if not usr:
			return HttpResponse('玩家不存在')
		acc = usr.getAccount()		
		
		if skillopt == 'add':
			skillid = request.POST['skillSelect']
			cnt = int(request.POST['tfSkillCount'])
			inv = usr.getInventory()
			s = inv.addSkillCount(skillid, cnt)
			inv.save()
			if not s:
				return HttpResponse('添加失败')
			data = gm.show_profile(acc, usr)
		elif skillopt == 'remove':
			id = request.POST['skillid']
			inv = usr.getInventory()
			if not inv.delSkill(id):
				return HttpResponse('删除失败')
			inv.save()
		elif skillopt == 'add_chip':
			skillid = request.POST['skillChipSelect']
			cnt = int(request.POST['tfSkillChipCount'])
			inv = usr.getInventory()
			if inv.addSkillChip(skillid, cnt) < 0:
				return HttpResponse('添加失败')		
			inv.save()		
		else:
			return HttpResponse('无效功能')
		data = gm.show_profile(acc, usr)
		return render(request, 'profile.html', data)
	return HttpResponse('未知命令')
Exemplo n.º 39
0
	def stand(self, roleid):		
		"""
		添加排行榜
		"""
		usr = user.get(roleid)
		
		if not usr:
			return {'msg':'user_not_exist'}	
		
		if not self.item.has_key(roleid):			
			rd = {}
			rd['roleid'] = roleid
			rd['name'] = usr.name
			rd['level'] = usr.level
			rd['last_update'] = currentTime()
			rd['score'] = 0
			rd['avatar_id'] = usr.avatar_id
			self.item[roleid] = rd
			self.rank.append(roleid)
			self.save()
			return len(self.rank) -1
		return {'msg':'arena_ladder_already_stand'}
Exemplo n.º 40
0
def gm_tool_profile_find(request):
    data = {}
    if request.method == 'POST':
        opt = request.POST['findopt']
        if opt == 'roleidFind':
            roleid = request.POST['tfRoleid']
            if roleid:
                usr = user.get(roleid)
                if not usr:
                    return HttpResponse('玩家不存在')
                acc = usr.getAccount()
                data = gm.show_profile(acc, usr)
        elif opt == 'accountFind':
            name = request.POST['tfAccountName']
            acc = account.get_by_account_name(name)
            if not acc:
                return HttpResponse('帐号不存在')
            usr = acc.getUser()
            if not usr:
                return HttpResponse('玩家不存在')
            data = gm.show_profile(acc, usr)

    return render(request, 'profile.html', data)
Exemplo n.º 41
0
def gm_tool_profile_find(request):
	data = {}
	if request.method == 'POST':
		opt = request.POST['findopt']
		if opt == 'roleidFind':
			roleid = request.POST['tfRoleid']
			if roleid:
				usr = user.get(roleid)
				if not usr:
					return HttpResponse('玩家不存在')
				acc = usr.getAccount()
				data = gm.show_profile(acc, usr)
		elif opt == 'accountFind':
			name = request.POST['tfAccountName']
			acc = account.get_by_account_name(name)
			if not acc:
				return HttpResponse('帐号不存在')
			usr = acc.getUser()
			if not usr:
				return HttpResponse('玩家不存在')
			data = gm.show_profile(acc, usr)
		
	return render(request, 'profile.html', data)
Exemplo n.º 42
0
def gm_tool_set_medal(request):
    data = {}
    if request.method == 'POST':
        medalopt = request.POST['medalopt']
        roleid = request.POST['roleid']

        usr = user.get(roleid)
        if not usr:
            return HttpResponse('玩家不存在')
        acc = usr.getAccount()

        if medalopt == 'add':
            medalid = request.POST['medalSelect']
            chipnum = int(request.POST['chipSelect'])
            cnt = int(request.POST['tfChipCount'])
            inv = usr.getInventory()
            mc = inv.addMedalChip(medalid, chipnum, cnt)
            medal.newMedal(usr, medalid, chipnum, cnt)
            if not mc:
                return HttpResponse('删除失败')
            inv.save()
            data = gm.show_profile(acc, usr)
        return render(request, 'profile.html', data)
    return HttpResponse('未知命令')
Exemplo n.º 43
0
def gm_tool_set_profile(request):
	
	data = {}
	if request.method == 'POST':
		operator = request.POST['operator']
		roleid = request.POST['roleid']		
		if operator == 'exp':
			value = request.POST['tfExp']
			if value == '':
				return HttpResponse('经验为空')
			usr = user.get(roleid)
			if not usr:
				return HttpResponse('玩家不存在')
			usr.gainExp(int(value))
			usr.save()
			acc = usr.getAccount()
			data = gm.show_profile(acc, usr)
		elif operator == 'gold':
			value = request.POST['tfGold']
			if value == '':
				return HttpResponse('金钱为空')
			usr = user.get(roleid)
			if not usr:
				return HttpResponse('玩家不存在')
			usr.gold = int(value)
			usr.save()
			acc = usr.getAccount()
			data = gm.show_profile(acc, usr)
		elif operator == 'gem':
			value = request.POST['tfGem']
			if value == '':
				return HttpResponse('宝石为空')
			usr = user.get(roleid)
			if not usr:
				return HttpResponse('玩家不存在')
			usr.gem = int(value)
			usr.save()
			acc = usr.getAccount()
			data = gm.show_profile(acc, usr)
		elif operator == 'stamina':
			value = request.POST['tfStamina']
			if value == '':
				return HttpResponse('体力为空')
			usr = user.get(roleid)
			if not usr:
				return HttpResponse('玩家不存在')
			usr.chargeStamina(int(value))
			usr.save()
			acc = usr.getAccount()
			data = gm.show_profile(acc, usr)
		elif operator == 'trp':
			value = request.POST['tfTrp']
			if value == '':
				return HttpResponse('培养点为空')
			usr = user.get(roleid)
			if not usr:
				return HttpResponse('玩家不存在')
			usr.trp = int(value)
			usr.save()
			acc = usr.getAccount()
			data = gm.show_profile(acc, usr)
		elif operator == 'reset_login':
			usr = user.get(roleid)
			signin.reset(usr)
			usr.save()
			acc = usr.getAccount()
			data = gm.show_profile(acc, usr)
		elif operator == 'login_count':
			value = request.POST['tfLoginCount']
			if value == '':
				return HttpResponse('次数不能为空')
			usr = user.get(roleid)
			if not usr:
				return HttpResponse('玩家不存在')
			usr.signin['login_count'] = int(value)
			usr.signin['last_login_time'] = currentTime()
			usr.signin['last_signin_time'] = currentTime()
			usr.save()
			acc = usr.getAccount()
			data = gm.show_profile(acc, usr)
		elif operator == 'email':
			value = request.POST['emailSselect']
			if value == '':
				return HttpResponse('email不能为空')
			usr = user.get(roleid)
			if not usr:
				return HttpResponse('玩家不存在')
			
			nw = usr.getNetwork()
			emailConf = config.getConfig('email')
			emailInfo = emailConf[value]
			
			if emailInfo['optype'] == 1:
				nw.appendEmail(value, usr.name)
			elif emailInfo['optype'] == 2:
				nw.appendEmail(value, str(currentTime()))
			else: 
				return HttpResponse('不能发送')
			acc = usr.getAccount()
			data = gm.show_profile(acc, usr)
			
	return render(request, 'profile.html', data)
Exemplo n.º 44
0
    def gift(self, sendRoleid, receiveRoleid):
        """
		送礼
		"""
        sendUsr = user.get(sendRoleid)
        receiveUsr = user.get(receiveRoleid)

        if (not sendUsr) or (not receiveUsr):
            return {'msg': 'usr_not_exist'}

        sendUsrNw = sendUsr.getNetwork()
        receiveUsrNw = receiveUsr.getNetwork()

        gameConf = config.getConfig('game')

        if receiveRoleid in self.charm_ladder:
            self.charm_ladder = filter(lambda x: x != receiveRoleid,
                                       self.charm_ladder)

        if sendRoleid in self.tuhao_ladder:
            self.tuhao_ladder = filter(lambda x: x != sendRoleid,
                                       self.tuhao_ladder)

        tuhao_position = -1
        for (i, rid) in enumerate(self.tuhao_ladder):
            if receiveUsrNw.tuhao > self.user[rid]['tuhao']:
                tuhao_position = i
                break
        if len(self.tuhao_ladder
               ) < gameConf['gift_ladder_max_size'] and tuhao_position < 0:
            tuhao_position = len(self.tuhao_ladder)
        if tuhao_position >= 0:
            self.tuhao_ladder.insert(tuhao_position, sendRoleid)

        charm_position = -1

        for (i, rid) in enumerate(self.charm_ladder):
            if receiveUsrNw.charm > self.user[rid]['charm']:
                charm_position = i
                break
        if len(self.charm_ladder
               ) < gameConf['gift_ladder_max_size'] and charm_position < 0:
            charm_position = len(self.charm_ladder)

        if charm_position >= 0:
            self.charm_ladder.insert(charm_position, receiveRoleid)

        if tuhao_position >= 0:
            self.user[sendRoleid] = {
                'roleid': sendRoleid,
                'charm': sendUsrNw.charm,
                'tuhao': sendUsrNw.tuhao,
                'charm': receiveUsrNw.charm,
                'name': sendUsr.name,
                'level': sendUsr.level
            }
        if charm_position >= 0:
            self.user[receiveRoleid] = {
                'roleid': receiveRoleid,
                'charm': receiveUsrNw.charm,
                'tuhao': receiveUsrNw.tuhao,
                'charm': receiveUsrNw.charm,
                'name': receiveUsr.name,
                'level': receiveUsr.level
            }

        self.update_ladder(gameConf)
        self.save()

        return {
            'charm_user_position': charm_position,
            'tuhao_user_position': tuhao_position
        }
Exemplo n.º 45
0
def gm_tool_set_profile(request):

    data = {}
    if request.method == 'POST':
        operator = request.POST['operator']
        roleid = request.POST['roleid']
        if operator == 'exp':
            value = request.POST['tfExp']
            if value == '':
                return HttpResponse('经验为空')
            usr = user.get(roleid)
            if not usr:
                return HttpResponse('玩家不存在')
            usr.gainExp(int(value))
            usr.save()
            acc = usr.getAccount()
            data = gm.show_profile(acc, usr)
        elif operator == 'gold':
            value = request.POST['tfGold']
            if value == '':
                return HttpResponse('金钱为空')
            usr = user.get(roleid)
            if not usr:
                return HttpResponse('玩家不存在')
            usr.gold = int(value)
            usr.save()
            acc = usr.getAccount()
            data = gm.show_profile(acc, usr)
        elif operator == 'gem':
            value = request.POST['tfGem']
            if value == '':
                return HttpResponse('宝石为空')
            usr = user.get(roleid)
            if not usr:
                return HttpResponse('玩家不存在')
            usr.gem = int(value)
            usr.save()
            acc = usr.getAccount()
            data = gm.show_profile(acc, usr)
        elif operator == 'stamina':
            value = request.POST['tfStamina']
            if value == '':
                return HttpResponse('体力为空')
            usr = user.get(roleid)
            if not usr:
                return HttpResponse('玩家不存在')
            usr.chargeStamina(int(value))
            usr.save()
            acc = usr.getAccount()
            data = gm.show_profile(acc, usr)
        elif operator == 'trp':
            value = request.POST['tfTrp']
            if value == '':
                return HttpResponse('培养点为空')
            usr = user.get(roleid)
            if not usr:
                return HttpResponse('玩家不存在')
            usr.trp = int(value)
            usr.save()
            acc = usr.getAccount()
            data = gm.show_profile(acc, usr)
        elif operator == 'reset_login':
            usr = user.get(roleid)
            signin.reset(usr)
            usr.save()
            acc = usr.getAccount()
            data = gm.show_profile(acc, usr)
        elif operator == 'login_count':
            value = request.POST['tfLoginCount']
            if value == '':
                return HttpResponse('次数不能为空')
            usr = user.get(roleid)
            if not usr:
                return HttpResponse('玩家不存在')
            usr.signin['login_count'] = int(value)
            usr.signin['last_login_time'] = currentTime()
            usr.signin['last_signin_time'] = currentTime()
            usr.save()
            acc = usr.getAccount()
            data = gm.show_profile(acc, usr)
        elif operator == 'email':
            value = request.POST['emailSselect']
            if value == '':
                return HttpResponse('email不能为空')
            usr = user.get(roleid)
            if not usr:
                return HttpResponse('玩家不存在')

            nw = usr.getNetwork()
            emailConf = config.getConfig('email')
            emailInfo = emailConf[value]

            if emailInfo['optype'] == 1:
                nw.appendEmail(value, usr.name)
            elif emailInfo['optype'] == 2:
                nw.appendEmail(value, str(currentTime()))
            else:
                return HttpResponse('不能发送')
            acc = usr.getAccount()
            data = gm.show_profile(acc, usr)

    return render(request, 'profile.html', data)