public static int ConsortiaFight(int consortiaWin, int consortiaLose, Dictionary<int, Player> players, eRoomType roomType, eGameType gameClass, int totalKillHealth, int playercount) { if (roomType != eRoomType.Match) return 0; int playerCount = playercount / 2; int riches = 0; int state = 2; int rate = 1; int value = 3; if (gameClass == eGameType.Guild) { value = 10; rate = (int)RateMgr.GetRate(eRateType.Offer_Rate); } float richesRate = RateMgr.GetRate(eRateType.Riches_Rate); using (ConsortiaBussiness db = new ConsortiaBussiness()) { if (gameClass == eGameType.Free) { playerCount = 0; } else { db.ConsortiaFight(consortiaWin, consortiaLose, playerCount, out riches, state, totalKillHealth, richesRate); } //(对方公会等级-3)*50*对方玩家人数(对方玩家人数是指进入战斗时的人数,中途退出或者掉线的玩家不改变这个数值) //玩家增加掠夺财富 foreach (KeyValuePair<int, Player> p in players) { //if (p.Value.State == TankGameState.LOSE) // continue; if (p.Value == null) continue; if (p.Value.PlayerDetail.PlayerCharacter.ConsortiaID == consortiaWin) { p.Value.PlayerDetail.AddOffer((playerCount + value) * rate); p.Value.PlayerDetail.PlayerCharacter.RichesRob += riches; } else if (p.Value.PlayerDetail.PlayerCharacter.ConsortiaID == consortiaLose) { p.Value.PlayerDetail.AddOffer((int)Math.Round(playerCount * 0.5) * rate); p.Value.PlayerDetail.RemoveOffer(value); } } } return riches; }