魔兽暗夜的知识

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了魔兽暗夜的知识相关的知识,希望对你有一定的参考价值。

本人刚开始学打魔兽 玩得是暗夜 现在好多知识和基本操作还不是很清楚 专家给点基本信息吧 关于暗夜的什么都行 感激不尽……

  也许许多玩家都会觉得NE做为一个以远程部队为主的种族,其对空能力自然是四族中最强的。其实不然,下面请看笔者的具体分析。
  众所周知,WAR3中空军的优势就是机动性。虽然NE在地面部队上机动性略占优势,但是其空军却无法媲美其他族空军穿刺部队灵活机动的优点。而地面对空火力又跟不上空军的速度,远古守护者又不能有效的应对空军的骚扰。摆上N多远古守护者显然是不明智的做法,而且依然无法防止采木的小精灵被屠杀。而此时对手却利用空军骚扰牵制NE部队,杀小精灵阻碍NE科技部队成型,自己却在外面分矿扩张并摆出TD的架势来防守。最终拖垮了NE……
  [b] 好了,看完了空军流对付NE的大概思路,再让我们回头看看NE的主要对空兵种:[/b]
  1:弓箭手,这是NE的1级兵,也是WAR3中最有效的对空部队之一。低廉的造价,低建造时间以及出色的防御穿刺伤害能力使弓箭手成为众多NE玩家对空的首选。但是对方不可能光用轻型空军来打NE的弓箭手海……。而低HP低移动力的弓箭手在面对空陆组合的“天地会”,以及群体杀伤魔法时[如雷霆一击,暴风雪,NOVA,闪电链,冲击波等]显得无比的脆弱,成片的倒下……
  2:树妖,俗称小鹿,她的魔免技能很好的弥补了弓箭手害怕群杀魔法的弱点,而慢性毒药的减速也能让远程部队的齐射威力得到更好的发挥。可惜自身脆弱的无甲防御使其成为对方空军集中点杀的目标。
  3:猛禽德鲁伊,鸟德也是NE对空战中经常出场的兵种之一。但可取之处除了那减5防御的精灵之火外,唯一的出场理由就是造价低以及3本能升级的飓风技能了。鸟德在自身防御上更是结合了弓箭手和树妖的弱点……。既不魔免,也怕穿刺……同样是对方优先秒杀的对象。
  4:角鹰兽,角鹰兽是NE里比较鸡肋兵种。单挑的话,他在轻型空军里除了龙鹰骑士外谁都不怕,可是就是集体亮相的出场率低……。没办法,谁让这家伙只能对空呢?而且NE的战场补给能力差,这角鹰兽数量少了打不过石像鬼,出多了打赢了空战又不能攻城,对方转型出陆军的话,角鹰兽又成了摆设,还白白占着人口……所以不会成为NE对抗UD天鬼的首选兵种。顶多在对付ORC飞龙的时候出几只壮壮胆子吓唬人……不过ORC浪器一出,角鹰兽就废了。。。。角鹰兽骑士则基本不在考虑之列,有钱造那玩意还不如出奇美拉来对地呢。
  正是由于NE对空能力的局限性,才会使其他族在对阵NE的时候选择空军来进行牵制。而NE玩家需要做的,就是选择适合自己的战术,准确的把握战机,在对方兵力最脆弱的时候给予致命打击,使对方的空军无法成型,也无力骚扰,自己伺机扩张,这样离胜利就不远了……。当然这些还需要多打多练才能有良好的意识去判断把握战机……

  这是一篇十分强的战术文章,大家看完后认真思考之后再发表评论,FlyingBug果然是位出色的战术大师,对于无限回城的研究十分透彻,已经突破了Bug的界限。[/color][/b]
  前阵子曾经在网上发布了“NE的无限回城”,让站立的基地走动,而回城选择反方向的极限距离落点,会使回城在5秒后取消,以达到英雄5秒无敌的效果。回城样子是有了,但是回不去,一直使用可以保证英雄一直处于回城——无敌的状态。它的实战意义实在有限,仅能保英雄暂时不死。
  而这次的技巧同样是关于回城卷轴,为了区分,把之前那个叫做“伪·无限回城”,这个叫做“真·无限回城”,其效果是:英雄使用回城后,除了该英雄自身留在原地,其余所有己方部队回城!而卷轴也没有消耗掉!配合单传权仗使用,相当于免费回城。
  施行的条件是生命之树,但谁都不会把主基地拔起来,只有多造一个。原理是使所选极限落点的一定范围内不存在有效落点,英雄无法回去,其他单位却能顺利到家,而失败的回城不会消耗卷轴。
  【原理解释】
  首先声明这并不是一个BUG,如果效果与设想不同就算BUG,那么Grubby手控4苦工提高到5苦工采矿效率也算利用BUG了。
  我们要了解回城的原理,回城可以选择具体落点位置,范围是基地周围900半径的圆。一般,英雄出现在所选的地方。但如果落点由于地形或障碍物不能站人,就以落点为圆心,900半径再画一个圆,在圆内找一个尽量靠近圆心(即所选落点),而又能站英雄的地方,英雄就会回到那里。看1.14的改动之一:
  - 回城卷轴会将你的单位放置在城镇大厅的右边,而不是你所点击的地方。这个错误在1.14版本中得到了修正。
  所以英雄所回到的位置严格遵守落点以及周围的900半径范围,范围内不能落脚则无法回城。
  [img]http://www.pcgames.com.cn/fight/warcraft/br_zzxd/0608/pic/wx1_1_thumb.jpg[/img]
  然而除了用回城卷轴的英雄,其他单位、包括其他英雄,并没有限制必须出现在落点900半径范围内。这是因为,1.16及之前的版本,如果落点周围的地形足够英雄落地,但不够其他人的空间,可能导致站不下的那部分兵回不来,这是很严重的问题,为此暴雪在1.17规定:
  - 使用回城卷轴到一个不可能到达的地方会让单位尽可能接近该地方。如果是没有找到一个有效的地方,那么单位就会被传送到城镇大厅的附近。
  当以所选落点为中心,900半径的圆范围内完全没有英雄能站的位置,真·无限回城就成功了,因为主英雄回不去,而其他单位根据设计,被传送到基地的附近。而整个过程被认为是“不(完全)成功的回城”,那么根据1.15的改动:
  - 修正了一个错误。该错误使得在回城卷轴施放过程还未完成的时候,如果目的地城镇被破坏了,那么就会浪费该卷轴。现在如果回城卷轴施放过程没能完成的话,英雄就会将其保留。
  尽管这次原因并不是基地被摧毁,但只要回城失败,就不消耗卷轴,回城卷轴还在身上,游戏会提示“A unit could not be teleported.”。看,连提示都是暴雪设计好的,以上完全没有利用程序的错误(像熊变身瞬间被状态魔法击中产生各种搞笑效果,那才叫BUG),而是合理使用了暴雪制定的规则。
  【具体细节详解】
  “所选落点900半径内不能落脚”,哪有这么简单就达成?至少,主基地无法做到,因为附近总有空间。从图1可以看到,两个圆有交集,这个交集部分首先要不能落脚,因此可行的地形只能是基地嵌进树林或者靠着水边,这只有NE才能做到。所选落点,也必须是在范围的极限才行,这样第二个圆的边缘才刚好达到基地,只要把基地卡住就行了,如果不选极限落点,基地的前、左、右就算都被地形堵上了,总不能后边也堵上啊,NE基地毕竟不是Terran基地能飞,只要能走到的地方必然有一面没堵,所以必选极限落点。(其实后期补建筑堵上也可以,能有效减小失误率,见下文)然后落点背向基地的一侧必须是无法到达的地形,如高山,悬崖,大海。
  在开始之前,建议把游戏亮度调到1.5以上,以能在阴影下大致分辨生命泉和魔法泉为准。
  Turtle rock上的基地位置及回城所选落点位置:
  首先是最简单的11点位置。新造的基地把金矿上方的一棵树吃掉,卡进角落。回城时选择基地正上方的极限距离。关于极限距离的掌握有一个技巧,基地在白天的视野是900,回城的极限落点距离也是900,白天的视野界限刚好就是回城要选择的地方。而夜晚也难不倒NE,研究夜视就可以了。在地图版边,视野与版边的共同部分会显示为黑影,如图2,选择黑影的最上边就是极限落点!这里需要注意的是尽量选正上方,偏左偏右都可能失败,基地所处的位置是一个“凸”字的上角,偏左则英雄回城出现在左下,偏右则右下。选位置的时候,宁远勿近,先从能点到的最上位置开始,提示不行,再往下挪,直到可以为止。
  [img]http://www.pcgames.com.cn/fight/warcraft/br_zzxd/0608/pic/wx2_thumb.jpg[/img]
  TR 4点位置,吃掉金矿左下方树林的4棵树,向下卡住。而后仍然是在视野界限附近,有一个小岛,点击这里就可以达成真无限回城,但是,这里的严格程度比11点高多了,点高了会回到基地旁边,偏左会直接回城到7级海龟的地方,偏右会回到金矿右边。建议之后补的月井,造到此基地的上边,就可以很好的解决不小心点高一点的问题,基地在树林之中,想出来还可以吃树出来。(在11点不补井,因为补上了那个基地就不能动了,即使对手空军突袭,也只有眼睁睁看着他死,不能吃树不能修)
