api 锁修改,一键接取悬赏
This commit is contained in:
parent
826840455c
commit
ecc17a22a9
@ -1,4 +1,5 @@
|
||||
import {ApiCall} from "tsrpc";
|
||||
import { addGameLog } from "../../gameLog";
|
||||
import {HeroFun} from '../../public/hero';
|
||||
import {XstaskFun} from '../../public/xstask';
|
||||
import {ReqOnekeyReceive, ResOnekeyReceive} from "../../shared/protocols/xstask/PtlOnekeyReceive";
|
||||
@ -33,7 +34,9 @@ export default async function (call: ApiCall<ReqOnekeyReceive, ResOnekeyReceive>
|
||||
if (heroList.length != heroIds.length) return call.error(globalThis.lng.xstask_6);
|
||||
|
||||
let change: ResOnekeyReceive = {};
|
||||
let lockNum = event?.receiveNum || 0
|
||||
for (let receive of args) {
|
||||
if (lockNum >= 8) continue
|
||||
let task = taskList.find(task => task._id == receive._id);
|
||||
let taskConf = G.gc.xstask[task.taskId];
|
||||
|
||||
@ -45,6 +48,7 @@ export default async function (call: ApiCall<ReqOnekeyReceive, ResOnekeyReceive>
|
||||
|
||||
change[receive._id] = {time: G.time, heros: receive.heroIds};
|
||||
XstaskFun.receiveNum(call.uid)
|
||||
lockNum += 1
|
||||
}
|
||||
|
||||
Object.entries(change).forEach(([k, v]) => {
|
||||
@ -53,4 +57,6 @@ export default async function (call: ApiCall<ReqOnekeyReceive, ResOnekeyReceive>
|
||||
HongDianChange.sendChangeKey(call.uid, ['xstaskhd', 'huodonghd']);
|
||||
|
||||
call.succ(change);
|
||||
|
||||
addGameLog(call.uid, "_onekeyReceive", {}, change)
|
||||
}
|
@ -6,7 +6,7 @@
|
||||
},
|
||||
{
|
||||
"key":"got_jinbi",
|
||||
"limit":200000000,
|
||||
"limit":2000000000,
|
||||
"tips":"jinbi获取达到20亿"
|
||||
},
|
||||
{
|
||||
|
@ -140,7 +140,7 @@ function setWs(server: WsServer<ServiceType>) {
|
||||
//处理API锁,极限情况下只锁10s,防止死锁
|
||||
//在下方postApiReturnFlow里会解锁
|
||||
if (call.conn.apiLock[call.service.name] && call.conn.apiLock[call.service.name] > new Date().getTime()) {
|
||||
call.error('', {code: -100, message: '', time: 0});
|
||||
call.error('', {code: -100, message: '', apilock: 1});
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -199,10 +199,14 @@ function setWs(server: WsServer<ServiceType>) {
|
||||
let now = new Date().getTime();
|
||||
|
||||
if (node.return.isSucc) {
|
||||
if (!writeList.includes(node.call.service.name)){
|
||||
node.call.conn.apiLock[node.call.service.name] = now + 200;
|
||||
}
|
||||
} else {
|
||||
if (!node.return.err.apilock) {
|
||||
delete node.call.conn.apiLock[node.call.service.name];
|
||||
}
|
||||
}
|
||||
|
||||
return node;
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user