领取训练场进阶奖励
This commit is contained in:
137
game-server/app/servers/battle/handler/guildRefinerHandler.ts
Normal file
137
game-server/app/servers/battle/handler/guildRefinerHandler.ts
Normal file
@@ -0,0 +1,137 @@
|
||||
import { Application, BackendSession, pinus } from 'pinus';
|
||||
import { UserGuildModel } from '../../../db/UserGuild';
|
||||
import { resResult } from '../../../pubUtils/util';
|
||||
import { STATUS, GUILD_OPERATE } from '../../../consts';
|
||||
import { GuildRefineModel } from '../../../db/GuildRefine';
|
||||
import { getArmyDevelopConsumeById, getGoodById } from '../../../pubUtils/data';
|
||||
import { EquipModel } from '../../../db/Equip';
|
||||
import { nowSeconds } from '../../../pubUtils/timeUtil';
|
||||
import { handleCost, addItems } from '../../../services/rewardService';
|
||||
import { GuildModel } from '../../../db/Guild';
|
||||
import { findIndex, findWhere } from 'underscore';
|
||||
import { lockData } from '../../../services/redLockService';
|
||||
import { GUILD_DATA_NAME, GUILD_STRUCTURE } from '../../../consts/constModules/guildConst';
|
||||
import { checkAuth } from '../../../services/guildService';
|
||||
import { ARMY } from '../../../pubUtils/dicParam';
|
||||
import { CURRENCY_BY_TYPE, CURRENCY_TYPE } from '../../../consts/constModules/itemConst';
|
||||
|
||||
export default function (app: Application) {
|
||||
return new GuildRefineHandler(app);
|
||||
}
|
||||
|
||||
export class GuildRefineHandler {
|
||||
constructor(private app: Application) {
|
||||
|
||||
}
|
||||
|
||||
async getRefine(msg: {}, session: BackendSession) {
|
||||
const roleId = session.get('roleId');
|
||||
let userGuild = await UserGuildModel.getMyGuild(roleId, 'guildCode');
|
||||
if (!userGuild)
|
||||
return resResult(STATUS.WRONG_PARMS);
|
||||
const { guildCode: code } = userGuild;
|
||||
let { scienceTrees } = await GuildRefineModel.getRefine(code);
|
||||
return resResult(STATUS.SUCCESS, { scienceTrees });
|
||||
}
|
||||
|
||||
async refineEquip(msg: {eid: number}, session: BackendSession) {
|
||||
let { eid } = msg;
|
||||
const roleId: string = session.get('roleId');
|
||||
const sid: string = session.get('sid');
|
||||
const roleName: string = session.get('roleName');
|
||||
let userGuild = await UserGuildModel.getMyGuild(roleId, 'guildCode');
|
||||
if (!userGuild)
|
||||
return resResult(STATUS.WRONG_PARMS);
|
||||
let { guildCode: code } = userGuild;
|
||||
let equip = await EquipModel.findbySeqId(eid);
|
||||
if (!equip) return resResult(STATUS.EQUIP_NOT_FIND);
|
||||
let equpInfo = getGoodById(equip.id);
|
||||
let { scienceTrees } = await GuildRefineModel.getRefine(code);
|
||||
let findDevelopConsume;
|
||||
for (let scienceTree of scienceTrees) {
|
||||
if (scienceTree.endTime < nowSeconds()) {
|
||||
let developConsume = getArmyDevelopConsumeById(scienceTree.id);
|
||||
if (developConsume.quality && developConsume.levelMax >= equpInfo.lvLimited && equpInfo.lvLimited <= developConsume.levelMin) {
|
||||
findDevelopConsume = developConsume;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!findDevelopConsume)
|
||||
return resResult(STATUS.GUILD_NOT_REFINE_THE_EQUIP);
|
||||
|
||||
let result = await handleCost(roleId, sid, findDevelopConsume.honourConsume);
|
||||
if(!result)
|
||||
return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH);
|
||||
let goods = await addItems(roleId, roleName, sid, [{id: eid, count: 1}]);
|
||||
return resResult(STATUS.SUCCESS, { goods });
|
||||
}
|
||||
|
||||
async lightUpTree(msg: {id: number}, session: BackendSession) {
|
||||
let { id } = msg;
|
||||
const roleId: string = session.get('roleId');
|
||||
const serverId: number = session.get('serverId');
|
||||
let userGuild = await UserGuildModel.getMyGuild(roleId, 'auth guildCode');
|
||||
if (!userGuild)
|
||||
return resResult(STATUS.WRONG_PARMS);
|
||||
const checkMyResult = await checkAuth(GUILD_OPERATE.EQUIP_PRODUCE, roleId, null, userGuild);
|
||||
if(!checkMyResult) return resResult(STATUS.GUILD_AUTH_NOT_ENOUGH);
|
||||
const { guildCode: code } = userGuild;
|
||||
let developConsume = getArmyDevelopConsumeById(id);
|
||||
if (!developConsume)
|
||||
return resResult(STATUS.WRONG_PARMS);
|
||||
let res:any = await lockData(serverId, GUILD_DATA_NAME.GUILD_REFINE, code);//加锁
|
||||
if (!!res.err)
|
||||
return resResult(STATUS.REDLOCK_ERR);
|
||||
let guildRefine = await GuildRefineModel.getRefine(code);
|
||||
for (let scienceTree of guildRefine.scienceTrees) {
|
||||
if (scienceTree.id == id)
|
||||
return resResult(STATUS.GUILD_LIGHT_UP_THE_SCIENCETREE);
|
||||
|
||||
if (scienceTree.endTime > nowSeconds())
|
||||
return resResult(STATUS.GUILD_SCIENCETREE_IS_RUNNING);
|
||||
}
|
||||
const costResult = await GuildModel.costFund(code, developConsume.fundConsume);
|
||||
if(!costResult)
|
||||
return resResult(STATUS.GUILD_FUND_NOT_ENOUGH);
|
||||
let scienceTree = { id, endTime: nowSeconds() + developConsume.timeConsume, assistRoleIds: []}
|
||||
let { scienceTrees } = await GuildRefineModel.pushRefine(code, scienceTree);
|
||||
res.releaseCallback();
|
||||
return resResult(STATUS.SUCCESS, { scienceTrees });
|
||||
}
|
||||
|
||||
async assistRefine(msg: {id: number}, session: BackendSession) {
|
||||
let { id } = msg;
|
||||
const roleId: string = session.get('roleId');
|
||||
const serverId: number = session.get('serverId');
|
||||
const sid: string = session.get('sid');
|
||||
|
||||
let userGuild = await UserGuildModel.getMyGuild(roleId, 'guildCode');
|
||||
if (!userGuild)
|
||||
return resResult(STATUS.WRONG_PARMS);
|
||||
const { guildCode: code } = userGuild;
|
||||
let res:any = await lockData(serverId, GUILD_DATA_NAME.GUILD_ASSIST_REFINE, code);//加锁
|
||||
if (!!res.err)
|
||||
return resResult(STATUS.REDLOCK_ERR);
|
||||
let guildRefine = await GuildRefineModel.getRefine(code);
|
||||
|
||||
let index = findIndex(guildRefine.scienceTrees, { id });
|
||||
if (index == -1)
|
||||
return resResult(STATUS.WRONG_PARMS);
|
||||
let scienceTree = guildRefine.scienceTrees[index];
|
||||
if (!!scienceTree.assistRoleIds.indexOf(roleId))
|
||||
return resResult(STATUS.GUILD_IS_ASSISTED_SCIENCETREE);
|
||||
if (scienceTree.assistRoleIds.length >= ARMY.ARMY_DEVELOPMENT_SPEEDTMES)
|
||||
return resResult(STATUS.GUILD_REACH_MAX_ASSIST_COUNT);
|
||||
|
||||
let result = await handleCost(roleId, sid, [{id: CURRENCY_BY_TYPE.get(CURRENCY_TYPE.GOLD), count: ARMY.ARMY_DEVELOPMENT_SPEEDCOST}]);
|
||||
if(!result)
|
||||
return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH);
|
||||
scienceTree.assistRoleIds.push(roleId);
|
||||
scienceTree.endTime -= scienceTree.endTime - ARMY.ARMY_DEVELOPMENT_SPEED * 60;
|
||||
|
||||
let { scienceTrees } = await GuildRefineModel.updateRefine(code, { scienceTrees: guildRefine.scienceTrees })
|
||||
res.releaseCallback();
|
||||
return resResult(STATUS.SUCCESS, { scienceTrees });
|
||||
}
|
||||
}
|
||||
@@ -107,7 +107,7 @@ export class GuildTrainHandler {
|
||||
// return resResult(STATUS.WRONG_PARMS);
|
||||
// }
|
||||
|
||||
if (time < getCurHourPoint(REFRESH_HOUR) && nowSeconds() > getCurHourPoint(REFRESH_HOUR)) {
|
||||
if (time < getCurHourPoint(REFRESH_HOUR) && nowSeconds() > getCurHourPoint(REFRESH_HOUR)) {
|
||||
return resResult(STATUS.GUILD_TRAIN_IS_RESETED);//关卡已经重置
|
||||
}
|
||||
if (time > getHourPoint(REFRESH_HOUR)) {
|
||||
@@ -242,11 +242,20 @@ export class GuildTrainHandler {
|
||||
const roleId: string = session.get('roleId');
|
||||
const roleName: string = session.get('roleName');
|
||||
const sid: string = session.get('sid');
|
||||
|
||||
const serverId: number = parseInt(session.get('serverId'));
|
||||
let userGuild = await getUserGuild(roleId, serverId);
|
||||
if (!userGuild)
|
||||
return resResult(STATUS.WRONG_PARMS);
|
||||
const { guildCode: code } = userGuild;
|
||||
let guildTrain = await GuildTrainModel.findTrainByTrainIdNotLock(code, trainId);
|
||||
if (!guildTrain||!guildTrain.isComplete)
|
||||
return resResult(STATUS.GUILD_TRAIN_IS_NOT_COMPLETE);
|
||||
let { jinjieReward } = getArmyTrainJuDian(trainId);
|
||||
let userGuild = await UserGuildModel.receiveTrainRewards(roleId, trainId);
|
||||
if (userGuild.trainRewards.indexOf(trainId) != -1)
|
||||
return resResult(STATUS.GUILD_TRAIN_QUALITY_REWARD_IS_GOT);
|
||||
userGuild = await UserGuildModel.receiveTrainRewards(roleId, trainId);
|
||||
if (!userGuild) {
|
||||
return resResult(STATUS.GUILD_GET_TRAIN_REWARD_FAIL);
|
||||
return resResult(STATUS.INTERNAL_ERR);
|
||||
}
|
||||
let goods = await addItems(roleId, roleName, sid, jinjieReward);
|
||||
let { trainRewards } = userGuild;
|
||||
|
||||
@@ -13,7 +13,7 @@ import { getRandomByLen, resResult } from '../pubUtils/util';
|
||||
import { getRedis } from './redisService';
|
||||
import { STATUS } from '../consts/statusCode';
|
||||
export async function getUserGuild(roleId: string, serverId: number) {
|
||||
let userGuild = await UserGuildModel.getMyGuild(roleId,'trainCount trainTime trainRewards');
|
||||
let userGuild = await UserGuildModel.getMyGuild(roleId,'trainCount trainTime trainRewards guildCode');
|
||||
if (!userGuild)
|
||||
return;
|
||||
let { trainCount, trainTime, buyTrainCount, guildCode} = userGuild;
|
||||
@@ -112,7 +112,7 @@ export function getGuildTrainInfo (guildTrains: Array<GuildTrainType>, roleId:
|
||||
export async function unlockTrain(code: string, trainId: number) {
|
||||
let guildTrain = await GuildTrainModel.findTrainByTrainIdNotLock(code, trainId);
|
||||
if (!!guildTrain) {
|
||||
return;
|
||||
return guildTrain;
|
||||
}
|
||||
let { trainInstances } = getArmyTrainJuDian(trainId);
|
||||
// 初始化
|
||||
|
||||
@@ -4,8 +4,8 @@ export const STATUS = {
|
||||
WRONG_PARMS: { code: 1, simStr: '参数错误' },
|
||||
TOKEN_ERR: { code: 2, simStr: 'token失效' },
|
||||
INTERNAL_ERR: { code: 3, simStr: '内部错误' },
|
||||
CONNECTOR_ERR: { code: 4, simStr: '连接服配置错误'},
|
||||
LOGIN_ERR: { code: 5, simStr: '检测到您的账号异地登录,已被迫下线'},
|
||||
CONNECTOR_ERR: { code: 4, simStr: '连接服配置错误' },
|
||||
LOGIN_ERR: { code: 5, simStr: '检测到您的账号异地登录,已被迫下线' },
|
||||
REDLOCK_ERR: { code: 6, simStr: 'redlock错误' },
|
||||
|
||||
// 账号相关状态 10000 - 19999
|
||||
@@ -27,7 +27,7 @@ export const STATUS = {
|
||||
BATTLE_HERO_NOT_FOUND: { code: 20006, simStr: '使用的武将不存在' },
|
||||
BATTLE_CONSUMES_NOT_ENOUGH: { code: 20007, simStr: '道具不足' },
|
||||
BATTLE_END_WRONG_TYPE: { code: 20008, simStr: '此类型无法使用通用结算' },
|
||||
|
||||
|
||||
// 主线 20100 - 20199
|
||||
BATTLE_INFO_VALIDATE_ERR: { code: 20101, simStr: '关卡信息不同' },
|
||||
BATTLE_SWEEP_CONDITION_STAR: { code: 20102, simStr: '需要3星通过关卡才可以扫荡' },
|
||||
@@ -55,7 +55,7 @@ export const STATUS = {
|
||||
EXPEDITION_POINT_NOT_ENOUGH: { code: 20408, simStr: '点数不足' },
|
||||
EXPEDITION_POINT_RECORD_NOT_FOUND: { code: 20409, simStr: '点数宝箱已刷新' },
|
||||
EXPEDITION_POINT_NEED_ALL_RECEIVED: { code: 20410, simStr: '宝箱需要领取完才可以刷新' },
|
||||
EXPEDITION_RESET_NUM_NOT_ENOUGH: { code: 20411, simStr: '重置次数不足'},
|
||||
EXPEDITION_RESET_NUM_NOT_ENOUGH: { code: 20411, simStr: '重置次数不足' },
|
||||
// 天梯 20500 - 20599
|
||||
TOWER_RESET_ERR: { code: 20501, simStr: '只能重置当前层' },
|
||||
TOWER_INFO_NOT_FOUND: { code: 20502, simStr: '镇念塔层数异常' },
|
||||
@@ -106,12 +106,12 @@ export const STATUS = {
|
||||
COM_BATTLE_REWARD_ERR: { code: 20627, simStr: '不能领取奖励' },
|
||||
COM_BATTLE_REWARDED: { code: 20628, simStr: '奖励已领取' },
|
||||
COM_BATTLE_HEROES_ERR: { code: 20629, simStr: '阵容异常' },
|
||||
|
||||
|
||||
// 共斗藏宝图合成
|
||||
COM_BLUEPRT_QUALITY_CANNOT_COMPOSE: { code: 20630, simStr: '该品质藏宝图不可合成' },
|
||||
COM_BLUEPRT_COUNT_ERROR: { code: 20631, simStr: '材料数量不足' },
|
||||
COM_BLUEPRT_QUALITY_ERROR: { code: 20632, simStr: '品质错误' },
|
||||
|
||||
|
||||
// 秘境 20700 - 20799
|
||||
DUNGEON_REFRESH_TIMES_LACK: { code: 20701, simStr: '购买次数不足' },
|
||||
DUNGEON_TIMES_LACK: { code: 20701, simStr: '挑战次数不足' },
|
||||
@@ -120,69 +120,90 @@ export const STATUS = {
|
||||
PVP_ROLE_NOT_FOUND: { code: 20700, simStr: '未找到该对手' },
|
||||
PVP_NOT_OPEN: { code: 20701, simStr: 'pvp尚未开启' },
|
||||
PVP_REFRESH_CNT_REACH_MAX: { code: 20702, simStr: '刷新对手次数超过最大值' },
|
||||
PVP_NOT_REACH_BOX_SCORE: {code: 20703, simStr: '未达到宝箱领取军功'},
|
||||
PVP_BOX_IS_GOT: {code: 20704, simStr: '宝箱已经领取'},
|
||||
PVP_CHALLENGE_TIMES_NOT_ENOUGH: {code: 20705, simStr: '挑战次数不足'},
|
||||
PVP_NOT_REACH_BOX_SCORE: { code: 20703, simStr: '未达到宝箱领取军功' },
|
||||
PVP_BOX_IS_GOT: { code: 20704, simStr: '宝箱已经领取' },
|
||||
PVP_CHALLENGE_TIMES_NOT_ENOUGH: { code: 20705, simStr: '挑战次数不足' },
|
||||
|
||||
// 军团 20900-20999
|
||||
GUILD_AUTH_NOT_ENOUGH: { code: 20900, simStr: '权限不足' },
|
||||
GUILD_NAME_DUP: { code: 20901, simStr: '军团名重复' },
|
||||
GUILD_CREATE_ERROR: { code: 20902, simStr: '创建失败' },
|
||||
GUILD_MEMBER_MAX: { code: 20903, simStr: '军团人员已满' },
|
||||
GUILD_NOT_REACH_CONDI: { code: 20903, simStr: '您未达到申请军团条件' },
|
||||
GUILD_HAS_JOIN: { code: 20904, simStr: '已加入过其他军团' },
|
||||
GUILD_NOT_FOUND: { code: 20905, simStr: '未获取到该军团' },
|
||||
GUILD_DELETE_ERROR: { code: 20906, simStr: '公会已解散' },
|
||||
GUILD_QUIT_ERROR: { code: 20907, simStr: '退出公会失败' },
|
||||
GUILD_KICK_ERROR: { code: 20908, simStr: '未找到该成员或该成员已退出' },
|
||||
GUILD_QUIT_TIME: { code: 20909, simStr: '退出军团1小时后才可以申请' },
|
||||
GUILD_INVITE_NOT_FOUND: { code: 20910, simStr: '该邀请未找到' },
|
||||
GUILD_AUTH_NOT_CHANGE: { code: 20911, simStr: '权限未发生变化' },
|
||||
GUILD_MEMBER_NOT_FOUND: { code: 20912, simStr: '未找到该成员' },
|
||||
GUILD_LEADER_LOGIN: { code: 20913, simStr: '团长未离线满72小时' },
|
||||
GUILD_STRUCTURE_NOT_FOUND: { code: 20914, simStr: '未找到该建筑物' },
|
||||
GUILD_STRUCTURE_LV_MAX: { code: 20915, simStr: '建筑物已升至满级' },
|
||||
GUILD_FUND_NOT_ENOUGH: { code: 20916, simStr: '资金不足' },
|
||||
GUILD_MANAGER_REACH_MAX: { code: 20917, simStr: '管理员人数达到最大' },
|
||||
GUILD_ACTIVE_BOX_NOT_FOUND: { code: 20918, simStr: '未找到该活跃宝箱' },
|
||||
GUILD_ACTIVE_POINT_NOT_REACH: { code: 20919, simStr: '军团活跃值不足' },
|
||||
GUILD_CREATE_ERROR: { code: 20902, simStr: '创建失败' },
|
||||
GUILD_MEMBER_MAX: { code: 20903, simStr: '军团人员已满' },
|
||||
GUILD_NOT_REACH_CONDI: { code: 20903, simStr: '您未达到申请军团条件' },
|
||||
GUILD_HAS_JOIN: { code: 20904, simStr: '已加入过其他军团' },
|
||||
GUILD_NOT_FOUND: { code: 20905, simStr: '未获取到该军团' },
|
||||
GUILD_DELETE_ERROR: { code: 20906, simStr: '公会已解散' },
|
||||
GUILD_QUIT_ERROR: { code: 20907, simStr: '退出公会失败' },
|
||||
GUILD_KICK_ERROR: { code: 20908, simStr: '未找到该成员或该成员已退出' },
|
||||
GUILD_QUIT_TIME: { code: 20909, simStr: '退出军团1小时后才可以申请' },
|
||||
GUILD_INVITE_NOT_FOUND: { code: 20910, simStr: '该邀请未找到' },
|
||||
GUILD_AUTH_NOT_CHANGE: { code: 20911, simStr: '权限未发生变化' },
|
||||
GUILD_MEMBER_NOT_FOUND: { code: 20912, simStr: '未找到该成员' },
|
||||
GUILD_LEADER_LOGIN: { code: 20913, simStr: '团长未离线满72小时' },
|
||||
GUILD_STRUCTURE_NOT_FOUND: { code: 20914, simStr: '未找到该建筑物' },
|
||||
GUILD_STRUCTURE_LV_MAX: { code: 20915, simStr: '建筑物已升至满级' },
|
||||
GUILD_FUND_NOT_ENOUGH: { code: 20916, simStr: '资金不足' },
|
||||
GUILD_MANAGER_REACH_MAX: { code: 20917, simStr: '管理员人数达到最大' },
|
||||
GUILD_ACTIVE_BOX_NOT_FOUND: { code: 20918, simStr: '未找到该活跃宝箱' },
|
||||
GUILD_ACTIVE_POINT_NOT_REACH: { code: 20919, simStr: '军团活跃值不足' },
|
||||
GUILD_ACTIVE_BOX_HAS_RECEIVED: { code: 20920, simStr: '该活跃宝箱已领取' },
|
||||
|
||||
GUILD_SCRIPT_IS_OPENED_TODAY: { code: 20950, simStr: '今日演武场已开启' },
|
||||
GUILD_SCRIPT_NOT_OPENED: { code: 20951, simStr: '演武场未开启' },
|
||||
GUILD_SCRIPT_IS_BATTLED: { code: 20952, simStr: '今日已挑战过演武场' },
|
||||
GUILD_SCRIPT_IS_COMPLETE: { code: 20953, simStr: '演武场已挑战完成' },
|
||||
GUILD_TRAIN_SCRIPT_NOT_OPENED: { code: 20954, simStr: '试炼关卡未开启' },
|
||||
GUILD_TRAIN_BATTLE_COUNT_NOT_ENOUGH: { code: 20955, simStr: '试炼挑战次数已用完' },
|
||||
GUILD_TRAIN_IS_COMPLETE: { code: 20956, simStr: '试炼关卡已经被压制' },
|
||||
GUILD_GET_TRAIN_BOX_FAIL: { code: 20957, simStr: '宝箱领取失败' },
|
||||
GUILD_TRAIN_REWARD_IS_RECEIVED: { code: 20958, simStr: '试炼进阶奖励已领取' },
|
||||
GUILD_GET_TRAIN_REWARD_FAIL: { code: 20959, simStr: '宝箱领取失败' },
|
||||
GUILD_TRAIN_LEVEL_IS_COMPLETE: { code: 20960, simStr: '试炼已经进阶' },
|
||||
GUILD_BUY_TRAIN_COUNT_REACH_MAX: { code: 20961, simStr: '训练场购买挑战次数以达到上线' },
|
||||
GUILD_TRAIN_IS_RESETED: { code: 20962, simStr: '军团训练场已经重置' },
|
||||
GUILD_NOT_REFINE_THE_EQUIP: { code: 20963, simStr: '军团不能研发次装备' },
|
||||
GUILD_LIGHT_UP_THE_SCIENCETREE: { code: 20964, simStr: '军团已经点亮此科技' },
|
||||
GUILD_SCIENCETREE_IS_RUNNING: { code: 20965, simStr: '军团正在进行研发,不能点亮' },
|
||||
GUILD_IS_ASSISTED_SCIENCETREE: { code: 20966, simStr: '玩家已经协助过该科技树' },
|
||||
GUILD_REACH_MAX_ASSIST_COUNT: { code: 20967, simStr: '已经达到协助的最大次数' },
|
||||
GUILD_TRAIN_IS_NOT_COMPLETE: { code: 20968, simStr: '军团该训练场没有完成' },
|
||||
GUILD_TRAIN_QUALITY_REWARD_IS_GOT: { code: 20969, simStr: '军团训练进阶奖励已经领取' },
|
||||
|
||||
// 通用 30000 - 30099
|
||||
DIC_DATA_NOT_FOUND: { code: 30000, simStr: '数据表未找到' },
|
||||
ROLE_MATERIAL_NOT_ENOUGH: { code: 30001, simStr: '材料数量不足' },
|
||||
// 武将养成通用 30100 - 30199
|
||||
|
||||
|
||||
// 武将合成,升级,升星,升品相关 30200 - 30299
|
||||
ROLE_HERO_EXISTS: {code: 30200, simStr: '已存在武将不可合成' },
|
||||
ROLE_METERIAL_ERROR: {code: 30201, simStr: '材料错误' },
|
||||
ROLE_HERO_NOT_EXISTS: {code: 30202, simStr: '未找到该武将' },
|
||||
ROLE_HERO_LV_OVER: {code: 30203, simStr: '武将等级不可超过主公等级' },
|
||||
ROLE_HERO_LV_TYPE_ERROR: {code: 30204, simStr: '只可选择升1级或升5级' },
|
||||
ROLE_EXP_NOT_ENOUGH: {code: 30205, simStr: '材料经验不足' },
|
||||
ROLE_STAR_STAGE_NOT_ENOUGH: {code: 30206, simStr: '请先点亮前面的星盘' },
|
||||
ROLE_STAR_REACH_MAX: {code: 30207, simStr: '已升满星,请先觉醒' },
|
||||
ROLE_STAR_NOT_ENOUGH: {code: 30208, simStr: '未升满星,不可升品' },
|
||||
ROLE_QUALITY_REACH_MAX: {code: 30209, simStr: '品质已升满' },
|
||||
ROLE_WAKE_STAR_NOT_ENOUGH: {code: 30210, simStr: '未升满星,不可觉醒' },
|
||||
ROLE_QUALITY_NOT_ENOUGH: {code: 30211, simStr: '品质未升满,不可觉醒' },
|
||||
ROLE_HERO_EXISTS: { code: 30200, simStr: '已存在武将不可合成' },
|
||||
ROLE_METERIAL_ERROR: { code: 30201, simStr: '材料错误' },
|
||||
ROLE_HERO_NOT_EXISTS: { code: 30202, simStr: '未找到该武将' },
|
||||
ROLE_HERO_LV_OVER: { code: 30203, simStr: '武将等级不可超过主公等级' },
|
||||
ROLE_HERO_LV_TYPE_ERROR: { code: 30204, simStr: '只可选择升1级或升5级' },
|
||||
ROLE_EXP_NOT_ENOUGH: { code: 30205, simStr: '材料经验不足' },
|
||||
ROLE_STAR_STAGE_NOT_ENOUGH: { code: 30206, simStr: '请先点亮前面的星盘' },
|
||||
ROLE_STAR_REACH_MAX: { code: 30207, simStr: '已升满星,请先觉醒' },
|
||||
ROLE_STAR_NOT_ENOUGH: { code: 30208, simStr: '未升满星,不可升品' },
|
||||
ROLE_QUALITY_REACH_MAX: { code: 30209, simStr: '品质已升满' },
|
||||
ROLE_WAKE_STAR_NOT_ENOUGH: { code: 30210, simStr: '未升满星,不可觉醒' },
|
||||
ROLE_QUALITY_NOT_ENOUGH: { code: 30211, simStr: '品质未升满,不可觉醒' },
|
||||
|
||||
// 武将训练,好感度,羁绊,时装相关 30300 - 30399
|
||||
HERO_NOT_FIND: {code: 30300, simStr: '武将不存在' },
|
||||
HERO_JOB_STAGE_REACH_MAX_STAGE: {code: 30301, simStr: '武将已训练到最大阶段'},
|
||||
NOT_REACH_UNLOCK_LEVEL: {code: 30302, simStr: '未达到解锁等级'},
|
||||
HERO_SKIN_NOT_FIND: {code: 30303, simStr: '时装不存在'},
|
||||
HERO_SKIN_IS_EXIST: {code: 30304, simStr: '时装已存在'},
|
||||
HERO_SKIN_IS_EQUIPED: {code: 30305, simStr: '时装已穿戴'},
|
||||
HERO_CONECTION_IS_MAX_LEVEL: {code: 30306, simStr: '羁绊已达到最大等级'},
|
||||
HERO_CONECTION_IS_NOT_EXIT: {code: 30307, simStr: '羁绊不存在'},
|
||||
ROLE_SHORT_HERO_CONECTION:{code: 30308, simStr: '未拥有羁绊武将'},
|
||||
HERO_FAVOUR_LEVEL_REACH_MAXT:{code: 30309, simStr: '武将好感等级以达到最大'},
|
||||
HERO_JOB_REACH_MAX_STAGE: {code: 30310, simStr: '武将已达到最大的职业阶级'},
|
||||
HERO_NOT_FIND: { code: 30300, simStr: '武将不存在' },
|
||||
HERO_JOB_STAGE_REACH_MAX_STAGE: { code: 30301, simStr: '武将已训练到最大阶段' },
|
||||
NOT_REACH_UNLOCK_LEVEL: { code: 30302, simStr: '未达到解锁等级' },
|
||||
HERO_SKIN_NOT_FIND: { code: 30303, simStr: '时装不存在' },
|
||||
HERO_SKIN_IS_EXIST: { code: 30304, simStr: '时装已存在' },
|
||||
HERO_SKIN_IS_EQUIPED: { code: 30305, simStr: '时装已穿戴' },
|
||||
HERO_CONECTION_IS_MAX_LEVEL: { code: 30306, simStr: '羁绊已达到最大等级' },
|
||||
HERO_CONECTION_IS_NOT_EXIT: { code: 30307, simStr: '羁绊不存在' },
|
||||
ROLE_SHORT_HERO_CONECTION: { code: 30308, simStr: '未拥有羁绊武将' },
|
||||
HERO_FAVOUR_LEVEL_REACH_MAXT: { code: 30309, simStr: '武将好感等级以达到最大' },
|
||||
HERO_JOB_REACH_MAX_STAGE: { code: 30310, simStr: '武将已达到最大的职业阶级' },
|
||||
|
||||
// 装备养成 30400-30499
|
||||
ROLE_EQUIP_PLACE_NOT_ENOUGH: {code: 30400, simStr: '装备栏未装备或无可强化'},
|
||||
ROLE_COIN_NOT_ENOUGH: {code: 30401, simStr: '铜币不足'},
|
||||
ROLE_EQUIP_PLACE_NOT_ENOUGH: { code: 30400, simStr: '装备栏未装备或无可强化' },
|
||||
ROLE_COIN_NOT_ENOUGH: { code: 30401, simStr: '铜币不足' },
|
||||
ROLE_EQUIP_HAVE_NO_RANDSE: { code: 30403, simStr: '装备无随机属性' },
|
||||
ROLE_EQUIP_REACH_MAX: { code: 30404, simStr: '强化已达上限' },
|
||||
ROLE_EQUIP_NOT_REACH_MAX: { code: 30405, simStr: '强化未达到上限' },
|
||||
@@ -190,48 +211,31 @@ export const STATUS = {
|
||||
ROLE_WRONG_ITEM: { code: 30407, simStr: '该道具不可用于该功能' },
|
||||
ROLE_ALL_SE_LOCK: { code: 30408, simStr: '属性不可全部都锁住' },
|
||||
ROLE_EQUIP_DUPLICATE_LOCK: { code: 30409, simStr: '随机属性不可重复锁定' },
|
||||
|
||||
EQUIP_NOT_FIND: {code: 30500, simStr: '装备不存在'},
|
||||
EQUIP_IS_EQUIPED: {code: 30501, simStr: '装备已经穿戴'},
|
||||
EQUIP_NOT_EQUIPED: {code: 30502, simStr: '装备未穿戴'},
|
||||
EQUIP_IS_EQUIPED_NOT_DECOMPOSE: {code: 30503, simStr: '装备已穿戴,不能分解'},
|
||||
EQUIP_HOLE_NOT_FIND: {code: 30504, simStr: '装备孔不存在' },
|
||||
EQUIP_HOLE_IS_DUG: {code: 30505, simStr: '装备已经打过孔' },
|
||||
EQUIP_HOLE_IS_NOT_DUG: {code: 30506, simStr: '装备未打过孔' },
|
||||
JEWEL_IS_NOT_FIND: {code: 30507, simStr: '宝石不存在' },
|
||||
EQUIP_NOT_FILL_HOLE: {code: 30508, simStr: '未穿戴宝石' },
|
||||
EQUIP_NOT_EQUIPED_HERO: {code: 30509, simStr: '装备不能被该武将穿戴'},
|
||||
EQUIP_LEVEL_LIMIT: {code: 30510, simStr: '装备穿戴等级限制'},
|
||||
EQUIP_NOT_MATCH_JEWEL: {code: 30511, simStr: '装备不能镶嵌该宝石' },
|
||||
|
||||
EQUIP_NOT_FIND: { code: 30500, simStr: '装备不存在' },
|
||||
EQUIP_IS_EQUIPED: { code: 30501, simStr: '装备已经穿戴' },
|
||||
EQUIP_NOT_EQUIPED: { code: 30502, simStr: '装备未穿戴' },
|
||||
EQUIP_IS_EQUIPED_NOT_DECOMPOSE: { code: 30503, simStr: '装备已穿戴,不能分解' },
|
||||
EQUIP_HOLE_NOT_FIND: { code: 30504, simStr: '装备孔不存在' },
|
||||
EQUIP_HOLE_IS_DUG: { code: 30505, simStr: '装备已经打过孔' },
|
||||
EQUIP_HOLE_IS_NOT_DUG: { code: 30506, simStr: '装备未打过孔' },
|
||||
JEWEL_IS_NOT_FIND: { code: 30507, simStr: '宝石不存在' },
|
||||
EQUIP_NOT_FILL_HOLE: { code: 30508, simStr: '未穿戴宝石' },
|
||||
EQUIP_NOT_EQUIPED_HERO: { code: 30509, simStr: '装备不能被该武将穿戴' },
|
||||
EQUIP_LEVEL_LIMIT: { code: 30510, simStr: '装备穿戴等级限制' },
|
||||
EQUIP_NOT_MATCH_JEWEL: { code: 30511, simStr: '装备不能镶嵌该宝石' },
|
||||
//全局养成30600-30799
|
||||
ROLE_REACH_MAX_TITLE_LEVEL: {code: 30600, simStr: '玩家已达到最高的爵位'},
|
||||
ROLE_TERAPH_NOT_STRENGTHEN: {code: 30601, simStr: '玩家神像不能强化'},
|
||||
ROLE_TERAPH_NOT_QUILITY: {code: 30602, simStr: '玩家神像不能进阶'},
|
||||
ROLE_REACH_MAX_TITLE_LEVEL: { code: 30600, simStr: '玩家已达到最高的爵位' },
|
||||
ROLE_TERAPH_NOT_STRENGTHEN: { code: 30601, simStr: '玩家神像不能强化' },
|
||||
ROLE_TERAPH_NOT_QUILITY: { code: 30602, simStr: '玩家神像不能进阶' },
|
||||
|
||||
ROLE_SCHOOL_HERO_USED: { code: 30603, simStr: '该武将已配置' },
|
||||
ROLE_SCHOOL_POSITION_LOCKED: { code: 30604, simStr: '该位置未解锁' },
|
||||
ROLE_SCHOOL_POSITION_UNLOCK_NOT_NEED: { code: 30605, simStr: '该位置已解锁' },
|
||||
ROLE_SCROLL_REACH_MAX: { code: 30606, simStr: '已经升到可以升的最高等级' },
|
||||
|
||||
|
||||
ROLE_SCHOOL_HERO_USED: {code: 30603, simStr: '该武将已配置'},
|
||||
ROLE_SCHOOL_POSITION_LOCKED: {code: 30604, simStr: '该位置未解锁'},
|
||||
ROLE_SCHOOL_POSITION_UNLOCK_NOT_NEED: {code: 30605, simStr: '该位置已解锁'},
|
||||
ROLE_SCROLL_REACH_MAX: {code: 30606, simStr: '已经升到可以升的最高等级'},
|
||||
|
||||
//军团30800-30899
|
||||
GUILD_SCRIPT_IS_OPENED_TODAY: {code: 30800, simStr: '今日演武场已开启'},
|
||||
GUILD_SCRIPT_NOT_OPENED: {code: 30801, simStr: '演武场未开启'},
|
||||
GUILD_SCRIPT_IS_BATTLED: {code: 30802, simStr: '今日已挑战过演武场'},
|
||||
GUILD_SCRIPT_IS_COMPLETE: {code: 30803, simStr: '演武场已挑战完成'},
|
||||
GUILD_TRAIN_SCRIPT_NOT_OPENED: {code: 30910, simStr: '试炼关卡未开启'},
|
||||
GUILD_TRAIN_BATTLE_COUNT_NOT_ENOUGH: {code: 30911, simStr: '试炼挑战次数已用完'},
|
||||
GUILD_TRAIN_IS_COMPLETE: {code: 30912, simStr: '试炼关卡已经被压制'},
|
||||
GUILD_GET_TRAIN_BOX_FAIL: {code: 30913, simStr: '宝箱领取失败'},
|
||||
GUILD_TRAIN_REWARD_IS_RECEIVED: {code: 30913, simStr: '试炼进阶奖励已领取'},
|
||||
GUILD_GET_TRAIN_REWARD_FAIL: {code: 30913, simStr: '宝箱领取失败'},
|
||||
GUILD_TRAIN_LEVEL_IS_COMPLETE: {code: 30913, simStr: '试炼已经进阶'},
|
||||
GUILD_BUY_TRAIN_COUNT_REACH_MAX: { code: 30913, simStr: '训练场购买挑战次数以达到上线' },
|
||||
GUILD_TRAIN_IS_RESETED: { code: 30913, simStr: '军团训练场已经重置' },
|
||||
GUILD_NOT_REFINE_THE_EQUIP: { code: 30913, simStr: '军团不能研发次装备' },
|
||||
GUILD_LIGHT_UP_THE_SCIENCETREE: { code: 20920, simStr: '军团已经点亮此科技' },
|
||||
GUILD_SCIENCETREE_IS_RUNNING: { code: 20920, simStr: '军团正在进行研发,不能点亮' },
|
||||
GUILD_IS_ASSISTED_SCIENCETREE: { code: 20920, simStr: '玩家已经协助过该科技树' },
|
||||
GUILD_REACH_MAX_ASSIST_COUNT: { code: 20920, simStr: '已经达到协助的最大次数' },
|
||||
// 社交相关状态 40000 - 49999
|
||||
// 运营模块相关状态 50000 - 59999
|
||||
// GM后台相关状态 60000 - 69999
|
||||
|
||||
@@ -133,12 +133,11 @@ export default class UserGuild extends BaseModel {
|
||||
}
|
||||
|
||||
public static async receiveTrainRewards(roleId: string, trainId: number, lean = true) {
|
||||
const result = await UserGuildModel.findOneAndUpdate({ roleId, status: USER_GUILD_STATUS.ON, 'trainRewards':{$ne: trainId }},
|
||||
const result = await UserGuildModel.findOneAndUpdate({ roleId, status: USER_GUILD_STATUS.ON},
|
||||
{$push:{trainRewards: trainId} },{new: true}).lean(lean);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
public static async addTrainCount(roleId: string, trainCount: number, lean = true) {
|
||||
const result = await UserGuildModel.findOneAndUpdate({ roleId, status: USER_GUILD_STATUS.ON, $gte:{buyTrainCount: trainCount}},
|
||||
{$inc: {trainCount, buyTrainCount: -1 * trainCount}}, {new: true}).lean(lean);
|
||||
|
||||
Reference in New Issue
Block a user