参考技术A 去搜搜女列流~暗夜建筑学~熊鹿流~NEVSORC.HUM.UD~暗夜内战~暗夜战术~魔兽微操~就在百度里搜~去看看 参考技术B 你用的是什么职业?。。。不过不管是什么职业。只要你引怪引多了就可以影遁。然后就可以脱离战斗了。。暗夜也就这一个好用的天赋。。 参考技术C 人家问的不是WOW 是WC3

适合初学者入门的项目,通过对 Kotlin 的系统运用,实现的一个功能完备符合主流市场标准 App。包含知识点(MVVM 开发架构单 Activity 多 Fragment 项目设计暗夜模式屏幕

fragmject

项目地址:miaowmiaow/fragmject 

简介: 适合初学者入门的项目,通过对 Kotlin 的系统运用,实现的一个功能完备符合主流市场标准 App。包含知识点(MVVM 开发架构、单 Activity 多 Fragment 项目设计、暗夜模式、屏幕录制、图片编辑、字节码插桩)。项目结构清晰,代码简洁优雅。

更多:作者   提 Bug   

标签:

刚开始学习 Kotlin 其实挺痛苦的,相关的书籍或视频偏向于知识点的讲解看完好像还是不会做项目,开源的项目内容太多用来上手实在不合适。
多希望有个代码简单,内容全面,知识详细,快速上手的项目,于是便有了 fragmject 项目。
在此感谢 玩 Android 提供的 开放 API 。

简介

一个入门级的项目,通过对 Kotlin 和 Jetpack 全家桶的系统运用,实现的一个功能完备符合主流市场标准 App。 代码简单,内容全面,知识详细,快速上手,对理解其他项目设计思想和封装技巧也很有帮助。
学习本项目你将有如下收获:

  • Kotlin(函数进阶,泛型,反射,协程...)
  • MVVM(ViewModel,LiveData...)
  • 单 Activity 应用架构(Navigation...)
  • 常用封装(图片选择器、图片编辑器、日期控件、全面屏沉浸、屏幕录制、字节码插桩...)

开发环境

为了您能正常运行本项目,请使用 Android Studio Bumblebee (2021.1.1) 🐝 和 Android Gradle 7.1.2 或者以上版本

Download Android Studio

如果您不方便升级开发工具,请切换至 tag v1.2.6.1

截图展示

项目目录结构

├── app                                  app
|   └── src 
|       └── main 
|       |   └── java                     源码目录
|       |   |   ├── activity             Activity 目录
|       |   |   |   └── MainActivity     项目唯一 Activity
|       |   |   ├── adapter              Adapter 目录
|       |   |   ├── fragment             Fragment 目录
|       |   |   ├── model                ViewModel 目录
|       |   |   └── App                  Application
|       |   |
|       |   └── res                      资源目录
|       |   |   └── navigation           导航图目录
|       |   |
|       |   └── AndroidManifest.xml      配置文件
|       |
|       └── build.gradle                 模块构建配置
|       └── channel                      渠道配置文件
|       └── dictionary                   自定义混淆字典
|       └── proguard-rules.pro           代码混淆配置文件
| 
├── library-base                         基础 library(存放通用封装源码)
|   └── src 
|       └── main 
|       |   ├── assets                   原生文件目录
|       |   └── java                     源码目录
|       |       ├── bus                  消息总线目录
|       |       ├── db                   Database 目录
|       |       ├── dialog               Dialog 目录
|       |       ├── http                 网络请求目录
|       |       ├── provider             ContentProvider 目录
|       |       ├── utils                工具类目录
|       |       └── view                 自定义 view 目录
|       | 
|       └── build.gradle                 模块构建配置
| 
├── library-common                       公共 library(存放各个 module 公用源码及资源)
|   └── src 
|       └── main 
|       |   └── java                     源码目录
|       |       ├── bean                 实体类目录
|       |       └── constant             常量配置目录
|       | 
|       └── build.gradle                 模块构建配置
| 
├── miaow-picture                        图片编辑器模块(目录同 app,不再展开)
├── miaow-plugin                         插件模块
|   └── src 
|       └── main 
|           └── groovy                   源码目录
|           | 
|           └── resources                配置目录
|               └── statistic.properties 插件配置
├── module-user                          用户模块(目录同 app,不再展开)
├── module-wan                           玩 Android 功能模块(目录同 app,不再展开)
| 
├── repos                                插件生成目录
|
├── build.gradle                         项目构建配置
├── config.gradle                        gradle 编译文件 gradle 依赖配置
├── config.properties                    项目配置
├── gradle.properties                    gradle 配置
└── settings.gradle                      项目依赖配置

Kotlin

Kotlin 是一种富有表现力且简洁的编程语言,不仅可以减少常见代码错误,还可以轻松集成到现有应用中。

学习 Kotlin 编程语言

Kotlin 代码示例

ViewBinding

通过视图绑定功能,您可以更轻松地编写可与视图交互的代码。与使用 findViewById 相比,视图绑定具有一些很显著的优点:

  • Null 安全
  • 类型安全

轻松使用 ViewBinding

LiveData

LiveData 是一种可观察的数据存储器类,它具有生命周期感知能力,这种感知能力可确保 LiveData 仅更新处于活跃生命周期状态的应用组件观察者。
并且使用 LiveData 具有以下优势:

  • 确保界面符合数据状态
  • 不会发生内存泄漏
  • 不会因 Activity 停止而导致崩溃
  • 不再需要手动处理生命周期
  • 数据始终保持最新状态
  • 适当的配置更改
  • 共享资源

轻松使用 LiveData

ViewModel

ViewModel 类旨在以注重生命周期的方式存储和管理界面相关的数据。 ViewModel 类让数据可在发生屏幕旋转等配置更改后继续留存。

轻松使用 ViewModel

协程

协程是我们在 Android 上进行异步编程的推荐解决方案。值得关注的特点包括:

  • 轻量
  • 内存泄漏更少
  • 内置取消支持
  • Jetpack 集成

轻松使用协程

MVVM

MVVM(Model-View-ViewModel) 最早由微软提出。ViewModel 指 "Model of View"——视图的模型。

一文看懂 MVVM

Navigation 是 Android Jetpack 组件之一,主要是用于 Fragment 路由导航的框架,通过 Navigation 我们可以设计出单 Activity 应用架构。

一文看懂 Navigation

WebView 优化及 H5 秒开实践

满满的 WebView 优化干货,让你的 H5 实现秒开体验

KVDatabase

基于 RoomDatabase 封装,通过键值对的方式来存储数据,不用再去关心 RoomDatabase 的复杂操作。

快速使用

// 存储数据
KVDatabase.set(key: String, value: String)

// 获取数据
KVDatabase.get(key: String)

SharedFlowBus

基于 SharedFlow 封装的消息总线

SharedFlowBus:30 行代码实现消息总线你确定不看吗

快速使用

// 发送消息
SharedFlowBus.with(objectKey: Class<T>).tryEmit(value: T)

// 发送粘性消息
SharedFlowBus.withSticky(objectKey: Class<T>).tryEmit(value: T)

// 订阅消息
SharedFlowBus.on(objectKey: Class<T>).observe(owner) it ->
    println(it)


// 订阅粘性消息
SharedFlowBus.onSticky(objectKey: Class<T>).observe(owner) it ->
    println(it)

字节码插桩

最通俗易懂的字节码插桩实战 —— 优雅的打印方法执行时间

最通俗易懂的字节码插桩实战 —— 自动埋点

动态权限申请

自己动手撸一个动态权限申请库

图片编辑器

自己动手撸一个图片编辑器(支持长图)

截图展示

接入

第 1 步:在工程的 build.gradle 中添加:

allprojects 
    repositories 
        ...
        mavenCentral()
    

第 2 步:在应用的 build.gradle 中添加:

dependencies 
    implementation 'com.github.miaowmiaow.fragmject:miaow-picture:1.2.6'

快速使用

PictureEditorDialog.newInstance()
    .setBitmapPath(path)
    .setEditorFinishCallback(object : EditorFinishCallback 
        override fun onFinish(path: String) 
            val bitmap = BitmapFactory.decodeFile(path, BitmapFactory.Options())
        
    )
    .show(childFragmentManager)

如上所示:

  1. 通过 PictureEditorDialog 调用图片编辑器
  2. 通过 setBitmapPath(path) 传入图片路径
  3. 通过 setEditorFinishCallback(callback) 获取编辑后的图片地址

如果觉得 PictureEditorDialog 不能满足需求,还可以通过 PictureEditorView 来自定义样式

自定义使用

<com.example.miaow.picture.editor.PictureEditorView
    android:id="@+id/pic_editor"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
picEditor.setBitmapPath(path)
picEditor.setMode(PictureEditorView.Mode.STICKER)
picEditor.setGraffitiColor(Color.parseColor("#ffffff"))
picEditor.setSticker(StickerAttrs(bitmap))
picEditor.graffitiUndo()
picEditor.mosaicUndo()
picEditor.saveBitmap()

如上所示:

  1. 通过 setBitmapPath(path) 传入图片路径
  2. 通过 setMode(mode) 设置编辑模式,分别有:涂鸦,橡皮擦,马赛克,贴纸
  3. 通过 setGraffitiColor(color) 设置涂鸦画笔颜色
  4. 通过 setSticker(StickerAttrs(bitmap)) 设置贴纸
  5. 通过 graffitiUndo() 涂鸦撤销
  6. 通过 mosaicUndo() 马赛克撤销
  7. 通过 saveBitmap() 保存编辑图片

PictureEditorView 就介绍到这里,具体使用请查看 PictureEditorDialog

图片裁剪

<com.example.miaow.picture.editor.PictureClipView
    android:id="@+id/clip"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
clip.setBitmapResource(bitmap)
clip.rotate()
clip.reset()
clip.saveBitmap()

如上所示:

  1. 通过 setBitmapResource(bitmap) 传入裁剪图片
  2. 通过 clip.rotate() 图片旋转
  3. 通过 clip.reset() 图片重置
  4. 通过 clip.saveBitmap() 保存裁剪框内图片

PictureClipView 就介绍到这里,具体使用请查看 PictureClipDialog

主要开源框架

Gitee 镜像

About me

Thanks

感谢所有优秀的开源项目 ^^
如果喜欢的话希望给个 Star 或 Fork ^
^
谢谢~~

以上是关于魔兽暗夜的知识的主要内容,如果未能解决你的问题,请参考以下文章

适合初学者入门的项目,通过对 Kotlin 的系统运用,实现的一个功能完备符合主流市场标准 App。包含知识点(MVVM 开发架构单 Activity 多 Fragment 项目设计暗夜模式屏幕

适合初学者入门的项目,通过对 Kotlin 的系统运用,实现的一个功能完备符合主流市场标准 App。包含知识点(MVVM 开发架构单 Activity 多 Fragment 项目设计暗夜模式屏幕

适合初学者入门的项目,通过对 Kotlin 的系统运用,实现的一个功能完备符合主流市场标准 App。包含知识点(MVVM 开发架构单 Activity 多 Fragment 项目设计暗夜模式屏幕

适合初学者入门的项目,通过对 Kotlin 的系统运用,实现的一个功能完备符合主流市场标准 App。包含知识点(MVVM 开发架构单 Activity 多 Fragment 项目设计暗夜模式屏幕

魔兽副本介绍——哀嚎洞穴

魔兽世界德鲁伊与武僧