粮草先行:离开页面的时候不发道具&离开军团不算加成

This commit is contained in:
luying
2022-09-30 20:07:00 +08:00
parent cee94b0cf0
commit 53a252a392
7 changed files with 190 additions and 23 deletions

View File

@@ -315,7 +315,7 @@ export async function settleGuildActivityReward(aid: number) {
let obj = getRaceActivityObj();
obj.stopRace();
for (let { guildCode, serverId } of obj.guildList) {
for (let { guildCode, serverId } of obj.getGuilds()) {
let woodenHorse = await obj.getWoodenHorse(guildCode, serverId);
if (woodenHorse && woodenHorse.status != 0 && !obj.hasSend(guildCode)) {
await raceActivitySettleReward(guildCode, woodenHorse);
@@ -661,6 +661,8 @@ export async function raceActivitySettleReward(guildCode: string, woodenHorse: W
let { serverId, durability, distance, isRobot } = woodenHorse;
if(isRobot) return;
let obj = getRaceActivityObj();
// 已发送
obj.send(guildCode);
// 计算排名,计算耐久,发送奖励
let { guildRank, myGuildRank } = await obj.getRanks(serverId, guildCode);
let rank = myGuildRank?.rank||0;
@@ -700,8 +702,6 @@ export async function raceActivitySettleReward(guildCode: string, woodenHorse: W
}
}
// 删除数据
obj.deleteFromList(guildCode);
}
/**
@@ -930,4 +930,46 @@ export async function debugAddHorse(serverId: number, guildCode: string, memberC
clearInterval(timer);
}, 10 * 60 * 1000);
}
}
export async function leaveRaceActivity(serverId: number, guildCode: string, roleId: string ) {
if(!guildCode) return;
let obj = getRaceActivityObj();
await obj.memberLeave(guildCode, serverId, roleId);
}
export async function leaveRaceActivityToRemote(serverId: number, guildCode: string, roleId: string) {
let guildServers = pinus.app.getServersByType('guild')||[];
let server = dispatch(`${serverId}`, guildServers);
if(server) {
await pinus.app.rpc.guild.guildActivityRemote.leaveRaceActivity.toServer(server.id, serverId, guildCode, roleId);
}
}
export async function leaveRaceWhenQuitGuild(serverId: number, guildCode: string, roleId: string) {
if(!guildCode) return;
let obj = getRaceActivityObj();
await obj.memberQuit(guildCode, serverId, roleId);
}
export async function leaveRaceWhenQuitGuildToRemote(serverId: number, guildCode: string, roleId: string) {
let guildServers = pinus.app.getServersByType('guild')||[];
let server = dispatch(`${serverId}`, guildServers);
if(server) {
await pinus.app.rpc.guild.guildActivityRemote.leaveRaceWhenQuitGuild.toServer(server.id, serverId, guildCode, roleId);
}
}
export async function leaveRaceWhenDismiss(guildCode: string) {
if(!guildCode) return;
let obj = getRaceActivityObj();
obj.dismiss(guildCode);
}
export async function leaveRaceWhenDismissToRemote(serverId: number, guildCode: string) {
let guildServers = pinus.app.getServersByType('guild')||[];
let server = dispatch(`${serverId}`, guildServers);
if(server) {
await pinus.app.rpc.guild.guildActivityRemote.leaveRaceWhenDismiss.toServer(server.id, guildCode);
}
}