寻宝:先创建在匹配真人的匹配
This commit is contained in:
@@ -226,6 +226,19 @@ export async function rmRoleFromQueue(roleId: string, sid: string, lvs?: number[
|
||||
await redisClient().multi(cmds).execAsync();
|
||||
}
|
||||
|
||||
function getComCreateTeamKey(lv: number) {
|
||||
return `${REDIS_KEY.COM_TEAM_CREATED_TEAM}:${lv}`;
|
||||
}
|
||||
|
||||
export async function setCreatedTeamToRedis(teamCode: string, lv: number) {
|
||||
let sid = pinus.app.getCurServer().id;
|
||||
await redisClient().hsetAsync(getComCreateTeamKey(lv), teamCode, sid);
|
||||
}
|
||||
|
||||
export async function rmCreatedTeamFromRedis(teamCode: string, lv: number) {
|
||||
await redisClient().hdelAsync(getComCreateTeamKey(lv), teamCode);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 在寻宝匹配队列中随机两个玩家
|
||||
* @export
|
||||
@@ -249,6 +262,20 @@ export async function getTeamSearchByLv(lv: number) {
|
||||
return res;
|
||||
}
|
||||
|
||||
export async function getCreatedTeamByLv(lvs: number[]) {
|
||||
let team: {lv: number, teamCode: string}[] = [];
|
||||
for(let lv of lvs) {
|
||||
let teams = await redisClient().hkeysAsync(getComCreateTeamKey(lv));
|
||||
team.push(...teams.map(teamCode => ({ lv, teamCode })));
|
||||
}
|
||||
return team;
|
||||
}
|
||||
|
||||
export async function getComTeamSidByCode(lv: number, teamCode: string) {
|
||||
let sid = await redisClient().hgetAsync(getComCreateTeamKey(lv), teamCode);
|
||||
return sid
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 检查玩家是否在某个队列中等待寻宝匹配
|
||||
* @export
|
||||
@@ -274,6 +301,7 @@ export async function checkRoleInQueue(roleId: string, sid: string, lvs: number[
|
||||
*/
|
||||
export async function clearComBtlQueue() {
|
||||
await delKeys(REDIS_KEY.COM_TEAM_SEARCH_PRE);
|
||||
await delKeys(REDIS_KEY.COM_TEAM_CREATED_TEAM);
|
||||
}
|
||||
|
||||
export function setRedis(key: string, data: string) {
|
||||
|
||||
Reference in New Issue
Block a user