活动:礼包添加批量参数

This commit is contained in:
qiaoxin
2021-06-21 18:19:37 +08:00
parent 789660a701
commit 7c28103192
13 changed files with 170 additions and 103 deletions
+1 -1
View File
@@ -167,7 +167,7 @@ export async function getActivity(serverId: number, roleId: string, activityId:
break;
}
default: {
console.log('未知活动类型.........')
console.log('未知活动类型.........', activityType)
break;
}
}
+37 -11
View File
@@ -14,9 +14,10 @@ import { decodeArrayListStr } from '../pubUtils/util';
* @param giftID 礼包id
* @param roleId 角色id
* @param roleName 角色名称
* @param giftCount 一共消耗多少个礼包
* @param sid
*/
export async function useGiftPackage(roleId: string, roleName: string, sid: string, serverId: number, funcs: number[], giftID: number, selected: Array<number> = []) {
export async function useGiftPackage(roleId: string, roleName: string, sid: string, serverId: number, funcs: number[], giftID: number, selected: Array<number> = [], giftCount: number) {
console.log("bbbbbbbb", giftID, selected)
let result = { goods: [], addHeros: [] }
let giftPackageData = gameData.giftPackage.get(giftID);
@@ -29,7 +30,16 @@ export async function useGiftPackage(roleId: string, roleName: string, sid: stri
switch (giftType) {
case GIFT_PACKAGE_TYPE.ALL://全部
{
result = await addReward(roleId, roleName, sid, serverId, funcs, reward);
let allReward = [];
if (giftCount > 1) {
for (let obj of reward) {
allReward.push({ type: obj.type, id: obj.id, count: obj.count * giftCount })
}
} else {
allReward = reward;
}
result = await addReward(roleId, roleName, sid, serverId, funcs, allReward);
break;
}
case GIFT_PACKAGE_TYPE.SELECTED_X://手选
@@ -39,16 +49,27 @@ export async function useGiftPackage(roleId: string, roleName: string, sid: stri
break;
}
let selectedReward = getSelectedReward(giftPackageData, selected)
result = await addReward(roleId, roleName, sid, serverId, funcs, selectedReward);
let allReward = [];
if (giftCount > 1) {
for (let obj of selectedReward) {
allReward.push({ type: obj.type, id: obj.id, count: obj.count * giftCount })
}
} else {
allReward = selectedReward;
}
result = await addReward(roleId, roleName, sid, serverId, funcs, allReward);
break;
}
case GIFT_PACKAGE_TYPE.RANDOM_X://随机
{
let count = giftPackageData.count;//随机个数
let randomArray = randomSelectedData(count);
let selectedReward = getSelectedReward(giftPackageData, randomArray)
result = await addReward(roleId, roleName, sid, serverId, funcs, selectedReward);
let allReward = [];
for (let i = 0; i < giftCount; i++) {
let selectedArray = randomSelectedData(giftPackageData.reward.length, count);
let selectedReward = getSelectedReward(giftPackageData, selectedArray)
allReward = allReward.concat(selectedReward);
}
result = await addReward(roleId, roleName, sid, serverId, funcs, allReward);
break;
}
default:
@@ -114,10 +135,15 @@ export function getSelectedReward(giftData: DicGiftPackage, selected: Array<numb
return selectedReward;
}
function randomSelectedData(count: number) {
let arr = [];
return arr;
function randomSelectedData(total: number, count: number) {
var selected: number[] = []; //temp存放生成的随机数组
var arr = Array.from({ length: total }, (v, k) => k);
for (let i = 0; i < count; i++) {
var num = Math.floor(Math.random() * arr.length); //生成随机数num
selected.push(arr[num]); //获取arr[num]并放入temp
arr.splice(num, 1);
}
return selected;
}
//数据格式转换'类型&id&数量|类型&id&数量|' ->> Array<RewardParam> 活动奖励
+1 -1
View File
@@ -123,7 +123,7 @@ export async function addItems(roleId: string, roleName: string, sid: string, go
//统计装备
if (equipInfos.length > 0) {
let { serverId } = await RoleModel.findByRoleId(roleId);
await checkActivityTask(serverId, sid, [], roleId, TASK_TYPE.EQUIP_QUALITY_COUNT, equipInfos.length, { equips: equipInfos })
await checkActivityTask(serverId, sid, [], roleId, TASK_TYPE.EQUIP_QUALITY_COUNT, equipInfos.length, { equips: equipInfos.map(obj => { return { quality: obj.quality } }) })
}
//货币推送