コード例 #1
0
 void SetFlag(eFlags flag, bool enable)
 {
     if (enable)
         m_flag |= (int)flag;
     else
         m_flag &= ~(int)flag;
 }
コード例 #2
0
        protected override void SetModel()
        {
            if (!ServerProperties.Properties.AUTOMODEL_GUARDS_LOADED_FROM_DB && !LoadedFromScript)
            {
                return;
            }
            switch (Realm)
            {
            case eRealm.None:
            case eRealm.Albion:
            {
                Model = (ushort)eLivingModel.AlbionHastener;
                Size  = 45;
                break;
            }

            case eRealm.Midgard:
            {
                Model  = (ushort)eLivingModel.MidgardHastener;
                Size   = 50;
                Flags ^= eFlags.GHOST;
                break;
            }

            case eRealm.Hibernia:
            {
                Model = (ushort)eLivingModel.HiberniaHastener;
                Size  = 45;
                break;
            }
            }
            return;
        }
コード例 #3
0
 void SetFlag(eFlags flag, bool enable)
 {
     if (enable)
     {
         m_flag |= (int)flag;
     }
     else
     {
         m_flag &= ~(int)flag;
     }
 }
コード例 #4
0
 bool GetFlag(eFlags flag)
 {
     return(((int)m_flag & (int)flag) > 0);
 }
コード例 #5
0
		/// <summary>
		/// Constructs a NPC
		/// </summary>
		public GameNPC()
			: base()
		{
			Level = 1; // health changes when GameNPC.Level changes
			m_Realm = 0;
			m_name = "new mob";
			m_model = 408;
			//Fill the living variables
			//			CurrentSpeed = 0; // cause position addition recalculation
			MaxSpeedBase = 200;
			GuildName = "";

			m_brainSync = m_brains.SyncRoot;
			m_followTarget = new WeakRef(null);

			m_size = 50; //Default size
			TargetPosition = new Point3D();
			m_followMinDist = 100;
			m_followMaxDist = 3000;
			m_flags = 0;
			m_maxdistance = 0;
			m_roamingRange = 0; // default to non roaming - tolakram
			m_ownerID = "";

			if ( m_spawnPoint == null )
				m_spawnPoint = new Point3D();

			//m_factionName = "";
			LinkedFactions = new ArrayList(1);
			if (m_ownBrain == null)
			{
				m_ownBrain = new StandardMobBrain();
				m_ownBrain.Body = this;
			}
		}
