Files
ZYZ/shared/pubUtils/battleUtils.ts
2023-02-10 20:51:55 +08:00

52 lines
1.9 KiB
TypeScript

import * as crc from 'crc';
import { md5 } from './sdkUtil';
const BATTLE_CLASS_MOD = 100; // 存档分类模数
const CDN_URL_PREFIX_SQ = 'https://download-sgzzyz.yev242.com'; // sq cdn 服务器地址前缀
const CDN_URL_PREFIX_ZYZ = 'http://zyz-download.trgame.cn'; // 公司下载服务器地址前缀
// 将字符串 crc32 处理后取模,以将随机字符串分组
function modStr(str: string, mod: number) {
if (typeof(str) !== 'string' || typeof(mod) !== 'number') return undefined;
return crc.crc32(str) % mod;
}
function getPrefixByEnv(env: string) {
switch (env) {
case 'dev':
case 'monitor':
case 'alpha':
case 'stable':
return CDN_URL_PREFIX_ZYZ;
case 'sq1':
case 'sq4':
case 'sq7':
case 'sq9':
default:
return CDN_URL_PREFIX_SQ;
}
}
export function getLocalRplUrl(roleId: string, warType: number, battleCode: string) {
const battleClass = modStr(battleCode, BATTLE_CLASS_MOD); // 将存档文件按一定规则分批保存
const writePath = `/zyz_logs/rpls/${roleId}/${warType}/${battleClass}`;
return writePath;
}
export function getRemoteRplUrl(env: string, roleId: string, warType: number, battleCode: string) {
const battleClass = modStr(battleCode, BATTLE_CLASS_MOD); // 将存档文件按一定规则分批保存
const rplUrl = `${getPrefixByEnv(env)}/rpls/${md5(env).substring(0, 4)}/${roleId}/${warType}/${battleClass}`;
return rplUrl;
}
export function getRemoteRplPrefix(env: string) {
const rplUrl = `${getPrefixByEnv(env)}/rpls/${md5(env).substring(0, 4)}`;
return rplUrl;
}
export function getRemoteRplFilePath(roleId: string, warType: number, battleCode: string) {
const battleClass = modStr(battleCode, BATTLE_CLASS_MOD); // 将存档文件按一定规则分批保存
const rplUrl = `/${roleId}/${warType}/${battleClass}/${battleCode}.bin`;
return rplUrl;
}