Beispiel #1
0
def CorpsInviteReply(dynamicId,characterId,union_id,is_ok):
    '''邀请加入行会的反馈信息
    @param dynamicId: int 客户端的动态id
    @param characterId: int 角色的id
    @param union_id: int 行会的id(邀请者的ID)
    @param is_ok: int 是否同意 0否 1是
    '''
    player = PlayersManager().getPlayerByID(characterId)
    fplayer = PlayersManager().getPlayerByID(union_id)
    if not player or not player.CheckClient(dynamicId):
        return {'result':False,'message':Lg().g(18)}
    nowguildId = player.guild.getID()
    toguildId = dbGuild.getCharacterGuildId(union_id)
    if fplayer and not is_ok:
        msg = "%s拒绝了你的邀请"%player.baseInfo.getName()
        pushOtherMessage(905, msg, [fplayer.getDynamicId()])
        return {'result':True}
    if nowguildId:
        return {'result':False,'message':Lg().g(94)}
    guild = GuildManager().getGuildById(toguildId)
    if not guild:
        return {'result':False,'message':Lg().g(95)}
    surplushours = player.guild.getCanJoinTime()
    if surplushours:
        return {'result':False,'message':Lg().g(647)%surplushours}
    result = guild.JointGuild(characterId)
    if result.get('result',False):
        
        msg = u'成功加入%s'%guild.getGuildName()
        pushOtherMessage(905, msg, [dynamicId])
    else:
        nmsg = result.get('message','')
        pushOtherMessage(905, nmsg, [dynamicId])
    return result
Beispiel #2
0
def LevelUpEmblem(dynamicId,characterId):
    '''升级军徽
    @param dynamicId: int 客户端的动态id
    @param characterId: int 角色的id
    '''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result':False,'message':Lg().g(18)}
    guildId = player.guild.getID()
    if not guildId:
        return {'result':False,'message':Lg().g(79)}
    guild = GuildManager().getGuildById(guildId)
    emblemlevel = guild.guildinfo.get('emblemLevel',0)
    goldRequired = {1:100,2:200,3:500,4:1000,5:2000,6:5000,7:10000,8:20000,9:50000,10:10000}
    goldcons = goldRequired.get(emblemlevel,100)
    if goldcons > player.finance.getGold():
        msg = Lg().g(190)
        pushOtherMessage(905, msg, [dynamicId])
        return {'result':False,'message':msg}
    data = guild.LevelUpEmblem(characterId)
    if data.get('result',False):
        player.finance.consGold(goldcons,6)#升级军徽消耗钻
        player.guild.addContribution(int(goldcons*1.5))
        player.updatePlayerInfo()
    else:
        pushOtherMessage(905, data.get('message',''), [dynamicId])
    return data
Beispiel #3
0
def CorpsInviteOther(dynamicId,characterId,otherid,otername):
    '''邀请加入行会
    @param dynamicId: int 客户端的动态id
    @param characterId: int 角色的id
    @param otherid: int 对方的Id
    @param otername: 对方的名称
    '''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result':False,'message':Lg().g(18)}
    guildId = player.guild.getID()
    if not guildId:
        return {'result':False,'message':Lg().g(79)}
    toplayer = PlayersManager().getPlayerByID(otherid)
    if not toplayer:
        return {'result':False,'message':Lg().g(91)}
    if toplayer.level.getLevel()<LEVELREQUIRED:
        return {'result':False,'message':Lg().g(86)}
    guild = GuildManager().getGuildById(guildId)
    if guild.guildinfo.get('curMenberNum',50)>=guild.guildinfo.get('memberCount',50):
        return {'result':False,'message':Lg().g(83)}
    sendList = [toplayer.getDynamicId()]
    pushInviteOtherJoinGuild(characterId, guildId, player.baseInfo.getName(),\
                              guild.getGuildName(), sendList)
    msg = Lg().g(92)
    pushOtherMessage(905, msg, [dynamicId])
    return {'result':True}
Beispiel #4
0
def NetConnLost_2(dynamicId):
    '''loginout'''
    player = PlayersManager().getPlayerBydynamicId(dynamicId)
    if not player:
        return True
    try:
        tag=player.baseInfo.getInstancetag() #副本动态Id
        InstanceManager().dropInstanceById(tag)#如果角色下线的时候在副本中,就清空副本
        player.afk.stopMeditation()#在线挂机结算
        player.updatePlayerDBInfo()
#        player.qhtime.dbupdate()#记录角色强化冷却时间
        player.nobility.dbupdate()#记录爵位限制信息
        player.petShop.dbupdate()#记录宠物商店信息
#        publicnoderemote.callRemote('dropPCharacter',player.baseInfo.id)
        PlayersManager().dropPlayer(player)
        state = player.baseInfo.getState()
        if state == 0:
            sceneId = player.baseInfo.getTown()
            scene = MapManager().getMapId(sceneId)
            scene.dropPlayer(player.baseInfo.id)
            if player.baseInfo.getState()==0:
                scene.dropPlayer(player.baseInfo.id)
                for petId,pet in player.pet._pets.items():
                    if pet.getFlowFlag():
                        scene.dropPet(petId)
    except Exception as ex:
        log.err(ex) 
    finally:
        return True
Beispiel #5
0
def enterGuildBattleField(dynamicId,characterId):
    '''进入行会战副本
    @param dynamicId: int 客户端的动态id
    @param characterId: int 角色的id
    '''
    res = CanDoServer(characterId)
    if not res['result']:
        return res        
    player = PlayersManager().getPlayerByID(characterId)
    if  not player.CheckClient(dynamicId):
        return {'result':False,'message':Lg().g(18)}
    if not player.status.getLifeStatus():
        return {'result':False,'message':Lg().g(97)}
    if player.baseInfo.getState()==1:
        return {'result':False,'message':Lg().g(98)}
    guildId = player.guild.getID()
    if not guildId:
        return {'result':False,'message':Lg().g(79)}
    battleArea = BattleAreaManager().getGuildBattleAreaIdByGuildId(guildId)
    if not battleArea:
        return {'result':False,'message':Lg().g(99)}
    nowSceneId = battleArea.enterGuildBattleField(guildId,characterId)
    if not nowSceneId:
        return {'result':False,'message':Lg().g(100)}
    lastscene = SceneManager_new().getSceneById(player.baseInfo.getLocation())
    lastscene.dropPlayer(player.baseInfo.id)
    player.baseInfo.setState(2)
    data = {'placeId':nowSceneId}
    return {'result':True,'data':data}
    

    
    
        
        