コード例 #6
0
        public sAttributeScreen(XmlNode node)
            : base(node)
        {
            if (node == null)
            {
                return;
            }


            pZPosition = -100;

            if (node.Attributes["title"] != null)
            {
                pTitle = node.Attributes["title"].Value;
            }

            if (node.Attributes["flags"] != null)
            {
                switch (node.Attributes["flags"].Value)
                {
                case "wfNoBorder":
                    pFlags = eFlags.wfNoBorder;
                    break;

                case "wfBorder":
                default:
                    pFlags = eFlags.wfBorder;
                    break;
                }
            }

            pWindowStyle = (sWindowStyle)cDataBase.pWindowstyles.get();

            if (node.Attributes["backgroundColor"] != null)
            {
                pBackgroundColor = (sColor)cDataBase.pColors.get(node.Attributes["backgroundColor"].Value);
            }
            else if (node.Name == "screen" && node.Attributes["position"] == null)
            {
                pBackgroundColor = (sColor)cDataBase.pColors.get("transparent");
            }
            else
            {
                pBackgroundColor = (sColor)pWindowStyle.pColors["Background"];
            }

            if (node.Attributes["labelforeground"] != null)
            {
                pTitle = node.Attributes["labelforeground"].Value;
            }
            else
            {
                pLabelForegroundColor = (sColor)pWindowStyle.pColors["LabelForeground"];
            }

            pTitleFont = pWindowStyle.pFont;
            pTitleSize = pWindowStyle.pTitleSize * (((float)pTitleFont.Scale) / 100.0F);

            pTitleXOff = pWindowStyle.pXOff;
            pTitleYOff = pWindowStyle.pYOff;

            /*pbpTopLeft = ((sWindowStyle.sBorderSet)pWindowStyle.pBorderSets["bsWindow"]).pbpTopLeft;
             * pbpTop = ((sWindowStyle.sBorderSet)pWindowStyle.pBorderSets["bsWindow"]).pbpTop;
             * pbpTopRight = ((sWindowStyle.sBorderSet)pWindowStyle.pBorderSets["bsWindow"]).pbpTopRight;
             * pbpLeft = ((sWindowStyle.sBorderSet)pWindowStyle.pBorderSets["bsWindow"]).pbpLeft;
             * pbpRight = ((sWindowStyle.sBorderSet)pWindowStyle.pBorderSets["bsWindow"]).pbpRight;
             * pbpBottomLeft = ((sWindowStyle.sBorderSet)pWindowStyle.pBorderSets["bsWindow"]).pbpBottomLeft;
             * pbpBottom = ((sWindowStyle.sBorderSet)pWindowStyle.pBorderSets["bsWindow"]).pbpBottom;
             * pbpBottomRight = ((sWindowStyle.sBorderSet)pWindowStyle.pBorderSets["bsWindow"]).pbpBottomRight;*/

            sWindowStyle style = (sWindowStyle)cDataBase.pWindowstyles.get();

            sWindowStyle.sBorderSet borderset = (sWindowStyle.sBorderSet)style.pBorderSets["bsWindow"];

            if (borderset != null)
            {
                if (borderset.pbpTopLeftName.Length > 0)
                {
                    pbpTopLeftName = borderset.pbpTopLeftName;
                    pbpTopLeft     = borderset.pbpTopLeft;
                }
                if (borderset.pbpTopName.Length > 0)
                {
                    pbpTopName = borderset.pbpTopName;
                    pbpTop     = borderset.pbpTop;
                }
                if (borderset.pbpTopRightName.Length > 0)
                {
                    pbpTopRightName = borderset.pbpTopRightName;
                    pbpTopRight     = borderset.pbpTopRight;
                }


                if (borderset.pbpLeftName.Length > 0)
                {
                    pbpLeftName = borderset.pbpLeftName;
                    pbpLeft     = borderset.pbpLeft;
                }
                if (borderset.pbpRightName.Length > 0)
                {
                    pbpRightName = borderset.pbpRightName;
                    pbpRight     = borderset.pbpRight;
                }


                if (borderset.pbpBottomLeftName.Length > 0)
                {
                    pbpBottomLeftName = borderset.pbpBottomLeftName;
                    pbpBottomLeft     = borderset.pbpBottomLeft;
                }
                if (borderset.pbpBottomName.Length > 0)
                {
                    pbpBottomName = borderset.pbpBottomName;
                    pbpBottom     = borderset.pbpBottom;
                }
                if (borderset.pbpBottomRightName.Length > 0)
                {
                    pbpBottomRightName = borderset.pbpBottomRightName;
                    pbpBottomRight     = borderset.pbpBottomRight;
                }
            }
        }
コード例 #7
0
 bool GetFlag(eFlags flag)
 {
     return ((int)m_flag & (int)flag) > 0;
 }
