任务:按条件开启任务

This commit is contained in:
luying
2021-04-19 13:17:18 +08:00
parent 260744e7d2
commit dd6c3355c3
32 changed files with 296 additions and 195 deletions
@@ -25,7 +25,7 @@ import { pushComBtlTeamMsg, pushFriendTeamInviteMsg, pushNormalItemMsg, pushTeam
import { EXTERIOR } from '../../../pubUtils/dicParam';
import { getTodayZeroDate } from '../../../pubUtils/timeUtil';
import { FriendParams } from '../../../domain/roleField/friend';
import { checkTask } from '../../../services/taskService';
import { checkTask, checkTaskWithGoods } from '../../../services/taskService';
export default function(app: Application) {
return new ComBattleHandler(app);
@@ -533,6 +533,7 @@ export class ComBattleHandler {
let roleId = session.get('roleId');
let roleName = session.get('roleName');
let sid = session.get('sid');
const funcs: number[] = session.get('funcs');
let { teamCode } = msg;
let team = await ComBattleTeamModel.getTeamByCode(teamCode);
clearRobotHurtTimer(team, this.robotHurtTimer);
@@ -553,7 +554,7 @@ export class ComBattleHandler {
}
const now = Date.now(); // 当前时间戳
let apJson = await setAp(now, roleId, sid, -1 * warInfo.cost); // 扣除体力
let apJson = await setAp(now, roleId, sid, funcs, -1 * warInfo.cost); // 扣除体力
if(!apJson) {
return resResult(STATUS.BATTLE_ACTION_POINT_LACK);
}
@@ -570,7 +571,7 @@ export class ComBattleHandler {
const goods = await handleFixedReward(roleId, roleName, sid, roleSt.fixReward, 1);
let actordata = await roleLevelup(roleId, warInfo.kingExp, session);// 主公升级经验
// 任务
await checkTaskWithGoods(roleId, sid, funcs, TASK_TYPE.COM_BATTLE_DROP, goods);
return resResult(STATUS.SUCCESS, { battleGoods: goods, ...actordata, teamInfo: {status, teamCode, roleStatus, bossHpArr} });
}
@@ -741,6 +742,7 @@ export class ComBattleHandler {
const roleName = session.get('roleName');
const sid = session.get('sid');
const serverId = session.get('serverId');
const funcs: number[] = session.get('funcs');
const { original } = msg;
@@ -783,7 +785,7 @@ export class ComBattleHandler {
const { name } = getGoodById(target);
pushNormalItemMsg(roleId, roleName, serverId, MSG_SOURCE.ORANGE_BLUEPRT_COMPOSE, target, name);
}
await checkTask(roleId, sid, TASK_TYPE.COM_BATTLE_BLUEPRT, 1, true, { quality: dicCompose.targetQuality });
await checkTask(roleId, sid, funcs, TASK_TYPE.COM_BATTLE_BLUEPRT, 1, true, { quality: dicCompose.targetQuality });
return resResult(STATUS.SUCCESS, { goods, costGold: 0 });
}
@@ -48,6 +48,7 @@ export class DonationHandler {
const roleName: string = session.get('roleName');
const serverId: number = parseInt(session.get('serverId'));
const sid: string = session.get('sid');
const funcs: number[] = session.get('funcs');
let userGuild = await getUserGuildWithRefActive(roleId, 'donateCnt receiveBoxs guildCode');
if (!userGuild)
return resResult(STATUS.WRONG_PARMS);
@@ -71,7 +72,7 @@ export class DonationHandler {
this.app.rpc.chat.guildRemote.updateInfo.toServer(CHAT_SERVER, code, { fund });
await addActive(roleId, serverId, GUILD_POINT_WAYS.DONATE, id);
// 任务
await checkTask(roleId, sid, TASK_TYPE.GUILD_DONATE, 1, true, {});
await checkTask(roleId, sid, funcs, TASK_TYPE.GUILD_DONATE, 1, true, {});
return resResult(STATUS.SUCCESS, { donateFund, reports, donateCnt, goods });
}
@@ -80,6 +80,7 @@ export class EventBattleHandler {
let roleName = session.get('roleName');
let eventStatus = session.get('eventStatus');
let sid = session.get('sid');
const funcs: number[] = session.get('funcs');
let event = await EventRecordModel.getEventRecordByCode(roleId, eventCode);
if(!event) {
@@ -120,7 +121,7 @@ export class EventBattleHandler {
// 推送消息刷新
await checkEvent(session, true);
// 任务
await checkTask(roleId, sid, TASK_TYPE.BATTLE_EVENT, 1, true, { eventType: dicEvent.eventType })
await checkTask(roleId, sid, funcs, TASK_TYPE.BATTLE_EVENT, 1, true, { eventType: dicEvent.eventType })
return resResult(STATUS.SUCCESS, {
isSuccess,
eventCode: result.eventCode,
@@ -212,6 +212,7 @@ export class ExpeditionBattleHandler {
let roleId = session.get('roleId');
let roleName = session.get('roleName');
let sid = session.get('sid');
let funcs: number[] = session.get('funcs');
let warInfo = getWarById(battleId);
if(!warInfo) {
@@ -236,7 +237,7 @@ export class ExpeditionBattleHandler {
}
const now = Date.now(); // 当前时间戳
let apJson = await setAp(now, roleId, sid, -1 * warInfo.cost); // 扣除体力
let apJson = await setAp(now, roleId, sid, funcs, -1 * warInfo.cost); // 扣除体力
if(!apJson) {
return resResult(STATUS.BATTLE_ACTION_POINT_LACK);
}
@@ -269,7 +270,7 @@ export class ExpeditionBattleHandler {
// 更新下一关状态
await ExpeditionWarRecordModel.updateStatus(expeditionCode, expeditionId + 1, EXPEDITION_WAR_RECORD_STATUS.WAITING);
}
await checkTaskWithWar(roleId, sid, TASK_TYPE.BATTLE_WITH_HERO, battleId, dbHeroes, 1, star);
await checkTaskWithWar(roleId, sid, funcs, TASK_TYPE.BATTLE_WITH_HERO, battleId, dbHeroes, 1, star);
return resResult(STATUS.SUCCESS, {
expeditionCode, expeditionId,
@@ -292,6 +293,7 @@ export class ExpeditionBattleHandler {
let roleId = session.get('roleId');
let roleName = session.get('roleName');
let sid = session.get('sid');
const funcs: number[] = session.get('funcs');
let role = await RoleModel.findByRoleId(roleId);
let {expeditionPoint} = role;
@@ -330,7 +332,7 @@ export class ExpeditionBattleHandler {
let pointRewards = await getPointRewardStatus(roleId);
// 任务
await checkTask(roleId, sid, TASK_TYPE.BATTLE_EXPEDITION_BOX, 1, true, { point });
await checkTask(roleId, sid, funcs, TASK_TYPE.BATTLE_EXPEDITION_BOX, 1, true, { point });
let goods = await handleFixedReward(roleId, roleName, sid, curDicExpeditionPoint.reward, 1);
@@ -168,6 +168,7 @@ export class GuildHandler {
const { battleCode } = msg;
const roleId = session.get('roleId');
const sid = session.get('sid');
const funcs: number[] = session.get('funcs');
const serverId: number = parseInt(session.get('serverId'));
let userGuild = await UserGuildModel.getMyGuild(roleId, 'guildCode');
if (!userGuild)
@@ -184,7 +185,7 @@ export class GuildHandler {
let result = await getBossInstanceWhenEnd(bossInstance, roleId, battleRecord.record.recordNum);
await addActive(roleId, serverId, GUILD_POINT_WAYS.BOSS_WAR);//获得活跃值
// 任务
await checkTask(roleId, sid, TASK_TYPE.GUILD_BOSS, 1, true, {});
await checkTask(roleId, sid, funcs, TASK_TYPE.GUILD_BOSS, 1, true, {});
return resResult(STATUS.SUCCESS, result);
}
@@ -888,6 +888,7 @@ export class GuildHandler {
const roleName = session.get('roleName');
const sid = session.get('sid');
const serverId = session.get('serverId');
const funcs: number[] = session.get('funcs');
const { code, id } = msg;
let userGuild = await getUserGuildWithRefActive(roleId, 'receivedActive auth guildCode');
@@ -915,7 +916,7 @@ export class GuildHandler {
userGuild = await UserGuildModel.updateInfo(roleId, { receivedActive: userGuild.receivedActive }, {}, 'receivedActive');
// 任务
await checkTask(roleId, sid, TASK_TYPE.GUILD_RECEIVE_BOX, 1, true, {});
await checkTask(roleId, sid, funcs, TASK_TYPE.GUILD_RECEIVE_BOX, 1, true, {});
return resResult(STATUS.SUCCESS, { goods, receivedActive: userGuild.receivedActive });
}
@@ -51,6 +51,7 @@ export class GuildRefineHandler {
const roleId: string = session.get('roleId');
const sid: string = session.get('sid');
const roleName: string = session.get('roleName');
const funcs: number[] = session.get('funcs');
let pieceInfo = getGoodById(pid);
let userGuild = await UserGuildModel.getMyGuild(roleId, 'guildCode');
if (!userGuild)
@@ -77,7 +78,7 @@ export class GuildRefineHandler {
let goods = await addItems(roleId, roleName, sid, [{id: pid, count: 1}]);
// 任务
await checkTask(roleId, sid, TASK_TYPE.GUILD_REFINE, 1, true, { quality: pieceInfo.lvLimited });
await checkTask(roleId, sid, funcs, TASK_TYPE.GUILD_REFINE, 1, true, { quality: pieceInfo.lvLimited });
return resResult(STATUS.SUCCESS, { goods });
}
/**
@@ -143,6 +144,7 @@ export class GuildRefineHandler {
const roleId: string = session.get('roleId');
const serverId: number = session.get('serverId');
const sid: string = session.get('sid');
const funcs: number[] = session.get('funcs');
let userGuild = await UserGuildModel.getMyGuild(roleId, 'guildCode');
if (!userGuild)
return resResult(STATUS.WRONG_PARMS);
@@ -177,7 +179,7 @@ export class GuildRefineHandler {
res.releaseCallback();
// 任务
await checkTask(roleId, sid, TASK_TYPE.GUILD_ASSIST_REFINE, 1, true, {});
await checkTask(roleId, sid, funcs, TASK_TYPE.GUILD_ASSIST_REFINE, 1, true, {});
return resResult(STATUS.SUCCESS, { scienceTrees });
}
@@ -156,6 +156,7 @@ export class GuildTrainHandler {
const serverId: number = parseInt(session.get('serverId'));
const roleName: string = session.get('roleName');
const sid: string = session.get('sid');
const funcs: number[] = session.get('funcs');
let userGuild = await getUserGuild(roleId, serverId);
if (!userGuild)
return resResult(STATUS.WRONG_PARMS);
@@ -264,9 +265,9 @@ export class GuildTrainHandler {
// 任务
if(isSuccess) {
await checkTask(roleId, sid, TASK_TYPE.GUILD_TRAIN_SUCESS, 1, true, {});
await checkTask(roleId, sid, funcs, TASK_TYPE.GUILD_TRAIN_SUCESS, 1, true, {});
}
await checkTask(roleId, sid, TASK_TYPE.GUILD_TRAIN, 1, true, {});
await checkTask(roleId, sid, funcs, TASK_TYPE.GUILD_TRAIN, 1, true, {});
return resResult(STATUS.SUCCESS, result);
}
@@ -160,6 +160,7 @@ export class NormalBattleHandler {
let roleId = session.get('roleId');
let roleName = session.get('roleName');
let sid = session.get('sid');
const funcs: number[] = session.get('funcs');
let serverId = session.get('serverId');
let warInfo = gameData.war.get(battleId);
if(!warInfo) {
@@ -185,7 +186,7 @@ export class NormalBattleHandler {
}
const now = Date.now(); // 当前时间戳
let apJson = await setAp(now, roleId, sid, -1 * warInfo.cost); // 扣除体力
let apJson = await setAp(now, roleId, sid, funcs, -1 * warInfo.cost); // 扣除体力
if(!apJson) {
return resResult(STATUS.BATTLE_ACTION_POINT_LACK);
}
@@ -206,7 +207,7 @@ export class NormalBattleHandler {
// 记录事件状态
await setBattleStatus(session, roleId, battleId, isSuccess, battleCode);
} else if (warInfo.warType == WAR_TYPE.TOWER) {
let towerEndResult = await towerBattleEnd(sid, roleId, serverId, battleCode, battleId, isSuccess, heroes);
let towerEndResult = await towerBattleEnd(sid, funcs, roleId, serverId, battleCode, battleId, isSuccess, heroes);
if(towerEndResult) {
if(towerEndResult.status == -1) {
return towerEndResult.resResult;
@@ -269,7 +270,7 @@ export class NormalBattleHandler {
let actordata = await roleLevelup(roleId, isSuccess?warInfo.kingExp:0, session);// 主公升级经验
await checkTaskInBattleEnd(roleId, sid, battleId, dbHeroes, star);
await checkTaskInBattleEnd(roleId, sid, funcs, battleId, dbHeroes, star);
// 返回值:
// towerStatus: false-本层未通过, true-本层已通过
return resResult(STATUS.SUCCESS, {
@@ -287,6 +288,7 @@ export class NormalBattleHandler {
let roleId = session.get('roleId');
let roleName = session.get('roleName');
let sid = session.get('sid');
let funcs: number[] = session.get('funcs');
let warInfo = getWarById(battleId);
if(!warInfo) {
return resResult(STATUS.BATTLE_MISS_INFO);
@@ -303,7 +305,7 @@ export class NormalBattleHandler {
warInfo['cost'] = 0;
}
const now = Date.now(); // 当前时间戳
let apJson = await setAp(now, roleId, sid, -1 * warInfo.cost * count); // 扣除体力
let apJson = await setAp(now, roleId, sid, funcs, -1 * warInfo.cost * count); // 扣除体力
if(!apJson) {
return resResult(STATUS.BATTLE_ACTION_POINT_LACK);
}
@@ -342,7 +344,7 @@ export class NormalBattleHandler {
});
// 任务
await checkTaskWithWar(roleId, sid, TASK_TYPE.BATTLE_MAIN_SWEEP, warInfo, [], count, 0);
await checkTaskWithWar(roleId, sid, funcs, TASK_TYPE.BATTLE_MAIN_SWEEP, warInfo, [], count, 0);
return resResult(STATUS.SUCCESS, {
battleId, count,
@@ -37,6 +37,7 @@ export class PvpHandler {
let { heroScores: addHeroScores } = msg;
let roleId = session.get('roleId');
let sid = session.get('sid');
const funcs: number[] = session.get('funcs');
let {heroScores, hisScore} = await PvpDefenseModel.findByRoleId(roleId);
let score = 0;
for (let {hid, score: heroScore} of addHeroScores) {
@@ -67,7 +68,7 @@ export class PvpHandler {
await r.setRankWithRoleInfo(roleId, pvpDefense.score, pvpDefense.updatedAt.getTime(), role);
// 任务
await checkTask(roleId, sid, TASK_TYPE.PVP_HERO_SCORE, 0, false, { heroScores });
await checkTask(roleId, sid, funcs, TASK_TYPE.PVP_HERO_SCORE, 0, false, { heroScores });
return resResult(STATUS.SUCCESS, {score, hisScore, heroScores});
}
@@ -228,6 +229,7 @@ export class PvpHandler {
let roleId = session.get('roleId');
let roleName = session.get('roleName');
let sid = session.get('sid');
const funcs: number[] = session.get('funcs');
const { battleCode, isSuccess, myHeroes, oppHeroes } = msg;
@@ -295,7 +297,7 @@ export class PvpHandler {
await r.setRankWithRoleInfo(roleId, pvpDefense.score, pvpDefense.updatedAt.getTime(), role);
let myRank = await r.getMyRank({roleId});
await checkTaskInPvpEnd(roleId, sid, isSuccess, heroScores);
await checkTaskInPvpEnd(roleId, sid, funcs, isSuccess, heroScores);
return resResult(STATUS.SUCCESS, {
battleCode, isSuccess,
@@ -464,6 +466,7 @@ export class PvpHandler {
let roleId = session.get('roleId');
let sid: string = session.get('sid');
let roleName = session.get('roleName');
const funcs: number[] = session.get('funcs');
let { seasonEndTime } = await SystemConfigModel.findSystemConfig();
let { hisScore, receivedBox, challengeCnt: lastChallengeCnt, challengeRefTime: lastChallengeRefTime } = await PvpDefenseModel.findByRoleIdIncludeAll(roleId);
let pvpBoxs = getPvpBoxs();
@@ -479,7 +482,7 @@ export class PvpHandler {
await PvpDefenseModel.updateInfo(roleId, {receivedBox, challengeCnt, challengeRefTime});
let result = await addItems(roleId, roleName, sid, pvpBox.reward );
// 任务
await checkTask(roleId, sid, TASK_TYPE.PVP_RECEIVE_BOX, 1, true, {});
await checkTask(roleId, sid, funcs, TASK_TYPE.PVP_RECEIVE_BOX, 1, true, {});
return resResult(STATUS.SUCCESS,{goods: result, receivedBox, challengeCnt, challengeRefTime});
}
@@ -87,6 +87,7 @@ export class ChatHandler {
const roleName = session.get('roleName');
const serverId = session.get('serverId');
const guildCode = session.get('guildCode');
const funcs: number[] = session.get('funcs');
const sid = session.get('guildCode');
let channelId = '';
if (channel === CHANNEL_PREFIX.WORLD) channelId = `${serverId}`;
@@ -96,7 +97,7 @@ export class ChatHandler {
if (!msgData) return resResult(STATUS.WRONG_PARMS);
await pushGroupMsgToRoom(msgData);
// 任务
await checkTaskWithArgs(roleId, sid, TASK_TYPE.CHAT, [ CHANNEL_TYPE.get(channel) ]);
await checkTaskWithArgs(roleId, sid, funcs, TASK_TYPE.CHAT, [ CHANNEL_TYPE.get(channel) ]);
return resResult(STATUS.SUCCESS);
}
@@ -110,13 +111,14 @@ export class ChatHandler {
const { type, content, targetRoleId, targetMsgCode } = msg;
const roleId = session.get('roleId');
const roleName = session.get('roleName');
const funcs: number[] = session.get('funcs');
const sid = session.get('sid');
const msgData = await createPrivateMsg(roleId, roleName, type, MSG_SOURCE.ROLE_SEND_TEXT, content, targetRoleId, targetMsgCode);
await pushMsgToRole(msgData);
if (!msgData) return resResult(STATUS.WRONG_PARMS);
// 任务
await checkTaskWithArgs(roleId, sid, TASK_TYPE.CHAT, [ CHANNEL_TYPE.get('private') ]);
await checkTaskWithArgs(roleId, sid, funcs, TASK_TYPE.CHAT, [ CHANNEL_TYPE.get('private') ]);
return resResult(STATUS.SUCCESS, msgData);
}
@@ -58,7 +58,7 @@ export class EntryHandler {
await self.app.rpc.connector.connectorRemote.remoteLogin.toServer(connect.sid, role.roleId);
}
let serverName = this.app.getServerId();
await roleLogin(role.roleId, user.userCode, serverName, user.pkgName); // 保存在线用户
await roleLogin(role.roleId, user.userCode, serverName, user.pkgName, role.funcs||[]); // 保存在线用户
await session.abind(role.roleId);
session.set('uid', role.roleId);
session.set('roleId', role.roleId);
@@ -112,8 +112,8 @@ export class EntryHandler {
r2.setRankWithRoleInfo(role.roleId, role.lv, role.updatedAt.getTime(), role);
// 任务
checkTaskWithRole(role.roleId, self.app.get('serverId'), TASK_TYPE.LOGIN_SUM, role);
checkTaskWithRole(role.roleId, self.app.get('serverId'), TASK_TYPE.LOGIN_SERIES, role);
checkTaskWithRole(role.roleId, self.app.get('serverId'), role.funcs, TASK_TYPE.LOGIN_SUM, role);
checkTaskWithRole(role.roleId, self.app.get('serverId'), role.funcs, TASK_TYPE.LOGIN_SERIES, role);
role['heros'] = heros;
role['equips'] = equips;
@@ -265,6 +265,7 @@ export class CityActivityHandler {
let sid = session.get('sid');
let guildCode = session.get('guildCode');
let serverId = session.get('serverId');
const funcs: number[] = session.get('funcs');
let { cityId, code, isSuccess } = msg;
let obj = getCityActivityObj();
@@ -290,7 +291,7 @@ export class CityActivityHandler {
let gateHp = obj.getGateHpAndInc(serverId, cityId, dicCity.hp);
// 任务
await checkTask(roleId, sid, TASK_TYPE.GUILD_ACTIVITY, 1, true, { aid: this.aid });
await checkTask(roleId, sid, funcs, TASK_TYPE.GUILD_ACTIVITY, 1, true, { aid: this.aid });
return resResult(STATUS.SUCCESS, {
isSuccess,
@@ -205,6 +205,7 @@ export class GateActivityHandler {
let sid = session.get('sid');
let guildCode = session.get('guildCode');
let serverId = session.get('serverId');
const funcs: number[] = session.get('funcs');
let { code, isSuccess } = msg;
let obj = getGateActivityObj();
@@ -254,7 +255,7 @@ export class GateActivityHandler {
}
// 任务
await checkTask(roleId, sid, TASK_TYPE.GUILD_ACTIVITY, 1, true, { aid: this.aid });
await checkTask(roleId, sid, funcs, TASK_TYPE.GUILD_ACTIVITY, 1, true, { aid: this.aid });
return resResult(STATUS.SUCCESS, {
code,
...statusResult,
@@ -157,6 +157,7 @@ export class RaceActivityHandler {
let sid = session.get('sid');
let guildCode = session.get('guildCode');
let serverId = session.get('serverId');
const funcs: number[] = session.get('funcs');
let { code, isSuccess } = msg;
@@ -175,7 +176,7 @@ export class RaceActivityHandler {
let myGuildRank = await r.getMyRank({guildCode});
// 任务
await checkTask(roleId, sid, TASK_TYPE.GUILD_ACTIVITY, 1, true, { aid: this.aid });
await checkTask(roleId, sid, funcs, TASK_TYPE.GUILD_ACTIVITY, 1, true, { aid: this.aid });
return resResult(STATUS.SUCCESS, {
timestamp: Date.now(),
woodenHorse: guildActivityRec.woodenHorse,
@@ -92,6 +92,7 @@ export class EquipHandler {
let roleId: string = session.get('roleId');
// let roleName: string = session.get('roleName');
let sid: string = session.get('sid');
let funcs: number[] = session.get('funcs');
let { hid, ePlaceId, type } = msg;
let hero = await HeroModel.findByHidAndRoleWithEquip(hid, roleId);
@@ -150,7 +151,7 @@ export class EquipHandler {
await calPlayerCeAndSave(HERO_SYSTEM_TYPE.EQUIP_BASE, sid, roleId, hero, { ePlace });
// 任务
await checkTaskWithHero(roleId, sid, TASK_TYPE.EQUIP_STRENGTHEN, hero, oldLvs);
await checkTaskWithHero(roleId, sid, funcs, TASK_TYPE.EQUIP_STRENGTHEN, hero, oldLvs);
const curHero = {
hid,
@@ -165,6 +166,7 @@ export class EquipHandler {
let roleId: string = session.get('roleId');
// let roleName: string = session.get('roleName');
let sid: string = session.get('sid');
let funcs: number[] = session.get('funcs');
let { hid, lv: maxLv } = msg; // lv: 升到哪一级
let hero = await HeroModel.findByHidAndRoleWithEquip(hid, roleId);
@@ -214,7 +216,7 @@ export class EquipHandler {
await calPlayerCeAndSave(HERO_SYSTEM_TYPE.EQUIP_BASE, sid, roleId, hero, { ePlace });
// 任务
await checkTaskWithHero(roleId, sid, TASK_TYPE.EQUIP_STRENGTHEN, hero, oldLvs);
await checkTaskWithHero(roleId, sid, funcs, TASK_TYPE.EQUIP_STRENGTHEN, hero, oldLvs);
const curHero = {
hid,
@@ -229,6 +231,7 @@ export class EquipHandler {
let roleName: string = session.get('roleName');
let serverId = session.get('serverId');
let sid: string = session.get('sid');
let funcs: number[] = session.get('funcs');
let { hid, ePlaceId, material } = msg;
@@ -290,7 +293,7 @@ export class EquipHandler {
if (isSuccess) {
let curEquip = <EquipType>equip;
pushEquipRefineSucMsg(roleId, roleName, serverId, curEplace, curEquip?curEquip.quality: 0);
await checkTask(roleId, sid, TASK_TYPE.EQUIP_REFINE, 1, true, {});
await checkTask(roleId, sid, funcs, TASK_TYPE.EQUIP_REFINE, 1, true, {});
}
return resResult(STATUS.SUCCESS, { isSuccess, curHero });
}
@@ -343,6 +346,7 @@ export class EquipHandler {
let roleId: string = session.get('roleId');
// let roleName: string = session.get('roleName');
let sid: string = session.get('sid');
let funcs: number[] = session.get('funcs');
let { eid } = msg;
let equip = await EquipModel.findbySeqId(eid);
@@ -408,7 +412,7 @@ export class EquipHandler {
const hero = await HeroModel.findByHidAndRoleWithEquip(hid, roleId);
await calPlayerCeAndSave(HERO_SYSTEM_TYPE.RESTRENGTHEN, sid, roleId, hero, {}, [ePlaceId, ...removeSeidList]);
await checkTask(roleId, sid, TASK_TYPE.EQUIP_RESTRENGTHEN, 1, true, {});
await checkTask(roleId, sid, funcs, TASK_TYPE.EQUIP_RESTRENGTHEN, 1, true, {});
return resResult(STATUS.SUCCESS,{curEquip});
}
@@ -444,6 +448,7 @@ export class EquipHandler {
let roleId: string = session.get('roleId');
let equip = await EquipModel.getEquip(eid);
let sid: string = session.get('sid');
let funcs: number[] = session.get('funcs');
let goodInfo = getGoodById(equip.id);
let obj = ITID.get(goodInfo.itid);
let id = obj.type;
@@ -465,16 +470,16 @@ export class EquipHandler {
if (index < 0)
return resResult(STATUS.WRONG_PARMS);
let equipOffInfo = <EquipType>hero.ePlace[index].equip;
let curEquip = await changeEquip(roleId, sid, equipOffInfo, equip.hid, id, equip);
let curEquip = await changeEquip(roleId, sid, equipOffInfo, equip.hid, id, equip, funcs);
if (!!curEquip)
curEquips.push(curEquip);
curEquip = await dressEquip(roleId, sid, hero, equip);
curEquip = await dressEquip(roleId, sid, hero, equip, funcs);
if (!!curEquip)
curEquips.push(curEquip);
} else if (type == 2) {
if (!equip.hid)
return resResult(STATUS.EQUIP_NOT_EQUIPED);
let curEquip = await takeOffEquipAndCalPlayerCe(roleId, sid, hero, equip, id)
let curEquip = await takeOffEquipAndCalPlayerCe(roleId, sid, hero, equip, id, funcs);
curEquips.push(curEquip);
}
return resResult(STATUS.SUCCESS, { curEquips: curEquips });
@@ -512,6 +517,7 @@ export class EquipHandler {
let { eid, id, jewel } = msg;
let roleId: string = session.get('roleId');
let sid: string = session.get('sid');
let funcs: number[] = session.get('funcs');
let consumes: Array<{ id: number, count: number }> = [];
let goods: Array<{ id: number, count: number }> = [];
let equip = await EquipModel.getEquip(eid);
@@ -545,9 +551,9 @@ export class EquipHandler {
}
// 任务
await checkTaskWithEquip(roleId, sid, TASK_TYPE.EQUIP_JEWEL, equip, [oldJewelCount]);
await checkTaskWithArgs(roleId, sid, TASK_TYPE.EQUIP_JEWEL_STAGE, [jewel, oldJewel]);
await checkTaskWithEquip(roleId, sid, TASK_TYPE.EQUIP_JEWEL_SUM, equip, [oldJewelCount]);
await checkTaskWithEquip(roleId, sid, funcs, TASK_TYPE.EQUIP_JEWEL, equip, [oldJewelCount]);
await checkTaskWithArgs(roleId, sid, funcs, TASK_TYPE.EQUIP_JEWEL_STAGE, [jewel, oldJewel]);
await checkTaskWithEquip(roleId, sid, funcs, TASK_TYPE.EQUIP_JEWEL_SUM, equip, [oldJewelCount]);
return resResult(STATUS.SUCCESS, { curEquip: { seqId: eid, holes: equip.holes } });
}
@@ -585,6 +591,7 @@ export class EquipHandler {
let { eid, id } = msg;
let roleId: string = session.get('roleId');
let roleName: string = session.get('roleName');
let funcs: number[] = session.get('funcs');
let sid: string = session.get('sid');
let goods: Array<{ id: number, count: number }> = [];
let equip = await EquipModel.getEquip(eid);
@@ -605,9 +612,9 @@ export class EquipHandler {
}
// 任务
await checkTaskWithEquip(roleId, sid, TASK_TYPE.EQUIP_JEWEL, equip, [oldJewelCount]);
await checkTaskWithArgs(roleId, sid, TASK_TYPE.EQUIP_JEWEL_STAGE, [0, jewel]);
await checkTaskWithEquip(roleId, sid, TASK_TYPE.EQUIP_JEWEL_SUM, equip, [oldJewelCount]);
await checkTaskWithEquip(roleId, sid, funcs, TASK_TYPE.EQUIP_JEWEL, equip, [oldJewelCount]);
await checkTaskWithArgs(roleId, sid, funcs, TASK_TYPE.EQUIP_JEWEL_STAGE, [0, jewel]);
await checkTaskWithEquip(roleId, sid, funcs, TASK_TYPE.EQUIP_JEWEL_SUM, equip, [oldJewelCount]);
return resResult(STATUS.SUCCESS, { curEquip: { seqId: eid, holes: equip.holes } });
}
@@ -670,6 +677,7 @@ export class EquipHandler {
let roleName: string = session.get('roleName');
let sid: string = session.get('sid');
let serverId = session.get('serverId');
let funcs: number[] = session.get('funcs');
let goodInfo = getGoodById(jewel);
let good = ITID.get(goodInfo.itid);
let needUpdate = false;
@@ -713,9 +721,9 @@ export class EquipHandler {
}
// 任务
await checkTaskWithEquip(roleId, sid, TASK_TYPE.EQUIP_JEWEL, equip, [oldJewelCount]);
await checkTaskWithArgs(roleId, sid, TASK_TYPE.EQUIP_JEWEL_STAGE, [jewel, oldJewel]);
await checkTaskWithEquip(roleId, sid, TASK_TYPE.EQUIP_JEWEL_SUM, equip, [oldJewelCount]);
await checkTaskWithEquip(roleId, sid, funcs, TASK_TYPE.EQUIP_JEWEL, equip, [oldJewelCount]);
await checkTaskWithArgs(roleId, sid, funcs, TASK_TYPE.EQUIP_JEWEL_STAGE, [jewel, oldJewel]);
await checkTaskWithEquip(roleId, sid, funcs, TASK_TYPE.EQUIP_JEWEL_SUM, equip, [oldJewelCount]);
return resResult(STATUS.SUCCESS, { curEquip: { seqId: eid, holes: equip.holes } });
} else {
@@ -22,7 +22,7 @@ import { FRIEND } from "../../../pubUtils/dicParam";
import { PlayerDetail, PlayerDetailHero } from "../../../domain/battleField/guild";
import { createPrivateMsg, pushMsgToRole, pushPresent } from "../../../services/chatService";
import { Rank } from "../../../services/rankService";
import { checkTaskWithRole, checkTaskWithRoles, checkTask } from "../../../services/taskService";
import { checkTaskWithRoles, checkTask } from "../../../services/taskService";
export default function (app: Application) {
@@ -202,6 +202,7 @@ export class FriendHandler {
public async handleApply(msg: { applyCodeList: string[], isPass: boolean }, session: BackendSession) {
let roleId: string = session.get('roleId');
let sid: string = session.get('sid');
let funcs: number[] = session.get('funcs');
let { applyCodeList, isPass } = msg;
@@ -264,7 +265,7 @@ export class FriendHandler {
role = await RoleModel.increaseFriendApplyCnt(roleId, -1 * resultApplyCodeList.length, 50);
roles.push(role);
// 任务
await checkTaskWithRoles(roleId, sid, TASK_TYPE.FRIEND_NUM, roles);
await checkTaskWithRoles(roleId, sid, funcs, TASK_TYPE.FRIEND_NUM, roles);
// 特殊处理:如果他点一键同意,有很多人,这个单独的人就不做这个额外的提示,直接把他好友申请删掉就好
if(str == getResStr(STATUS.FRIEND_HAS_ADD) && resultApplyCodeList.length > 1) str = '';
@@ -371,6 +372,7 @@ export class FriendHandler {
public async setBlackList(msg: { roleId: string, type: number }, session: BackendSession) {
let roleId: string = session.get('roleId');
let sid: string = session.get('sid');
let funcs: number[] = session.get('funcs');
let { roleId: hisRoleId, type } = msg;
let role = await RoleModel.findByRoleId(roleId);
@@ -473,7 +475,7 @@ export class FriendHandler {
let { friendCnt = 0, blockCnt = 0 } = role;
// 任务
await checkTaskWithRoles(roleId, sid, TASK_TYPE.FRIEND_NUM, [role, friend]);
await checkTaskWithRoles(roleId, sid, funcs, TASK_TYPE.FRIEND_NUM, [role, friend]);
return resResult(STATUS.SUCCESS, {
frdRoleIds, blackRoleIds,
@@ -489,6 +491,7 @@ export class FriendHandler {
let roleId: string = session.get('roleId');
let roleName: string = session.get('roleName');
let sid: string = session.get('sid');
const funcs: number[] = session.get('funcs');
let { roleId: hisRoleId } = msg;
@@ -543,7 +546,7 @@ export class FriendHandler {
// 更新情谊值
frdPointRec = await FriendPointModel.updateSendCntToday(roleId, roleName, todaySendInc, max, FRIEND_DROP_TYPE.SEND_GIFT);
// 任务
await checkTask(roleId, sid, TASK_TYPE.FRIEND_SEND_HEART, todaySendInc, true, {});
await checkTask(roleId, sid, funcs, TASK_TYPE.FRIEND_SEND_HEART, todaySendInc, true, {});
return resResult(STATUS.SUCCESS, {
todaySendCnt, list
@@ -151,6 +151,7 @@ export class HeroHandler {
public async lvUp(msg: { hid: number, type: number}, session: BackendSession) {
let roleId: string = session.get('roleId');
let sid: string = session.get('sid');
let funcs: number[] = session.get('funcs');
let { hid, type } = msg;
@@ -208,7 +209,7 @@ export class HeroHandler {
hero = await calPlayerCeAndSave(HERO_SYSTEM_TYPE.LVUP, sid, roleId, hero, update);
// 任务
await checkTaskWithHero(roleId, sid, TASK_TYPE.HERO_LV, hero);
await checkTaskWithHero(roleId, sid, funcs, TASK_TYPE.HERO_LV, hero);
const curHero = {
hid, lv : hero.lv, exp : hero.exp
@@ -221,6 +222,7 @@ export class HeroHandler {
public async starUp(msg: { hid: number, star: number, starStage: number}, session: BackendSession) {
let roleId: string = session.get('roleId');
let sid: string = session.get('sid');
let funcs: number[] = session.get('funcs');
let {hid, star, starStage} = msg;
// 根据dic_hero 获得 1. 碎片id 2. 碎片数量 3. 初始武将星级 4. 初始品质
@@ -256,8 +258,8 @@ export class HeroHandler {
if(isUpStar) {
await calAllHeroCe(HERO_SYSTEM_TYPE.STAR, sid, roleId, {}, [hid, isUpStar?1:0]); // 升星可能影响到百家学院全局加成
// 任务
await checkTaskWithHero(roleId, sid, TASK_TYPE.HERO_STAR_UP, hero);
await checkTaskWithHero(roleId, sid, TASK_TYPE.HERO_QUALITY_STAR_UP, hero);
await checkTaskWithHero(roleId, sid, funcs, TASK_TYPE.HERO_STAR_UP, hero);
await checkTaskWithHero(roleId, sid, funcs, TASK_TYPE.HERO_QUALITY_STAR_UP, hero);
}
const curHero = {
@@ -276,6 +278,7 @@ export class HeroHandler {
let roleName: string = session.get('roleName');
let sid: string = session.get('sid');
let serverId: string = session.get('serverId');
let funcs: number[] = session.get('funcs');
let {hid, quality} = msg;
let dicHero = gameData.hero.get(hid);
@@ -310,7 +313,7 @@ export class HeroHandler {
await calAllHeroCe(HERO_SYSTEM_TYPE.QUALITY, sid, roleId, {}, [hid, 0]); // 升品可能影响到百家学院全局加成
// 任务
await checkTaskWithHero(roleId, sid, TASK_TYPE.HERO_QUALITY_UP, hero);
await checkTaskWithHero(roleId, sid, funcs, TASK_TYPE.HERO_QUALITY_UP, hero);
const curHero = {
hid,
@@ -327,6 +330,7 @@ export class HeroHandler {
let sid: string = session.get('sid');
let roleName: string = session.get('roleName');
let serverId: string = session.get('serverId');
let funcs: number[] = session.get('funcs');
let {hid, colorStar, colorStarStage} = msg;
// 根据dic_hero 获得 1. 碎片id 2. 碎片数量 3. 初始武将星级 4. 初始品质
@@ -370,8 +374,8 @@ export class HeroHandler {
await calAllHeroCe(HERO_SYSTEM_TYPE.COLORSTAR, sid, roleId, {}, [hid, isUpStar?1:0]); // 升星可能影响到百家学院全局加成
;
// 任务
await checkTaskWithHero(roleId, sid, TASK_TYPE.HERO_STAR_UP, hero);
await checkTask(roleId, sid, TASK_TYPE.HERO_WAKE_UP, 1, true, {});
await checkTaskWithHero(roleId, sid, funcs, TASK_TYPE.HERO_STAR_UP, hero);
await checkTask(roleId, sid, funcs, TASK_TYPE.HERO_WAKE_UP, 1, true, {});
}
const curHero = {
hid,
@@ -389,6 +393,7 @@ export class HeroHandler {
async heroJobTrain (msg: {hid:number}, session: BackendSession) {
let roleId: string = session.get('roleId');
let sid: string = session.get('sid');
let funcs: number[] = session.get('funcs');
let { hid } = msg;
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if (!hero) return resResult(STATUS.HERO_NOT_FIND);
@@ -415,8 +420,8 @@ export class HeroHandler {
jobStage: hero.jobStage + 1
});
// 任务
await checkTaskWithHero(roleId, sid, TASK_TYPE.HERO_TRAIN, hero);
await checkTask(roleId, sid, TASK_TYPE.HERO_TRAIN_SUM, 1, true, {});
await checkTaskWithHero(roleId, sid, funcs, TASK_TYPE.HERO_TRAIN, hero);
await checkTask(roleId, sid, funcs, TASK_TYPE.HERO_TRAIN_SUM, 1, true, {});
return resResult(STATUS.SUCCESS, { curHero: {hid : hero.hid, job : hero.job, jobStage: hero.jobStage}});
}
@@ -425,6 +430,7 @@ export class HeroHandler {
async heroJobStageUp(msg: {hid:number}, session: BackendSession) {
let roleId: string = session.get('roleId');
let sid: string = session.get('sid');
let funcs: number[] = session.get('funcs');
let { hid } = msg;
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if (!hero)
@@ -448,7 +454,7 @@ export class HeroHandler {
}
hero = await calPlayerCeAndSave(HERO_SYSTEM_TYPE.STAGEUP, sid, roleId, hero, update);
// 任务
await checkTaskWithHero(roleId, sid, TASK_TYPE.HERO_STAGE_UP, hero);
await checkTaskWithHero(roleId, sid, funcs, TASK_TYPE.HERO_STAGE_UP, hero);
return resResult(STATUS.SUCCESS, { curHero: {hid : hero.hid, job : hero.job, jobStage : hero.jobStage}});
}
@@ -457,6 +463,7 @@ export class HeroHandler {
async heroConectionActivate(msg: { shipId: number }, session: BackendSession) {
let roleId: string = session.get('roleId');
let sid: string = session.get('sid');
const funcs: number[] = session.get('funcs');
let { shipId } = msg;
let shipHidAndLevel = gameData.friendShipHidAandIds.get(shipId);
if (!shipHidAndLevel) return resResult(STATUS.HERO_CONECTION_IS_NOT_EXIT);
@@ -498,7 +505,7 @@ export class HeroHandler {
hero = await calPlayerCeAndSave(HERO_SYSTEM_TYPE.CONNECT, sid, roleId, hero, { connections: heroConnections }, [shipId]);
// 任务
await checkTask(roleId, sid, TASK_TYPE.HERO_CONNECT, 1, true, { connectLv: level })
await checkTask(roleId, sid, funcs, TASK_TYPE.HERO_CONNECT, 1, true, { connectLv: level })
return resResult(STATUS.SUCCESS, { curHero: {hid : hero.hid, connections : hero.connections}});
}
@@ -506,6 +513,7 @@ export class HeroHandler {
async heroGiveFavor(msg: {hid:number, type: number}, session: BackendSession) {
let roleId: string = session.get('roleId');
let sid: string = session.get('sid');
let funcs: number[] = session.get('funcs');
let { hid, type } = msg;
let addLv = 0;
@@ -571,7 +579,7 @@ export class HeroHandler {
}, [oldLv]);
// 任务
await checkTaskWithHero(roleId, sid, TASK_TYPE.HERO_FAVOUR_LV, hero);
await checkTaskWithHero(roleId, sid, funcs, TASK_TYPE.HERO_FAVOUR_LV, hero);
} else {
hero = await HeroModel.updateHeroInfo(roleId, hero.hid, { favour: newExp, favourLv: newLv });
}
@@ -84,6 +84,7 @@ export class RoleHandler {
async roleTitleLevelUp(msg: {}, session: BackendSession){
let roleId = session.get('roleId');
let sid: string = session.get('sid');
let funcs: number[] = session.get('funcs');
let role = await RoleModel.findByRoleId(roleId);
@@ -102,7 +103,7 @@ export class RoleHandler {
role = await calAllHeroCe(HERO_SYSTEM_TYPE.TITLE, sid, roleId, update);
// 任务
await checkTask(roleId, sid, TASK_TYPE.ROLE_TITLE, 1, false, { title });
await checkTask(roleId, sid, funcs, TASK_TYPE.ROLE_TITLE, 1, false, { title });
return resResult(STATUS.SUCCESS, { roleId, title: role.title });
}
@@ -112,6 +113,7 @@ export class RoleHandler {
let {id, count} = msg;
let roleId = session.get('roleId');
let sid: string = session.get('sid');
let funcs: number[] = session.get('funcs');
let role = await RoleModel.findByRoleId(roleId);
let teraphs = role.teraphs;
@@ -144,7 +146,7 @@ export class RoleHandler {
role = await calAllHeroCe(HERO_SYSTEM_TYPE.TERAPH, sid, roleId, { teraphs }, [id]);
// 任务
await checkTask(roleId, sid, TASK_TYPE.ROLE_TERAPH_STRENGTHEN, count, true, {});
await checkTask(roleId, sid, funcs, TASK_TYPE.ROLE_TERAPH_STRENGTHEN, count, true, {});
return resResult(STATUS.SUCCESS, { roleId, teraphs: role.teraphs });
}
@@ -231,6 +233,7 @@ export class RoleHandler {
async changeSchoolHero(msg: { schoolId: number, positionId: number, hid: number }, session: BackendSession) {
let roleId = session.get('roleId');
let sid = session.get('sid');
let funcs: number[] = session.get('funcs');
let { schoolId, positionId, hid } = msg;
if (!gameData.school.has(schoolId)) {
@@ -268,7 +271,7 @@ export class RoleHandler {
await calAllHeroCe(HERO_SYSTEM_TYPE.SCHOOL, sid, roleId, {}, [schoolId, hid, preHid]);
// 任务
await checkTaskWithArgs(roleId, sid, TASK_TYPE.ROLE_SCHOOL_UNLOCK, [ hid, preHid ]);
await checkTaskWithArgs(roleId, sid, funcs, TASK_TYPE.ROLE_SCHOOL_UNLOCK, [ hid, preHid ]);
return resResult(STATUS.SUCCESS, {
schoolId, positionId, hid, preHid, isOpen
@@ -280,6 +283,7 @@ export class RoleHandler {
async unlockSchoolPosition(msg: { schoolId: number, positionId: number }, session: BackendSession) {
let roleId = session.get('roleId');
let sid = session.get('sid');
let funcs: number[] = session.get('funcs');
let { schoolId, positionId } = msg;
if (!gameData.school.has(schoolId)) {
@@ -305,7 +309,7 @@ export class RoleHandler {
curSchool = await SchoolModel.updateBySclAndPos(roleId, schoolId, positionId, { isOpen: true })
// 任务
await checkTask(roleId, sid, TASK_TYPE.ROLE_SCHOOL_UNLOCK, 1, true, {});
await checkTask(roleId, sid, funcs, TASK_TYPE.ROLE_SCHOOL_UNLOCK, 1, true, {});
return resResult(STATUS.SUCCESS, {
schoolId, positionId, hid: curSchool.hid, isOpen: curSchool.isOpen
@@ -316,6 +320,7 @@ export class RoleHandler {
async activeHeroScroll(msg: { hid: number }, session: BackendSession) {
let roleId = session.get('roleId');
let sid = session.get('sid');
let funcs: number[] = session.get('funcs');
let { hid } = msg;
@@ -363,8 +368,8 @@ export class RoleHandler {
calAllHeroCe(HERO_SYSTEM_TYPE.SCROLL, sid, roleId, {}, [hid]); // 全局增加战力
// 任务
if(favourLv != hero.favourLv) await checkTaskWithHero(roleId, sid, TASK_TYPE.HERO_FAVOUR_LV, hero);
if(!scrollActive) await checkTask(roleId, sid, TASK_TYPE.ROLE_SCROLL_ACTIVE, 1, true, {});
if(favourLv != hero.favourLv) await checkTaskWithHero(roleId, sid, funcs, TASK_TYPE.HERO_FAVOUR_LV, hero);
if(!scrollActive) await checkTask(roleId, sid, funcs, TASK_TYPE.ROLE_SCROLL_ACTIVE, 1, true, {});
return resResult(STATUS.SUCCESS, {
curHero: {