diff --git a/game-server/app/servers/battle/handler/expeditionBattleHandler.ts b/game-server/app/servers/battle/handler/expeditionBattleHandler.ts index 6e17a03bd..29b720c54 100644 --- a/game-server/app/servers/battle/handler/expeditionBattleHandler.ts +++ b/game-server/app/servers/battle/handler/expeditionBattleHandler.ts @@ -4,9 +4,9 @@ import { ExpeditionRecordModel } from '../../../db/ExpeditionRecord'; import { ExpeditionWarRecordModel } from '../../../db/ExpeditionWarRecord'; import { ExpeditionPointModel } from '../../../db/ExpeditionPoint'; import { RoleModel } from '../../../db/Role'; -import { calculateSumCE, genCode } from '../../../pubUtils/util'; +import { calculateSumCE, genCode, getWarTypeName } from '../../../pubUtils/util'; import { getPointRewardStatus, getResetRemainCnt, findOrCreateEnemies, getExpeditionStatus } from '../../../services/expeditionService'; -import { DEBUG_MAGIC_WORD, EXPEDITION_WAR_RECORD_STATUS, ITEM_CHANGE_REASON, KING_EXP_RATIO_TYPE, LINEUP_NUM, TASK_TYPE } from '../../../consts'; +import { DEBUG_MAGIC_WORD, EXPEDITION_WAR_RECORD_STATUS, ITEM_CHANGE_REASON, KING_EXP_RATIO_TYPE, LINEUP_NUM, TASK_TYPE, TA_EVENT } from '../../../consts'; import { WarReward } from '../../../services/warRewardService'; import { addItems } from '../../../services/rewardService'; import { getAp, setAp } from '../../../services/actionPointService'; @@ -16,7 +16,8 @@ import { calculateWarStar, checkBattleHeroes, roleLevelup } from '../../../servi import { checkActivityTask, checkTask, checkTaskInBattleEnd } from '../../../services/taskService'; import { gameData } from '../../../pubUtils/data'; import * as dicParam from '../../../pubUtils/dicParam'; -import { getSeconds } from '../../../pubUtils/timeUtil'; +import { getSeconds, nowSeconds } from '../../../pubUtils/timeUtil'; +import { reportTAEvent } from '../../../services/sdkService'; export default function (app: Application) { new HandlerService(app, {}); @@ -244,7 +245,9 @@ export class ExpeditionBattleHandler { if (isSuccess) { // 更新下一关状态 await ExpeditionWarRecordModel.updateStatus(expeditionCode, expeditionId + 1, EXPEDITION_WAR_RECORD_STATUS.WAITING); - + if(!curWarStar) { // 首通 + reportTAEvent(roleId, TA_EVENT.GK_FIRST_PASS, { war_id: battleId, war_type: getWarTypeName(warInfo.warType), pass_time: Date.now(), pass_duration: nowSeconds() - getSeconds(createdAt), hero_list: dbHeroes }); + } if (!curWarStar || newStar > curWarStar.star) { await RoleModel.updateRoleInfo(roleId, { warStar: newWarStars }); } diff --git a/game-server/app/servers/battle/handler/normalBattleHandler.ts b/game-server/app/servers/battle/handler/normalBattleHandler.ts index b3c8a8d1a..7a12c0cee 100644 --- a/game-server/app/servers/battle/handler/normalBattleHandler.ts +++ b/game-server/app/servers/battle/handler/normalBattleHandler.ts @@ -1,8 +1,8 @@ import { Application, BackendSession, HandlerService, } from 'pinus'; import { BattleRecordModel } from '../../../db/BattleRecord'; import { BattleSweepRecordModel } from '../../../db/BattleSweepRecord'; -import { genCode, getReasonByWarType } from '../../../pubUtils/util'; -import { WAR_TYPE, EVENT_STATUS, FUNC_OPT_TYPE, MSG_SOURCE, REDIS_KEY, TASK_TYPE, KING_EXP_RATIO_TYPE } from '../../../consts'; +import { genCode, getReasonByWarType, getWarTypeName } from '../../../pubUtils/util'; +import { WAR_TYPE, EVENT_STATUS, FUNC_OPT_TYPE, MSG_SOURCE, REDIS_KEY, TASK_TYPE, KING_EXP_RATIO_TYPE, TA_EVENT } from '../../../consts'; import { checkDaily, checkDailyAndIncrease } from '../../../services/dailyBattleService'; import { checkTowerWar, towerBattleEnd } from '../../../services/battleService'; import { WarReward } from '../../../services/warRewardService'; @@ -24,6 +24,7 @@ import { ActivitySelfServiceModel } from '../../../db/ActivitySelfService'; import { getSelfServiceShopActivityData } from '../../../services/activity/selfServiceShopActivityService'; import { challengeDailyGK } from '../../../services/activity/dailyGKService'; import { challengeNewHeroGK } from '../../../services/activity/newHeroGKService'; +import { reportTAEvent } from '../../../services/sdkService'; export default function (app: Application) { new HandlerService(app, {}); @@ -238,6 +239,7 @@ export class NormalBattleHandler { if (!condition1) { // await switchOnFunc(roleId, FUNC_OPT_TYPE.BATTLE_END, battleId, session); warReward.setCondition(0, true); + reportTAEvent(roleId, TA_EVENT.GK_FIRST_PASS, { war_id: battleId, war_type: getWarTypeName(warInfo.warType), pass_time: Date.now(), pass_duration: nowSeconds() - getSeconds(createdAt), hero_list: dbHeroes }); pushMysteryFirstMsg(roleId, roleName, serverId, warInfo.warType, warInfo.war_id); pushVestigeFirstMsg(roleId, roleName, serverId, warInfo.warType, warInfo.war_id); } diff --git a/shared/consts/constModules/sysConst.ts b/shared/consts/constModules/sysConst.ts index 37439f30a..e82c1cb63 100644 --- a/shared/consts/constModules/sysConst.ts +++ b/shared/consts/constModules/sysConst.ts @@ -1,3 +1,5 @@ +import { WAR_TYPE } from ".."; + export const TURBO_CORE_URL = 'https://coresrv.tgamebox.cn'; export const APP_ID = 'AXaXmIHPs9eONvzrBesD8aSKQNXYdALF'; export const TURBO_PARM_SECRET = 'ipqw05du6ob4x130w89t31yrqd6xs005zzltcmg2zpqnvrjp1s'; @@ -934,6 +936,7 @@ export enum TA_EVENT { AUCTION_DIVIDEND = 'AH_bonus_get', // 拍卖行分红领取 ITEM_GET = 'item_get', // 道具获得 ITEM_CONSUME = 'item_consume', // 道具消耗 + GK_FIRST_PASS = 'gk_first_pass', // 关卡首次通关 } // 军团解散way字段 diff --git a/shared/pubUtils/util.ts b/shared/pubUtils/util.ts index d6135cea2..b419621f3 100644 --- a/shared/pubUtils/util.ts +++ b/shared/pubUtils/util.ts @@ -722,4 +722,29 @@ export function getReasonByWarType(warType: number) { default: return ITEM_CHANGE_REASON.NORMAL_BATTLE_END; } -} \ No newline at end of file +} + +export function getWarTypeName(warType: number) { + switch(warType) { + case WAR_TYPE.NORMAL: return '主线'; + case WAR_TYPE.VESTIGE: return '支线'; + case WAR_TYPE.EVENT: return '事件'; + case WAR_TYPE.DAILY: return '每日'; + case WAR_TYPE.EXPEDITION: return '远征'; + case WAR_TYPE.MYSTERY: return '秘境'; + case WAR_TYPE.WARLOARDS: return '群雄'; + case WAR_TYPE.TOWER: return '镇念塔'; + case WAR_TYPE.PVP: return '竞技'; + case WAR_TYPE.GUILD_ACTIVITY: return '军团活动'; + case WAR_TYPE.GUILD_TRAIN: return '训练场'; + case WAR_TYPE.MAIN_ELITE: return '主线精英'; + case WAR_TYPE.MYSTERY_ELITE: return '秘境精英'; + case WAR_TYPE.BRANCH: return '支线'; + case WAR_TYPE.ACT_TREASURE_HUNT: return '运营活动-神州探秘'; + case WAR_TYPE.ACT_SELF_SHOP: return '运营活动-糜家商队'; + case WAR_TYPE.ACT_DAILY_GK: return '运营活动-节日活动'; + case WAR_TYPE.ACT_NEW_HERO_GK: return '新武将活动关卡'; + case WAR_TYPE.TRY: return '试用关卡'; + case WAR_TYPE.BOSS: return '演武台'; + } + } \ No newline at end of file