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}
def cleanMonsters(characterId,argument): '''清除场景中的怪物''' try: player = PlayersManager().getPlayerByID(characterId) sceneId = player.baseInfo.getLocation() nowScene = SceneManager_new().getSceneById(sceneId) nowScene.cleanMonster() except Exception: return
def cleanMonsters(characterId, argument): '''清除场景中的怪物''' try: player = PlayersManager().getPlayerByID(characterId) sceneId = player.baseInfo.getLocation() nowScene = SceneManager_new().getSceneById(sceneId) nowScene.cleanMonster() except Exception: return
def _pushSceneInfo(dynamicId, characterId): """推送场景信息""" player = PlayersManager().getPlayerByID(characterId) if player.baseInfo.getState() == 1: # 如果角色在副本 # id=player.baseInfo.getInstanceid() #副本模板Id dtid = player.baseInfo.getInstancetag() # 副本动态Id instance = InstanceManager().getInstanceByIdTag(dtid) # 获取副本实例 sceneId = player.baseInfo.getLocation() oldscene = instance._Scenes[sceneId] # 获取场景实例 else: sceneId = player.baseInfo.getTown() oldscene = SceneManager_new().getSceneById(sceneId) if oldscene: oldscene.pushEnterPlace([dynamicId])
def _pushSceneInfo(dynamicId, characterId): '''推送场景信息''' player = PlayersManager().getPlayerByID(characterId) if player.baseInfo.getState() == 1: #如果角色在副本 # id=player.baseInfo.getInstanceid() #副本模板Id dtid = player.baseInfo.getInstancetag() #副本动态Id instance = InstanceManager().getInstanceByIdTag(dtid) #获取副本实例 sceneId = player.baseInfo.getLocation() oldscene = instance._Scenes[sceneId] #获取场景实例 else: sceneId = player.baseInfo.getTown() oldscene = SceneManager_new().getSceneById(sceneId) if oldscene: oldscene.pushEnterPlace([dynamicId])
def addMonster(characterId,argument): '''在场景中添加一个怪物''' try: templateId = 0 if len(argument): templateId = int(argument[0]) player = PlayersManager().getPlayerByID(characterId) sceneId = player.baseInfo.getLocation() nowScene = SceneManager_new().getSceneById(sceneId) if len(argument)==3: nowScene.produceMonster(templateId,\ positionX=int(argument[1]),positionY = int(argument[2])) else: nowScene.produceMonster(templateId) except Exception: return
def initMemory(characterId, argument): ''''刷新从数据库读取的数据''' from app.scense.serverconfig.confighandle import initDBData from app.scense.core.instance.InstanceManager import InstanceManager from app.scense.core.shop.shopmanager import ShopManager SceneManager_new().__init__() InstanceManager().__init__() ShopManager().__init__() Mall().__init__() initDBData() log.msg(u"刷新从数据库读取的数据")
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 addMonster(characterId, argument): '''在场景中添加一个怪物''' try: templateId = 0 if len(argument): templateId = int(argument[0]) player = PlayersManager().getPlayerByID(characterId) sceneId = player.baseInfo.getLocation() nowScene = SceneManager_new().getSceneById(sceneId) if len(argument) == 3: nowScene.produceMonster(templateId,\ positionX=int(argument[1]),positionY = int(argument[2])) else: nowScene.produceMonster(templateId) except Exception: return