public void SubmitCrystalBuff(GameClient client, int areaLuaID) { KarenBattleQiZhiConfig_East crystalItem = client.SceneContextData as KarenBattleQiZhiConfig_East; if (null != crystalItem) { lock (this.RuntimeData.Mutex) { KarenBattleScene scene; if (this.SceneDict.TryGetValue(client.ClientData.FuBenSeqID, out scene)) { KarenCenterConfig center = null; if (scene.KarenCenterConfigDict.TryGetValue(areaLuaID, out center)) { if (center.BattleWhichSide == client.ClientData.BattleWhichSide) { KarenBattleClientContextData contextData = client.SceneContextData2 as KarenBattleClientContextData; if (contextData != null && scene.m_eStatus == GameSceneStatuses.STATUS_BEGIN) { int addScore = crystalItem.HandInNum; scene.ScoreData[client.ClientData.BattleWhichSide - 1].Score += addScore; scene.ScoreData[client.ClientData.BattleWhichSide - 1].ticks = TimeUtil.NOW(); if (addScore > 0) { this.NotifyTimeStateInfoAndScoreInfo(client, false, true); } } SystemXmlItem systemNPC = null; if (GameManager.SystemNPCsMgr.SystemXmlItemDict.TryGetValue(center.NPCID, out systemNPC)) { string param = client.ClientData.JunTuanName; string param2 = systemNPC.GetStringValue("SName"); KarenBattleManager.getInstance().NtfKarenNotifyMsg(scene, KarenNotifyMsgType.Submit, client.ClientData.JunTuanId, param, param2); } this.UpdateBuff4GameClient(client, crystalItem.BuffGoodsID, crystalItem, false); this.AddDelayCreateMonster(scene, TimeUtil.NOW() + (long)(crystalItem.RefreshCD * 1000), crystalItem); } } } } } }
public bool AddCopyScenes(GameClient client, CopyMap copyMap, SceneUIClasses sceneType) { bool result; if (sceneType == SceneUIClasses.KarenWest) { GameMap gameMap = null; if (!GameManager.MapMgr.DictMaps.TryGetValue(client.ClientData.MapCode, out gameMap)) { result = false; } else { int fuBenSeqId = copyMap.FuBenSeqID; int mapCode = copyMap.MapCode; int roleId = client.ClientData.RoleID; int gameId = (int)Global.GetClientKuaFuServerLoginData(client).GameId; DateTime now = TimeUtil.NowDateTime(); lock (this.RuntimeData.Mutex) { KarenBattleScene scene = null; if (!this.SceneDict.TryGetValue(fuBenSeqId, out scene)) { KarenFuBenData fuBenData; if (!this.RuntimeData.FuBenItemData.TryGetValue(gameId, out fuBenData)) { LogManager.WriteLog(LogTypes.Error, "阿卡伦战场没有为副本找到对应的跨服副本数据,GameID:" + gameId, null, true); } KarenBattleSceneInfo sceneInfo; if (null == (sceneInfo = KarenBattleManager.getInstance().TryGetKarenBattleSceneInfo(mapCode))) { LogManager.WriteLog(LogTypes.Error, "阿卡伦战场没有为副本找到对应的档位数据,ID:" + mapCode, null, true); } scene = new KarenBattleScene(); scene.CopyMap = copyMap; scene.CleanAllInfo(); scene.GameId = gameId; scene.m_nMapCode = mapCode; scene.CopyMapId = copyMap.CopyMapID; scene.FuBenSeqId = fuBenSeqId; scene.m_nPlarerCount = 1; scene.SceneInfo = sceneInfo; scene.MapGridWidth = gameMap.MapGridWidth; scene.MapGridHeight = gameMap.MapGridHeight; DateTime startTime = now.Date.Add(KarenBattleManager.getInstance().GetStartTime(sceneInfo.MapCode)); scene.StartTimeTicks = startTime.Ticks / 10000L; this.InitScene(scene, client); this.SceneDict[fuBenSeqId] = scene; } else { scene.m_nPlarerCount++; } KarenBattleClientContextData clientContextData; if (!scene.ClientContextDataDict.TryGetValue(roleId, out clientContextData)) { clientContextData = new KarenBattleClientContextData { RoleId = roleId, ServerId = client.ServerId, BattleWhichSide = client.ClientData.BattleWhichSide }; scene.ClientContextDataDict[roleId] = clientContextData; } client.SceneObject = scene; client.SceneGameId = (long)scene.GameId; client.SceneContextData2 = clientContextData; copyMap.IsKuaFuCopy = true; copyMap.SetRemoveTicks(TimeUtil.NOW() + (long)(scene.SceneInfo.TotalSecs * 1000)); } JunTuanClient.getInstance().GameFuBenRoleChangeState(client.ServerId, roleId, gameId, client.ClientData.BattleWhichSide, 5); result = true; } } else { result = false; } return(result); }