Beispiel #6
0
def ObtainReward(pid, did):
    '''领取单个保卫奖励
    @param pid: int 角色id
    @param did: int 保卫奖励表主键id
    '''
    msg = u""
    flg = True
    player = PlayersManager().getPlayerByID(pid)  #获得角色id
    info = dbDefenceBonus.getByid(did)  #根据奖励主键id获得奖励信息
    if not info:
        pushObjectNetInterface.pushOtherMessage(905,
                                                Lg().g(61),
                                                [player.getDynamicId()])
        return False, Lg().g(61)
    reward = info['reward']
    player.finance.updatePrestige(player.finance.getPrestige() + reward)
    if not dbDefenceBonus.delByid(info['id']):
        msg += Lg().g(62)
        flg = False


#    item=Item(itemTemplateId=20030061)
#    item.pack.setStack(info['reward']) #物品的数量
#    rs1=player.pack._package.canPutItem(item,info['reward']) #判断背包中是否可以放入这些数量的物品
#    if rs1: #如果可以放进去
#        player.pack.putNewItemsInPackage(20030061,info['reward'])
#        del item
#        if not dbDefenceBonus.delByid(info['id']) :
#            msg+=Lg().g(62)
#            flg=False
#    else: #如果一个奖励所获得物品不能放入背包
#        del item
#        pushObjectNetInterface.pushOtherMessage(905, Lg().g(16), [player.getDynamicId()])
#        return False,Lg().g(16)
    return flg, msg
Beispiel #7
0
 def LevelUpEmblem(self, operator):
     '''升级军徽
     @param operator: int 操作者的id
     '''
     if self.MAXLEVEL <= self.get('emblemLevel'):
         return {'result': False, 'message': Lg().g(542)}
     player = PlayersManager().getPlayerByID(operator)
     self.emblemLevel += 1
     result = True
     if result:
         msg = Lg().g(543)%\
         (self.guildinfo['emblemLevel'])
         pushOtherMessage(905, msg, [player.getDynamicId()])
         if self.guildinfo['emblemLevel'] == 20:
             utype = {
                 1: Lg().g(544),
                 2: Lg().g(545)
             }.get(self.guildinfo['camp'],
                   Lg().g(546))
             palyername = player.baseInfo.getName(0)
             gname = self.getGuildName()
             sendmsg = Lg().g(547) % (utype, palyername, gname)
             chatnoderemote.callRemote('pushSystemToInfo', sendmsg)
         return {
             'result': True,
             'message': Lg().g(548) % (self.guildinfo['emblemLevel'])
         }
     return {'result': False, 'message': Lg().g(549)}
Beispiel #8
0
def agreeGroup(dynamicId, id, tid):
    '''同意组队邀请 (别人进来)
    @param dynamicId: int 客户端的id
    @param id: int 被邀请人id
    @param tid: int 邀请人id
    '''
    player = PlayersManager().getPlayerByID(id)  #被邀请人
    toplayer = PlayersManager().getPlayerByID(tid)  #邀请人
    sendPlayer = None  #队长角色
    if not player:
        return {'result': False, 'message': Lg().g(18)}
    if not toplayer:
        return {'result': False, 'message': Lg().g(256)}

    if player.teamcom.amITeamMember() and toplayer.teamcom.amITeamMember(
    ):  #如果都有组队
        return {'result': False, 'message': Lg().g(251)}
    elif not player.teamcom.amITeamMember(
    ) and not toplayer.teamcom.amITeamMember():  #如果都没有队伍
        data = toplayer.teamcom.addTeamMember(player)  #邀请者为队长
        sendPlayer = toplayer
    else:
        sendPlayer = toplayer.teamcom.getMyTeamLeader()  #队长角色
        data = sendPlayer.teamcom.addTeamMember(player)
    if data['result']:
        player.teamcom.pushTeamMemberInfo()
        pushObjectNetInterface.pushOtherMessage(905,
                                                Lg().g(257),
                                                sendPlayer.dynamicId)
    return data
Beispiel #9
0
def StartUpGuaJi(dynamicId,characterId):
    '''角色开始挂机
    @param characterId: int 角色的ID
    '''
    from app.scense.core.campaign.FortressManager import FortressManager
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result':False,'message':Lg().g(18)}
    #判断是否有冥想加成
    if player.baseInfo.getState()==1:  #如果角色在副本
        state = 0
    else:
        guildId = player.guild.getID()
        sceneId = player.baseInfo.getTown()
        fortress=  FortressManager().getFortressBySceneId(sceneId)
        if not fortress.isOccupied:
            state = 0
        else:
            if fortress.kimori==guildId and guildId!=0:
                state=1
            else:
                state = 0
    result = player.afk.startMeditation(state=state)
    if not result.get('result'):
        msg = result.get('message')
        sendId = player.getDynamicId()
        pushOtherMessage(905, msg, [sendId])
    return result
Beispiel #10
0
def getSxzy(characterid,item1,item2):
    '''获取属性转移后的效果及其花费信息
    @param item1: int 物品id (转移后强化等级变成0的那个物品的id)
    @param item: int 物品id 
    '''
    if item1==item2:
        pushObjectNetInterface.pushOtherMessageByCharacterId(Lg().g(206), [characterid])
        return {'result':False,'message':Lg().g(206),'data':None}
    player=PlayersManager().getPlayerByID(characterid) #角色实例
    if not player:
        return {'result':False,'message':Lg().g(199),'data':None}
    if player.level.getLevel()<30:
        return {'result':False,'message':Lg().g(205),'data':None}
    items1=getItemByplayer(player, item1)
    if not items1:
        return {'result':False,'message':Lg().g(189),'data':None}
    items2=getItemByplayer(player, item2)
    if not items2:
        return {'result':False,'message':Lg().g(189),'data':None}
    
    if items1.getWQtype()!=items2.getWQtype():
        return {'qh':None,'coin':0}

    level=Sxzy(items1, items2)
    zyyh=level+items2.attribute.getStrengthen()#转移以后装备的强化等级
    if player.level.getLevel()<zyyh:
        pushObjectNetInterface.pushOtherMessage(905, Lg().g(207)%zyyh, [player.getDynamicId()])
    Zcion=getSxzyCoin(items1, items2)#转移花费金币
    
    
    return {'qh':level,'coin':Zcion}
