def Instanceenterplay(self,player,sceneid): ''' @param player: object 角色对象 @param sceneid: int 目标场景Id ''' target= self._Scenes[sceneid] #目标场景 oldsceneid= player.baseInfo.getTown() #获取角色的场景 old= self._Scenes[oldsceneid] #当前场景实例 old.dropPlayer(player.baseInfo.id) #在当前场景中移除角色 target.addPlayer(player) #在目标场景中加入角色 player.baseInfo.setLocation(sceneid) #设置角色当前场景 player.quest.setNpcList(target._npcids) player.baseInfo.setPosition(target.baseInfo.getInitiaPosition()) #设置角色在场景中的初始化位置 pushObjectNetInterface.pushEnterPlace(target.baseInfo.id,player.getDynamicId()) #推送副本消息
def Instanceenterplay(self, player, sceneid): ''' @param player: object 角色对象 @param sceneid: int 目标场景Id ''' target = self._Scenes[sceneid] #目标场景 oldsceneid = player.baseInfo.getTown() #获取角色的场景 old = self._Scenes[oldsceneid] #当前场景实例 old.dropPlayer(player.baseInfo.id) #在当前场景中移除角色 target.addPlayer(player) #在目标场景中加入角色 player.baseInfo.setLocation(sceneid) #设置角色当前场景 player.quest.setNpcList(target._npcids) player.baseInfo.setPosition( target.baseInfo.getInitiaPosition()) #设置角色在场景中的初始化位置 pushObjectNetInterface.pushEnterPlace(target.baseInfo.id, player.getDynamicId()) #推送副本消息
def playerBackRevive(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)} if player.status.getLifeStatus(): return {'result':False,'message':Lg().g(185)} # player.baseInfo.setState(0) # data = enterPlace(dynamicId,characterId,1000) # if not data.get('result',False): # return data state = player.baseInfo.getState() if state==0: lastscene = SceneManager_new().getSceneById(player.baseInfo.getLocation()) lastscene.dropPlayer(player.baseInfo.id) else: # id=player.baseInfo.getInstanceid() #副本id tag=player.baseInfo.getInstancetag() #副本动态Id instance=InstanceManager().getInstanceByIdTag(tag) #获取副本实例 old=instance._Scenes[player.baseInfo.getLocation()] #获取当前角色所在副本中的场景 old.dropPlayer(player.baseInfo.id) #从当前场景中移除角色 gotoSence = SceneManager_new().getSceneById(1000) if not gotoSence: scene = PublicScene(1000) SceneManager_new().addScene(scene) # else: # areaid = gotoSence.getAreaid() gotoSence.addPlayer(player) # player.baseInfo.setAreaid(areaid) player.baseInfo.setPosition(gotoSence.baseInfo.getInitiaPosition()) player.baseInfo.setLocation(1000) player.baseInfo.setState(0) player.status.updateLifeStatus(1) player.attribute.updateHp(int(player.attribute.getMaxHp()*0.01)+1) player.attribute.updateMp(int(player.attribute.getMaxMp()*0.01)+1) pushEnterPlace(1000,dynamicId) player.teamcom.pushTeamMemberInfo() return {'result':True,'message':Lg().g(186)}
def startCopyScene(self, characterId, vipMatrix): '''开始副本 @param chracterId: 角色的ID ''' if characterId != self.roomowner: return {'result': False, 'message': u'只有房主有权限'} if not self.areAllReady(): return {'result': False, 'message': u'还有玩家没有准备好'} player = PlayersManager().getPlayerByID(characterId) if vipMatrix == 1: if player.finance.getCoin() >= 5000: self.matrix.setNowEffect(vipMatrix) player.finance.updateCoin(player.finance.getCoin() - 5000) elif vipMatrix == 2: if player.finance.getGold() >= 10: self.matrix.setNowEffect(vipMatrix) player.finance.updateGold(player.finance.getGold() - 10) elif vipMatrix == 3: if player.finance.getGold() >= 50: self.matrix.setNowEffect(vipMatrix) player.finance.updateGold(player.finance.getGold() - 50) sendList = [] if len([member for member in self.members.values() if member]) > 1: team = TeamManager().creatTeam(characterId) team.setMatrix(self.matrix) for member in self.members.values(): if member: pp = PlayersManager().getPlayerByID(member['id']) if pp: sendList.append(pp.getDynamicId()) team.addMember(member['id']) data = enterInstance1(0, characterId, self.copySceneId) if data['result']: player = PlayersManager().getPlayerByID(characterId) dynamicId = player.getDynamicId() pushQuitHallMessage(sendList) pushEnterPlace(data['data'].get('placeId'), [dynamicId]) return data
def startCopyScene(self,characterId,vipMatrix): '''开始副本 @param chracterId: 角色的ID ''' if characterId != self.roomowner: return {'result':False,'message':u'只有房主有权限'} if not self.areAllReady(): return {'result':False,'message':u'还有玩家没有准备好'} player = PlayersManager().getPlayerByID(characterId) if vipMatrix ==1: if player.finance.getCoin()>=5000: self.matrix.setNowEffect(vipMatrix) player.finance.updateCoin(player.finance.getCoin() -5000) elif vipMatrix ==2: if player.finance.getGold()>=10: self.matrix.setNowEffect(vipMatrix) player.finance.updateGold(player.finance.getGold() -10) elif vipMatrix ==3 : if player.finance.getGold()>=50: self.matrix.setNowEffect(vipMatrix) player.finance.updateGold(player.finance.getGold() -50) sendList = [] if len([member for member in self.members.values() if member])>1: team = TeamManager().creatTeam(characterId) team.setMatrix(self.matrix) for member in self.members.values(): if member: pp = PlayersManager().getPlayerByID(member['id']) if pp: sendList.append(pp.getDynamicId()) team.addMember(member['id']) data = enterInstance1(0, characterId, self.copySceneId) if data['result']: player = PlayersManager().getPlayerByID(characterId) dynamicId = player.getDynamicId() pushQuitHallMessage(sendList) pushEnterPlace(data['data'].get('placeId'), [dynamicId]) return data