コード例 #1
0
        internal static bool IsFloorBlocking(Assistant.Mobile mobile, Statics.TileInfo checkStatic)
        {
            string staticName = Statics.GetTileName(checkStatic.StaticID);

            if (staticName.IndexOf("roof", StringComparison.OrdinalIgnoreCase) >= 0 ||
                staticName.IndexOf("planks", StringComparison.OrdinalIgnoreCase) >= 0 ||
                staticName.IndexOf("pavers", StringComparison.OrdinalIgnoreCase) >= 0)
            {
                if (checkStatic.StaticZ > Player.Position.Z && checkStatic.StaticZ <= mobile.Position.Z)
                {
                    return(true);
                }
                if (checkStatic.StaticZ <= Player.Position.Z && checkStatic.StaticZ > mobile.Position.Z)
                {
                    return(true);
                }
            }
            return(false);
        }
コード例 #2
0
        internal static bool IsStaticWall(Assistant.Mobile mobile, Statics.TileInfo checkStatic)
        {
            string staticName = Statics.GetTileName(checkStatic.StaticID);

            bool wall = Statics.GetTileFlag(checkStatic.StaticID, "Wall");

            if (wall)
            {
                if (Player.Position.Z >= (checkStatic.StaticZ + 20) || mobile.Position.Z >= (checkStatic.StaticZ + 20))
                {
                    return(false);
                }
                int  height   = Statics.GetTileHeight(checkStatic.StaticID);
                bool blocking = Statics.GetTileFlag(checkStatic.StaticID, "NoShoot");
                if (blocking) // && height > 5)
                {
                    return(true);
                }
            }
            return(false);
        }