Beispiel #11
0
def GetCityListInfo4402(dynamicId, characterId):
    '''获取城镇征战信息列表'''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    info = FortressManager().getAllFortressInfo()
    return {'result': True, 'data': info}
Beispiel #12
0
def NetConnLost_2(dynamicId):
    '''loginout'''
    player = PlayersManager().getPlayerBydynamicId(dynamicId)
    if not player:
        return True
    try:
        tag = player.baseInfo.getInstancetag()  #副本动态Id
        InstanceManager().dropInstanceById(tag)  #如果角色下线的时候在副本中,就清空副本
        player.afk.stopMeditation()  #在线挂机结算
        player.updatePlayerDBInfo()
        #        player.qhtime.dbupdate()#记录角色强化冷却时间
        player.nobility.dbupdate()  #记录爵位限制信息
        player.petShop.dbupdate()  #记录宠物商店信息
        #        publicnoderemote.callRemote('dropPCharacter',player.baseInfo.id)
        PlayersManager().dropPlayer(player)
        state = player.baseInfo.getState()
        if state == 0:
            sceneId = player.baseInfo.getTown()
            scene = MapManager().getMapId(sceneId)
            scene.dropPlayer(player.baseInfo.id)
            if player.baseInfo.getState() == 0:
                scene.dropPlayer(player.baseInfo.id)
                for petId, pet in player.pet._pets.items():
                    if pet.getFlowFlag():
                        scene.dropPet(petId)
    except Exception as ex:
        log.err(ex)
    finally:
        return True
Beispiel #13
0
def argeeApplyGroup(id, tid):
    '''同意申请入队
    @param id: int 申请入队者id
    @param tid: int 有队的伍角色id
    '''
    player = PlayersManager().getPlayerByID(id)  #申请入队者
    toplayer = PlayersManager().getPlayerByID(tid)  #有队伍的角色id
    sendPlayer = toplayer.teamcom.getMyTeamLeader()  #队长角色

    if not player:
        return {'result': False, 'message': Lg().g(18)}
    if not toplayer:
        return {'result': False, 'message': Lg().g(256)}
    if player.teamcom.amITeamMember():
        return {'result': False, 'message': Lg().g(254)}
    if not player.teamcom.amITeamMember():
        return {'result': False, 'message': Lg().g(255)}
    if sendPlayer.teamcom.amITeamMember():  #如果队长有队伍
        data = sendPlayer.teamcom.addTeamMember(player)
    if data['result']:
        player.teamcom.pushTeamMemberInfo()
        pushObjectNetInterface.pushOtherMessage(905,
                                                Lg().g(257),
                                                [sendPlayer.dynamicId])
    return data
Beispiel #14
0
def GetGroupLingDiInfo4400(dynamicId, characterId):
    '''获取国领地信息
    '''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    guildId = player.guild.getID()
    if not guildId:
        return {'result': False, 'message': Lg().g(79)}
    guild = GuildManager().getGuildById(guildId)
    guildInfo = guild.guildinfo
    info = {}
    ldID = FortressManager().getGuildFortressId(guildId)
    fortress = FortressManager().getFortressById(ldID)
    if fortress:
        if not fortress.isOccupied:
            fortress = None
    info['ldType'] = ldID if fortress else 0
    info['groupName'] = guildInfo['name']
    info['groupLevel'] = guildInfo['level']
    info['groupLeader'] = guildInfo['presidentname']
    info['obtainJL'] = True if fortress else False
    info['icon'] = guildInfo['emblemLevel']
    info['battleInfo'] = [] if not fortress else fortress.fightlog
    info['battleTime'] = 0 if not fortress else fortress.getNextFightTime()
    return {'result': True, 'data': info}
Beispiel #15
0
def addexp(characterId, argument):
    '''升级'''
    if len(argument) < 1:
        return
    player = PlayersManager().getPlayerByID(characterId)
    player.level.addExp(int(argument[0]))
    player.updatePlayerInfo()
def ObtainItem_2408(dynamicId, request_proto):
    '''放到自己背包中'''
    argument=ObtainItem2408_pb2.ObtainItemRequest()
    argument.ParseFromString(request_proto)
    response=ObtainItem2408_pb2.ObtainItemResponse()
    
    id=argument.id #角色id
    type=argument.type #0获取所有 1获取单个
    pos=argument.pos # 单个在背包的位置
    player=PlayersManager().getPlayerByID(id) #角色实例
    if type==0:
        data=player.instance.putAllItemsInPack()
        if not data:
            response.result=False
            response.message=Lg().g(16)
            pushObjectNetInterface.pushOtherMessage(905, Lg().g(16), [player.getDynamicId()])
            return response.SerializeToString()
    else:
        data=player.instance.getOneItemInPackByPosition(pos)
        if not data:
            response.result=False
            response.message=Lg().g(16)
            return response.SerializeToString()
    response.result=True
    response.message=u''
    return response.SerializeToString()
Beispiel #17
0
def cleancd(characterId,argument):
    '''清除竞技场CD'''
    player = PlayersManager().getPlayerByID(characterId)
    if not player:
        return
    player.arena.clearCD()
    player.updatePlayerInfo()
