魔兽世界F大教程:如何使用IreCore比较装备,使用IreCore比SimC装备对比插件快了20倍,这对于魔兽专业玩家对装备评价十分有必要的,F大作为多年来在战士领域有着较高人气的玩家,对战士的帮助也是有目共睹的,希望IreCore可以帮助到大家。
前言:IreCore vs SimC
这是一个仿照ew[[教程]如何使用SimC比较装备] 编写的东西,也用作IreCore的简单说明书推广我的最新成果,为大家带来极速的模拟体验。
所以可以对照ew的原贴来看,效果更佳。
为什么要用IreCore?
快。每次谈到这个问题,我总会强调:IreCore比SimC快20倍。
准确。IreCore是完备的模拟器!现在有着不输于SimC的模型精度,另外它独有的架构使急速属性相关的计算精度提高了很多。
支持。由于语言不通,很少有人会去联系SimC的开发者。而IreCore是我独自开发的,每一行代码都是我自己动手编写,你有任何问题都能找到我。
在设计上IreCore尽可能地贴近了SimC的设计,所以如果你用过SimC,在使用IreCore的时候你会有一种亲切的感觉。
安装配置IreCore会比SimC复杂很多,但一旦成功运行,以后你几分钟一次的模拟计算耗时将会缩短到几秒钟,这种感觉还是非常刺激的!
一、安装和配置
因为现在我只发布Windows的版本,所以这里也只说Windows。
1.下载
在[这里]下载IreCore。每次我发布新版本,这个页面会自动更新到最新,所以不必担心版本问题。
在页面里点箭头指向的链接,就可以下载到压缩包了。
解压缩到任意位置,例如“E:working_dirrelease”。你会得到5个文件和1个文件夹。
2.配置环境
依据你的CPU制造商,访问[英特尔]或[AMD],下载环境。
这里分别有允许IreCore运行在CPU和核心显卡上的环境。当然,CPU是更强大的。我们希望获取CPU支持,点击图中标注的链接,然后在跳转到的位置上找到Download按钮下载。
Intel的网站下载速度非常慢,我将15.1版上传到了百度网盘里:。
农企要倒闭了,现在只有开发工具包,没有用户环境,所以用户需要和开发者一样安装开发工具包。是不是听起来很麻烦?
按农企工作人员的说法,如果你安装了Catalyst显卡驱动,就会有CPU的环境。但是人家用的是AMD CPU没有显卡,或者用NV的卡怎么办?农企能搞成这样也真是让人服服服。
没有办法,如果你正确安装了Catalyst显卡驱动,这一步应该就跳过了。如果你的机器不能安装Catalyst,那么你只能通过上面给的链接,去安装AMD APP SDK。
32位系统选择AMD-APP-SDK-v2.9-1.599.381-GA-Full-windows-32.exe,64位系统选择AMD-APP-SDK-v2.9-1.599.381-GA-Full-windows-64.exe。
3.测试环境
回到你解压后放置IreCore主程序的文件夹,例如“E:working_dirrelease”,其中包含了主程序irecore.exe。
按住Shift键,同时在文件夹的空白处单击鼠标右键。这时弹出的菜单中应有一项“在此处打开命令窗口(W)”。选择它,会打开一个黑色的命令行窗口。
在命令窗口中输入命令:irecore list_available_devices=1,回车。如果环境安装正确,你应该能够看到GPU、CPU分别列出,部分用户还能看见自己的核心显卡。
二、设计人物
好了,如果你成功地看到了CPU,那么留下那个命令窗口别关掉,我们稍后的计算都用它来完成。
打开profile文件夹,里面有一个文本文件“ic_tg_t17m.txt”,其中描述了一个T17M级别的泰坦狂暴,也就是对应SimC的“Warrior_Fury_2H_T17M.simc”。
你可以将它复制一份,用来作为你自己的人物的模板。
种族
使用race参数指定种族。例如“race=tauren”表示牛头人。
可用的种族和他们的名称:
没有种族 none
人类 human
矮人 dwarf
侏儒 gnome
暗夜精灵(白天) nightelf_day
暗夜精灵(晚上) nightelf_night
德莱尼 draenei
狼人 worgen
兽人 orc
巨魔 troll
牛头人 tauren
亡灵 undead
血精灵 bloodelf
地精 goblin
熊猫人 pandaren
天赋
使用talent参数指定天赋。天赋是用连续7位数字表示的,左边的数字表示低层天赋,右边的表示高层天赋。如果不足7位,按右边对齐。
0表示此层天赋不选,123分别代表选左中右。真正对DPS造成影响的,只有3、4、6、7四层天赋。
例如“talent=1321321”表示猝死-锤子-浴血-掌控。
团队Buff
使用“raidbuff_all=1”或“raidbuff_all=0”可以一次性开启/关闭全部团队Buff(除全能以外,因为游戏内你点不掉自身的全能Buff)。
单项控制选项:
属性 raidbuff_str
攻强 raidbuff_ap
法强 raidbuff_sp
爆击 raidbuff_crit
急速 raidbuff_haste
精通 raidbuff_mastery
溅射 raidbuff_mult
全能 raidbuff_vers
耐力 raidbuff_sta
合剂 raidbuff_flask
食物 raidbuff_food
药水 raidbuff_potion
嗜血/英勇 raidbuff_bloodlust
全能Buff默认一直存在,除非使用单项控制选项“raidbuff_vers=0”强行关闭全能Buff。
合剂默认250力量,食物默认125爆击,药水默认1000力量,不支持修改。
板甲专精
如果你全身装备的都是板甲,那么你应该设置“plate_specialization=1”开启板甲专精。
不设置则默认你没有穿齐装备或者有跨甲现象。
怒气上限
如果用了雕文,设置“rage_max=120”,否则设置“rage_max=100”。
侏儒还有额外的怒气上限,别忘了也设置在这里。
武器
分别描述两把武器。“mh_low”和“oh_low”分别是主手下限和副手下限,“mh_high”和“oh_high”分别是主手上限和副手上限,“mh_speed”和“oh_speed”分别是主手速度和副手速度,这些直接赋值武器说明上标的数字就行了。
“mh_type”和“oh_type”是武器类型,可用的类型有三种:双手武器“2h”,单手武器“1h”,匕首“dagger”。
“mh_enchant”和“oh_enchant”是武器附魔,可用的附魔有四种:没有附魔“none”,雷神之印“thunderlord”,血环之印“bleedinghollow”,碎手之印“shatteredhand”。
特效
特效包括卡德加的戒指以及套装效果。套装效果现在只支持T17。
大法师的灼热(690):“archmages_incandescence=1”
大法师的炽燃(710):“archmages_greater_incandescence=1”
T17两件套:“t17_2pc=1”
T17四件套:“t17_4pc=1”
装备属性
使用gear_str、gear_crit、gear_haste、gear_mastery、gear_mult和gear_vers来描述装备属性。
由于IreCore不使用游戏数据库,所以你需要提供装备上的属性量之和,而不是提供每一件装备的名称和ID。这是IreCore和SimC的一项区别。
装备属性量之和即你的所有装备的标签上标注的常驻属性相加,包括宝石附魔。在这里,获取装备属性量之和有两种办法:
1. 累加
既然是相加,那么就加嘛。打开游戏,角色界面,依次把装备的属性量加在一起。不需要计算器!IreCore提供了累加语法(累加“gear_属性 =数量”,累减“gear_属性-=数量”)。
我们用两件装备来举例说明:
黑手的头盔 279力量 163爆击 199溅射
护椎项圈 157力量 106爆击 102急速 附魔 75爆击 宝石50爆击
我们只需要写:
gear_str =279
gear_crit =163
gear_mult =199
gear_str =157
gear_crit =106
gear_haste =102
gear_crit =75
gear_crit =50
这样就完整描述了这两件装备。你依此描述所有装备,IreCore会负责将装备属性累加在一起。
请注意,黑石铸造厂 5装等的修正还没有体现在英雄榜上,所以请用游戏内人物界面或者第三方数据库查询物品属性,不要用官方英雄榜。
2. 利用SimC
如果你刚刚用SimC导入过你的角色,那么工作就很简单了。SimC自动为你生成的配置文档中,底部有一段注释:
# Gear Summary
# gear_ilvl=700.94
# gear_strength=4313
# gear_stamina=5244
# gear_crit_rating=2148
# gear_haste_rating=751
# gear_mastery_rating=1504
# gear_armor=2287
# gear_multistrike_rating=478
SimC已经帮你完成了装备属性的累加!这正是我们需要的。把他们复制过来,然后稍加修改。
去除我们不关心的属性(ilvl,stamina、armor),并且将属性名改成缩写:
gear_str=4313
gear_crit=2148
gear_haste=751
gear_mastery=1504
gear_mult=478
这样就可以了。
饰品
饰品的常驻属性也计算在装备属性当中,所以如感染孢子瓶这样的纯常驻饰品,就不需要再加以特别描述。
而带有特效的饰品,需要在这里特别描述一下它们的特效。格式为:
# 饰品1:没有饰品特效
trinket1=none
# 饰品2:饰品名字,触发量
trinket2=饰品名字,value=触发量
例如我们有700抽搐暗影之瓶(使用2033溅射)和700熔炉主管的徽记(触发181溅射每层),我们应该描述为:
trinket1=vial_of_convulsive_shadows,value=2033
trinket2=forgemasters_insignia,value=181
支持的饰品和饰品名称列表:
抽搐暗影之瓶 vial_of_convulsive_shadows
熔炉主管的徽记 forgemasters_insignia
尖啸之魂号角 horn_of_screaming_spirits
奇亚诺斯的剑鞘 scabbard_of_kyanos
PVP主动使用饰品 badge_of_victory
PVP被动触发饰品 insignia_of_victory
泰克图斯的脉动之心 tectus_beating_heart
威凌之牙(要塞开出来的) formidable_fang
炼金石 draenic_stone
战争之颅 skull_of_war
活体之山微粒 mote_of_the_mountain
优先级
从612.1-12版开始,IreCore加入了新的选项“default_actions”。
设置“default_actions=1”,这样IreCore会自动根据你的天赋选择、饰品和种族生成优先级。
其他杂项控制
opencl_device_id:指定一个计算设备,推荐使用你的CPU。
在上一部分的末尾,我们使用list_available_devices列出了可用设备列表,并为设备编了号。这里指定设备的编号。
例如我的截图中显示CPU是“Device 1”,所以我加入选项“opencl_device_id=1”令IreCore执行在我的CPU上。
iterations:和SimC相同。指定模拟实验重复的次数,默认值是50000。设定太大可能会导致运行失败。
calculate_scale_factors:如果设置为1,IreCore会计算力量、爆击、精通、急速、溅射和全能的属性权值。
max_length、vary_combat_length:控制战斗时长的选项。与SimC相同。
initial_health_percentage、death_pct:分别是战斗初始时Boss血量百分比,以及Boss死亡时血量百分比。与SimC相同。可以用这两个选项模拟纯斩杀或无斩杀战斗。
output:指定输出报告的文件名。如果指定了报告,结果将不再显示在命令行窗口中。
rng_engine和deterministic_seed:RNG选项,一般用户不需要控制。
供高端研究者:可用的RNG有三种,"lcg32"、"mwc64x"、"mt127"。质量依次提高,速度依次降低。默认为lcg32。
编写完配置文档之后,输入命令irecore后面接文档的路径即可执行。
另外,文档中的每一行参数,都可以单独输入到命令当中,效果是一样的。
例如我的文档是“profileic_tg_t17m.txt”,我还要额外添加一个选项“opencl_device_id=1”,我就可以执行命令:
irecore opencl_device_id=1 profileic_tg_t17m.txt
这和将“opencl_device_id=1”写入配置文档的效果是一样的。
执行后你会得到三个结果:DPS,DPS范围(样本标准差)以及DPS误差(95%置信度)。
三、计算属性权值
简单地加入“calculate_scale_factors=1”选项即可自动计算属性权值。例如仍用刚才的文档,添加选项后命令为:
irecore opencl_device_id=1 profileic_tg_t17m.txt calculate_scale_factors=1
同样地,也可以将“calculate_scale_factors=1”写入配置文档当中。
运行后你会得到关于属性权值的报告
这就是权值结果:
力量 6.1
爆击 4.5
急速 4.3
精通 4.2
溅射 4.0
全能 3.6
后面的数字代表误差。例如力量权值6.14857,误差0.167599,那么说明有95%的置信度确定力量权值位于5.980971~6.316169之间。
如果误差太大,不能确定哪个属性更优,那么你可以提高iterations,相应地误差范围就会缩小。
四、对比普通装备
如果你想对比的是一件普通的装备,只有属性总量发生了变化,不涉及特效的变更,那么这个过程会非常简单!
这里我们举例,将装备A(150力量,97爆击,85精通)换为装备B(150力量,100爆击,82急速)。
IreCore使用一种称为Stat Set的系统来管理模拟任务。在描述完你的角色后,这个对比只需要三步:
1. 暂存当前角色状态
在设计角色编写配置文件的时候,按照装备了装备A的状态来写。写好之后,在配置文件的末尾,添加一个选项:
push_stats=装备A
IreCore会暂存角色现在的属性量。
2. 替换装备
由于装备A换为装备B只有爆击、精通和急速发生了变化,所以我们可以使用累加累减语法来方便地调整属性。继续向配置文件的末尾续写:
gear_crit-=9
gear_crit =100
gear_mastery-=85
gear_haste =82
3. 再次暂存当前角色
再暂存一次作为对比,在末尾续写:
push_stats=装备B
运行后结果是这样的:
装备A的DPS是49108.5,装备B的DPS是49131.5,所以装备B可能会更好。
五、对比饰品/更复杂的情形
如果更换的装备导致你获得/失去某些特效,比如失去了板甲专精或者失去了T17四件套效果,或者更换了饰品,或者你想更改天赋/种族……只要是除属性以外的内容发生了变化,
那么Stat Set系统就无力处理了,你需要重新编写第二份配置文档,然后分别运行它们。
为什么必须另写文档?
为了获得最高的运算效率,除装备属性量和RNG种子之外,其他所有模拟参数都是在内核编译期就确定了的。
所以直至目前版本,这些参数在确定之后,整个IreCore进程运行期间都无法修改它们。
所以你需要运行两次或多次IreCore来模拟不同的参数。
推荐使用“default_actions=1”来让IreCore自动控制动作优先级列表。这样在你更换了主动使用饰品后,IreCore会按照内置的策略来自动使用它们,无需另行控制。
疑难解答
我不想看到命令行窗口……
推荐使用命令行,因为在命令行当中你可以看到更多的信息。
但有一种办法可以避免看到命令行界面。
将你的所有参数全都写入配置文档。并且,你需要指定“output=报告名称.txt”参数,否则你是看不到计算结果的。
然后在Windows资源管理器里,将配置文档拖拽到irecore.exe图标上,然后松手。
这样命令行窗口会暂时打开,计算,然后自动关闭。结束后,在你指定的位置就出现了报告文件,你可以阅读报告来看计算结果。
出现错误“显示器驱动程序已停止响应,并且已恢复”,或者出现蓝屏,错误代码`0x00000116` `0x00000117`
你一定是在使用Win7或更早的系统,而且你在使用GPU进行运算。现在GPU支持只作为备选项,在其上运行仍会遇到很多麻烦。
对于日常应用,你应该使用“opencl_device_id”选项将IreCore指派到CPU上。