军团活动:修复rpc调用以及其他问题

This commit is contained in:
luying
2021-03-19 18:28:50 +08:00
parent 7324556852
commit f7627f85d1
23 changed files with 351 additions and 109 deletions
+31 -16
View File
@@ -13,16 +13,18 @@ export class GateMembersRec {
// 军团活动蛮夷入侵城门血量等数据存储
export class GateActivityObject {
private gateHp: Map<string, number> = new Map(); // 城门血条,每个军团有一条血条
private members: Map<string, Array<string>> = new Map(); // 每个军团参与的成员
private membersRecord: Map<string, GateMembersRec> = new Map(); // 每个成员的回合数和敌军数,防刷
private guilds: Map<number, string[]> = new Map(); // 参加的所有军团
private gateHp: Map<string, number> = new Map(); // 城门血条,每个军团有一条血条 guildCode => hp
private members: Map<string, Array<string>> = new Map(); // 每个军团参与的成员 guildCode => [roleId]
private membersRecord: Map<string, GateMembersRec> = new Map(); // 每个成员的回合数和敌军数,防刷 recCode => GateMembersRec
private guilds: Map<number, string[]> = new Map(); // 参加的所有军团 server => [guildCode]
public getObj(guildCode: string) {
public getObj(guildCode: string, serverId: number) {
console.log(guildCode, serverId)
return {
gateHp: this.getGateHpAndInc(guildCode),
members: this.members.get(guildCode),
memberesRecord: this.membersRecord.get(guildCode)
members: this.members.get(guildCode)||[],
memberesRecord: [...this.membersRecord],
guilds: this.guilds.get(serverId)||[]
}
}
@@ -48,27 +50,40 @@ export class GateActivityObject {
if(this.members.has(guildCode)) {
this.members.get(guildCode).push(roleId);
} else {
let arr = new Array<string>();
arr.push(roleId);
this.members.set(guildCode, [roleId]);
}
if(this.guilds.has(serverId)) {
this.guilds.set(serverId, []);
} else {
let arr = this.guilds.get(serverId)||[];
let arr = this.guilds.get(serverId);
if(!arr.includes(guildCode)) arr.push(guildCode);
this.guilds.set(serverId, arr);
} else {
this.guilds.set(serverId, [guildCode]);
}
}
public getMemberRecord(code: string, roleId: string) {
return this.membersRecord.get(code)||new GateMembersRec(roleId)
public getMemberRecord(recCode: string, roleId: string) {
return this.membersRecord.get(recCode)||new GateMembersRec(roleId)
}
public setMemberRecord(code: string, newMemberRecord: GateMembersRec) {
this.membersRecord.set(code, newMemberRecord);
public setMemberRecord(recCode: string, newMemberRecord: GateMembersRec) {
this.membersRecord.set(recCode, newMemberRecord);
}
public delMemberRecord(code: string) {
this.membersRecord.delete(code);
public delMemberRecord(recCode: string) {
this.membersRecord.delete(recCode);
}
public delGuildRecord(guildCode: string, serverId: number) {
let guildList = this.guilds.get(serverId);
if(guildList) {
let index = guildList.indexOf(guildCode);
guildList.splice(index, 1);
}
this.gateHp.delete(guildCode);
this.members.delete(guildCode);
}
}