Beispiel #18
0
 def updateAllMonsterLocation(self):
     '''更新场景中所有怪物的坐标
     '''
     self._movetag += 1
     tag = 0
     for player in self._playerlist:  #如果副本中有人在战斗,所有怪物停止移动
         pl = PlayersManager().getPlayerByID(player)
         if pl.baseInfo.getStatus() == 4:
             return
     for monster in self._monsters.values():
         hasMove = 0
         if not monster.getMoveable():  #判断怪物在场景能否移动
             continue
         mposition = monster.baseInfo.getStaticPosition()
         for playerId in self._playerlist:
             pposition = PlayersManager().getPlayerByID(
                 playerId).baseInfo.getPosition()
             if abs(mposition[0] - pposition[0]) < DISTANCE:
                 hasMove = 1
                 monster.baseInfo.setPosition(pposition)
                 continue
             if not hasMove and self._movetag == MOVERATE:
                 tag = 1
                 monster.updateLocation()
     if tag:
         self._movetag = 0
def ObtainReward(pid,did):
    '''领取单个保卫奖励
    @param pid: int 角色id
    @param did: int 保卫奖励表主键id
    '''
    msg=u""
    flg=True
    player=PlayersManager().getPlayerByID(pid)#获得角色id
    info=dbDefenceBonus.getByid(did) #根据奖励主键id获得奖励信息
    if not info:
        pushObjectNetInterface.pushOtherMessage(905, Lg().g(61), [player.getDynamicId()])
        return False,Lg().g(61)
    reward=info['reward']
    player.finance.updatePrestige(player.finance.getPrestige()+reward)
    if not dbDefenceBonus.delByid(info['id']) : 
        msg+=Lg().g(62)
        flg=False

#    item=Item(itemTemplateId=20030061)
#    item.pack.setStack(info['reward']) #物品的数量
#    rs1=player.pack._package.canPutItem(item,info['reward']) #判断背包中是否可以放入这些数量的物品
#    if rs1: #如果可以放进去
#        player.pack.putNewItemsInPackage(20030061,info['reward'])
#        del item
#        if not dbDefenceBonus.delByid(info['id']) : 
#            msg+=Lg().g(62)
#            flg=False
#    else: #如果一个奖励所获得物品不能放入背包
#        del item
#        pushObjectNetInterface.pushOtherMessage(905, Lg().g(16), [player.getDynamicId()])
#        return False,Lg().g(16)
    return flg,msg
Beispiel #20
0
def TaskExcuteTalk(dynamicId, characterId, task_id, npc_id):
    '''任务交谈'''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result': False}
    data = player.quest.talkWithNpc(npc_id, task_id)
    return {'result': data, 'message': u''}
Beispiel #21
0
def ObtainItem_2408(dynamicId, request_proto):
    '''放到自己背包中'''
    argument = ObtainItem2408_pb2.ObtainItemRequest()
    argument.ParseFromString(request_proto)
    response = ObtainItem2408_pb2.ObtainItemResponse()

    id = argument.id  #角色id
    type = argument.type  #0获取所有 1获取单个
    pos = argument.pos  # 单个在背包的位置
    player = PlayersManager().getPlayerByID(id)  #角色实例
    if type == 0:
        data = player.instance.putAllItemsInPack()
        if not data:
            response.result = False
            response.message = Lg().g(16)
            pushObjectNetInterface.pushOtherMessage(905,
                                                    Lg().g(16),
                                                    [player.getDynamicId()])
            return response.SerializeToString()
    else:
        data = player.instance.getOneItemInPackByPosition(pos)
        if not data:
            response.result = False
            response.message = Lg().g(16)
            return response.SerializeToString()
    response.result = True
    response.message = u''
    return response.SerializeToString()
Beispiel #22
0
def isHaveQH(characterid, itemid):
    '''判断是否能够强化
    @param characterid: int 角色id
    @param itemid: int 物品1(item)表主键id
    '''
    item1 = None  #物品实例1
    player = PlayersManager().getPlayerByID(characterid)

    if itemid > 0:  #如果物品1存在

        if player.pack._package._PropsPagePack.getPositionByItemId(
                itemid) != -1:  #背包中没有此物品
            item1 = player.pack._package._PropsPagePack.getItemInfoByItemid(
                itemid)  #获取物品实例
        else:
            item1 = player.pack._equipmentSlot.getItemInfoByItemid(itemid)

        if not item1:
            return {'result': False, 'message': Lg().g(189), 'data': None}

    wqtype = item1.getWQtype(
    )  #武器类型 #装备类型id   #0=衣服#1=裤子 #2=头盔#3=手套#4=靴子#5=护肩#6=项链#7=戒指#8=主武器#9=副武器#10=双手
    if wqtype < 0 or wqtype > 10:  #装备类型id
        pushObjectNetInterface.pushOtherMessage(905,
                                                Lg().g(196),
                                                [player.getDynamicId()])
        return {'result': False, 'message': Lg().g(197), 'data': None}

    baseQuality = item1.baseInfo.getItemTemplateInfo().get(
        "baseQuality", 0)  #基础品质 1灰 2白 3绿 4蓝 5紫 6橙 7红
    itemlevel = item1.baseInfo.getItemTemplateInfo().get("levelRequire",
                                                         0)  #装备等级
    qlevel = item1.attribute.getStrengthen()  #物品当前的强化等级
    jinbi = coinCount(qlevel, baseQuality, wqtype, itemlevel)
    return qq(player, itemid, wqtype, baseQuality, jinbi, item1)
Beispiel #23
0
def getSxzy(characterid, item1, item2):
    '''获取属性转移后的效果及其花费信息
    @param item1: int 物品id (转移后强化等级变成0的那个物品的id)
    @param item: int 物品id 
    '''
    if item1 == item2:
        pushObjectNetInterface.pushOtherMessageByCharacterId(
            Lg().g(206), [characterid])
        return {'result': False, 'message': Lg().g(206), 'data': None}
    player = PlayersManager().getPlayerByID(characterid)  #角色实例
    if not player:
        return {'result': False, 'message': Lg().g(199), 'data': None}
    if player.level.getLevel() < 30:
        return {'result': False, 'message': Lg().g(205), 'data': None}
    items1 = getItemByplayer(player, item1)
    if not items1:
        return {'result': False, 'message': Lg().g(189), 'data': None}
    items2 = getItemByplayer(player, item2)
    if not items2:
        return {'result': False, 'message': Lg().g(189), 'data': None}

    if items1.getWQtype() != items2.getWQtype():
        return {'qh': None, 'coin': 0}

    level = Sxzy(items1, items2)
    zyyh = level + items2.attribute.getStrengthen()  #转移以后装备的强化等级
    if player.level.getLevel() < zyyh:
        pushObjectNetInterface.pushOtherMessage(905,
                                                Lg().g(207) % zyyh,
                                                [player.getDynamicId()])
    Zcion = getSxzyCoin(items1, items2)  #转移花费金币

    return {'qh': level, 'coin': Zcion}
