镇念塔调整

This commit is contained in:
luying
2020-11-04 20:12:54 +08:00
parent 4effd85f2a
commit 6020037aa6
17 changed files with 844 additions and 511 deletions
@@ -178,7 +178,6 @@ export class NormalBattleHandler {
let dailyNum = {};
let towerRec = null;
let towerBonus = null;
let towerStatus = null;
let towerReward = null;
if(warInfo.warType == WAR_TYPE.DAILY) {
@@ -192,13 +191,14 @@ export class NormalBattleHandler {
await setBattleStatus(this.app, session, roleId, battleId, isSuccess, battleCode);
} else if (warInfo.warType == WAR_TYPE.TOWER) {
let towerEndResult = await towerBattleEnd(channelService, sid, roleId, battleCode, battleId, isSuccess, heroes);
if(towerEndResult.status == -1) {
return towerEndResult.resResult;
if(towerEndResult) {
if(towerEndResult.status == -1) {
return towerEndResult.resResult;
}
towerRec = towerEndResult.data.newRec;
towerStatus = towerEndResult.data.towerStatus;
towerReward = towerEndResult.data.towerReward;
}
towerRec = towerEndResult.data.newRec;
towerBonus = towerEndResult.data.bonusReward;
towerStatus = towerEndResult.data.towerStatus;
towerReward = towerEndResult.data.towerReward;
}
let warReward = new WarReward(roleId, roleName, battleId, isSuccess);
@@ -233,10 +233,9 @@ export class NormalBattleHandler {
// 返回值:
// towerStatus: false-本层未通过, true-本层已通过
// towerBonus: 天梯每隔几层的额外宝箱
return resResult(STATUS.SUCCESS, {
battleCode, battleId, status, towerStatus,
...reward, towerBonus, towerReward,
...reward, towerReward,
apJson,
dailyNum,
heroes: curHeroes,
@@ -1,15 +1,15 @@
import { STATUS } from './../../../consts/statusCode';
import { TOWER_TASK_CONST } from './../../../consts/consts';
import { TOWER_TASK_CONST, HANG_UP_CONSTS, GONGSHI } from './../../../consts/consts';
import { TowerTaskRecModel } from './../../../db/TowerTaskRec';
import { HangUpSpdUpRecModel } from './../../../db/HangUpSpdUpRec';
import { HangUpRecordModel } from './../../../db/HangUpRecord';
import { RoleModel } from './../../../db/Role';
import { TowerRecordModel } from './../../../db/TowerRecord';
import { Application, BackendSession } from 'pinus';
import { getTaskById, getTaskIdByQuality, getTowerDataByLv } from '../../../pubUtils/gamedata';
import { decodeArrayStr, decodeIdCntArrayStr, getRandEelm, resResult } from '../../../pubUtils/util';
import { calcuHangUpReward, checkTaskConditions } from '../../../services/battleService';
import { handleFixedReward } from '../../../services/rewardService';
import { getTaskById, getTaskIdByFloor, getTowerDataByLv } from '../../../pubUtils/gamedata';
import { decodeArrayStr, decodeIdCntArrayStr, getRandEelm, resResult, shouldRefresh, getRandomWithWeight } from '../../../pubUtils/util';
import { calcuHangUpReward, checkTaskConditions, checkHangUpSpdUpCnt } from '../../../services/battleService';
import { handleFixedReward, handleReward } from '../../../services/rewardService';
export default function(app: Application) {
return new TowerBattleHandler(app);
@@ -33,8 +33,8 @@ export class TowerBattleHandler {
let towerRec = await TowerRecordModel.getRecordByLv(roleId, towerLv);
if (!towerRec) {
const towerInfo = getTowerDataByLv(towerLv);
const { warIds } = towerInfo;
const sts = decodeArrayStr(warIds).map(id => {
const { warArray } = towerInfo;
const sts = decodeArrayStr(warArray, '&').map(id => {
return {warId: parseInt(id), status: false};
});
towerRec = await TowerRecordModel.createRecord({roleId, lv: towerLv, warStatus: sts});
@@ -68,24 +68,18 @@ export class TowerBattleHandler {
async checkHangUpRewards(msg: {}, session: BackendSession) {
let roleId = session.get('roleId');
const { multi, timeReward, startTime } = await calcuHangUpReward(roleId);
if (multi == 0) {
return resResult(STATUS.TOWER_HANG_UP_NOT_VALID);
}
const rewards = decodeIdCntArrayStr(timeReward, multi);
return resResult(STATUS.SUCCESS, {startTime, rewards: Array.from(rewards, item => ({[item[0]]: item[1]}))});
const { timeReward, startTime, deltaTime } = await calcuHangUpReward(roleId);
return resResult(STATUS.SUCCESS, {startTime, hangUpPassTime: deltaTime, rewards: timeReward.map(cur => {return {id: cur.gid, count: cur.count}})});
}
async recHangUpRewards(msg: {}, session: BackendSession) {
let roleId = session.get('roleId');
let roleName = session.get('roleName');
const { multi, timeReward, endLv, endTime } = await calcuHangUpReward(roleId);
if (multi == 0) {
return resResult(STATUS.TOWER_HANG_UP_NOT_VALID);
}
const goods = await handleFixedReward(roleId, roleName, timeReward, multi);
const newRec = await HangUpRecordModel.updateRec(roleId, roleName, endLv, endTime);
return resResult(STATUS.SUCCESS, { endTime, ...goods, hangUpRec: newRec });
const { timeReward, endLv, endTime, deltaTime, needReceiveGoods } = await calcuHangUpReward(roleId);
const goods = await handleReward(roleId, roleName, timeReward);
await HangUpRecordModel.updateRec(roleId, roleName, endLv, endTime, needReceiveGoods);
return resResult(STATUS.SUCCESS, { endTime, hangUpPassTime: deltaTime, ...goods });
}
async hangUpSpeedUp(msg: {speedUpCnt: number}, session: BackendSession) {
@@ -95,31 +89,61 @@ export class TowerBattleHandler {
return resResult(STATUS.WRONG_PARMS);
}
const curTime = new Date();
const { multi, timeReward, endLv } = await calcuHangUpReward(roleId, true, msg.speedUpCnt, curTime);
if (multi <= 0) {
resResult(STATUS.TOWER_NOT_ENOUGH_HANG_UP_TIME);
}
const { timeReward, endLv, deltaTime, needReceiveGoods } = await calcuHangUpReward(roleId, true, msg.speedUpCnt, curTime);
const role = await RoleModel.hangUpSpdUp(roleId, multi, curTime);
if (!role) {
let result = await checkHangUpSpdUpCnt(roleId, msg.speedUpCnt, curTime);
if(result.status == -1) return result.resResult;
let {data: {hangUpSpdUpCnt, gold}} = result;
const costGold = this.getHangUpCost(hangUpSpdUpCnt, msg.speedUpCnt);
console.log(costGold, gold)
if(costGold > gold) {
return resResult(STATUS.TOWER_GOLD_NOT_ENOUGH);
}
await RoleModel.costGold(roleId, costGold);
console.log(costGold);
const spdUpResult = await RoleModel.hangUpSpdUp(roleId, msg.speedUpCnt, curTime);
if (!spdUpResult) {
return resResult(STATUS.TOWER_HANG_UP_FAILED);
}
const spdUpRec = await HangUpSpdUpRecModel.updateRec(roleId, roleName, multi, endLv);
const goods = await handleFixedReward(roleId, roleName, timeReward, multi);
return resResult(STATUS.SUCCESS, { ...goods, rewardLv: endLv, spdUpRec });
const spdUpRec = await HangUpSpdUpRecModel.updateRec(roleId, roleName, msg.speedUpCnt, endLv, needReceiveGoods);
const goods = await handleReward(roleId, roleName, timeReward);
return resResult(STATUS.SUCCESS, { ...goods, hangUpPassTime: deltaTime, rewardLv: endLv, costGold });
}
getHangUpCost(originCnt: number, count: number) {
let gold = 0;
for(let i = 1; i <= count; i++) {
let num = HANG_UP_CONSTS.MAX_SPD_UP_CNT - originCnt + i;
if(num < 0) num = i;
try {
gold += parseInt(eval(GONGSHI.TOWER_HANG_UP_SPEED_COST));
} catch(e) {
gold += 0;
}
}
return gold
}
async getTasks(msg: {}, session: BackendSession) {
let roleId = session.get('roleId');
let roleName = session.get('roleName');
let { towerLv } = await RoleModel.findByRoleId(roleId);
let curTasks = await TowerTaskRecModel.getCurTasks(roleId);
if (!curTasks || curTasks.length == 0) {
let taskIds = [];
TOWER_TASK_CONST.RAND_CNT.forEach((cnt, idx) => {
const ids = getTaskIdByQuality(idx + 1);
const tmp = getRandEelm(ids, cnt);
taskIds = taskIds.concat(getRandEelm(ids, cnt));
})
const taskList = getTaskIdByFloor(towerLv)||[];
const randomList = taskList.map(taskId => getTaskById(taskId));
for(let i = 0; i < TOWER_TASK_CONST.RAND_CNT; i++) {
let list = randomList.filter(taskId => !taskIds.includes(taskId));
console.log(taskIds, JSON.stringify(list));
let {dic: tmp} = getRandomWithWeight(list);
if(tmp) {
taskIds.push(tmp.taskId);
}
}
curTasks = await TowerTaskRecModel.createTasks(roleId, roleName, taskIds);
}
return resResult(STATUS.SUCCESS, { curTasks });
@@ -127,34 +151,34 @@ export class TowerBattleHandler {
async sendTaskHero(msg: {batchCode: string, tasks: Array<{taskCode: string, heroes: Array<number>}>}, session: BackendSession) {
let roleId = session.get('roleId');
const curTasks = await TowerTaskRecModel.getCurTasks(roleId);
const curTasks = await TowerTaskRecModel.getCurTasks(roleId); // 当前一批的任务
if (!curTasks || curTasks.length == 0) {
return resResult(STATUS.TOWER_TASK_NOT_FOUND);
}
let usedHeroes = [];
const tasksCode = [];
const taskMap = new Map<string, any>()
curTasks.forEach(task => {
usedHeroes = usedHeroes.concat(task.heroes);
tasksCode.push(task.taskCode);
taskMap.set(task.taskCode, task);
});
for (let task of msg.tasks) {
if (task.heroes.length > TOWER_TASK_CONST.MAX_HEROES_NUM) {
let curTask = taskMap.get(task.taskCode); // 数据库中,这个任务的数据
let taskInfo = getTaskById(curTask.taskId);
if (task.heroes.length > taskInfo.actorNeeded) { // 武将数,从策划表中读取
return resResult(STATUS.TOWER_TASK_MAX_HERO);
}
if (usedHeroes.length > 0) {
let used = false;
task.heroes.forEach(hid => {
if (usedHeroes.indexOf(hid) !== -1) {
used = true;
}
})
if (used) {
return resResult(STATUS.TOWER_TASK_HERO_HAS_USED);
}
}
if (tasksCode.indexOf(task.taskCode) === -1) {
return resResult(STATUS.TOWER_TASK_CODE_NOT_FOUND);
}
if (usedHeroes.length > 0) { // 是否在其他任务重使用了武将
let used = !!task.heroes.find(hid => usedHeroes.indexOf(hid) !== -1);
if (used) {
return resResult(STATUS.TOWER_TASK_HERO_HAS_USED);
}
}
}
const curTime = new Date();
const recs = await TowerTaskRecModel.sendHeroes(roleId, msg.batchCode, msg.tasks, curTime);
@@ -182,14 +206,14 @@ export class TowerBattleHandler {
return resResult(STATUS.TOWER_TASK_BATCH_NOT_FOUND);
}
if ((allFlag || task.taskCode === msg.taskCode) && task.status === 1) {
let {completeTime, reward, bonusCondition, bonus} = getTaskById(task.taskId);
let {completeTime, reward, termsForAdd, additionalReward} = getTaskById(task.taskId);
if (task.sendTime && task.sendTime.getTime() + completeTime * 1000 < curTime.getTime()) {
compTasks.push(task.taskCode);
const rewardGoods = await handleFixedReward(roleId, roleName, reward, 1);
goods = goods.concat(rewardGoods.goods);
if(bonusCondition) {
const res = checkTaskConditions(roleId, task.heroes, bonusCondition);
const bonusGoods = await handleFixedReward(roleId, roleName, bonus, 1);
if(termsForAdd) {
const result = checkTaskConditions(roleId, task.heroes, termsForAdd);
const bonusGoods = await handleFixedReward(roleId, roleName, result?additionalReward:'', 1);
goods = goods.concat(bonusGoods.goods);
}
}
+97 -44
View File
@@ -6,9 +6,10 @@ import { BattleRecordModel } from './../db/BattleRecord';
import { TowerRecordModel } from './../db/TowerRecord';
import { RoleModel } from './../db/Role';
import { getHeroInfoById, getJobInfoById, getTowerDataByLv } from "../pubUtils/gamedata"
import { decodeArrayStr, shouldRefresh, resResult } from '../pubUtils/util';
import { decodeArrayStr, shouldRefresh, resResult, decodeStr, cal } from '../pubUtils/util';
import { handleFixedReward } from './rewardService';
import { STATUS } from '../consts/statusCode';
import { HangUpSpdUpRecModel } from '../db/HangUpSpdUpRec';
export async function checkTowerWar(roleId: string, battleId: number, heroes: Array<number>) {
const battleIdStr = `${battleId}`;
@@ -18,7 +19,8 @@ export async function checkTowerWar(roleId: string, battleId: number, heroes: Ar
console.error(`天梯层数异常,lv ${towerLv} by ${roleId}`);
return { status: -1, resResult: resResult(STATUS.TOWER_INFO_NOT_FOUND) };
}
const warIds = decodeArrayStr(towerInfo.warIds) || [];
const warIds = decodeArrayStr(towerInfo.warArray, '&') || [];
console.log(warIds, battleIdStr);
if (warIds.indexOf(battleIdStr) === -1) {
return { status: -1, resResult: resResult(STATUS.TOWER_WRONG_BATTLE_ID) };
}
@@ -30,7 +32,7 @@ export async function checkTowerWar(roleId: string, battleId: number, heroes: Ar
}
}
const curWarStatus = warStatus.find(elem => elem.warId == battleId);
if (curWarStatus.status) {
if (curWarStatus && curWarStatus.status) {
return { status: -1, resResult: resResult(STATUS.TOWER_DUPLICATE_CHALLENGE) };
}
@@ -60,25 +62,22 @@ export async function towerBattleEnd(channelService: ChannelService, sid: string
}
})
let newRec = await TowerRecordModel.updateRecord(roleId, towerLv, battleCode, battleId, heroes, inc);
let bonusReward = null;
let towerReward = null;
if (inc === 1) {
await RoleModel.towerLvUp(roleId);
const nextTowerInfo = getTowerDataByLv(towerLv + 1);
if (nextTowerInfo) {
const { warIds } = nextTowerInfo;
const sts = decodeArrayStr(warIds).map(id => {
const { warArray } = nextTowerInfo;
const sts = decodeArrayStr(warArray, '&').map(id => {
return {warId: parseInt(id), status: false};
});
await TowerRecordModel.createRecord({roleId, lv: towerLv + 1, warStatus: sts});
}
const { bonus, fixReward } = getTowerDataByLv(towerLv);
if (bonus) {
let result = await handleFixedReward(roleId, roleName, bonus, 1);
bonusReward = result.goods;
}
if (fixReward) {
let result = await handleFixedReward(roleId, roleName, fixReward, 1);
const { reward } = getTowerDataByLv(towerLv);
if (reward) {
let result = await handleFixedReward(roleId, roleName, reward, 1);
towerReward = result.goods;
}
if (towerLv + 1 >= HANG_UP_CONSTS.ENABLE_LV) {
@@ -90,7 +89,7 @@ export async function towerBattleEnd(channelService: ChannelService, sid: string
status: 0,
data: {
newRec,
bonusReward, towerReward,
towerReward,
towerStatus: !!inc
}
};
@@ -101,41 +100,99 @@ async function startHangUp(roleId: string, roleName: string) {
await HangUpRecordModel.initRecord(roleId, roleName);
}
export async function checkHangUpSpdUpCnt(roleId: string, cnt: number, curTime: Date) {
const role = await RoleModel.findByRoleId(roleId);
let {hangUpSpdUpCnt, gold, lastSpdUpTime} = role;
if (!lastSpdUpTime || (shouldRefresh(lastSpdUpTime, curTime, HANG_UP_CONSTS.REFRESH_TIME, 1) && hangUpSpdUpCnt <= HANG_UP_CONSTS.MAX_SPD_UP_CNT)) {
hangUpSpdUpCnt = HANG_UP_CONSTS.MAX_SPD_UP_CNT;
}
if (cnt > hangUpSpdUpCnt) {
return {status: -1, resResult:resResult(STATUS.TOWER_HANG_UP_FAILED)}
}
return {status: 0, data: {hangUpSpdUpCnt, gold, lastSpdUpTime}}
}
export async function calcuHangUpReward(roleId: string, speedUp = false, speedUpCnt = 1, curTime = new Date()) {
let { towerLv, hangUpSpdUpCnt, lastSpdUpTime } = await RoleModel.findByRoleId(roleId);
let { startTime} = await HangUpRecordModel.getCurRec(roleId);
let { towerLv = 1, hangUpSpdUpCnt = 0, lastSpdUpTime } = await RoleModel.findByRoleId(roleId);
let towerInfo = getTowerDataByLv(towerLv - 1); // towerLv 是当前层,奖励计算按照已经通过的层,即上一层
let multi = 1; // 结算奖励的倍数,受最大时间限制
let multiReal = 1; // 距开始挂机实际过去的时间单位
if (speedUp) {
if (hangUpSpdUpCnt >= speedUpCnt || shouldRefresh(lastSpdUpTime, new Date, HANG_UP_CONSTS.REFRESH_TIME, 1)) {
multi = speedUpCnt;
} else {
multi = 0;
let timeReward = []; // 奖励
let needReceiveGoods = []; // 由于小数,未能领取的奖励
let baseReward = decodeStr('decimalReward', towerInfo.rewardOfcollect);
let { startTime } = await HangUpRecordModel.getCurRec(roleId);
let endTime = curTime; // 挂机结束时间,现在到开始时间,经历了10的倍数的时间
let deltaTime = curTime.getTime() - startTime.getTime(); // 累计的挂机时间,受最大时间限制
if (deltaTime > HANG_UP_CONSTS.MAX_TIME) {
deltaTime = HANG_UP_CONSTS.MAX_TIME;
endTime = curTime; // 累积到超过24小时,那么结束时间和下一次开启时间就取整了
} else {
let multiReal = Math.floor(deltaTime / HANG_UP_CONSTS.UNIT_TIME);// 距开始挂机实际过去的时间单位
endTime = new Date(startTime.getTime() + multiReal * HANG_UP_CONSTS.UNIT_TIME)
}
if (speedUp) { // 加速,直接收取6小时收益,小数的累积和普通收取独立
if (hangUpSpdUpCnt >= speedUpCnt || !lastSpdUpTime || shouldRefresh(lastSpdUpTime, new Date, HANG_UP_CONSTS.REFRESH_TIME, 1)) { // 可加速
let multi = Math.floor(HANG_UP_CONSTS.SPD_UP_REC_TIME / HANG_UP_CONSTS.UNIT_TIME);
let spdUpRec = await HangUpSpdUpRecModel.getSpdUpRec(roleId, towerLv - 1);
let goods = [];
if(spdUpRec) {
let { notReceivedGoodsList = [], cnt } = spdUpRec;
let notReceivedGoods = notReceivedGoodsList.find(cur => cur.cnt == cnt );
goods = notReceivedGoods?notReceivedGoods.goods:[];
}
for(let {gid, count} of baseReward) {
let newCount = cal.mul(count, multi);
let oldGoods = goods.find(cur => cur.gid == gid);
if(oldGoods) newCount = cal.add(newCount, oldGoods.count);
let roundCount = Math.floor(newCount);
if(newCount > roundCount) {
needReceiveGoods.push({gid, count: cal.sub(newCount, roundCount)});
}
if(roundCount > 0) {
timeReward.push({gid, count: roundCount})
}
}
}
} else {
let deltaTime = curTime.getTime() - startTime.getTime();
multiReal = Math.floor(deltaTime / HANG_UP_CONSTS.UNIT_TIME);
if (deltaTime > HANG_UP_CONSTS.MAX_TIME) deltaTime = HANG_UP_CONSTS.MAX_TIME;
multi = Math.floor(deltaTime / HANG_UP_CONSTS.UNIT_TIME);
let lastRec = await HangUpRecordModel.getLastRec(roleId);
let notReceivedGoods = lastRec?lastRec.notReceivedGoods: [];
let multi = Math.floor(deltaTime / HANG_UP_CONSTS.UNIT_TIME); // 结算奖励的倍数,受最大时间限制
console.log(deltaTime, multi, baseReward);
for(let {gid, count} of baseReward) {
let newCount = cal.mul(count, multi);
let oldGoods = notReceivedGoods.find(cur => cur.gid == gid);
if(oldGoods) newCount = cal.add(newCount, oldGoods.count);
let roundCount = Math.floor(newCount);
if(newCount > roundCount) {
needReceiveGoods.push({gid, count: cal.sub(newCount, roundCount)});
}
if(roundCount > 0) {
timeReward.push({gid, count: roundCount})
}
}
}
return {
endLv: towerLv - 1,
startTime,
endTime: new Date(startTime.getTime() + multiReal * HANG_UP_CONSTS.UNIT_TIME),
timeReward: towerInfo.timeReward,
multi
deltaTime,
endTime,
timeReward,
needReceiveGoods
};
}
async function checkCond(roleId: string, heroes, type: number, parm: number, cnt: number) {
async function checkCond(roleId: string, heroes, type: number, param: number, cnt: number) {
let heroCnt = 0;
switch (type) {
case 1:
let field = param == 1?'star': 'rank';
for(let hid of heroes) {
const rec = await HeroModel.findByHidAndRole(hid, roleId);
if (rec.star >= parm) {
if (rec[field] >= param) {
heroCnt++;
}
}
@@ -143,7 +200,7 @@ async function checkCond(roleId: string, heroes, type: number, parm: number, cnt
case 2:
for(let hid of heroes) {
const hInfo = getHeroInfoById(hid);
if (hInfo.camp === parm) {
if (hInfo.camp === param) {
heroCnt++;
}
}
@@ -151,7 +208,7 @@ async function checkCond(roleId: string, heroes, type: number, parm: number, cnt
case 3:
for(let hid of heroes) {
const hInfo = getHeroInfoById(hid);
if (getJobInfoById(hInfo.jobid) === parm) {
if (getJobInfoById(hInfo.jobid) === param) {
heroCnt++;
}
}
@@ -166,18 +223,14 @@ async function checkCond(roleId: string, heroes, type: number, parm: number, cnt
}
export async function checkTaskConditions(roleId: string, heroes: Array<number>, conditionsStr: string) {
const condArr = conditionsStr.split('|');
if (condArr.length < 1) return false;
let condition = decodeStr('towerTaskCondition', conditionsStr);
let res = true;
for (let cond of condArr) {
const condDetail = cond.split('&');
if (condDetail && condDetail.length === 3) {
const checkRes = await checkCond(roleId, heroes, parseInt(condDetail[0]), parseInt(condDetail[1]), parseInt(condDetail[2]))
if (!checkRes) {
res = false;
break;
}
for (let {type, param, cnt} of condition) {
const checkRes = await checkCond(roleId, heroes, type, param, cnt);
if (!checkRes) {
res = false;
break;
}
}
return res;
-1
View File
@@ -207,7 +207,6 @@ export async function refreshEvent(num: number, roleId: string, roleName: string
return ccur.eventId != cur.eventID;
});
});
console.log(JSON.stringify(randomList));
let curPoint = new Array<number>();
for(let i = 0; i < num; i++) {
+8 -8
View File
@@ -5,7 +5,7 @@ module.exports = {
'id': 'connector-server-1',
'host': '127.0.0.1',
'port': 4050,
'clientHost': 'pinus_test.trgame.cn',
'clientHost': 'zyz_web.trgame.cn',
'clientPort': 3050,
'frontend': true,
'args': '--inspect=10001'
@@ -29,7 +29,7 @@ module.exports = {
{
'id': 'gate-server-1',
'host': '127.0.0.1',
'clientHost': 'pinus_test.trgame.cn',
'clientHost': 'zyz_web.trgame.cn',
'clientPort': 3014,
'frontend': true,
'args': '--inspect=10003'
@@ -37,7 +37,7 @@ module.exports = {
{
'id': 'gate-server-2',
'host': '127.0.0.1',
'clientHost': 'pinus_test.trgame.cn',
'clientHost': 'zyz_web.trgame.cn',
'clientPort': 3015,
'frontend': true,
'args': '--inspect=10008'
@@ -46,9 +46,9 @@ module.exports = {
},
'production': {
'connector': [
{'id': 'connector-server-1', 'port': 4050, 'clientHost': 'pinus_test.trgame.cn', 'host': '127.0.0.1', 'clientPort': 3050, 'frontend': true},
{'id': 'connector-server-2', 'port': 4051, 'clientHost': 'pinus_test.trgame.cn', 'host': '127.0.0.1', 'clientPort': 3051, 'frontend': true},
{'id': 'connector-server-3', 'port': 4052, 'clientHost': 'pinus_test.trgame.cn', 'host': '127.0.0.1', 'clientPort': 3052, 'frontend': true}
{'id': 'connector-server-1', 'port': 4050, 'clientHost': 'zyz_web.trgame.cn', 'host': '127.0.0.1', 'clientPort': 3050, 'frontend': true},
{'id': 'connector-server-2', 'port': 4051, 'clientHost': 'zyz_web.trgame.cn', 'host': '127.0.0.1', 'clientPort': 3051, 'frontend': true},
{'id': 'connector-server-3', 'port': 4052, 'clientHost': 'zyz_web.trgame.cn', 'host': '127.0.0.1', 'clientPort': 3052, 'frontend': true}
],
'chat': [
{'id': 'chat-server-1', 'host': '127.0.0.1', 'port': 6050},
@@ -62,11 +62,11 @@ module.exports = {
{'id': 'battle-server-1', 'host': '127.0.0.1', 'port': 6054}
],
'gate': [
{'id': 'gate-server-1', 'host': '127.0.0.1', 'clientHost': 'pinus_test.trgame.cn', 'clientPort': 3014, 'frontend': true},
{'id': 'gate-server-1', 'host': '127.0.0.1', 'clientHost': 'zyz_web.trgame.cn', 'clientPort': 3014, 'frontend': true},
{
'id': 'gate-server-2',
'host': '127.0.0.1',
'clientHost': 'pinus_test.trgame.cn',
'clientHost': 'zyz_web.trgame.cn',
'clientPort': 3015,
'frontend': true
}