public void Initialize() { TUserCastle Castle; if (m_CastleList.Count <= 0) { Castle = new TUserCastle(M2Share.g_Config.sCastleDir); m_CastleList.Add(Castle); Castle.Initialize(); Castle.m_sConfigDir = "0"; Castle.m_EnvirList.Add("0151"); Castle.m_EnvirList.Add("0152"); Castle.m_EnvirList.Add("0153"); Castle.m_EnvirList.Add("0154"); Castle.m_EnvirList.Add("0155"); Castle.m_EnvirList.Add("0156"); if (Castle.m_EnvirList.Count > 0) { for (int I = 0; I < Castle.m_EnvirList.Count; I++) { Castle.m_EnvirList[I] = M2Share.g_MapManager.FindMap(Castle.m_EnvirList[I]).sMapName; } } Save(); return; } for (int I = 0; I < m_CastleList.Count; I++) { Castle = m_CastleList[I]; Castle.Initialize(); } }
public void ChangeSabukLord(TPlayObject PlayObject, string[] @Params) { string sCASTLENAME = @Params.Length > 0 ? @Params[0] : ""; string sGuildName = @Params.Length > 1 ? @Params[1] : ""; bool boFlag = @Params.Length > 2 ? bool.Parse(@Params[2]) : false; if ((sCASTLENAME == "") || (sGuildName == "")) { PlayObject.SysMsg("命令格式: @" + this.Attributes.Name + " 城堡名称 行会名称", TMsgColor.c_Red, TMsgType.t_Hint); return; } TUserCastle Castle = M2Share.g_CastleManager.Find(sCASTLENAME); if (Castle == null) { PlayObject.SysMsg(String.Format(GameMsgDef.g_sGameCommandSbkGoldCastleNotFoundMsg, sCASTLENAME), TMsgColor.c_Red, TMsgType.t_Hint); return; } TGUild Guild = GuildManager.FindGuild(sGuildName); if (Guild != null) { M2Share.AddGameDataLog("27" + "\09" + Castle.m_sOwnGuild + "\09" + '0' + "\09" + '1' + "\09" + "sGuildName" + "\09" + PlayObject.m_sCharName + "\09" + '0' + "\09" + '1' + "\09" + '0'); Castle.GetCastle(Guild); UserEngine.SendServerGroupMsg(Grobal2.SS_211, M2Share.nServerIndex, sGuildName); PlayObject.SysMsg(Castle.m_sName + " 所属行会已经更改为 " + sGuildName, TMsgColor.c_Green, TMsgType.t_Hint); } else { PlayObject.SysMsg("行会 " + sGuildName + "还没建立!!!", TMsgColor.c_Red, TMsgType.t_Hint); } }
public void LoadCastleList() { TStringList LoadList; TUserCastle Castle; string sCastleDir; if (File.Exists(M2Share.g_Config.sCastleFile)) { LoadList = new TStringList(); LoadList.LoadFromFile(M2Share.g_Config.sCastleFile); if (LoadList.Count > 0) { for (int I = 0; I < LoadList.Count; I++) { sCastleDir = LoadList[I].Trim(); if (sCastleDir != "") { Castle = new TUserCastle(sCastleDir); m_CastleList.Add(Castle); } } } Dispose(LoadList); M2Share.MainOutMessage("已读取 [" + m_CastleList.Count + "] 个城堡信息..."); } else { M2Share.MainOutMessage("城堡列表文件未找到!!!"); } }
public TUserCastle GetCastle(int nIndex) { TUserCastle result = null; if ((nIndex >= 0) && (nIndex < m_CastleList.Count)) { result = m_CastleList[nIndex]; } return(result); }
// 城堡皇宫所在地图 public TUserCastle IsCastlePalaceEnvir(TEnvirnoment Envir) { TUserCastle result = null; if (m_CastleList.Count > 0) { result = m_CastleList.Find(u => { return(u.m_MapPalace == Envir); }); } return(result); }
public TUserCastle Find(string sCASTLENAME) { TUserCastle result = null; if (m_CastleList.Count > 0) { result = m_CastleList.Find(u => { return(u.m_sName == sCASTLENAME); }); } return(result); }
public void ForcedWallconquestWar(TPlayObject PlayObject, string[] @Params) { string sCASTLENAME = @Params.Length > 0 ? @Params[0] : ""; string s20; TGUild Guild = null; if (sCASTLENAME == "") { if (GameConfig.boGMShowFailMsg) { PlayObject.SysMsg("命令格式: @" + base.Attributes.Name + " 城堡名称", TMsgColor.c_Red, TMsgType.t_Hint); } return; } TUserCastle Castle = M2Share.g_CastleManager.Find(sCASTLENAME); if (Castle != null) { Castle.m_boUnderWar = !Castle.m_boUnderWar; // 设置为可以攻城 if (Castle.m_boUnderWar) // 正在攻城 { if (GuildManager.GuildList.Count > 0) // 增加所有行会为攻城行会 { for (int I = 0; I < GuildManager.GuildList.Count; I++) { Guild = GuildManager.GuildList[I]; Castle.m_AttackGuildList.Add(Guild); } } Castle.m_boShowOverMsg = false; Castle.m_WarDate = DateTime.Now; Castle.m_dwStartCastleWarTick = HUtil32.GetTickCount(); Castle.StartWallconquestWar(); UserEngine.SendServerGroupMsg(Grobal2.SS_212, M2Share.nServerIndex, ""); s20 = "[" + Castle.m_sName + " 攻城战已经开始]"; UserEngine.SendBroadCastMsg(s20, TMsgType.t_System); UserEngine.SendServerGroupMsg(Grobal2.SS_204, M2Share.nServerIndex, s20); Castle.MainDoorControl(true); } else { Castle.StopWallconquestWar(); } } else { PlayObject.SysMsg(string.Format(GameMsgDef.g_sGameCommandSbkGoldCastleNotFoundMsg, sCASTLENAME), TMsgColor.c_Red, TMsgType.t_Hint); } }
/// <summary> /// 是否在攻城战争区域 /// </summary> /// <param name="Envir"></param> /// <param name="nX"></param> /// <param name="nY"></param> /// <returns></returns> public TUserCastle InCastleWarArea(TEnvirnoment Envir, int nX, int nY) { TUserCastle result = null; TUserCastle Castle; if (m_CastleList.Count > 0) { for (int I = 0; I < m_CastleList.Count; I++) { Castle = m_CastleList[I]; if (Castle.InCastleWarArea(Envir, nX, nY)) { result = Castle; break; } } } return(result); }
// 取得角色所在座标的城堡 public TUserCastle InCastleWarArea(TBaseObject BaseObject) { TUserCastle result = null; TUserCastle Castle; if (m_CastleList.Count > 0) { for (int I = 0; I < m_CastleList.Count; I++) { Castle = m_CastleList[I]; if (Castle.InCastleWarArea(BaseObject.m_PEnvir, BaseObject.m_nCurrX, BaseObject.m_nCurrY)) { result = Castle; break; } } } return(result); }
/// <summary> /// 是城堡成员 /// </summary> /// <param name="BaseObject"></param> /// <returns></returns> public TUserCastle IsCastleMember(TBaseObject BaseObject) { TUserCastle result = null; TUserCastle Castle; if (m_CastleList.Count > 0) { for (int I = 0; I < m_CastleList.Count; I++) { Castle = m_CastleList[I]; if (Castle != null) { if (Castle.IsMember(BaseObject)) { result = Castle; break; } } } } return(result); }
/// <summary> /// 城堡所在地图 /// </summary> /// <param name="Envir"></param> /// <returns></returns> public TUserCastle IsCastleEnvir(TEnvirnoment Envir) { TUserCastle result = null; if (m_CastleList.Count > 0) { result = m_CastleList.Find(u => { return(u.m_MapCastle == Envir); }); //for (int I = 0; I < m_CastleList.Count; I++) //{ // Castle = m_CastleList[I]; // if (Castle.m_MapCastle == Envir) // { // result = Castle; // break; // } //} } return(result); }
public void ForcedWallconquestWar(string[] @Params, TPlayObject PlayObject) { string sCASTLENAME = @Params.Length > 0 ? @Params[0] : ""; if (sCASTLENAME == "") { PlayObject.SysMsg("命令格式: @" + this.Attributes.Name + " 城堡名称", TMsgColor.c_Red, TMsgType.t_Hint); return; } TUserCastle Castle = M2Share.g_CastleManager.Find(sCASTLENAME); if (Castle != null) { Castle.m_boUnderWar = !Castle.m_boUnderWar; if (Castle.m_boUnderWar) { Castle.m_dwStartCastleWarTick = HUtil32.GetTickCount(); Castle.StartWallconquestWar(); // UserEngine.SendServerGroupMsg(SS_212, nServerIndex, ''); string s20 = '[' + Castle.m_sName + "攻城战已经开始]"; UserEngine.SendBroadCastMsg(s20, TMsgType.t_System); // UserEngine.SendServerGroupMsg(SS_204, nServerIndex, s20); Castle.MainDoorControl(true); } else { Castle.StopWallconquestWar(); } } else { PlayObject.SysMsg(String.Format(GameMsgDef.g_sGameCommandSbkGoldCastleNotFoundMsg, sCASTLENAME), TMsgColor.c_Red, TMsgType.t_Hint); } }
// 重载相关设置 public void ReLoadCastle() { TUserCastle Castle; TObjUnit ObjUnit; TDoorInfo Door; bool boUnderWar; M2Share.g_Config.sGuildNotice = M2Share.StringConf.ReadString("Guild", "GuildNotice", M2Share.g_Config.sGuildNotice); M2Share.g_Config.sGuildWar = M2Share.StringConf.ReadString("Guild", "GuildWar", M2Share.g_Config.sGuildWar); M2Share.g_Config.sGuildAll = M2Share.StringConf.ReadString("Guild", "GuildAll", M2Share.g_Config.sGuildAll); M2Share.g_Config.sGuildMember = M2Share.StringConf.ReadString("Guild", "GuildMember", M2Share.g_Config.sGuildMember); M2Share.g_Config.sGuildMemberRank = M2Share.StringConf.ReadString("Guild", "GuildMemberRank", M2Share.g_Config.sGuildMemberRank); M2Share.g_Config.sGuildChief = M2Share.StringConf.ReadString("Guild", "GuildChief", M2Share.g_Config.sGuildChief); if (m_CastleList.Count <= 0) { Castle = new TUserCastle(M2Share.g_Config.sCastleDir); m_CastleList.Add(Castle); Castle.Initialize(); Castle.m_sConfigDir = "0"; Castle.m_EnvirList.Add("0151"); Castle.m_EnvirList.Add("0152"); Castle.m_EnvirList.Add("0153"); Castle.m_EnvirList.Add("0154"); Castle.m_EnvirList.Add("0155"); Castle.m_EnvirList.Add("0156"); if (Castle.m_EnvirList.Count > 0) { for (int I = 0; I < Castle.m_EnvirList.Count; I++) { Castle.m_EnvirList[I] = M2Share.g_MapManager.FindMap(Castle.m_EnvirList[I]).sMapName; } } Save(); return; } for (int I = 0; I < m_CastleList.Count; I++) { Castle = m_CastleList[I]; boUnderWar = Castle.m_boUnderWar; Castle.m_boUnderWar = false;// 先初始状态 Castle.LoadConfig(true); Castle.LoadAttackSabukWall(); if (M2Share.g_MapManager.GetMapOfServerIndex(Castle.m_sMapName) == M2Share.nServerIndex) { Castle.m_MapPalace = M2Share.g_MapManager.FindMap(Castle.m_sPalaceMap); if (Castle.m_MapPalace == null) { M2Share.MainOutMessage(string.Format("皇宫地图{0}没找到!!!", Castle.m_sPalaceMap)); } Castle.m_MapSecret = M2Share.g_MapManager.FindMap(Castle.m_sSecretMap); if (Castle.m_MapSecret == null) { M2Share.MainOutMessage(string.Format("密道地图{0}没找到!!!", Castle.m_sSecretMap)); } Castle.m_MapCastle = M2Share.g_MapManager.FindMap(Castle.m_sMapName); if (Castle.m_MapCastle != null) { if (Castle.m_MainDoor.BaseObject != null) { if ((!Castle.m_MainDoor.BaseObject.m_boGhost) && (!Castle.m_MainDoor.BaseObject.m_boDeath) && (!Castle.m_MainDoor.BaseObject.m_boFixedHideMode) && ((Castle.m_MainDoor.BaseObject.m_sCharName).ToLower().CompareTo((Castle.m_MainDoor.sName).ToLower()) == 0)) { if (Castle.m_MainDoor.BaseObject.m_WAbil.HP <= 0) { Castle.m_MainDoor.BaseObject.ReAlive(); } Castle.m_MainDoor.BaseObject.m_WAbil.HP = Castle.m_MainDoor.nHP; Castle.m_MainDoor.BaseObject.SendRefMsg(Grobal2.RM_HEALTHSPELLCHANGED, 0, 0, 0, 0, ""); Castle.m_MainDoor.BaseObject.m_Castle = Castle; M2Share.MainOutMessage("[城堡重载A-5] " + Castle.m_MainDoor.BaseObject.m_sCharName); } else { if (Castle.m_MainDoor.BaseObject != null) { if (((Castle.m_MainDoor.BaseObject.m_sCharName).ToLower().CompareTo((Castle.m_MainDoor.sName).ToLower()) == 0)) { if (!Castle.m_MainDoor.BaseObject.m_boDeath) { Castle.m_MainDoor.BaseObject.m_WAbil.HP = Castle.m_MainDoor.BaseObject.m_WAbil.MaxHP; ((TCastleDoor)(Castle.m_MainDoor.BaseObject)).RefStatus(); Castle.m_MainDoor.BaseObject.m_Castle = Castle; M2Share.MainOutMessage("[城堡重载A-1] " + Castle.m_MainDoor.BaseObject.m_sCharName); } else { Castle.m_MainDoor.BaseObject.m_WAbil.HP = Castle.m_MainDoor.BaseObject.m_WAbil.MaxHP; ((TCastleDoor)(Castle.m_MainDoor.BaseObject)).m_boOpened = boUnderWar;// 城门是否关闭 Castle.m_MainDoor.BaseObject.ReAlive(); Castle.m_MainDoor.BaseObject.m_Castle = Castle; M2Share.MainOutMessage("[城堡重载A-2] " + Castle.m_MainDoor.BaseObject.m_sCharName); } } else { Castle.m_MainDoor.BaseObject = UserEngine.RegenMonsterByName(Castle.m_sMapName, Castle.m_MainDoor.nX, Castle.m_MainDoor.nY, Castle.m_MainDoor.sName); if (Castle.m_MainDoor.BaseObject != null) { Castle.m_MainDoor.BaseObject.m_WAbil.HP = Castle.m_MainDoor.nHP; Castle.m_MainDoor.BaseObject.m_Castle = Castle; Castle.m_MainDoor.BaseObject.m_nCurrX = Castle.m_MainDoor.nX; Castle.m_MainDoor.BaseObject.m_nCurrY = Castle.m_MainDoor.nY; M2Share.MainOutMessage("[城堡重载A-3] " + Castle.m_MainDoor.BaseObject.m_sCharName); } else { M2Share.MainOutMessage("[错误信息] 城堡初始化城门失败,检查怪物数据库里有没城门的设置: " + Castle.m_MainDoor.sName); } } } else { Castle.m_MainDoor.BaseObject = UserEngine.RegenMonsterByName(Castle.m_sMapName, Castle.m_MainDoor.nX, Castle.m_MainDoor.nY, Castle.m_MainDoor.sName); if (Castle.m_MainDoor.BaseObject != null) { Castle.m_MainDoor.BaseObject.m_WAbil.HP = Castle.m_MainDoor.nHP; Castle.m_MainDoor.BaseObject.m_Castle = Castle; M2Share.MainOutMessage("[城堡重载A-4] " + Castle.m_MainDoor.BaseObject.m_sCharName); } else { M2Share.MainOutMessage("[错误信息] 城堡初始化城门失败,检查怪物数据库里有没城门的设置: " + Castle.m_MainDoor.sName); } } } if (Castle.m_MainDoor.nStatus && (Castle.m_MainDoor.BaseObject != null)) { ((TCastleDoor)(Castle.m_MainDoor.BaseObject)).Open(); } } else { M2Share.MainOutMessage("[错误信息] 城堡初始化城门失败,检查怪物数据库里有没城门的设置: " + Castle.m_MainDoor.sName); } if (Castle.m_LeftWall.BaseObject != null) { if ((!Castle.m_LeftWall.BaseObject.m_boGhost) && (!Castle.m_LeftWall.BaseObject.m_boDeath) && (!Castle.m_LeftWall.BaseObject.m_boFixedHideMode) && ((Castle.m_LeftWall.BaseObject.m_sCharName).ToLower().CompareTo((Castle.m_LeftWall.sName).ToLower()) == 0)) { if (Castle.m_LeftWall.BaseObject.m_WAbil.HP <= 0) { Castle.m_LeftWall.BaseObject.ReAlive(); } Castle.m_LeftWall.BaseObject.m_WAbil.HP = Castle.m_LeftWall.nHP; Castle.m_LeftWall.BaseObject.SendRefMsg(Grobal2.RM_HEALTHSPELLCHANGED, 0, 0, 0, 0, ""); Castle.m_LeftWall.BaseObject.m_Castle = Castle; M2Share.MainOutMessage("[城堡重载B-5] " + Castle.m_LeftWall.BaseObject.m_sCharName); } else { if (Castle.m_LeftWall.BaseObject != null) { if (((Castle.m_LeftWall.BaseObject.m_sCharName).ToLower().CompareTo((Castle.m_LeftWall.sName).ToLower()) == 0)) { if (!Castle.m_LeftWall.BaseObject.m_boDeath) { Castle.m_LeftWall.BaseObject.m_WAbil.HP = Castle.m_LeftWall.BaseObject.m_WAbil.MaxHP; ((TWallStructure)(Castle.m_LeftWall.BaseObject)).RefStatus(); Castle.m_LeftWall.BaseObject.m_Castle = Castle; M2Share.MainOutMessage("[城堡重载B-1] " + Castle.m_LeftWall.BaseObject.m_sCharName); } else { Castle.m_LeftWall.BaseObject.m_WAbil.HP = Castle.m_LeftWall.BaseObject.m_WAbil.MaxHP; Castle.m_LeftWall.BaseObject.ReAlive(); Castle.m_LeftWall.BaseObject.m_Castle = Castle; M2Share.MainOutMessage("[城堡重载B-2] " + Castle.m_LeftWall.BaseObject.m_sCharName); } } else { Castle.m_LeftWall.BaseObject = UserEngine.RegenMonsterByName(Castle.m_sMapName, Castle.m_LeftWall.nX, Castle.m_LeftWall.nY, Castle.m_LeftWall.sName); if (Castle.m_LeftWall.BaseObject != null) { Castle.m_LeftWall.BaseObject.m_WAbil.HP = Castle.m_LeftWall.nHP; Castle.m_LeftWall.BaseObject.m_Castle = Castle; Castle.m_LeftWall.BaseObject.m_nCurrX = Castle.m_LeftWall.nX; Castle.m_LeftWall.BaseObject.m_nCurrY = Castle.m_LeftWall.nY; M2Share.MainOutMessage("[城堡重载B-3] " + Castle.m_LeftWall.BaseObject.m_sCharName); } else { M2Share.MainOutMessage("[错误信息] 城堡初始化左城墙失败,检查怪物数据库里有没左城墙的设置: " + Castle.m_LeftWall.sName); } } } else { Castle.m_LeftWall.BaseObject = UserEngine.RegenMonsterByName(Castle.m_sMapName, Castle.m_LeftWall.nX, Castle.m_LeftWall.nY, Castle.m_LeftWall.sName); if (Castle.m_LeftWall.BaseObject != null) { Castle.m_LeftWall.BaseObject.m_WAbil.HP = Castle.m_LeftWall.nHP; Castle.m_LeftWall.BaseObject.m_Castle = Castle; M2Share.MainOutMessage("[城堡重载B-4] " + Castle.m_LeftWall.BaseObject.m_sCharName); } else { M2Share.MainOutMessage("[错误信息] 城堡初始化左城墙失败,检查怪物数据库里有没左城墙的设置: " + Castle.m_LeftWall.sName); } } } } else { M2Share.MainOutMessage("[错误信息] 城堡初化左城墙失败,检查怪物数据库里有没左城墙的设置: " + Castle.m_LeftWall.sName); } if (Castle.m_CenterWall.BaseObject != null) { if ((!Castle.m_CenterWall.BaseObject.m_boGhost) && (!Castle.m_CenterWall.BaseObject.m_boDeath) && (!Castle.m_CenterWall.BaseObject.m_boFixedHideMode) && ((Castle.m_CenterWall.BaseObject.m_sCharName).ToLower().CompareTo((Castle.m_CenterWall.sName).ToLower()) == 0)) { if (Castle.m_CenterWall.BaseObject.m_WAbil.HP <= 0) { Castle.m_CenterWall.BaseObject.ReAlive(); } Castle.m_CenterWall.BaseObject.m_WAbil.HP = Castle.m_CenterWall.nHP; Castle.m_CenterWall.BaseObject.SendRefMsg(Grobal2.RM_HEALTHSPELLCHANGED, 0, 0, 0, 0, ""); Castle.m_CenterWall.BaseObject.m_Castle = Castle; M2Share.MainOutMessage("[城堡重载C-5] " + Castle.m_CenterWall.BaseObject.m_sCharName); } else { if (Castle.m_CenterWall.BaseObject != null) { if (((Castle.m_CenterWall.BaseObject.m_sCharName).ToLower().CompareTo((Castle.m_CenterWall.sName).ToLower()) == 0)) { if (!Castle.m_CenterWall.BaseObject.m_boDeath) { Castle.m_CenterWall.BaseObject.m_WAbil.HP = Castle.m_CenterWall.BaseObject.m_WAbil.MaxHP; ((TWallStructure)(Castle.m_CenterWall.BaseObject)).RefStatus(); Castle.m_CenterWall.BaseObject.m_Castle = Castle; M2Share.MainOutMessage("[城堡重载C-1] " + Castle.m_CenterWall.BaseObject.m_sCharName); } else { Castle.m_CenterWall.BaseObject.m_WAbil.HP = Castle.m_CenterWall.BaseObject.m_WAbil.MaxHP; Castle.m_CenterWall.BaseObject.ReAlive(); Castle.m_CenterWall.BaseObject.m_Castle = Castle; M2Share.MainOutMessage("[城堡重载C-2] " + Castle.m_CenterWall.BaseObject.m_sCharName); } } else { Castle.m_CenterWall.BaseObject = UserEngine.RegenMonsterByName(Castle.m_sMapName, Castle.m_CenterWall.nX, Castle.m_CenterWall.nY, Castle.m_CenterWall.sName); if (Castle.m_CenterWall.BaseObject != null) { Castle.m_CenterWall.BaseObject.m_WAbil.HP = Castle.m_CenterWall.nHP; Castle.m_CenterWall.BaseObject.m_Castle = Castle; Castle.m_CenterWall.BaseObject.m_nCurrX = Castle.m_CenterWall.nX; Castle.m_CenterWall.BaseObject.m_nCurrY = Castle.m_CenterWall.nY; M2Share.MainOutMessage("[城堡重载C-3] " + Castle.m_CenterWall.BaseObject.m_sCharName); } else { M2Share.MainOutMessage("[错误信息] 城堡初始化中城墙失败,检查怪物数据库里有没中城墙的设置: " + Castle.m_CenterWall.sName); } } } else { Castle.m_CenterWall.BaseObject = UserEngine.RegenMonsterByName(Castle.m_sMapName, Castle.m_CenterWall.nX, Castle.m_CenterWall.nY, Castle.m_CenterWall.sName); if (Castle.m_CenterWall.BaseObject != null) { Castle.m_CenterWall.BaseObject.m_WAbil.HP = Castle.m_CenterWall.nHP; Castle.m_CenterWall.BaseObject.m_Castle = Castle; M2Share.MainOutMessage("[城堡重载C-4] " + Castle.m_CenterWall.BaseObject.m_sCharName); } else { M2Share.MainOutMessage("[错误信息] 城堡初始化中城墙失败,检查怪物数据库里有没中城墙的设置: " + Castle.m_CenterWall.sName); } } } } else { M2Share.MainOutMessage("[错误信息] 城堡初始化中城墙失败,检查怪物数据库里有没中城墙的设置: " + Castle.m_CenterWall.sName); } if (Castle.m_RightWall.BaseObject != null) { if ((!Castle.m_RightWall.BaseObject.m_boGhost) && (!Castle.m_RightWall.BaseObject.m_boDeath) && (!Castle.m_RightWall.BaseObject.m_boFixedHideMode) && ((Castle.m_RightWall.BaseObject.m_sCharName).ToLower().CompareTo((Castle.m_RightWall.sName).ToLower()) == 0)) { if (Castle.m_RightWall.BaseObject.m_WAbil.HP <= 0) { Castle.m_RightWall.BaseObject.ReAlive(); } Castle.m_RightWall.BaseObject.m_WAbil.HP = Castle.m_RightWall.nHP; Castle.m_RightWall.BaseObject.SendRefMsg(Grobal2.RM_HEALTHSPELLCHANGED, 0, 0, 0, 0, ""); Castle.m_RightWall.BaseObject.m_Castle = Castle; M2Share.MainOutMessage("[城堡重载D-5] " + Castle.m_RightWall.BaseObject.m_sCharName); } else { if (Castle.m_RightWall.BaseObject != null) { if (((Castle.m_RightWall.BaseObject.m_sCharName).ToLower().CompareTo((Castle.m_RightWall.sName).ToLower()) == 0)) { if (!Castle.m_RightWall.BaseObject.m_boDeath) { Castle.m_RightWall.BaseObject.m_WAbil.HP = Castle.m_RightWall.BaseObject.m_WAbil.MaxHP; ((TWallStructure)(Castle.m_RightWall.BaseObject)).RefStatus(); Castle.m_RightWall.BaseObject.m_Castle = Castle; M2Share.MainOutMessage("[城堡重载D-1] " + Castle.m_RightWall.BaseObject.m_sCharName); } else { Castle.m_RightWall.BaseObject.m_WAbil.HP = Castle.m_RightWall.BaseObject.m_WAbil.MaxHP; Castle.m_RightWall.BaseObject.ReAlive(); Castle.m_RightWall.BaseObject.m_Castle = Castle; M2Share.MainOutMessage("[城堡重载D-2] " + Castle.m_RightWall.BaseObject.m_sCharName); } } else { Castle.m_RightWall.BaseObject = UserEngine.RegenMonsterByName(Castle.m_sMapName, Castle.m_RightWall.nX, Castle.m_RightWall.nY, Castle.m_RightWall.sName); if (Castle.m_RightWall.BaseObject != null) { Castle.m_RightWall.BaseObject.m_WAbil.HP = Castle.m_RightWall.nHP; Castle.m_RightWall.BaseObject.m_Castle = Castle; Castle.m_RightWall.BaseObject.m_nCurrX = Castle.m_RightWall.nX; Castle.m_RightWall.BaseObject.m_nCurrY = Castle.m_RightWall.nY; M2Share.MainOutMessage("[城堡重载D-3] " + Castle.m_RightWall.BaseObject.m_sCharName); } else { M2Share.MainOutMessage("[错误信息] 城堡初始化右城墙失败,检查怪物数据库里有没右城墙的设置: " + Castle.m_RightWall.sName); } } } else { Castle.m_RightWall.BaseObject = UserEngine.RegenMonsterByName(Castle.m_sMapName, Castle.m_RightWall.nX, Castle.m_RightWall.nY, Castle.m_RightWall.sName); if (Castle.m_RightWall.BaseObject != null) { Castle.m_RightWall.BaseObject.m_WAbil.HP = Castle.m_RightWall.nHP; Castle.m_RightWall.BaseObject.m_Castle = Castle; M2Share.MainOutMessage("[城堡重载D-4] " + Castle.m_RightWall.BaseObject.m_sCharName); } else { M2Share.MainOutMessage("[错误信息] 城堡初始化右城墙失败,检查怪物数据库里有没右城墙的设置: " + Castle.m_RightWall.sName); } } } } else { M2Share.MainOutMessage("[错误信息] 城堡初始化右城墙失败,检查怪物数据库里有没右城墙的设置: " + Castle.m_RightWall.sName); } for (int K = Castle.m_Archer.GetLowerBound(0); K <= Castle.m_Archer.GetUpperBound(0); K++) { ObjUnit = Castle.m_Archer[K]; if (ObjUnit.nHP <= 0) { continue; } if (ObjUnit.BaseObject != null) { ObjUnit.BaseObject.m_WAbil.HP = Castle.m_Archer[K].nHP; ObjUnit.BaseObject.m_Castle = Castle; ((TGuardUnit)(ObjUnit.BaseObject)).m_nX550 = ObjUnit.nX; ((TGuardUnit)(ObjUnit.BaseObject)).m_nY554 = ObjUnit.nY; ((TGuardUnit)(ObjUnit.BaseObject)).m_nDirection = 3; } else { M2Share.MainOutMessage("[错误信息] 城堡初始化弓箭手失败,检查怪物数据库里有没弓箭手的设置: " + ObjUnit.sName); } } for (int K = Castle.m_Guard.GetLowerBound(0); K <= Castle.m_Guard.GetUpperBound(0); K++) { ObjUnit = Castle.m_Guard[K]; if (ObjUnit.nHP <= 0) { continue; } if (ObjUnit.BaseObject != null) { ObjUnit.BaseObject.m_WAbil.HP = Castle.m_Guard[K].nHP; } else { M2Share.MainOutMessage("[错误信息] 城堡初始化守卫失败(检查怪物数据库里有没守卫怪物)"); } } if (Castle.m_MapCastle.m_DoorList.Count > 0) { for (int K = 0; K < Castle.m_MapCastle.m_DoorList.Count; K++) { Door = Castle.m_MapCastle.m_DoorList[K]; if ((Math.Abs(Door.nX - Castle.m_nPalaceDoorX) <= 3) && (Math.Abs(Door.nY - Castle.m_nPalaceDoorY) <= 3)) { Castle.m_DoorStatus = Door.Status; } } } } else { M2Share.MainOutMessage(string.Format("[错误信息] 城堡所在地图不存在(检查地图配置文件里是否有地图{0}的设置)", Castle.m_sMapName)); } } Castle.m_boUnderWar = boUnderWar; if (Castle.m_boUnderWar) { if (((TCastleDoor)(Castle.m_MainDoor.BaseObject)).m_boOpened) { ((TCastleDoor)(Castle.m_MainDoor.BaseObject)).Close(); } if (Castle.m_LeftWall.BaseObject != null) { Castle.m_LeftWall.BaseObject.m_boStoneMode = false; } if (Castle.m_CenterWall.BaseObject != null) { Castle.m_CenterWall.BaseObject.m_boStoneMode = false; } if (Castle.m_RightWall.BaseObject != null) { Castle.m_RightWall.BaseObject.m_boStoneMode = false; } } } }