Beispiel #24
0
def TaskPlayerTaskList(dynamicId, characterId):
    '''获取角色已接任务列表'''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    data = player.quest.getTaskProcessInfo()
    return {'result': True, 'tasks': data}
Beispiel #25
0
def addexp(characterId,argument):
    '''升级'''
    if len(argument)<1:
        return 
    player = PlayersManager().getPlayerByID(characterId)
    player.level.addExp(int(argument[0]))
    player.updatePlayerInfo()
Beispiel #26
0
def addPlayerFriend(dynamicId,characterId,friendName,friendType,isSheildedMail=0):
    '''添加好友
    @param dynamicId: int 客户端的动态id
    @param characterId: int 角色的id
    @param friendName: string 对方的昵称
    @param friendType: int(1,2) 好友的类型 1:好友  2:黑名单
    @param isSheildedMail: 是否屏蔽邮件
    '''
    player = PlayersManager().getPlayerByID(characterId)
    if not player:
        return {'result':False,'message':Lg().g(18)}
        
    friendId = dbaccess.getCharacterIdByNickName(friendName)#返回好友角色id [id]
    if not friendId:
        msg =Lg().g(75)
        pushObjectNetInterface.pushOtherMessage(905,msg, [player.getDynamicId()])
        return {'result':False,'message':Lg().g(68)}
    pyid=-1 #关系好友动态id -1表示角色没有在线   其他表示角色动态id
    py1=PlayersManager().getPlayerByID(friendId[0])
    
    if py1 and py1.friend.getTypeByid(characterId)==0:#如果好友在线
        pyid=py1.getDynamicId()
    result = player.friend.addFriend(characterId,friendId[0],friendType,pyid)
    if result:
        pushObjectNetInterface.pushOtherMessage(905, result['message'], [player.getDynamicId()])
        return {'result':True,'message':Lg().g(69)}

    return {'result':False,'message':Lg().g(70)}
Beispiel #27
0
def zudui(id, tid):
    '''组队功能
        @param id: int 当前用户角色
        @param tid: int 角色2
    '''
    player1 = PlayersManager().getPlayerByID(id)  #当前用户实例
    player2 = PlayersManager().getPlayerByID(tid)  #角色2实例
    player = None
    #队长实例
    toplayer = None
    #队员

    if not player1:  #如果当前用户掉线
        return {'result': False, 'message': Lg().g(18)}
    if not player2:  #如果角色2掉线
        return {'result': False, 'message': Lg().g(256)}
    if player1.teamcom.amITeamMember() and player2.teamcom.amITeamMember(
    ):  #如果都有组队
        return {'result': False, 'message': Lg().g(251)}

    if not player1.teamcom.amITeamMember(
    ) and not player2.teamcom.amITeamMember():  #如果都没有队伍
        player = player1
        toplayer = player2
    elif player1.teamcom.amITeamMember():  #如果当前用户有队伍
        player = player1.teamcom.getMyTeamLeader()  #获取当前用户队伍中的队长
        toplayer = player2
    elif player2.teamcom.amITeamMember():  #如果角色2有队伍
        player = player2.teamcom.getMyTeamLeader()  #获取角色2队伍中的队长
        toplayer = player1

    data = player.teamcom.addTeamMember(toplayer)
Beispiel #28
0
def ReviveTeamMember(dynamicId,characterId,victimerId,paytype):
    '''复活队友
    @param dynamicId: int 客户端的id
    @param characterId: int 角色的id
    @param victimerId: int 复活者的id
    @param paytype: int 支付类型 1 物品 2 金币
    '''
    player = PlayersManager().getPlayerByID(characterId)
    toplayer = PlayersManager().getPlayerByID(victimerId)
    if not player or not player.CheckClient(dynamicId):
        data = {'faildtype':0,'goldprice':0}
        return {'result':False,'message':Lg().g(18),'data':data}
    if not toplayer:
        data = {'faildtype':0,'goldprice':0}
        return {'result':False,'message':Lg().g(66),'data':data}
    if not player.teamcom.IsMyTeamMember(victimerId):
        data = {'faildtype':0,'goldprice':0}
        return {'result':False,'message':Lg().g(250),'data':data}
    if toplayer.status.getLifeStatus():
        data = {'faildtype':0,'goldprice':0}
        return {'result':False,'message':Lg().g(185),'data':data}
    if paytype==1:
        if True:
            data = {'faildtype':1,'goldprice':100}
            return {'result':False,'message':Lg().g(248),'data':data}
    else:
        if True:
            data = {'faildtype':2,'goldprice':100}
            return {'result':False,'message':Lg().g(88),'data':data}
    toplayer.status.updateLifeStatus(1)
    toplayer.attribute.updateHp(int(player.attribute.getMaxHp()*0.01)+1)
    toplayer.attribute.updateMp(int(player.attribute.getMaxMp()*0.01)+1)
    player.teamcom.pushTeamMemberInfo()
    return {'result':True,'message':Lg().g(249)}
Beispiel #29
0
def FightInScene(dynamicId, characterId, monsterId):
    '''副本战斗
    @param dynamicId: int 客户端的动态id
    @param characterId: int 角色的id
    @param monsterId: int 碰撞的怪物在场景中的id
    '''
    res = CanDoServer(characterId)
    if not res['result']:
        return res
    player = PlayersManager().getPlayerByID(characterId)
    if not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    if not player.status.getLifeStatus():
        return {'result': False, 'message': Lg().g(97)}
    if player.baseInfo.getState() == 1:  #如果角色在副本
        dtid = player.baseInfo.getInstancetag()  #副本动态Id
        instance = InstanceManager().getInstanceByIdTag(dtid)  #获取副本实例
        sceneId = player.baseInfo.getLocation()
        nowScene = instance._Scenes[sceneId]  #获取场景实例
    else:
        town = player.baseInfo.getTown()
        nowScene = MapManager().getMapId(town)