コード例 #8
0
        public sAttributeScreen(XmlNode node)
            : base(node)
        {
            if (node == null)
                return;


            pZPosition = -100;

            if (node.Attributes["title"] != null)
                pTitle = node.Attributes["title"].Value;

            if (node.Attributes["flags"] != null)
                switch (node.Attributes["flags"].Value)
                {
                    case "wfNoBorder":
                        pFlags = eFlags.wfNoBorder;
                        break;
                    case "wfBorder":
                    default:
                        pFlags = eFlags.wfBorder;
                        break;
                 }

            pWindowStyle = (sWindowStyle)cDataBase.pWindowstyles.get();

            if (node.Attributes["backgroundColor"] != null)
                pBackgroundColor = (sColor)cDataBase.pColors.get(node.Attributes["backgroundColor"].Value);
            else
                pBackgroundColor = (sColor)pWindowStyle.pColors["Background"];

            if (node.Attributes["labelforeground"] != null)
                pTitle = node.Attributes["labelforeground"].Value;
            else
                pLabelForegroundColor = (sColor)pWindowStyle.pColors["LabelForeground"];

            pTitleFont = pWindowStyle.pFont;
            pTitleSize = pWindowStyle.pTitleSize * (((float)pTitleFont.Scale) / 100.0F);

            pTitleXOff = pWindowStyle.pXOff;
            pTitleYOff = pWindowStyle.pYOff;

            /*pbpTopLeft = ((sWindowStyle.sBorderSet)pWindowStyle.pBorderSets["bsWindow"]).pbpTopLeft;
            pbpTop = ((sWindowStyle.sBorderSet)pWindowStyle.pBorderSets["bsWindow"]).pbpTop;
            pbpTopRight = ((sWindowStyle.sBorderSet)pWindowStyle.pBorderSets["bsWindow"]).pbpTopRight;
            pbpLeft = ((sWindowStyle.sBorderSet)pWindowStyle.pBorderSets["bsWindow"]).pbpLeft;
            pbpRight = ((sWindowStyle.sBorderSet)pWindowStyle.pBorderSets["bsWindow"]).pbpRight;
            pbpBottomLeft = ((sWindowStyle.sBorderSet)pWindowStyle.pBorderSets["bsWindow"]).pbpBottomLeft;
            pbpBottom = ((sWindowStyle.sBorderSet)pWindowStyle.pBorderSets["bsWindow"]).pbpBottom;
            pbpBottomRight = ((sWindowStyle.sBorderSet)pWindowStyle.pBorderSets["bsWindow"]).pbpBottomRight;*/

            sWindowStyle style = (sWindowStyle)cDataBase.pWindowstyles.get();
            sWindowStyle.sBorderSet borderset = (sWindowStyle.sBorderSet)style.pBorderSets["bsWindow"];

            if (borderset != null)
            {

                if (borderset.pbpTopLeftName.Length > 0)
                {
                    pbpTopLeftName = borderset.pbpTopLeftName;
                    pbpTopLeft = borderset.pbpTopLeft;
                }
                if (borderset.pbpTopName.Length > 0)
                {
                    pbpTopName = borderset.pbpTopName;
                    pbpTop = borderset.pbpTop;
                }
                if (borderset.pbpTopRightName.Length > 0)
                {
                    pbpTopRightName = borderset.pbpTopRightName;
                    pbpTopRight = borderset.pbpTopRight;
                }


                if (borderset.pbpLeftName.Length > 0)
                {
                    pbpLeftName = borderset.pbpLeftName;
                    pbpLeft = borderset.pbpLeft;
                }
                if (borderset.pbpRightName.Length > 0)
                {
                    pbpRightName = borderset.pbpRightName;
                    pbpRight = borderset.pbpRight;
                }


                if (borderset.pbpBottomLeftName.Length > 0)
                {
                    pbpBottomLeftName = borderset.pbpBottomLeftName;
                    pbpBottomLeft = borderset.pbpBottomLeft;
                }
                if (borderset.pbpBottomName.Length > 0)
                {
                    pbpBottomName = borderset.pbpBottomName;
                    pbpBottom = borderset.pbpBottom;
                }
                if (borderset.pbpBottomRightName.Length > 0)
                {
                    pbpBottomRightName = borderset.pbpBottomRightName;
                    pbpBottomRight = borderset.pbpBottomRight;
                }
            }
        }
コード例 #9
0
        /// <summary>
        /// Creates an off-mesh connection
        /// </summary>
        /// <param name="start"></param>
        /// <param name="end"></param>
        /// <param name="bidirectional"></param>
        /// <param name="area"></param>
        /// <param name="flags"></param>
        public void WriteOffMeshConnection(Vector3 start, Vector3 end, bool bidirectional = true, eAreas area = eAreas.Jump, eFlags flags = eFlags.Jump, float radius = 4.1f)
        {
            var rad = radius;

            start *= NavmeshMgr.CONVERSION_FACTOR;
            end   *= NavmeshMgr.CONVERSION_FACTOR;
            WriteLine("c {0:F1} {1:F1} {2:F1} {3:F1} {4:F1} {5:F1} {6:F1} {7} {8} {9}", start.X, start.Z, start.Y,
                      end.X, end.Z, end.Y,
                      rad, bidirectional ? 1 : 0, (int)area, (int)flags);
        }