路由:修复单个路由情况
This commit is contained in:
@@ -31,7 +31,7 @@ import { getBattleListOfMain, getMainChapter } from './normalBattleService';
|
||||
import { GuildModel, GuildType } from '../db/Guild';
|
||||
import UserGuild, { UserGuildType } from '../db/UserGuild';
|
||||
import { getAllGuildActivityStatus } from './guildActivity/guildActivityService';
|
||||
import { getAllOnlineRoles, getAllServers } from './redisService';
|
||||
import { getAllOnlineRoles, getAllServers, incConnectorNum } from './redisService';
|
||||
import Item, { ItemModel } from '../db/Item';
|
||||
import { PvpDefenseModel } from '../db/PvpDefense';
|
||||
import { getDonation } from './donateService';
|
||||
@@ -363,17 +363,14 @@ function _assignServer(roleId: string, serverType: string) {
|
||||
let servers = pinus.app.getServersByType(serverType)||[];
|
||||
let sum = servers.reduce((pre, cur) => pre + (cur['num']||0), 0);
|
||||
let id = '';
|
||||
if(sum <= 0) {
|
||||
id = dispatch(roleId, servers, serverType)?.id;
|
||||
} else {
|
||||
if(sum > 0) {
|
||||
let serversWithWeight = servers.map(cur => ({...cur, weight: sum - (cur['num']||0)}));
|
||||
let { dic: server } = getRandEelmWithWeight(serversWithWeight);
|
||||
id = server?.id;
|
||||
}
|
||||
|
||||
// if(id) {
|
||||
// pinus.app.rpc.connector.connectorRemote.incServerNum.broadcast(id, 1);
|
||||
// }
|
||||
if(!id) {
|
||||
id = dispatch(roleId, servers, serverType)?.id;
|
||||
}
|
||||
return id
|
||||
}
|
||||
|
||||
@@ -404,4 +401,5 @@ export async function leaveServer(session: FrontendOrBackendSession) {
|
||||
pinus.app.rpc.connector.connectorRemote.incServerNum.broadcast(order, -1);
|
||||
|
||||
incServerNum(sid, -1);
|
||||
incConnectorNum(sid, -1);
|
||||
}
|
||||
@@ -581,7 +581,7 @@ export async function incConnectorNum(sid: string, inc: number) {
|
||||
let { id, serverType, clientHost, clientPort, num = 0 } = json;
|
||||
let newNum = num + inc;
|
||||
if(newNum < 0) newNum = 0;
|
||||
await redisClient().hsetAsync(REDIS_KEY.SYS_SERVER, id, JSON.stringify({ serverType, clientHost, clientPort, id, num: num + inc }));
|
||||
await redisClient().hsetAsync(REDIS_KEY.SYS_SERVER, id, JSON.stringify({ serverType, clientHost, clientPort, id, num: newNum }));
|
||||
}
|
||||
|
||||
/*************** 将connector服插入redis *******/
|
||||
|
||||
@@ -32,8 +32,8 @@ export async function getTeraphStrengthenResult(role: RoleType, count: number, d
|
||||
|
||||
if(!isEnough) break; // 消耗不足
|
||||
|
||||
let num = getRandValueByMinMax(TERAPH_RANDOM.MIN, TERAPH_RANDOM.MAX); // 强化时随机增加 2-4 属性
|
||||
let arr = getRandEelm(attrs, num); // 随机出的属性id
|
||||
// let num = getRandValueByMinMax(TERAPH_RANDOM.MIN, TERAPH_RANDOM.MAX); // 强化时随机增加 2-4 属性
|
||||
let arr = getRandEelm(attrs, 1); // 随机出的属性id
|
||||
let critical = getRandValueByMinMax(0, 100);//属性暴击率
|
||||
if(teraph.criCount == undefined || teraph.count == undefined) {
|
||||
teraph.criCount = 0;
|
||||
|
||||
@@ -160,13 +160,14 @@ export default class GameController extends Controller {
|
||||
// select connector
|
||||
let sum = connectors.reduce((pre, cur) => pre + (cur['num']||0), 0);
|
||||
let res;
|
||||
if(sum == 0) {
|
||||
res = dispatch(userCode, connectors, 'connector');
|
||||
} else {
|
||||
if(sum > 0) {
|
||||
let serversWithWeight = connectors.map(cur => ({...cur, weight: sum - (cur['num']||0)}));
|
||||
let randResult = getRandEelmWithWeight(serversWithWeight);
|
||||
res = randResult.dic;
|
||||
}
|
||||
if(!res) {
|
||||
res = dispatch(userCode, connectors, 'connector');
|
||||
}
|
||||
let { id, serverType, clientHost, clientPort, num = 0 } = res;
|
||||
|
||||
await redisClient.hsetAsync(REDIS_KEY.SYS_SERVER, id, JSON.stringify({ serverType, clientHost, clientPort, id, num: num + 1 }));
|
||||
|
||||
Reference in New Issue
Block a user