#        return {'result':False,'message':Lg().g(64)}
    data = nowScene.FightInScene(monsterId,
                                 int(player.baseInfo.getPosition()[0]),
                                 characterId)
    if data.get('result'):
        player.baseInfo.setStatus(4)  #角色状态设置为战斗状态
    return data
Beispiel #30
0
def tiaozhuan(dynamicId,characterid,csz):
    '''场景间的跳转或者进入副本
    '''
    player = PlayersManager().getPlayerByID(characterid)
    if not player:
        return {'result':False,'message':Lg().g(18)}
    doorinfo = dbMap.ALL_DOOR_INFO.get(csz)#获取传送门的信息
    lastscene = MapManager().getMapId(player.baseInfo.getTown())
    if doorinfo.get('functionType')==1:#跳转场景
        placeId = doorinfo.get('nextmap')
        position = (doorinfo.get('init_x'),doorinfo.get('init_y'))
        player.baseInfo.setTown( placeId)
        player.baseInfo.setState(0)
        PlayersManager().addPlayer(player)
        defencelog_app.isReward(player.baseInfo.id, player.getDynamicId())
        scene = MapManager().getMapId(placeId)
        scenename = scene.getSceneName()
        chatnoderemote.callRemote('JoinRoom',characterid,placeId,scenename)
        scene.addPlayer(characterid)
        player.quest.setNpcList(scene._npclist)
        player.baseInfo.initPosition(position)
        scene.pushEnterPlace([dynamicId])
        result = {'result':True}
    else:
        instanceId = doorinfo.get('famID')
        result = instance_app.enterInstance1(player,dynamicId, characterid, instanceId,0)
    if result.get('result'):
        lastscene.dropPlayer(characterid)
Beispiel #31
0
 def pushSceneInfo(self,rate):
     '''给每一个在场景中的玩家推送场景信息
     @param rate: int 移动的频率
     '''
     if not self._canRec:
         return
     self.updateAllPlayerLocation(rate)
     if self._monsters:
         self.updateAllMonsterLocation()
     
     groupState = configure.isteamInstanceTime(20)#组队副本时间判断
     guildFightState = fortress.IsWarTime()#国战时间判断
     
     for room in self.rooms:
         sendlist = []
         sceneInfo = pushSceneMessage_pb2.pushSceneMessage()
         for playerId in room:
             player = PlayersManager().getPlayerByID(playerId)
             if not player:
                 continue
             player.icon.groupIconManager(groupState)#组队战图标管理
             player.icon.guildFightManager(guildFightState)#国战图标管理
             PlayerPosition = sceneInfo.PlayerPosition.add()
             PlayerPosition.id = player.baseInfo.id
             PlayerPosition.name = player.baseInfo.getNickName()
             PlayerPosition.profession = player.profession.getProfessionName()
             PlayerPosition.headicon = player.profession.getFigure()
             GuildInfo = player.guild.getGuildInfo()
             if GuildInfo:
                 PlayerPosition.guildname = GuildInfo.get('name','')
             PlayerPosition.figure = player.profession.getSceneFigure()
             position = player.baseInfo.getDestination()
             PlayerPosition.x = int(position[0])
             PlayerPosition.y = int(position[1])
             PlayerPosition.level = player.level.getLevel()
             PlayerPosition.viptype = player.baseInfo.getType()
             PlayerPosition.gemlevel = player.pack._equipmentSlot.getGemLevel()
             sendlist.append(player.getDynamicId())
             ###############角色展示宠物的处理################
             petremove = player.pet.popLastRemove()
             for petId in petremove:
                 self.dropPet(petId)
             for petId in player.matrix._matrixSetting.values():
                 if petId<=0:
                     continue
                 pet = player.pet.getPet(petId)
                 figure = pet.templateInfo['resourceid']
                 position = pet.getPosition()
                 PetPosition = sceneInfo.petInfo.add()
                 PetPosition.id = petId
                 PetPosition.name = pet.baseInfo.getName()
                 PetPosition.profession = pet.baseInfo.getName()
                 PetPosition.headicon = figure
                 PetPosition.figure = figure
                 PetPosition.x = int(position[0])
                 PetPosition.y = int(position[1])
                 PetPosition.masterId = playerId
         sceneInfo.sceneId = self._id
         msg = sceneInfo.SerializeToString()
         pushApplyMessage(602,msg, sendlist)
Beispiel #32
0
def TaskPlayerDropTask(dynamicId, characterId, task_id):
    '''放弃任务'''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    data = player.quest.abandonQuest(task_id)
    return data
Beispiel #33
0
def AcceptOrRefuseApply(dynamicId, characterId, operType, appliId):
    '''拒绝或同意申请
    @param dynamicId: int 客户端的动态id
    @param characterId: int 客户端的动态id
    @param operType: int 操作类型 0 接受 1 拒绝
    @param appliId: int 申请ID
    '''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    guildId = player.guild.getID()
    if not guildId:
        return {'result': False, 'message': Lg().g(79)}
    guild = GuildManager().getGuildById(guildId)
    if operType == 0:
        data = guild.acceptGuildApply(characterId, appliId)
        reason = {0:Lg().g(80),-1:Lg().g(81),-2:Lg().g(82),\
                  -3:Lg().g(83),-4:Lg().g(84)}
        if data == 1:

            result = {'result': True, 'message': Lg().g(85)}
        else:
            result = {'result': False, 'message': reason[data]}
    else:
        data = guild.refuseGuildApply(characterId, appliId)
        reason = {0: Lg().g(80), -1: Lg().g(81), -4: Lg().g(84)}
        if data == 1:
            result = {'result': True, 'message': Lg().g(85)}
        else:
            result = {'result': False, 'message': reason[data]}
    return result
