活动:礼包添加批量参数
This commit is contained in:
@@ -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> 活动奖励
|
||||
|
||||
Reference in New Issue
Block a user