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''}
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}
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}
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
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 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}
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
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}
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
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)}
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}
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
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
def getZhanYiInfo(dynamicId, characterId, index): '''获取角色的战役信息 ''' player = PlayersManager().getPlayerByID(characterId) if not player or not player.CheckClient(dynamicId): return {'result': False, 'message': Lg().g(18)} zhanyiinfo = player.zhanyi.getZhanYiInfo(index) return {'result': True, 'data': zhanyiinfo}
def zhangjieFight(dynamicId, characterId, zhangjieid): '''章节战斗 ''' player = PlayersManager().getPlayerByID(characterId) if not player or not player.CheckClient(dynamicId): return {'result': False, 'message': Lg().g(18)} fightresult = player.zhanyi.doZhangJie(zhangjieid) return fightresult
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)}
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
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}
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
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}
def GetJiFengShopInfo(dynamicId, characterId, page): '''获取星运积分商城信息 ''' player = PlayersManager().getPlayerByID(characterId) if not player or not player.CheckClient(dynamicId): return {'result': False, 'message': Lg().g(18)} info = FateShop().getShopInfo(page) info['score'] = player.fate.score return {'result': True, 'data': info}
def TaskNpcAcceptTask(dynamicId, characterId, task_id, npc_id): '''接受任务 @param dynamicId: int 客户端的动态id ''' player = PlayersManager().getPlayerByID(characterId) if not player or not player.CheckClient(dynamicId): return {'result': False} data = player.quest.applyQuest(task_id, npc_id) return data
def FightWithPlayer(dynamicId, characterId, tid): '''玩家PK @param dynamicId: int 客户端的动态id @param characterId: int 角色的id @param tid: int 对方的id ''' res = CanDoServer(characterId) if not res['result']: return res player = PlayersManager().getPlayerByID(characterId) if not player or not player.CheckClient(dynamicId): return {'result': False, 'message': Lg().g(18)} toplayer = PlayersManager().getPlayerByID(tid) if not toplayer: return {'result': False, 'message': Lg().g(66)} guildid = player.guild.getID() tguildid = toplayer.guild.getID() town = player.baseInfo.getTown() ttown = toplayer.baseInfo.getTown() if not player.pvp.checktime(): return {'result': False, 'message': u"PK战斗CD中"} if not toplayer.pvp.checktime(): return {'result': False, 'message': u"对方PK战斗CD中"} if town != ttown: return {'result': False, 'message': u"不在统一场景无法进行战斗"} if player.guild.getID() == toplayer.guild.getID() or 0 in [ guildid, tguildid ]: return {'result': False, 'message': u"不允许本国之间战斗"} level = player.level.getLevel() tlevel = player.level.getLevel() if level < 25 or tlevel < 25: return {'result': False, 'message': u"低于25级不能进行战斗"} player.pvp.recordtime() toplayer.pvp.recordtime() data = DoFight([player], [toplayer], now_X=550) #战后的处理 battleresult = data.battleResult nowscene = MapManager().getMapId(ttown) #获取当前场景 if battleresult == 1: #如果主动方胜利 nowscene.dropPlayer(tid) #在当前场景中移除被攻击的玩家 toscene = MapManager().getMapId(1000) #扔回其他场景 toscene.addPlayer(tid) toscene.pushEnterPlace([toplayer.dynamicId]) toplayer.baseInfo.setTown(1000) else: nowscene.dropPlayer(characterId) #在当前场景中移主动攻击的玩家 toscene = MapManager().getMapId(1000) #扔回其他场景 toscene.addPlayer(characterId) toscene.pushEnterPlace([player.dynamicId]) player.baseInfo.setTown(1000) return { 'result': True, 'data': data, 'sendlist': [dynamicId, toplayer.dynamicId] }
def terminatePractice(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)} data = player.practice.terminatePractice() return data
def GetXingYunList(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)} result = player.fate.getZhanXingInfo() return result
def QueRenExchange(dynamicId, characterId, fateId): '''积分兑换星运''' player = PlayersManager().getPlayerByID(characterId) if not player or not player.CheckClient(dynamicId): return {'result': False, 'message': Lg().g(18)} result = player.fate.ExchangeFate(fateId) msg = result.get('message', '') if msg: pushOtherMessage(905, msg, [dynamicId]) return result
def updateQuestTraceStatu(dynamicId, characterId, taskID, traceStatu): '''更新任务追踪状态''' player = PlayersManager().getPlayerByID(characterId) if not player or not player.CheckClient(dynamicId): return {'result': False, 'message': Lg().g(18)} data = player.quest.updateQuestTraceStatu(taskID, traceStatu) if data.get('result', False) and traceStatu == 1: msg = u'该任务已添加至追踪列表' pushOtherMessage(905, msg, [dynamicId]) return data
def ChangeUnionColor(dynamicId, characterId, color): '''修改本国势力颜色''' 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) return guild.changeColor(characterId, color)
def TaskPlayerAcceptTaskList(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)} data = player.quest.getCanReceivedQuestList() return {'result': True, 'tasks': data}
def AddJingJiCount3703(dynamicId,characterId): '''添加竞技次数''' player = PlayersManager().getPlayerByID(characterId) if not player or not player.CheckClient(dynamicId): return {'result':False,'message':Lg().g(18)} result = player.arena.AddSurplustimes() msg = result.get('message',u'') if msg: pushOtherMessage(905, result.get('message',u''), [dynamicId]) return result