任务:任务去除funcs的判断,直接达成
This commit is contained in:
@@ -61,9 +61,8 @@ function getApWithDataAp(lv: number, dataAp: ActionPointType, fromGetAp = false)
|
||||
* @param lv 玩家等级
|
||||
* @param changeAp 体力变化,正是加,负是减
|
||||
* @param sid
|
||||
* @param funcs 开启的功能
|
||||
*/
|
||||
export async function setAp(roleId: string, lv: number, changeAp: number, sid: string, funcs: number[]) {
|
||||
export async function setAp(roleId: string, lv: number, changeAp: number, sid: string) {
|
||||
const now = Date.now();
|
||||
const dicAp = getDicApByLv(lv);
|
||||
let ApResult = await getAp(roleId, lv, true);
|
||||
@@ -83,9 +82,9 @@ export async function setAp(roleId: string, lv: number, changeAp: number, sid: s
|
||||
}
|
||||
|
||||
if (changeAp < 0) {
|
||||
await checkTask(roleId, sid, funcs, TASK_TYPE.BATTLE_COST_AP, -1 * changeAp, true, {});
|
||||
await checkTask(roleId, sid, TASK_TYPE.BATTLE_COST_AP, -1 * changeAp, true, {});
|
||||
let { serverId } = await RoleModel.findByRoleId(roleId);
|
||||
await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.BATTLE_COST_AP, -1 * changeAp,);
|
||||
await checkActivityTask(serverId, sid, roleId, TASK_TYPE.BATTLE_COST_AP, -1 * changeAp,);
|
||||
}
|
||||
let apJson = await getApWithDataAp(lv, dataAp);
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ export async function getPlayerDailyRMBGiftsData(activityId: number, serverId: n
|
||||
* @param {string} productID 商品ID
|
||||
*
|
||||
*/
|
||||
export async function makeDailyRMBGiftsReward(roleId: string, roleName: string, sid: string, serverId: number, funcs: number[],
|
||||
export async function makeDailyRMBGiftsReward(roleId: string, roleName: string, sid: string, serverId: number,
|
||||
activityId: number, productID: string) {
|
||||
let activityData: ActivityModelType = await ActivityModel.findActivity(activityId);
|
||||
if (activityData.type !== ACTIVITY_TYPE.DAILY_RMB_GIFTS) {
|
||||
@@ -99,7 +99,7 @@ export async function makeDailyRMBGiftsReward(roleId: string, roleName: string,
|
||||
}
|
||||
}
|
||||
let rewardParamArr: Array<RewardParam> = stringToRewardParam(item.reward);
|
||||
let result = await addReward(roleId, roleName, sid, serverId, funcs, rewardParamArr)
|
||||
let result = await addReward(roleId, roleName, sid, serverId, rewardParamArr)
|
||||
await ActivityDailyRMBGiftsModel.receiveRecord(serverId, activityId, roleId, moment(playerData.beginTime).toDate(), [item.id]);
|
||||
item.isReceive = true;
|
||||
return {
|
||||
|
||||
@@ -17,7 +17,7 @@ import { decodeArrayListStr } from '../../pubUtils/util';
|
||||
* @param giftCount 一共消耗多少个礼包
|
||||
* @param sid
|
||||
*/
|
||||
export async function useGiftPackage(roleId: string, roleName: string, sid: string, serverId: number, funcs: number[], giftID: number, selected: Array<number> = [], giftCount: number) {
|
||||
export async function useGiftPackage(roleId: string, roleName: string, sid: string, serverId: number, giftID: number, selected: Array<number> = [], giftCount: number) {
|
||||
console.log("bbbbbbbb", giftID, selected)
|
||||
let result = { goods: [], addHeros: [] }
|
||||
let giftPackageData = gameData.giftPackage.get(giftID);
|
||||
@@ -39,7 +39,7 @@ export async function useGiftPackage(roleId: string, roleName: string, sid: stri
|
||||
allReward = reward;
|
||||
}
|
||||
|
||||
result = await addReward(roleId, roleName, sid, serverId, funcs, allReward);
|
||||
result = await addReward(roleId, roleName, sid, serverId, allReward);
|
||||
break;
|
||||
}
|
||||
case GIFT_PACKAGE_TYPE.SELECTED_X://手选
|
||||
@@ -57,7 +57,7 @@ export async function useGiftPackage(roleId: string, roleName: string, sid: stri
|
||||
} else {
|
||||
allReward = selectedReward;
|
||||
}
|
||||
result = await addReward(roleId, roleName, sid, serverId, funcs, allReward);
|
||||
result = await addReward(roleId, roleName, sid, serverId, allReward);
|
||||
break;
|
||||
}
|
||||
case GIFT_PACKAGE_TYPE.RANDOM_X://随机
|
||||
@@ -69,7 +69,7 @@ export async function useGiftPackage(roleId: string, roleName: string, sid: stri
|
||||
let selectedReward = getSelectedReward(giftPackageData, selectedArray)
|
||||
allReward = allReward.concat(selectedReward);
|
||||
}
|
||||
result = await addReward(roleId, roleName, sid, serverId, funcs, allReward);
|
||||
result = await addReward(roleId, roleName, sid, serverId, allReward);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
@@ -80,7 +80,7 @@ export async function useGiftPackage(roleId: string, roleName: string, sid: stri
|
||||
}
|
||||
|
||||
//结算奖励的内容
|
||||
export async function addReward(roleId: string, roleName: string, sid: string, serverId: number, funcs: number[], reward: Array<RewardParam>) {
|
||||
export async function addReward(roleId: string, roleName: string, sid: string, serverId: number, reward: Array<RewardParam>) {
|
||||
let giftReward = rewardItemData(reward);
|
||||
let goodArray = giftReward.goods;
|
||||
let heroArray = giftReward.heroes;
|
||||
@@ -89,7 +89,7 @@ export async function addReward(roleId: string, roleName: string, sid: string, s
|
||||
let goods = await addItems(roleId, roleName, sid, goodArray)
|
||||
let addHeros = [];
|
||||
if (heroArray.length > 0) {
|
||||
let heroResult = await createHeroes(roleId, roleName, sid, serverId, funcs, heroArray);
|
||||
let heroResult = await createHeroes(roleId, roleName, sid, serverId, heroArray);
|
||||
goods = goods.concat(heroResult.goods)
|
||||
addHeros = addHeros.concat(heroResult.heroes);
|
||||
}
|
||||
|
||||
@@ -124,7 +124,7 @@ export async function getPlayerGrowthFundData(activityId: number, serverId: numb
|
||||
* @param {string} productID 商品ID
|
||||
*
|
||||
*/
|
||||
export async function makeGrowthFund(roleId: string, roleName: string, sid: string, serverId: number, funcs: number[],
|
||||
export async function makeGrowthFund(roleId: string, roleName: string, sid: string, serverId: number,
|
||||
activityId: number, productID: string) {
|
||||
let activityData: ActivityModelType = await ActivityModel.findActivity(activityId);
|
||||
if (!activityData) {
|
||||
|
||||
@@ -101,7 +101,7 @@ export async function newPlayerActivityDays(roleId: string) {
|
||||
* @param {string} productID 商品ID
|
||||
*
|
||||
*/
|
||||
export async function makeLimitPackageReward(roleId: string, roleName: string, sid: string, serverId: number, funcs: number[],
|
||||
export async function makeLimitPackageReward(roleId: string, roleName: string, sid: string, serverId: number,
|
||||
activityId: number, productID: string) {
|
||||
let activityData: ActivityModelType = await ActivityModel.findActivity(activityId);
|
||||
if (!activityData) {
|
||||
@@ -127,7 +127,7 @@ export async function makeLimitPackageReward(roleId: string, roleName: string, s
|
||||
}
|
||||
|
||||
let rewardArray = stringToRewardParam(item.reward)
|
||||
let result = await addReward(roleId, roleName, sid, serverId, funcs, rewardArray);
|
||||
let result = await addReward(roleId, roleName, sid, serverId, rewardArray);
|
||||
|
||||
await ActivityShopModel.addRecord(activityId, roleId, playerData.roundIndex, item.id);
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@ export async function getPlayerMonthlyTicketData(activityId: number, serverId: n
|
||||
* @param {string} roleId 角色Id
|
||||
*
|
||||
*/
|
||||
export async function getPlayerMonthlyTicketDayReward(roleId: string, roleName: string, sid: string, serverId: number, funcs: number[],
|
||||
export async function getPlayerMonthlyTicketDayReward(roleId: string, roleName: string, sid: string, serverId: number,
|
||||
activityId: number,) {
|
||||
let activityData: ActivityModelType = await ActivityModel.findActivity(activityId);
|
||||
let { createTime } = await RoleModel.findByRoleId(roleId);
|
||||
@@ -88,7 +88,7 @@ export async function getPlayerMonthlyTicketDayReward(roleId: string, roleName:
|
||||
if (playerData.todayIndex > playerData.dayIndex) {//今天还没领取
|
||||
await ActivityMonthlyTicketModel.setDayIndex(serverId, roleId, activityId, playerData.todayIndex);
|
||||
let rewardParamArr: Array<RewardParam> = stringToRewardParam(playerData.baseReward);
|
||||
let result = await addReward(roleId, roleName, sid, serverId, funcs, rewardParamArr)
|
||||
let result = await addReward(roleId, roleName, sid, serverId, rewardParamArr)
|
||||
return result
|
||||
}
|
||||
}
|
||||
@@ -104,7 +104,7 @@ export async function getPlayerMonthlyTicketDayReward(roleId: string, roleName:
|
||||
* @param {string} productID 商品ID
|
||||
*
|
||||
*/
|
||||
export async function makeMonthlyTicketReward(roleId: string, roleName: string, sid: string, serverId: number, funcs: number[],
|
||||
export async function makeMonthlyTicketReward(roleId: string, roleName: string, sid: string, serverId: number,
|
||||
activityId: number, productID: string) {
|
||||
let activityData: ActivityModelType = await ActivityModel.findActivity(activityId);
|
||||
if (activityData.type !== ACTIVITY_TYPE.MONTHLY_TICKET_1 && activityData.type !== ACTIVITY_TYPE.MONTHLY_TICKET_2) {
|
||||
@@ -120,7 +120,7 @@ export async function makeMonthlyTicketReward(roleId: string, roleName: string,
|
||||
|
||||
let firstReward = playerData.firstReward;
|
||||
let rewardParamArr: Array<RewardParam> = stringToRewardParam(firstReward);
|
||||
let result = await addReward(roleId, roleName, sid, serverId, funcs, rewardParamArr)
|
||||
let result = await addReward(roleId, roleName, sid, serverId, rewardParamArr)
|
||||
return {
|
||||
code: 0,
|
||||
data: Object.assign(result, { item: { isOpen: true, todayIndex: 1 }, activityId: activityData.activityId })
|
||||
|
||||
@@ -66,7 +66,7 @@ export async function getPlayerPopUpShopData(activityId: number, serverId: numbe
|
||||
* @param {string} productID 商品ID
|
||||
*
|
||||
*/
|
||||
export async function makePopUpShopReward(roleId: string, roleName: string, sid: string, serverId: number, funcs: number[],
|
||||
export async function makePopUpShopReward(roleId: string, roleName: string, sid: string, serverId: number,
|
||||
activityId: number, productID: string, paramStr: string) {
|
||||
if (!paramStr) {
|
||||
return STATUS.ORDER_PARAM_ERROR;
|
||||
@@ -105,7 +105,7 @@ export async function makePopUpShopReward(roleId: string, roleName: string, sid:
|
||||
playerData.setPlayerRecords(playerRecord);
|
||||
|
||||
let rewardParamArr: Array<RewardParam> = stringToRewardParam(playerData.reward);
|
||||
let result = await addReward(roleId, roleName, sid, serverId, funcs, rewardParamArr)
|
||||
let result = await addReward(roleId, roleName, sid, serverId, rewardParamArr)
|
||||
|
||||
|
||||
return {
|
||||
|
||||
@@ -111,7 +111,7 @@ export async function newPlayerActivityDays(roleId: string) {
|
||||
* @param {number} roundIndex 大富翁重置回合数
|
||||
*
|
||||
*/
|
||||
export async function makeRefreshShopReward(roleId: string, roleName: string, sid: string, serverId: number, funcs: number[],
|
||||
export async function makeRefreshShopReward(roleId: string, roleName: string, sid: string, serverId: number,
|
||||
activityId: number, productID: string, roundIndex: number) {
|
||||
let activityData: ActivityModelType = await ActivityModel.findActivity(activityId);
|
||||
if (!activityData) {
|
||||
@@ -138,7 +138,7 @@ export async function makeRefreshShopReward(roleId: string, roleName: string, si
|
||||
}
|
||||
|
||||
let rewardArray = stringToRewardParam(item.reward)
|
||||
let result = await addReward(roleId, roleName, sid, serverId, funcs, rewardArray);
|
||||
let result = await addReward(roleId, roleName, sid, serverId, rewardArray);
|
||||
|
||||
await ActivityRefreshShopModel.addRecord(activityId, roleId, playerData.roundIndex, item.pageIndex, item.id);
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ export async function getPlayerActivityData(activityId: number, serverId: number
|
||||
*
|
||||
*/
|
||||
|
||||
export async function addSelfServiceShopGiftReward(roleId: string, roleName: string, sid: string, serverId: number, funcs: number[], activityId: number, roundIndex: number, index: number, item: SelfServiceShopItem) {
|
||||
export async function addSelfServiceShopGiftReward(roleId: string, roleName: string, sid: string, serverId: number, activityId: number, roundIndex: number, index: number, item: SelfServiceShopItem) {
|
||||
let playerGoods: ActivitySelfServiceGoodsModelType[] = await ActivitySelfServiceGoodsModel.findDataByIndex(activityId, roleId, roundIndex, index);
|
||||
|
||||
let rewardArray: Array<RewardParam> = [];
|
||||
@@ -100,7 +100,7 @@ export async function addSelfServiceShopGiftReward(roleId: string, roleName: str
|
||||
for (let obj of rewardArray) {
|
||||
goodsStr += `${obj.type}&${obj.id}&${obj.count}|`;
|
||||
}
|
||||
let result = await addReward(roleId, roleName, sid, serverId, funcs, rewardArray);
|
||||
let result = await addReward(roleId, roleName, sid, serverId, rewardArray);
|
||||
//购买记录
|
||||
console.log('dddddddd', rewardArray.length, serverId, activityId, roleId, roundIndex, index, goodsStr, JSON.stringify(item))
|
||||
await ActivitySelfServiceShopModel.addBuyRecord(serverId, activityId, roleId, roundIndex, index, goodsStr);
|
||||
@@ -117,7 +117,7 @@ export async function addSelfServiceShopGiftReward(roleId: string, roleName: str
|
||||
* @param {string} productID 商品ID
|
||||
*
|
||||
*/
|
||||
export async function makeSelfServerShop(roleId: string, roleName: string, sid: string, serverId: number, funcs: number[],
|
||||
export async function makeSelfServerShop(roleId: string, roleName: string, sid: string, serverId: number,
|
||||
activityId: number, productID: string) {
|
||||
|
||||
let activityData: ActivityModelType = await ActivityModel.findActivity(activityId);
|
||||
@@ -142,7 +142,7 @@ export async function makeSelfServerShop(roleId: string, roleName: string, sid:
|
||||
}
|
||||
}
|
||||
}
|
||||
let result = await addSelfServiceShopGiftReward(roleId, roleName, sid, serverId, funcs, activityId, playerData.roundIndex, item.index, item);
|
||||
let result = await addSelfServiceShopGiftReward(roleId, roleName, sid, serverId, activityId, playerData.roundIndex, item.index, item);
|
||||
item.buyCount += 1;
|
||||
return {
|
||||
code: 0,
|
||||
|
||||
@@ -153,7 +153,7 @@ export async function getPlayerSignInData(activityId: number, serverId: number,
|
||||
* @param {string} productID 商品ID
|
||||
*
|
||||
*/
|
||||
export async function makeSignInVIP(roleId: string, roleName: string, sid: string, serverId: number, funcs: number[],
|
||||
export async function makeSignInVIP(roleId: string, roleName: string, sid: string, serverId: number,
|
||||
activityId: number, productID: string) {
|
||||
let activityData: ActivityModelType = await ActivityModel.findActivity(activityId);
|
||||
if (activityData.type !== ACTIVITY_TYPE.SIGN_IN_VIP) {
|
||||
|
||||
@@ -304,7 +304,7 @@ async function getNextActivityData(serverId: number, roleId: string, oldHuntActi
|
||||
* @param {string} productID 商品ID
|
||||
*
|
||||
*/
|
||||
export async function makeShop(roleId: string, roleName: string, sid: string, serverId: number, funcs: number[],
|
||||
export async function makeShop(roleId: string, roleName: string, sid: string, serverId: number,
|
||||
activityId: number, productID: string) {
|
||||
// let activityData: ActivityModelType = await ActivityModel.findActivity(activityId);
|
||||
let { huntActivityId, huntBeginTime, huntEndTime, huntRoundIndex, activityData } = await getTreasureHuntData(serverId, roleId);
|
||||
@@ -339,7 +339,7 @@ export async function makeShop(roleId: string, roleName: string, sid: string, se
|
||||
await ActivityTreasureHuntShopModel.buyShopRecord(activityId, roleId, huntRoundIndex, playerData.todayIndex, cellIndex);
|
||||
|
||||
let rewardParamArr: Array<RewardParam> = stringToRewardParam(item.reward);
|
||||
let result = await addReward(roleId, roleName, sid, serverId, funcs, rewardParamArr)
|
||||
let result = await addReward(roleId, roleName, sid, serverId, rewardParamArr)
|
||||
|
||||
item.buyCount += 1;
|
||||
return {
|
||||
|
||||
@@ -58,7 +58,7 @@ export async function getPlayerYuanbaoShopData(activityId: number, serverId: num
|
||||
* @param {string} productID 商品ID
|
||||
*
|
||||
*/
|
||||
export async function makeYuanbaoShopReward(roleId: string, roleName: string, sid: string, serverId: number, funcs: number[],
|
||||
export async function makeYuanbaoShopReward(roleId: string, roleName: string, sid: string, serverId: number,
|
||||
activityId: number, productID: string) {
|
||||
let records = await UserOrderModel.findSuccessOrderByProductID(productID, roleId, activityId);
|
||||
let activityData: ActivityModelType = await ActivityModel.findActivity(activityId);
|
||||
@@ -87,7 +87,7 @@ export async function makeYuanbaoShopReward(roleId: string, roleName: string, si
|
||||
}
|
||||
}
|
||||
|
||||
let result = await addReward(roleId, roleName, sid, serverId, funcs, arr)
|
||||
let result = await addReward(roleId, roleName, sid, serverId, arr)
|
||||
item.buyCount += 1;
|
||||
return {
|
||||
code: 0,
|
||||
|
||||
@@ -202,7 +202,7 @@ function checkForbiddenChar(hid: number, fobiddenCharactor: {type: number, id: n
|
||||
return flag;
|
||||
}
|
||||
|
||||
export async function towerBattleEnd(sid: string, funcs: number[], roleId: string, serverId: number, battleCode: string, battleId: number, succeed: boolean, heroes: Array<number>) {
|
||||
export async function towerBattleEnd(sid: string, roleId: string, serverId: number, battleCode: string, battleId: number, succeed: boolean, heroes: Array<number>) {
|
||||
if (succeed) {
|
||||
let battleRec = await BattleRecordModel.getBattleRecordByCode(battleCode);
|
||||
if (battleRec.battleId != battleId) {
|
||||
@@ -248,8 +248,8 @@ export async function towerBattleEnd(sid: string, funcs: number[], roleId: strin
|
||||
await startHangUp(roleId, roleName);
|
||||
}
|
||||
// 任务
|
||||
await checkTask(roleId, sid, funcs, TASK_TYPE.BATTLE_TOWER_LV, role.towerLv, false, {});
|
||||
await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.BATTLE_TOWER_LV, 1, { towerLv: role.towerLv });
|
||||
await checkTask(roleId, sid, TASK_TYPE.BATTLE_TOWER_LV, role.towerLv, false, {});
|
||||
await checkActivityTask(serverId, sid, roleId, TASK_TYPE.BATTLE_TOWER_LV, 1, { towerLv: role.towerLv });
|
||||
}
|
||||
return {
|
||||
status: 0,
|
||||
|
||||
@@ -83,9 +83,8 @@ export function getEventTime(now: Date) {
|
||||
*/
|
||||
export async function startEvent(session: FrontendOrBackendSession) {
|
||||
|
||||
// const funcs = session.get('funcs');
|
||||
// const eventStatus = session.get('eventStatus')||EVENT_STATUS.WAITING;
|
||||
// if(funcs && funcs.includes(FUNCS_ID.EVENT) && eventStatus == EVENT_STATUS.WAITING) {
|
||||
const eventStatus = session.get('eventStatus');
|
||||
if(eventStatus == EVENT_STATUS.WAITING) {
|
||||
// console.log('*******setEventStatus')
|
||||
let roleId = session.get('roleId');
|
||||
let roleName = session.get('roleName');
|
||||
@@ -95,52 +94,8 @@ export async function startEvent(session: FrontendOrBackendSession) {
|
||||
session.set('eventStatus', EVENT_STATUS.STARTING);
|
||||
session.push('eventStatus', () => {});
|
||||
pushEventMsg(sid, roleId, { event }); // 推送
|
||||
// }
|
||||
}
|
||||
|
||||
/**
|
||||
* 从filter调用,用于每次检查时间,获取事件并推送
|
||||
*
|
||||
* @param session
|
||||
* @param isForce 即使不是12点和18点也强制刷新
|
||||
*/
|
||||
export async function checkEvent(session: FrontendOrBackendSession, isForce:boolean = false) {
|
||||
|
||||
try {
|
||||
|
||||
let roleId = session.get('roleId');
|
||||
let serverId = session.get('serverId');
|
||||
let funcs = session.get('funcs');
|
||||
let sid = session.get('sid');
|
||||
if(roleId) {
|
||||
|
||||
let roleName = session.get('roleName');
|
||||
let eventStatus = session.get('eventStatus')||EVENT_STATUS.WAITING;
|
||||
|
||||
if(funcs && funcs.includes(FUNCS_ID.EVENT) && eventStatus == EVENT_STATUS.WAITING) {
|
||||
await startEvent(session);
|
||||
} else {
|
||||
let eventTime = session.get('getEventTime')||0;
|
||||
let now = new Date();
|
||||
let t = getEventTime(now);
|
||||
|
||||
if(eventTime < t || isForce) { // 第一次登陆后可以刷新了
|
||||
|
||||
let event = await getEvent(eventStatus, roleId, roleName);
|
||||
if (eventStatus == EVENT_STATUS.STARTING || eventStatus == EVENT_STATUS.OPEN) {
|
||||
pushEventMsg(sid, roleId, { event }); // 推送
|
||||
session.set('getEventTime', t);
|
||||
session.push('getEventTime', () => {});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return;
|
||||
}catch(err) {
|
||||
console.log(err.stack);
|
||||
throw err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前的奇遇事件
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
import { BackendSession, FrontendSession, pinus } from "pinus";
|
||||
import { RoleModel } from "../db/Role";
|
||||
import { resResult } from "../pubUtils/util";
|
||||
import { STATUS, FUNC_OPT_TYPE } from "../consts";
|
||||
import { eventOnPlayerLvUp } from '../services/playerEventService';
|
||||
import { checkResetTrain } from '../services/guildTrainService';
|
||||
import { getUserGuildWithRefActive } from '../services/guildService';
|
||||
// 开启功能
|
||||
export async function switchOnFunc(roleId: string, type: number, param: number, session: (BackendSession|FrontendSession)) {
|
||||
|
||||
const dataFuncs = session.get('funcs');
|
||||
const sid = session.get('sid');
|
||||
|
||||
let addFuncs = new Array<number>();
|
||||
switch (type) {
|
||||
case FUNC_OPT_TYPE.LEVEL_UP://等级提升,触发事件
|
||||
await eventOnPlayerLvUp(roleId, param, addFuncs, dataFuncs);
|
||||
break;
|
||||
case FUNC_OPT_TYPE.BATTLE_END://战斗结束,触发事件
|
||||
// 暂无
|
||||
break;
|
||||
}
|
||||
if (addFuncs.length) {
|
||||
pinus.app.get('channelService').pushMessageByUids('onFuncSwitchOn', resResult(STATUS.SUCCESS, {addFuncs}), [{
|
||||
uid: roleId,
|
||||
sid: sid
|
||||
}]);
|
||||
const recs = await RoleModel.pushFuncs(roleId, addFuncs);
|
||||
session.set('funcs', recs.funcs||[]);
|
||||
session.push('funcs', () => {});
|
||||
return recs;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 登录检查刷新
|
||||
* @param role
|
||||
* @param session
|
||||
*/
|
||||
export async function chackFunOpenWhenLogin(role: any, session: BackendSession|FrontendSession) {
|
||||
await switchOnFunc(role.roleId, FUNC_OPT_TYPE.LEVEL_UP, role.lv, session);
|
||||
|
||||
await checkResetTrain(role.roleId, role.serverId);
|
||||
await getUserGuildWithRefActive(role.roleId, '', true)
|
||||
}
|
||||
@@ -115,7 +115,7 @@ export async function joinGuild(code: string, guildName: string, lv: number, rol
|
||||
}
|
||||
|
||||
//成长任务-加入军团
|
||||
await checkActivityTask(serverId, sid, [], roleId, TASK_TYPE.GUILD_JOIN, 1);
|
||||
await checkActivityTask(serverId, sid, roleId, TASK_TYPE.GUILD_JOIN, 1);
|
||||
|
||||
await pinus.app.rpc.connector.connectorRemote.setOtherUserGuildSession.toServer(sid,[{ roleId, userGuild }]);
|
||||
|
||||
@@ -307,7 +307,7 @@ export async function settleGuildWeekly() {
|
||||
});
|
||||
await sendMailByContent(MAIL_TYPE.GUILD_ACTIVE_REWARD, roleId, { goods: reward });
|
||||
// 任务
|
||||
await checkTask(roleId, null, null, TASK_TYPE.GUILD_JOB, 1, false, { job });
|
||||
await checkTask(roleId, null, TASK_TYPE.GUILD_JOB, 1, false, { job });
|
||||
}
|
||||
|
||||
await GuildModel.updateInfo(code, { activeWeekly: 0 }, {});
|
||||
|
||||
@@ -3,7 +3,7 @@ import { HeroModel } from '../db/Hero';
|
||||
import Role, { RoleModel, RoleType } from '../db/Role'
|
||||
import { getLvByExp, getExpByLv, gameData, getDicApByLv } from '../pubUtils/data';
|
||||
import { updateUserInfo } from './redisService';
|
||||
import { switchOnFunc } from './funcSwitchService';
|
||||
// import { switchOnFunc } from './funcSwitchService';
|
||||
import { FUNC_OPT_TYPE, TASK_TYPE, WAR_TYPE, STATUS, KING_EXP_RATIO_TYPE } from '../consts';
|
||||
import { BackendSession, pinus } from 'pinus';
|
||||
import { REDIS_KEY } from '../consts';
|
||||
@@ -18,7 +18,7 @@ import { LineupParam } from '../domain/rank';
|
||||
export async function roleLevelup(type: KING_EXP_RATIO_TYPE, roleId: string, kingExp: number = 0, session: BackendSession) {
|
||||
const serverId = session.get('serverId');
|
||||
const sid = session.get('sid');
|
||||
const funcs = session.get('funcs');
|
||||
|
||||
let role = await RoleModel.findByRoleId(roleId);
|
||||
let { lv = 1, exp = 0 } = role;
|
||||
let canGetExp = lv < gameData.maxPlayerLv.max; // 当主公超过最大级后,挑战结算不再获得经验值
|
||||
@@ -34,16 +34,16 @@ export async function roleLevelup(type: KING_EXP_RATIO_TYPE, roleId: string, kin
|
||||
|
||||
role = await RoleModel.levelup(roleId, newLv, newExp);
|
||||
if (newLv > lv) { // 升级
|
||||
await switchOnFunc(roleId, FUNC_OPT_TYPE.LEVEL_UP, newLv, session);
|
||||
// await switchOnFunc(roleId, FUNC_OPT_TYPE.LEVEL_UP, newLv, session);
|
||||
await updateUserInfo(REDIS_KEY.USER_INFO, roleId, [{ field: 'lv', value: newLv }]);
|
||||
|
||||
let r = new Rank(REDIS_KEY.USER_LV, { serverId: role.serverId });
|
||||
await r.setRankWithRoleInfo(roleId, newLv, Date.now(), role);
|
||||
|
||||
// 任务
|
||||
await checkTask(roleId, session.get('sid'), session.get('funcs'), TASK_TYPE.ROLE_LV, newLv, false, {});
|
||||
await checkTask(roleId, session.get('sid'), TASK_TYPE.ROLE_LV, newLv, false, {});
|
||||
//成长任务
|
||||
await checkActivityTask(serverId, session.get('sid'), session.get('funcs'), roleId, TASK_TYPE.ROLE_LV, newLv);
|
||||
await checkActivityTask(serverId, session.get('sid'), roleId, TASK_TYPE.ROLE_LV, newLv);
|
||||
|
||||
}
|
||||
let actordata: { lv: number, exp: number, getExp: number, mostExp: number }[] = [];
|
||||
@@ -65,7 +65,7 @@ export async function roleLevelup(type: KING_EXP_RATIO_TYPE, roleId: string, kin
|
||||
});
|
||||
if(i != lv) { // 升级加体力
|
||||
let dicAp = getDicApByLv(i);
|
||||
await setAp(roleId, i, dicAp.restoreAp, sid, funcs);
|
||||
await setAp(roleId, i, dicAp.restoreAp, sid);
|
||||
}
|
||||
}
|
||||
// 推送
|
||||
|
||||
@@ -55,65 +55,65 @@ export async function makeOrder(localOrderID: string, sid: string, orderInfo: Us
|
||||
switch (productType) {
|
||||
case ACTIVITY_TYPE.SIGN_IN_VIP:
|
||||
{
|
||||
rewardResult = await makeSignInVIP(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID)
|
||||
rewardResult = await makeSignInVIP(roleId, roleInfo.roleName, sid, orderInfo.serverId, orderInfo.activityId, orderInfo.productID)
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.NEW_PLAYER_LIMIT_PACKAGE:
|
||||
{
|
||||
rewardResult = await makeLimitPackageReward(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID)
|
||||
rewardResult = await makeLimitPackageReward(roleId, roleInfo.roleName, sid, orderInfo.serverId, orderInfo.activityId, orderInfo.productID)
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_DAILY:
|
||||
case ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_WEEKLY:
|
||||
{
|
||||
rewardResult = await makeLimitPackageReward(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID)
|
||||
rewardResult = await makeLimitPackageReward(roleId, roleInfo.roleName, sid, orderInfo.serverId, orderInfo.activityId, orderInfo.productID)
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.YUAN_BAO_SHOP:
|
||||
{
|
||||
rewardResult = await makeYuanbaoShopReward(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID)
|
||||
rewardResult = await makeYuanbaoShopReward(roleId, roleInfo.roleName, sid, orderInfo.serverId, orderInfo.activityId, orderInfo.productID)
|
||||
break;
|
||||
}
|
||||
|
||||
case ACTIVITY_TYPE.MONTHLY_TICKET_1:
|
||||
case ACTIVITY_TYPE.MONTHLY_TICKET_2:
|
||||
{
|
||||
rewardResult = await makeMonthlyTicketReward(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID)
|
||||
rewardResult = await makeMonthlyTicketReward(roleId, roleInfo.roleName, sid, orderInfo.serverId, orderInfo.activityId, orderInfo.productID)
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.DAILY_RMB_GIFTS:
|
||||
{
|
||||
rewardResult = await makeDailyRMBGiftsReward(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID)
|
||||
rewardResult = await makeDailyRMBGiftsReward(roleId, roleInfo.roleName, sid, orderInfo.serverId, orderInfo.activityId, orderInfo.productID)
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.POP_UP_SHOP://弹出礼包
|
||||
{
|
||||
rewardResult = await makePopUpShopReward(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID, orderInfo.paramStr)
|
||||
rewardResult = await makePopUpShopReward(roleId, roleInfo.roleName, sid, orderInfo.serverId, orderInfo.activityId, orderInfo.productID, orderInfo.paramStr)
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.GROWTH_FUND_MAIN_VIP: //主线成长基金(高阶)
|
||||
{
|
||||
rewardResult = await makeGrowthFund(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID)
|
||||
rewardResult = await makeGrowthFund(roleId, roleInfo.roleName, sid, orderInfo.serverId, orderInfo.activityId, orderInfo.productID)
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.GROWTH_FUND_TOWER_VIP://镇念塔成长基金(高阶)
|
||||
{
|
||||
rewardResult = await makeGrowthFund(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID)
|
||||
rewardResult = await makeGrowthFund(roleId, roleInfo.roleName, sid, orderInfo.serverId, orderInfo.activityId, orderInfo.productID)
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE_VIP://精英成长基金(高阶)
|
||||
{
|
||||
rewardResult = await makeGrowthFund(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID)
|
||||
rewardResult = await makeGrowthFund(roleId, roleInfo.roleName, sid, orderInfo.serverId, orderInfo.activityId, orderInfo.productID)
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.TREASURE_HUNT://寻宝奇兵活动-每日物资商店
|
||||
{
|
||||
rewardResult = await makeShop(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID)
|
||||
rewardResult = await makeShop(roleId, roleInfo.roleName, sid, orderInfo.serverId, orderInfo.activityId, orderInfo.productID)
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.SELF_SERVICE_SHOP://自选商店-购买礼包
|
||||
{
|
||||
rewardResult = await makeSelfServerShop(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID)
|
||||
rewardResult = await makeSelfServerShop(roleId, roleInfo.roleName, sid, orderInfo.serverId, orderInfo.activityId, orderInfo.productID)
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.REFRESH_SHOP://通用的刷新商店(分页,可刷新,限制购买次数,支持rmb与资源兑换)
|
||||
@@ -125,12 +125,12 @@ export async function makeOrder(localOrderID: string, sid: string, orderInfo: Us
|
||||
let playerMonopolyData: ActivityMonopolyModelType = await ActivityMonopolyModel.findData(orderInfo.serverId, activityId, roleId);
|
||||
let playerLandData: ActivityMonopolyLandModelType = await ActivityMonopolyLandModel.findDataByPosition(orderInfo.serverId, activityId, roleId, playerMonopolyData.curPosition);
|
||||
let roundIndex = playerLandData.stopCount;
|
||||
rewardResult = await makeRefreshShopReward(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID, roundIndex)
|
||||
rewardResult = await makeRefreshShopReward(roleId, roleInfo.roleName, sid, orderInfo.serverId, orderInfo.activityId, orderInfo.productID, roundIndex)
|
||||
break;
|
||||
}
|
||||
}
|
||||
//正常商店结算
|
||||
rewardResult = await makeRefreshShopReward(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID, 0)
|
||||
rewardResult = await makeRefreshShopReward(roleId, roleInfo.roleName, sid, orderInfo.serverId, orderInfo.activityId, orderInfo.productID, 0)
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
||||
@@ -279,8 +279,8 @@ export async function clearChannelServers() {
|
||||
* @param userCode user表唯一字符串标识
|
||||
* @param sid connector服的那个sid
|
||||
*/
|
||||
export async function roleLogin(roleId: string, userCode: string, sid: string, pkgName: string, funcs: number[]) {
|
||||
let param = { userCode, sid, pkgName, funcs };
|
||||
export async function roleLogin(roleId: string, userCode: string, sid: string, pkgName: string) {
|
||||
let param = { userCode, sid, pkgName };
|
||||
return await redisClient().hsetAsync(REDIS_KEY.ONLINE_USERS, roleId, JSON.stringify(param));
|
||||
}
|
||||
|
||||
@@ -316,8 +316,7 @@ export async function getRoleOnlineInfo(roleId: string) {
|
||||
isOnline: true,
|
||||
userCode: result.userCode,
|
||||
sid: result.sid,
|
||||
pkgName: result.pkgName,
|
||||
funcs: result.funcs
|
||||
pkgName: result.pkgName
|
||||
}
|
||||
} catch(e) {
|
||||
return { isOnline: false }
|
||||
|
||||
@@ -136,7 +136,7 @@ export async function handleCost(roleId: string, sid: string, goods: Array<ItemI
|
||||
}
|
||||
|
||||
await calPlayerCeAndSave(HERO_SYSTEM_TYPE.EQUIP, sid, roleId, hero, {}, args);
|
||||
await checkTaskWithHero(roleId, sid, null, TASK_TYPE.EQUIP_BY_HERO, hero, [-1]);
|
||||
await checkTaskWithHero(roleId, sid, TASK_TYPE.EQUIP_BY_HERO, hero, [-1]);
|
||||
}
|
||||
|
||||
|
||||
@@ -183,11 +183,11 @@ export async function addItems(roleId: string, roleName: string, sid: string, go
|
||||
//装备推送
|
||||
if (!!equipInfos.length)
|
||||
pinus.app.get('channelService').pushMessageByUids('onEquipAdd', resResult(STATUS.SUCCESS, { equipInfos }), uids);
|
||||
pushTaskUpdate(roleId, sid, null, pushMessages);
|
||||
pushTaskUpdate(roleId, sid, pushMessages);
|
||||
//统计装备
|
||||
if (equipInfos.length > 0) {
|
||||
let { serverId } = await RoleModel.findByRoleId(roleId);
|
||||
await checkActivityTask(serverId, sid, [], roleId, TASK_TYPE.EQUIP_QUALITY_COUNT, equipInfos.length, { equips: equipInfos.map(obj => { return { quality: obj.quality } }) })
|
||||
await checkActivityTask(serverId, sid, roleId, TASK_TYPE.EQUIP_QUALITY_COUNT, equipInfos.length, { equips: equipInfos.map(obj => { return { quality: obj.quality } }) })
|
||||
}
|
||||
// 发邮件的
|
||||
if(mailEquips.length > 0) {
|
||||
@@ -209,7 +209,7 @@ export async function addItems(roleId: string, roleName: string, sid: string, go
|
||||
|
||||
// 3. 货币推送
|
||||
if(gold.length > 0 || coin > 0 || ap > 0) {
|
||||
let { ap: addAp } = await setAp(roleId, role.lv, ap, sid, []);
|
||||
let { ap: addAp } = await setAp(roleId, role.lv, ap, sid);
|
||||
|
||||
role = await RoleModel.increaseGoldAndCoin(roleId, gold, coin);
|
||||
pinus.app.get('channelService').pushMessageByUids('onPlayerDataChange', resResult(STATUS.SUCCESS, {
|
||||
@@ -437,7 +437,7 @@ export async function pushFigureUpdate(roleId: string, sid: string, figureInfo:
|
||||
* @param serverId
|
||||
* @param heroInfo
|
||||
*/
|
||||
export async function createHeroes(roleId: string, roleName: string, sid: string, serverId: number, funcs: number[], heroInfo: CreateHeroParam[]) {
|
||||
export async function createHeroes(roleId: string, roleName: string, sid: string, serverId: number, heroInfo: CreateHeroParam[]) {
|
||||
let hids = heroInfo.map(cur => cur.hid);
|
||||
let userHeroesMap = await HeroModel.findMapByHidRange(hids, roleId);
|
||||
|
||||
@@ -465,7 +465,7 @@ export async function createHeroes(roleId: string, roleName: string, sid: string
|
||||
|
||||
let resultHeroes: HeroType[] = [], resultItems: RewardInter[] = [];
|
||||
if (infos.size > 0) {
|
||||
let createHero = new CreateHeroes(roleId, roleName, serverId, funcs);
|
||||
let createHero = new CreateHeroes(roleId, roleName, serverId);
|
||||
await createHero.createWithHeroInfo(infos);
|
||||
await createHero.pushMessage(pinus, sid);
|
||||
await createHero.updateRedisRank(Rank);
|
||||
@@ -479,8 +479,8 @@ export async function createHeroes(roleId: string, roleName: string, sid: string
|
||||
return { heroes: resultHeroes, goods: resultItems }
|
||||
}
|
||||
|
||||
export async function createHero(roleId: string, roleName: string, sid: string, serverId: number, funcs: number[], heroInfo: CreateHeroParam) {
|
||||
let result = await createHeroes(roleId, roleName, sid, serverId, funcs, [heroInfo]);
|
||||
export async function createHero(roleId: string, roleName: string, sid: string, serverId: number, heroInfo: CreateHeroParam) {
|
||||
let result = await createHeroes(roleId, roleName, sid, serverId, [heroInfo]);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -16,55 +16,54 @@ import { gameData, getGoodById } from '../pubUtils/data';
|
||||
import { getSeconds, getZeroPointD } from '../pubUtils/timeUtil';
|
||||
import { RoleStatus } from '../db/ComBattleTeam';
|
||||
|
||||
export async function checkTaskWithRoles(serverId: number, roleId: string, sid: string, funcs: number[], taskType: number, roles: RoleType[]) {
|
||||
export async function checkTaskWithRoles(serverId: number, roleId: string, sid: string, taskType: number, roles: RoleType[]) {
|
||||
for (let role of roles) {
|
||||
if (role) {
|
||||
await checkTaskWithRole(serverId, role.roleId, role.roleId == roleId ? sid : null, role.roleId == roleId ? funcs : null, taskType, role);
|
||||
await checkTaskWithRole(serverId, role.roleId, role.roleId == roleId ? sid : null, taskType, role);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export async function checkTaskWithRole(serverId: number, roleId: string, sid: string, funcs: number[], taskType: number, role: RoleType) {
|
||||
let pushMessage = await taskUtil.checkTaskWithRole(serverId, roleId, taskType, role, funcs);
|
||||
pushTaskUpdate(roleId, sid, funcs, pushMessage);
|
||||
export async function checkTaskWithRole(serverId: number, roleId: string, sid: string, taskType: number, role: RoleType) {
|
||||
let pushMessage = await taskUtil.checkTaskWithRole(serverId, roleId, taskType, role);
|
||||
pushTaskUpdate(roleId, sid, pushMessage);
|
||||
}
|
||||
|
||||
export async function checkTaskWithHero(roleId: string, sid: string, funcs: number[], taskType: number, hero: HeroType, args?: number[]) {
|
||||
let pushMessage = await taskUtil.checkTaskWithHero(roleId, taskType, hero, args, funcs);
|
||||
pushTaskUpdate(roleId, sid, funcs, pushMessage);
|
||||
export async function checkTaskWithHero(roleId: string, sid: string, taskType: number, hero: HeroType, args?: number[]) {
|
||||
let pushMessage = await taskUtil.checkTaskWithHero(roleId, taskType, hero, args);
|
||||
pushTaskUpdate(roleId, sid, pushMessage);
|
||||
}
|
||||
|
||||
export async function checkTaskWithEquip(roleId: string, sid: string, funcs: number[], taskType: number, equip: EquipType, args?: number[]) {
|
||||
let pushMessage = await taskUtil.checkTaskWithEquip(roleId, taskType, equip, args, funcs);
|
||||
pushTaskUpdate(roleId, sid, funcs, pushMessage);
|
||||
export async function checkTaskWithEquip(roleId: string, sid: string, taskType: number, equip: EquipType, args?: number[]) {
|
||||
let pushMessage = await taskUtil.checkTaskWithEquip(roleId, taskType, equip, args);
|
||||
pushTaskUpdate(roleId, sid, pushMessage);
|
||||
}
|
||||
|
||||
export async function checkTaskWithArgs(roleId: string, sid: string, funcs: number[], taskType: number, args: number[]) {
|
||||
let pushMessage = await taskUtil.checkTaskWithArgs(roleId, taskType, args, funcs);
|
||||
pushTaskUpdate(roleId, sid, funcs, pushMessage);
|
||||
export async function checkTaskWithArgs(roleId: string, sid: string, taskType: number, args: number[]) {
|
||||
let pushMessage = await taskUtil.checkTaskWithArgs(roleId, taskType, args);
|
||||
pushTaskUpdate(roleId, sid, pushMessage);
|
||||
}
|
||||
|
||||
export async function checkTaskWithWar(roleId: string, sid: string, funcs: number[], taskType: number, warId: number, heroes: number[], count: number, star: number) {
|
||||
let pushMessage = await taskUtil.checkTaskWithWar(roleId, taskType, warId, heroes, count, star, funcs);
|
||||
pushTaskUpdate(roleId, sid, funcs, pushMessage);
|
||||
export async function checkTaskWithWar(roleId: string, sid: string, taskType: number, warId: number, heroes: number[], count: number, star: number) {
|
||||
let pushMessage = await taskUtil.checkTaskWithWar(roleId, taskType, warId, heroes, count, star);
|
||||
pushTaskUpdate(roleId, sid, pushMessage);
|
||||
}
|
||||
|
||||
export async function checkTaskWithGoods(roleId: string, sid: string, funcs: number[], taskType: number, goods: ItemInter[]) {
|
||||
let pushMessage = await taskUtil.checkTaskWithGoods(roleId, taskType, goods, funcs);
|
||||
pushTaskUpdate(roleId, sid, funcs, pushMessage);
|
||||
export async function checkTaskWithGoods(roleId: string, sid: string, taskType: number, goods: ItemInter[]) {
|
||||
let pushMessage = await taskUtil.checkTaskWithGoods(roleId, taskType, goods);
|
||||
pushTaskUpdate(roleId, sid, pushMessage);
|
||||
}
|
||||
|
||||
export async function checkTask(roleId: string, sid: string, funcs: number[], taskType: number, count: number, isInc: boolean, param: TaskParam) {
|
||||
let pushMessage = await taskUtil.checkTask(roleId, taskType, count, isInc, param, funcs);
|
||||
pushTaskUpdate(roleId, sid, funcs, pushMessage);
|
||||
export async function checkTask(roleId: string, sid: string, taskType: number, count: number, isInc: boolean, param: TaskParam) {
|
||||
let pushMessage = await taskUtil.checkTask(roleId, taskType, count, isInc, param);
|
||||
pushTaskUpdate(roleId, sid, pushMessage);
|
||||
}
|
||||
|
||||
export async function pushTaskUpdate(roleId: string, sid: string, funcs: number[], pushMessage: TaskListReturn[]) {
|
||||
export async function pushTaskUpdate(roleId: string, sid: string, pushMessage: TaskListReturn[]) {
|
||||
if (pushMessage.length > 0) {
|
||||
if (!sid || !funcs) {
|
||||
if (!sid) {
|
||||
let onlineUser = await getRoleOnlineInfo(roleId);
|
||||
sid = onlineUser.sid;
|
||||
funcs = onlineUser.funcs || [];
|
||||
}
|
||||
if (!!sid) {
|
||||
let uids = [{ uid: roleId, sid }];
|
||||
@@ -74,19 +73,18 @@ export async function pushTaskUpdate(roleId: string, sid: string, funcs: number[
|
||||
}
|
||||
|
||||
|
||||
export async function checkActivityTask(serverId: number, sid: string, funcs: number[], roleId: string, taskType: TASK_TYPE, count: number, parma?: any) {
|
||||
export async function checkActivityTask(serverId: number, sid: string, roleId: string, taskType: TASK_TYPE, count: number, parma?: any) {
|
||||
let pushMessage = await taskUtil.accomplishTask(serverId, roleId, taskType, count, parma);
|
||||
pushActivityUpdate(roleId, sid, funcs, pushMessage);
|
||||
pushActivityUpdate(roleId, sid, pushMessage);
|
||||
return pushMessage;
|
||||
}
|
||||
|
||||
export async function pushActivityUpdate(roleId: string, sid: string, funcs: number[], pushMessage: any[]) {
|
||||
export async function pushActivityUpdate(roleId: string, sid: string, pushMessage: any[]) {
|
||||
console.log('pushActivityUpdate', JSON.stringify(pushMessage))
|
||||
if (pushMessage.length > 0) {
|
||||
if (!sid || !funcs) {
|
||||
if (!sid) {
|
||||
let onlineUser = await getRoleOnlineInfo(roleId);
|
||||
sid = onlineUser.sid;
|
||||
funcs = onlineUser.funcs || [];
|
||||
}
|
||||
if (!!sid) {
|
||||
let uids = [{ uid: roleId, sid }];
|
||||
@@ -98,30 +96,30 @@ export async function pushActivityUpdate(roleId: string, sid: string, funcs: num
|
||||
/**
|
||||
* battle.normalBattleHandler.battleEnd 中会触发的任务,因为有点多提出来了
|
||||
*/
|
||||
export async function checkTaskInBattleEnd(serverId: number, roleId: string, sid: string, funcs: number[], battleId: number, heroes: number[], star: number) {
|
||||
export async function checkTaskInBattleEnd(serverId: number, roleId: string, sid: string, battleId: number, heroes: number[], star: number) {
|
||||
|
||||
await checkTaskWithWar(roleId, sid, funcs, TASK_TYPE.BATTLE_WITH_HERO, battleId, heroes, 1, star);
|
||||
await checkTaskWithWar(roleId, sid, funcs, TASK_TYPE.BATTLE_MAIN, battleId, heroes, 1, star);
|
||||
await checkTaskWithWar(roleId, sid, funcs, TASK_TYPE.BATTLE_DAILY_STAR, battleId, heroes, 1, star);
|
||||
await checkTaskWithWar(roleId, sid, funcs, TASK_TYPE.BATTLE_DAILY, battleId, heroes, 1, star);
|
||||
await checkTaskWithWar(roleId, sid, funcs, TASK_TYPE.BATTLE_DUNGEON, battleId, heroes, 1, star);
|
||||
await checkTaskWithWar(roleId, sid, funcs, TASK_TYPE.BATTLE_DUNGEON_WAR, battleId, heroes, 1, star);
|
||||
await checkTaskWithWar(roleId, sid, funcs, TASK_TYPE.BATTLE_TOWER, battleId, heroes, 1, star);
|
||||
await checkTaskWithWar(roleId, sid, funcs, TASK_TYPE.BATTLE_VESTIGE, battleId, heroes, 1, star);
|
||||
await checkTaskWithWar(roleId, sid, funcs, TASK_TYPE.BATTLE_EXPEDITION, battleId, heroes, 1, star);
|
||||
await checkTaskWithWar(roleId, sid, TASK_TYPE.BATTLE_WITH_HERO, battleId, heroes, 1, star);
|
||||
await checkTaskWithWar(roleId, sid, TASK_TYPE.BATTLE_MAIN, battleId, heroes, 1, star);
|
||||
await checkTaskWithWar(roleId, sid, TASK_TYPE.BATTLE_DAILY_STAR, battleId, heroes, 1, star);
|
||||
await checkTaskWithWar(roleId, sid, TASK_TYPE.BATTLE_DAILY, battleId, heroes, 1, star);
|
||||
await checkTaskWithWar(roleId, sid, TASK_TYPE.BATTLE_DUNGEON, battleId, heroes, 1, star);
|
||||
await checkTaskWithWar(roleId, sid, TASK_TYPE.BATTLE_DUNGEON_WAR, battleId, heroes, 1, star);
|
||||
await checkTaskWithWar(roleId, sid, TASK_TYPE.BATTLE_TOWER, battleId, heroes, 1, star);
|
||||
await checkTaskWithWar(roleId, sid, TASK_TYPE.BATTLE_VESTIGE, battleId, heroes, 1, star);
|
||||
await checkTaskWithWar(roleId, sid, TASK_TYPE.BATTLE_EXPEDITION, battleId, heroes, 1, star);
|
||||
//成长任务
|
||||
let dicWar = gameData.war.get(battleId);
|
||||
if (dicWar) {
|
||||
if (dicWar.warType == WAR_TYPE.NORMAL) {
|
||||
await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.BATTLE_MAIN, 1, { warId: battleId })
|
||||
await checkActivityTask(serverId, sid, roleId, TASK_TYPE.BATTLE_MAIN, 1, { warId: battleId })
|
||||
} else if (dicWar.warType == WAR_TYPE.EXPEDITION) {
|
||||
await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.BATTLE_EXPEDITION, 1)
|
||||
await checkActivityTask(serverId, sid, roleId, TASK_TYPE.BATTLE_EXPEDITION, 1)
|
||||
} else if (dicWar.warType == WAR_TYPE.MYSTERY || dicWar.warType == WAR_TYPE.MYSTERY_ELITE) {
|
||||
await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.BATTLE_DUNGEON_WAR, 1, { warId: battleId })
|
||||
await checkActivityTask(serverId, sid, roleId, TASK_TYPE.BATTLE_DUNGEON_WAR, 1, { warId: battleId })
|
||||
} else if (dicWar.warType == WAR_TYPE.TOWER) {
|
||||
await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.BATTLE_TOWER, 1)
|
||||
await checkActivityTask(serverId, sid, roleId, TASK_TYPE.BATTLE_TOWER, 1)
|
||||
} else if (dicWar.warType == WAR_TYPE.DAILY) {
|
||||
await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.BATTLE_DAILY, 1, { warId: battleId })
|
||||
await checkActivityTask(serverId, sid, roleId, TASK_TYPE.BATTLE_DAILY, 1, { warId: battleId })
|
||||
}
|
||||
}
|
||||
|
||||
@@ -135,30 +133,30 @@ export async function checkTaskInComBattleEnd(roleStatus: RoleStatus[], capId: s
|
||||
let { serverId } = await RoleModel.findByRoleId(roleId);
|
||||
|
||||
if (roleId == capId && roleStatus.length > 1) { // 招募队友
|
||||
await checkTask(roleId, null, null, TASK_TYPE.COM_BATTLE_CREATE_TEAM, 1, true, {});
|
||||
await checkTask(roleId, null, TASK_TYPE.COM_BATTLE_CREATE_TEAM, 1, true, {});
|
||||
} else if (roleId !== capId) { // 协助寻宝
|
||||
await checkTask(roleId, null, null, TASK_TYPE.COM_BATTLE_ASSIST_TEAM, 1, true, {});
|
||||
await checkTask(roleId, null, TASK_TYPE.COM_BATTLE_ASSIST_TEAM, 1, true, {});
|
||||
//活动任务
|
||||
await checkActivityTask(serverId, null, null, roleId, TASK_TYPE.COM_BATTLE_ASSIST_TEAM, 1);
|
||||
await checkActivityTask(serverId, null, roleId, TASK_TYPE.COM_BATTLE_ASSIST_TEAM, 1);
|
||||
}
|
||||
await checkTask(roleId, null, null, TASK_TYPE.COM_BATTLE, 1, true, {});
|
||||
await checkTask(roleId, null, null, TASK_TYPE.COM_BATTLE_QUALITY, 1, true, { quality });
|
||||
await checkTask(roleId, null, TASK_TYPE.COM_BATTLE, 1, true, {});
|
||||
await checkTask(roleId, null, TASK_TYPE.COM_BATTLE_QUALITY, 1, true, { quality });
|
||||
//活动任务
|
||||
await checkActivityTask(serverId, null, null, roleId, TASK_TYPE.COM_BATTLE, 1);
|
||||
await checkActivityTask(serverId, null, roleId, TASK_TYPE.COM_BATTLE, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export async function checkTaskInPvpEnd(roleId: string, sid: string, funcs: number[], isSuccess: boolean, heroScores: HeroScores[]) {
|
||||
await checkTask(roleId, sid, funcs, TASK_TYPE.PVP, 1, true, {});
|
||||
export async function checkTaskInPvpEnd(roleId: string, sid: string, isSuccess: boolean, heroScores: HeroScores[]) {
|
||||
await checkTask(roleId, sid, TASK_TYPE.PVP, 1, true, {});
|
||||
if (isSuccess) {
|
||||
await checkTask(roleId, sid, funcs, TASK_TYPE.PVP_WIN, 1, true, {});
|
||||
await checkTask(roleId, sid, funcs, TASK_TYPE.PVP_WIN_SERIES, 1, true, {});
|
||||
await checkTask(roleId, sid, TASK_TYPE.PVP_WIN, 1, true, {});
|
||||
await checkTask(roleId, sid, TASK_TYPE.PVP_WIN_SERIES, 1, true, {});
|
||||
} else {
|
||||
await checkTask(roleId, sid, funcs, TASK_TYPE.PVP_WIN_SERIES, 0, false, {});
|
||||
await checkTask(roleId, sid, TASK_TYPE.PVP_WIN_SERIES, 0, false, {});
|
||||
}
|
||||
|
||||
await checkTask(roleId, sid, funcs, TASK_TYPE.PVP_HERO_SCORE, 0, false, { heroScores });
|
||||
await checkTask(roleId, sid, TASK_TYPE.PVP_HERO_SCORE, 0, false, { heroScores });
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -232,8 +232,8 @@ export async function checkResult(pvpDefense: PvpDefenseType, seasonNum: number,
|
||||
}, heroGoods, rankGoods, show: true
|
||||
});//结算修改玩家pvp信息
|
||||
// 更新任务
|
||||
await checkTask(pvpDefense.roleId, null, null, TASK_TYPE.PVP_HERO_SCORE, 0, false, { heroScores: pvpDefense.heroScores });
|
||||
await checkTask(pvpDefense.roleId, null, null, TASK_TYPE.PVP_RANK, 1, false, { rankLv });
|
||||
await checkTask(pvpDefense.roleId, null, TASK_TYPE.PVP_HERO_SCORE, 0, false, { heroScores: pvpDefense.heroScores });
|
||||
await checkTask(pvpDefense.roleId, null, TASK_TYPE.PVP_RANK, 1, false, { rankLv });
|
||||
return {
|
||||
rankLv, score, pLv, heroScores: pvpDefense.heroScores, seasonNum, challengeCnt: PVP.PVP_CHALLENGE_COUNTS, challengeRefTime: 0, oldSeasonEndTime, heroGoods: heroGoods.map(({ id, count }) => {
|
||||
return { id, count };
|
||||
|
||||
Reference in New Issue
Block a user