Beispiel #34
0
def isHaveQH(characterid,itemid):
    '''判断是否能够强化
    @param characterid: int 角色id
    @param itemid: int 物品1(item)表主键id
    '''
    item1=None#物品实例1
    player=PlayersManager().getPlayerByID(characterid)
    
    if itemid>0:#如果物品1存在

        if player.pack._package._PropsPagePack.getPositionByItemId(itemid)!=-1:#背包中没有此物品
            item1=player.pack._package._PropsPagePack.getItemInfoByItemid(itemid)#获取物品实例
        else:
            item1=player.pack._equipmentSlot.getItemInfoByItemid(itemid)
            
        if not item1:
            return {'result':False,'message':Lg().g(189),'data':None}

    wqtype=item1.getWQtype()#武器类型 #装备类型id   #0=衣服#1=裤子 #2=头盔#3=手套#4=靴子#5=护肩#6=项链#7=戒指#8=主武器#9=副武器#10=双手
    if wqtype<0 or wqtype>10: #装备类型id  
        pushObjectNetInterface.pushOtherMessage(905, Lg().g(196), [player.getDynamicId()])
        return {'result':False,'message':Lg().g(197),'data':None}
   
    baseQuality=item1.baseInfo.getItemTemplateInfo().get("baseQuality",0)#基础品质 1灰 2白 3绿 4蓝 5紫 6橙 7红
    itemlevel=item1.baseInfo.getItemTemplateInfo().get("levelRequire",0) #装备等级
    qlevel=item1.attribute.getStrengthen() #物品当前的强化等级
    jinbi= coinCount(qlevel,baseQuality,wqtype,itemlevel)
    return qq(player, itemid,wqtype,baseQuality,jinbi,item1)
Beispiel #35
0
def GroupPK4403(dynamicId, characterId, pkId):
    '''国战申请
    '''
    HAOJIAO = 20700072
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    guildId = player.guild.getID()
    if not guildId:
        return {'result': False, 'message': Lg().g(79)}
    if not FortressManager().checkCanApply(guildId):
        return {'result': False, 'message': Lg().g(648)}

    fortress = FortressManager().getFortressById(pkId)
    if not fortress:
        return {'result': False}
    itemcount = player.pack.countItemTemplateId(HAOJIAO)  #检测战斗号角数量
    if itemcount < 1:
        return {'result': False, 'message': Lg().g(656)}
    data = fortress.SignUp(guildId)
    result = data.get('result', False)
    if result:
        player.pack.delItemByTemplateId(HAOJIAO, 1)  #扣除战斗号角
    msgID = data.get('msgID', 0)
    message = u''
    if msgID:
        message = Lg().g(msgID)
    return {'result': result, 'message': message}
Beispiel #36
0
 def getSendList(self):
     '''获取可发送的客户端列表'''
     sendList = []
     for pId in self._playerlist:
         pl = PlayersManager().getPlayerByID(pId)
         if pl and (pId in self._canRec) and pl.baseInfo.getStatus() != 4:
             sendList.append(pl.getDynamicId())
     return sendList
Beispiel #37
0
 def getSendList(self,room):
     '''获取接受场景消息的角色的客户端ID'''
     sendlist = []
     for playerId in room:
         player = PlayersManager().getPlayerByID(playerId)
         if playerId in self._canRec and player and player.baseInfo.getStatus()!=4:
             sendlist.append(player.getDynamicId())
     return sendlist
Beispiel #38
0
 def getAllSendList(self):
     '''获取接受场景消息的角色的客户端ID'''
     sendlist = []
     for playerId in self._canRec:
         player = PlayersManager().getPlayerByID(playerId)
         if player and player.baseInfo.getStatus() != 4:
             sendlist.append(player.getDynamicId())
     return sendlist
Beispiel #39
0
def packageArrange(dynamicId,characterId,packageType):
    '''包裹整理'''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result':False,'message':Lg().g(18)}
    player.pack.packageArrange(packageType)
    pushPromptedMessage(Lg().g(158),[player.getDynamicId()])
    return {'result':True,'message':Lg().g(158)}
Beispiel #40
0
 def getSendList(self):
     '''获取可发送的客户端列表'''
     sendList = []
     for pId in self._playerlist:
         pl = PlayersManager().getPlayerByID(pId)
         if pl and (pId in self._canRec) and pl.baseInfo.getStatus()!=4:
             sendList.append(pl.getDynamicId())
     return sendList
Beispiel #41
0
def GetRoleAndPetList(dynamicId, characterId):
    '''获取角色和宠物的星运装备栏信息
    '''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    data = player.fate.GetRoleAndPetFateList()
    return {'result': True, 'data': data}
Beispiel #42
0
def YiJianHeCheng(dynamicId, characterId):
    '''一键合成
    '''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    result = player.fate.HeChengAll()
    return result
Beispiel #43
0
def GetPackXingYunListInfo(dynamicId, characterId):
    '''获取占星包裹信息
    '''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    data = player.fate.getZhanXingPack()
    return {'result': True, 'data': data}
Beispiel #44
0
def getCanReceivedquestList(dynamicId, characterId):
    '''获取可接任务列表'''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    result = player.quest.getCanReceivedquestList()
    data = {'result': True, 'message': u'', 'data': result}
    return data
Beispiel #45
0
def addCoin(characterId,argument):
    '''添加金币'''
    if len(argument)<1:
        return 
    player = PlayersManager().getPlayerByID(characterId)
    if not player:
        return
    player.finance.addCoin(int(argument[0]))
    player.updatePlayerInfo()
Beispiel #46
0
def vipup(characterId,argument):
    '''修改vip等级'''
    if len(argument)<1:
        return 
    player = PlayersManager().getPlayerByID(characterId)
    if not player:
        return
    player.baseInfo.updateType(int(argument[0]))
    player.updatePlayerInfo()
Beispiel #47
0
def addhp(characterId,argument):
    '''添加兵力
    '''
    if len(argument)<1:
        return 
    player = PlayersManager().getPlayerByID(characterId)
    if not player:
        return
    player.attribute.addHp(int(argument[0]))
    player.updatePlayerInfo()
Beispiel #48
0
def leaveScene_610(dynamicId,characterId):
    '''离开场景'''
    player = PlayersManager().getPlayerByID(characterId)
    if not player:
        return None,0
    player.stopAllTimer()
    playerDumps = cPickle.dumps(player)
    player.startAllTimer()
    placeId = player.baseInfo.getTown()
    return playerDumps,placeId
