public object Clone() { KingOfBattleQiZhiConfig obj = new KingOfBattleQiZhiConfig() { NPCID = NPCID, PosX = PosX, PosY = PosY, QiZhiMonsterID = QiZhiMonsterID, }; return(obj); }
/// <summary> /// 怪物死亡时 /// </summary> /// <param name="npcID"></param> /// <param name="bhid"></param> public void OnProcessMonsterDead(GameClient client, Monster monster) { #if ___CC___FUCK___YOU___BB___ // 战旗 if (null != client && (monster.XMonsterInfo.MonsterId == RuntimeData.BattleQiZhiMonsterID1 || monster.XMonsterInfo.MonsterId == RuntimeData.BattleQiZhiMonsterID2)) { KingOfBattleScene scene = client.SceneObject as KingOfBattleScene; KingOfBattleQiZhiConfig qizhiConfig = monster.Tag as KingOfBattleQiZhiConfig; if (null != scene && null != qizhiConfig) { lock (RuntimeData.Mutex) { qizhiConfig.DeadTicks = TimeUtil.NOW(); qizhiConfig.Alive = false; qizhiConfig.BattleWhichSide = client.ClientData.BattleWhichSide; CalculateTeleportGateState(scene); } } } #else // 战旗 if (null != client && (monster.MonsterInfo.ExtensionID == RuntimeData.BattleQiZhiMonsterID1 || monster.MonsterInfo.ExtensionID == RuntimeData.BattleQiZhiMonsterID2)) { KingOfBattleScene scene = client.SceneObject as KingOfBattleScene; KingOfBattleQiZhiConfig qizhiConfig = monster.Tag as KingOfBattleQiZhiConfig; if (null != scene && null != qizhiConfig) { lock (RuntimeData.Mutex) { qizhiConfig.DeadTicks = TimeUtil.NOW(); qizhiConfig.Alive = false; qizhiConfig.BattleWhichSide = client.ClientData.BattleWhichSide; CalculateTeleportGateState(scene); } } } #endif // 杀塔 KingOfBattleDynamicMonsterItem monsterConfig = monster.Tag as KingOfBattleDynamicMonsterItem; if (null != monsterConfig && (monsterConfig.MonsterType == (int)KingOfBattleMonsterType.KingOfBattle_TowerFirst || monsterConfig.MonsterType == (int)KingOfBattleMonsterType.KingOfBattle_TowerSecond)) { KingOfBattleScene scene = null; // 尝试开本方光幕 if (SceneDict.TryGetValue(client.ClientData.FuBenSeqID, out scene)) { CopyMap copyMap = scene.CopyMap; string msgText = string.Format(Global.GetLang("【{0}】摧毁了敌方箭塔,激活了本方密道!"), Global.FormatRoleName4(client)); if (client.ClientData.BattleWhichSide == 1 && scene.GuangMuNotify1 == false) { scene.GuangMuNotify1 = true; GameManager.CopyMapMgr.AddGuangMuEvent(copyMap, client.ClientData.BattleWhichSide, 0); GameManager.ClientMgr.BroadSpecialCopyMapMsg(copyMap, msgText); } else if (client.ClientData.BattleWhichSide == 2 && scene.GuangMuNotify2 == false) { scene.GuangMuNotify2 = true; GameManager.CopyMapMgr.AddGuangMuEvent(copyMap, client.ClientData.BattleWhichSide, 0); GameManager.ClientMgr.BroadSpecialCopyMapMsg(copyMap, msgText); } msgText = string.Format(Global.GetLang("【{0}】摧毁了敌方箭塔!"), Global.FormatRoleName4(client)); GameManager.ClientMgr.BroadSpecialCopyMapMsg(copyMap, msgText); } } // 杀水晶堡垒 if (null != monsterConfig && monsterConfig.MonsterType == (int)KingOfBattleMonsterType.KingOfBattle_BaoLei) { KingOfBattleScene scene = null; if (SceneDict.TryGetValue(client.ClientData.FuBenSeqID, out scene)) { ProcessEnd(scene, client.ClientData.BattleWhichSide, TimeUtil.NOW()); } } // 杀Boss if (null != monsterConfig && monsterConfig.MonsterType == (int)KingOfBattleMonsterType.KingOfBattle_Boss) { KingOfBattleScene scene = null; if (SceneDict.TryGetValue(client.ClientData.FuBenSeqID, out scene)) { string msgText = string.Format(Global.GetLang("【{0}】击杀了BOSS!"), Global.FormatRoleName4(client)); GameManager.ClientMgr.BroadSpecialCopyMapMsg(scene.CopyMap, msgText); } } }