Beispiel #49
0
def addxingyun(characterId,argument):
    '''添加幸运值
    '''
    if len(argument)<1:
        return 
    player = PlayersManager().getPlayerByID(characterId)
    if not player:
        return
    player.petShop.addXy(int(argument[0]))
    player.updatePlayerInfo()
Beispiel #50
0
def updateSpirit(pid, contxt):
    """修改角色心情
    @param pid: int 角色id
    @param context: str 心情
    """
    player = PlayersManager().getPlayerByID(pid)
    if player.baseInfo.updateSpirit(contxt):
        pushObjectNetInterface.pushOtherMessage(905, Lg().g(175), [player.getDynamicId()])
    else:
        pushObjectNetInterface.pushOtherMessage(905, Lg().g(176), [player.getDynamicId()])
    return {"result": True, "message": u""}
Beispiel #51
0
 def updateAllPlayerLocation(self,rate):
     '''更新场景中所有角色的坐标
     @param rate: int 移动的频率
     '''
     playerList = list(self._playerlist)
     for playerId in playerList:
         player = PlayersManager().getPlayerByID(playerId)
         if not player:
             self.dropPlayer(playerId)
             continue
         player.updateLocation(rate)#更新角色的位置
Beispiel #52
0
    def runingQd(self, pid, gold):
        """祈祷逻辑
        @param gold: int 钻石数量
        """
        from app.scense.serverconfig.chatnode import chatnoderemote
        from app.scense.core.PlayersManager import PlayersManager

        v = {1: Lg().g(564), 2: Lg().g(499), 3: Lg().g(565), 4: Lg().g(566), 0: Lg().g(564)}
        player = PlayersManager().getPlayerByID(pid)
        mygold = player.finance.getGold()
        if mygold < gold:
            pushObjectNetInterface.pushOtherMessage(905, Lg().g(567), [player.getDynamicId()])
            return False
        result = configure.qd(gold)
        lx = result[0]  # 奖励类型    1金币奖励    2经验奖励   3声望奖励    4活力
        sl = result[1]  # 奖励数量
        bs = result[2]  # 奖励倍数
        if lx == 1:
            player.finance.addCoin(sl)
            ss = Lg().g(568) % (v.get(lx), sl)
        elif lx == 2:
            player.level.addExp(sl)
            ss = Lg().g(568) % (v.get(lx), sl)
        elif lx == 3:
            player.finance.addPrestige(sl)
            ss = Lg().g(568) % (v.get(lx), sl)
        elif lx == 4:
            player.attribute.addEnergy(sl)
            ss = Lg().g(568) % (v.get(lx), sl)
        else:
            player.finance.addCoin(sl)
        if bs > 1:
            ss += Lg().g(569) % bs
        pushObjectNetInterface.pushOtherMessage(905, ss, [player.getDynamicId()])
        #        player.finance.updateGold(mygold-gold)
        player.finance.consGold(gold, 1)

        bbs = 1  # 大于这个倍数的才会广播
        sj = time.strftime("%w%H")
        sj = int(sj)
        if sj >= 310 and sj <= 314:
            bbs = 2

        if bs > bbs:
            pname = player.baseInfo.getName()
            tm = time.strftime("%Y-%m-%d %X")
            mg = Lg().g(570) % (pname, bs, v.get(lx), sl)
            chatnoderemote.callRemote("pushSystemToInfo", mg)

            if len(self.getGG()) == 4:
                del self.gg[0]
            self.gg.append([tm, mg])
            self.uploadGG(self.gg)
        return True
Beispiel #53
0
 def pushRoomMatrixInfo(self):
     '''推送房间阵法的信息'''
     matrixInfo = self.matrix.fromatMatrixInfo()
     sendList = []
     for key in self.members.keys():
         member = self.members[key]
         if not member:
             continue
         player = PlayersManager().getPlayerByID(member['id'])
         if player:
             sendList.append(player.getDynamicId())
     pushRoomMatrixInfo(sendList, matrixInfo)
Beispiel #54
0
def getPlayerInfo(dynamicId, characterId):
    """获取角色信息
    @param dynamicId: int 客户端的id
    @param characterId: int 角色的id
    """
    player = PlayersManager().getPlayerByID(characterId)
    if not player:
        return {"result": False, "message": Lg().g(18)}
    data = player.formatInfo()
    hasBuyCount = player.afk.turnenergytimes
    info = {"playerInfo": data, "hasBuyCount": hasBuyCount}
    return {"result": True, "message": u"获取信息成功", "data": info}
def backScnee(pid, instanceid, boo):
    """角色退出殖民战斗,返回城镇场景
    @param pid: int 角色id
    @param instanceid: int 副本id
    @param boo: bool 战斗结果
    """
    player = PlayersManager().getPlayerByID(pid)
    player.msgbox.AfterFightMsgHandle()
    sceneId = player.baseInfo.getTown()
    scene = MapManager().getMapId(sceneId)
    scene.addPlayer(pid)
    scene.pushEnterPlace([player.getDynamicId()])
Beispiel #56
0
def CancelGuaJi(characterId):
    '''角色取消挂机
    @param characterId: int 角色的ID
    '''
    player = PlayersManager().getPlayerByID(characterId)
    if not player:
        return {'result':False,'message':Lg().g(18)}
    result = player.afk.stopMeditation()
    if not result.get('result'):
        msg = result.get('message')
        sendId = player.getDynamicId()
        pushOtherMessage(905, msg, [sendId])
    return result
Beispiel #57
0
 def pushGuildLevelUp(self,level):
     '''推送国升级的消息'''
     memberList = dbGuild.getGuildMemberIdList(self.id)
     sendlist = []
     for memberId in memberList:
         player = PlayersManager().getPlayerByID(memberId)
         if player:
             sendlist.append(player.getDynamicId())
     pushGuildLevelUpMessage(level, sendlist)
     if level==20:
         utype = {1:Lg().g(544),2:Lg().g(545)}.get(self.guildinfo['camp'],Lg().g(546))
         gname = self.getGuildName()
         msg = Lg().g(558)%(utype,gname)
         chatnoderemote.callRemote('pushSystemToInfo',msg)