魔兽地图汉化新教程第9章:SLK优化地图汉化

经常听到有萌新问,按照 《魔兽地图汉化新教程第1章:工具与拆图》解压地图后:

缺少了下面这些文件:

war3map.w3u 单位名字,描述等
war3map.w3t 物品名字,描述等

war3map.w3h 魔法特效名字,描述等
war3map.w3q 升级名字,描述等
war3map.w3b 可破坏物的名字,描述等。如:箱子

别慌!这个情况90%是因为地图经过了SLK优化。

一、什么是SLK优化(科普环节)

SLK优化 是一种运用在魔兽地图上的最新优化方法之一 。War3中的各种数据几乎都保存在Mpq中,比如技能,技能的各项属性值保存在SLK文件中,而文本说明则保存在txt文档中,在技能数据加载中,War3首先读取SLK和txt中的数据,然后是w3a文件(地图的技能自定义数据)。而w3a的读取速度和SLK以及txt的读取速度是有着相当大的差距的,所以如果能将w3a中的数据转到SLK以及txt文档中,那么对于速度的提升将是相当可观的。而当地图中的文档与Mpq中的文档名字相同时,系统会优先读取地图中的文档,那么在地图中导入这些SLK以及txt文件,那么就能达到我们要的效果了,于是SLK技术就这样诞生了。

引用【SLK优化器】W3x2Lni 的作者actboy168大佬的话:

SLK优化可以大大的加快你地图的读图速度。以全明星战役为例,未SLK化读图需要173秒,而SLK化之后只需要15秒。

二、怎么汉化SLK地图

找到units文件夹,你要翻译的东西都在这个文件夹中的txt文本中:

campaignabilitystrings.txt 技能文本
campaignunitstrings.txt 单位文本
campaignupgradestrings.txt 科技文本
commonabilitystrings.txt 魔法特效文本
itemabilitystrings.txt 物品技能文本
itemstrings.txt 物品文本

三、txt文本中哪些是需要翻译的

以itemstrings.txt 物品文本为例,以下加粗字体即为需要翻译的内容:

[ccmd]
Art=ReplaceableTextures\CommandButtons\BTNScepterOfMastery.blp
Description=Allows mind control of non-Hero units.
Hotkey=C
Name=Scepter of Mastery
Tip=Purchase S|cffffcc00c|repter of Mastery
Ubertip=”Transfers control of the targeted non-Hero unit to the player who uses the Scepter. The transfer of control is permanent. |nCannot be used on Heroes or on creeps higher than level . |nContains charges.

等于号前的都不要翻译。对以上格式进行解读:

[ccmd] //物品代码
Art=//图标位置
Description=物品描述(物品掉在地上,你点击后出现在状态栏的本身描述)
Hotkey=热键
Name=物品名字
Tip=提示信息
Ubertip=鼠标放在物品上的提示文本


Description=物品描述(物品掉在地上,你点击后出现在状态栏的本身描述)
Ubertip=鼠标放在物品上的提示文本

肥羊修罗场_2.5 汉化笔记

网易官方对战平台的肥羊修罗场_2.5b已经将原有的save/load保存加载积分解锁英雄模式调整为开局输入-load识别你的地图等级来解锁相应等级的英雄。如下图:

我当前的平台等级为2
没有输入-load时漆黑之弓是锁定状态(不可选)
输入-load后就可以选择了

一、准备工作

endglobals
     native DzAPI_Map_HasMallItem takes player whichPlayer, string key returns boolean

二、英雄重复购买

function l1lIIII takes nothing returns nothing
call SetPlayerUnitAvailableBJ(GetUnitTypeId(GetSoldUnit()),false,GetEnumPlayer())
endfunction

把上面的false改成true后可以重复购买英雄


三、VIP英雄

function IlllI1I takes nothing returns boolean
if (DzAPI_Map_HasMallItem(GetTriggerPlayer(),"SPECARENA1") == true) then
return true
endif

四、积分系统→等级系统

 set l11I1I=CreateTrigger()
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(0),"-load ",false)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(1),"-load ",false)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(2),"-load ",false)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(3),"-load ",false)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(4),"-load ",false)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(5),"-load ",false)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(6),"-load ",false)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(7),"-load ",false)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(8),"-load ",false)
 call TriggerAddCondition(l11I1I,Condition(function l11IlII))
 call TriggerAddAction(l11I1I,function l11l1II)
function l11IlII takes nothing returns boolean
 if(not(SubStringBJ(GetEventPlayerChatString(),1,6)==GetEventPlayerChatStringMatched()))then
 return false
 endif
 if(not(StringLength(GetEventPlayerChatString())>6))then
 return false
 endif
 return true
 endfunction
function l11l1II takes nothing returns nothing
 set ll11l1=SubStringBJ(GetEventPlayerChatString(),7,StringLength(GetEventPlayerChatString()))
 set ll1Il1=Illl1lI(ll11l1)
 if(l11l11I())then
 set lIIIl1[GetConvertedPlayerId(GetTriggerPlayer())]=1
 set lIl111[GetConvertedPlayerId(GetTriggerPlayer())]=ll1I11[2]
 set l1III1[2]=200
 set l1III1[3]=450
 set l1III1[4]=750
 set l1III1[5]=1100
 set l1III1[6]=1450
 set l1III1[7]=2000
 set l1III1[8]=2500
 set l1III1[9]=3150
 set l1III1[10]=3500
 set l1III1[11]=4000
 set l1III1[12]=4700
 set l1III1[13]=5200
 set l1III1[14]=5750
 set l1III1[15]=6200
 set l1III1[16]=6750
 set l1III1[17]=7150
 set l1III1[18]=7700
 set l1III1[19]=8400
 set l1III1[20]=8800
 set l1III1[21]=9400
 set l1III1[22]=10000
 set l1III1[23]=12000
 set l1III1[24]=14000
 set l1III1[25]=18000
 set bj_forLoopAIndex=2
 set bj_forLoopAIndexEnd=25
 loop
 exitwhen bj_forLoopAIndex>bj_forLoopAIndexEnd
 if(l11IllI())then
 set lIIIl1[GetConvertedPlayerId(GetTriggerPlayer())]=GetForLoopIndexA()
 else
 endif
 set bj_forLoopAIndex=bj_forLoopAIndex+1
 endloop
 set bj_forLoopAIndex=1
 set bj_forLoopAIndexEnd=lIIIl1[GetConvertedPlayerId(GetTriggerPlayer())]
 loop
 exitwhen bj_forLoopAIndex>bj_forLoopAIndexEnd
 call SetPlayerTechResearchedSwap(lIIl11[GetForLoopIndexA()],1,GetTriggerPlayer())
 set bj_forLoopAIndex=bj_forLoopAIndex+1
 endloop
 call DisplayTimedTextToForce(IlI111I(GetTriggerPlayer()),15.00,("你的积分 -"+(I2S((lIIII1[GetConvertedPlayerId(GetTriggerPlayer())]+lIl111[GetConvertedPlayerId(GetTriggerPlayer())]))+(" "+(("等级 - |cffd42424"+(I2S(lIIIl1[GetConvertedPlayerId(GetTriggerPlayer())])+(" |r 下一等级积分 - "+I2S(l1III1[(lIIIl1[GetConvertedPlayerId(GetTriggerPlayer())]+1)])))))))))
 else
 call DisplayTextToForce(IlI111I(GetTriggerPlayer()),"代码加载错误!")
 endif
 endfunction

增加变量和DZapi代码

integer udg_dzdtdj=0

endglobals
native DzAPI_Map_GetMapLevel takes player whichPlayer returns integer

保留原有触发事件

 call TriggerRegisterPlayerChatEvent(l11I1I,Player(0),"-load",true)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(1),"-load",true)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(2),"-load",true)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(3),"-load",true)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(4),"-load",true)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(5),"-load",true)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(6),"-load",true)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(7),"-load",true)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(8),"-load",true)
 call TriggerAddAction(l11I1I,function l11l1II)

删除对代码长度的判断:

function l11IlII takes nothing returns boolean
 if(not(SubStringBJ(GetEventPlayerChatString(),1,6)==GetEventPlayerChatStringMatched()))then
 return false
 endif
 if(not(StringLength(GetEventPlayerChatString())>6))then
 return false
 endif
 return true
 endfunction 

以下是错误的动作写法:

function l11l1II takes nothing returns nothing
     set udg_dzdtdj=DzAPI_Map_GetMapLevel(GetTriggerPlayer())
     if ( ( udg_dzdtdj == 1 ) ) then
         call DisplayTimedTextToPlayer(GetTriggerPlayer(), 0, 0, 10.00, "|cFFFF3333你的地图等级只有1级,只能选择初始的9个英雄!请尽快提升地图等级吧!|r")
     else
         if ( ( udg_dzdtdj == 2 ) ) then
             call AddPlayerTechResearched(GetTriggerPlayer(), 'R00B', 1)
         else
             if ( ( udg_dzdtdj == 3 ) ) then
                 call AddPlayerTechResearched(GetTriggerPlayer(), 'R00D', 1)
             else
                 if ( ( udg_dzdtdj == 4 ) ) then
                     call AddPlayerTechResearched(GetTriggerPlayer(), 'R00E', 1)
                 else
                     if ( ( udg_dzdtdj == 5 ) ) then
                         call AddPlayerTechResearched(GetTriggerPlayer(), 'R00F', 1)
                     else
                         if ( ( udg_dzdtdj == 6 ) ) then
                             call AddPlayerTechResearched(GetTriggerPlayer(), 'R00G', 1)
                         else
                             if ( ( udg_dzdtdj == 7 ) ) then
                                 call AddPlayerTechResearched(GetTriggerPlayer(), 'R00H', 1)
                             else
                                 if ( ( udg_dzdtdj == 8 ) ) then
                                     call AddPlayerTechResearched(GetTriggerPlayer(), 'R00I', 1)
                                 else
                                     if ( ( udg_dzdtdj == 9 ) ) then
                                         call AddPlayerTechResearched(GetTriggerPlayer(), 'R00J', 1)
                                     else
                                         if ( ( udg_dzdtdj == 10 ) ) then
                                             call AddPlayerTechResearched(GetTriggerPlayer(), 'R00K', 1)
                                         else
                                             if ( ( udg_dzdtdj == 11 ) ) then
                                                 call AddPlayerTechResearched(GetTriggerPlayer(), 'R00L', 1)
                                             else
                                                 if ( ( udg_dzdtdj == 12 ) ) then
                                                     call AddPlayerTechResearched(GetTriggerPlayer(), 'R00M', 1)
                                                 else
                                                     if ( ( udg_dzdtdj == 13 ) ) then
                                                         call AddPlayerTechResearched(GetTriggerPlayer(), 'R00N', 1)
                                                     else
                                                         if ( ( udg_dzdtdj == 14 ) ) then
                                                             call AddPlayerTechResearched(GetTriggerPlayer(), 'R00O', 1)
                                                         else
                                                             if ( ( udg_dzdtdj == 15 ) ) then
                                                                 call AddPlayerTechResearched(GetTriggerPlayer(), 'R00P', 1)
                                                             else
                                                                 if ( ( udg_dzdtdj == 16 ) ) then
                                                                     call AddPlayerTechResearched(GetTriggerPlayer(), 'R00Q', 1)
                                                                 else
                                                                     if ( ( udg_dzdtdj == 17 ) ) then
                                                                         call AddPlayerTechResearched(GetTriggerPlayer(), 'R00R', 1)
                                                                     else
                                                                         if ( ( udg_dzdtdj == 18 ) ) then
                                                                             call AddPlayerTechResearched(GetTriggerPlayer(), 'R00S', 1)
                                                                         else
                                                                             if ( ( udg_dzdtdj == 19 ) ) then
                                                                                 call AddPlayerTechResearched(GetTriggerPlayer(), 'R00T', 1)
                                                                             else
                                                                                 if ( ( udg_dzdtdj == 20 ) ) then
                                                                                     call AddPlayerTechResearched(GetTriggerPlayer(), 'R00U', 1)
                                                                                 else
                                                                                     if ( ( udg_dzdtdj == 21 ) ) then
                                                                                         call AddPlayerTechResearched(GetTriggerPlayer(), 'R00A', 1)
                                                                                     else
                                                                                         if ( ( udg_dzdtdj == 22 ) ) then
                                                                                             call AddPlayerTechResearched(GetTriggerPlayer(), 'R00V', 1)
                                                                                         else
                                                                                             if ( ( udg_dzdtdj == 23 ) ) then
                                                                                                 call AddPlayerTechResearched(GetTriggerPlayer(), 'R00W', 1)
                                                                                             else
                                                                                             endif
                                                                                         endif
                                                                                     endif
                                                                                 endif
                                                                             endif
                                                                         endif
                                                                     endif
                                                                 endif
                                                             endif
                                                         endif
                                                     endif
                                                 endif
                                             endif
                                         endif
                                     endif
                                 endif
                             endif
                         endif
                     endif
                 endif
             endif
         endif
     endif
 endfunction

上面的动作写法忽略了源代码中的一段循环,这段循环是给玩家设置N个科技。这样玩家才可以选择等级以下的英雄。所以,我们来尝试正确的写法!

先对地图等级做判断,如果地图等级=1,则直接显示游戏文本。否则用变量捕捉地图等级,再使用循环整数A进行循环,当循环整数A小于地图等级时,执行一次玩家科技动作。全部循环结束后,显示游戏提示文本。
function l11l1II takes nothing returns nothing
   if ((DzAPI_Map_GetMapLevel(GetTriggerPlayer()) == 1)) then
        call DisplayTimedTextToPlayer( GetTriggerPlayer(), 0, 0, 30, "|cffd42424地图等级1级,解锁英雄失败!|r" )
    else
        set udg_dzdtdj = DzAPI_Map_GetMapLevel(GetTriggerPlayer())
        set bj_forLoopAIndex = 2
        set bj_forLoopAIndexEnd = udg_dzdtdj
        loop
            exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
            call SetPlayerTechResearchedSwap(lIIl11[GetForLoopIndexA()], 1, GetTriggerPlayer() )
            set bj_forLoopAIndex = bj_forLoopAIndex + 1
        endloop
        call DisplayTimedTextToPlayer( GetTriggerPlayer(), 0, 0, 30, "|cffd42424解锁英雄成功!|r" )
    endif
endfunction

肥羊修罗场_2.5 装备合成攻略

感谢星幻之城(魔兽争霸官方对战平台ID:Aazurastar)提供的合成步骤!

1、肥羊修罗场森林·皮靴怎么合?

【 森林·皮靴】属性: 移动速度+ххх 敏捷+30 能力:永久隐形。

完整合成步骤:

皮靴 + 海叉 = 林海·皮靴

林海·皮靴 + 海叉 = 隐形·皮靴

隐形·皮靴 + 元素·球 = 森林·皮靴


2、 肥羊修罗场考斯特·铠甲怎么合?

【 考斯特·铠甲 】属性: 防御+40,格挡30%物理伤害,智力+16,450码范围每个尸体XP再生+9点(不超过10),引爆200码范围尸体?

完整合成步骤:

骑士·头盔 + 坚韧·头盔 = 死亡·腰带 (1级)

死亡·腰带 (1级) + 死亡·腰带 (卷轴) = 死亡·腰带(2级)

死亡·腰带(2级) + 木制·盾牌 + 诅咒·盔甲(卷轴) = 诅咒·盔甲

咒语·戒指 + 恢复·指环 + 法杖 + 生命·法杖(卷轴) = 生命·法杖

诅咒·盔甲 + 生命·法杖 + 骑士·暗铠(卷轴) = 骑士·暗铠

骑士·暗铠 + 考斯特·铠甲(卷轴) = 考斯特·铠甲

Read More »

肥羊修罗场_2.5 魔兽地图下载

源图名: Spec Arena源作者:MortNaix

汉化名:肥羊修罗场 汉化者:DarkSheep 协助:昔烊

百度网盘下载链接:https://pan.baidu.com/s/1ECB_cT8BB2ZHrnZON8bIVA
提取码:jx6l

一、地图玩法

默认为生存模式!选择一个英雄,买好生命药剂和魔法药剂,或者装备。别忘记通过能量圈升级科技,一切准备就绪后输入+号。当所有玩家输入+号后 – 游戏提前开始,所有玩家获得额外金币奖励。

二、游戏指令

红色玩家开局常用指令:
-new(守护圣诞树模式)
-nd<1-x> (-nd1是游戏难度1,最高难度是-ndx)
-yntd (有难同当模式,在此模式下所有金币奖励将平分)

红色玩家开局不常用指令:
-one(单人游戏模式)
-<1-5>m (-1m是玩家生命数1,死亡无法复活,以此类推)
-bxyg (不屑一顾模式,在此模式下过关没有金币奖励)

全体玩家常用指令:
+(提前开始,可获得额外奖励)
-cam<2000,2500,3000>(-cam2500,调整视野高度至2000,以此类推)
-tc<1-9>(投票踢掉对应玩家,然后通过-yes和-no进行投票)

全体玩家不常用指令:
-speed(显示移动速度)

三、save/load系统

源地图通过积分来解锁新英雄。每通过一个关卡可以通过-save保存您的积分。积分对应相应游戏等级。游戏等级升级后可以在下一局通过-load解锁新的英雄。

四、关卡敌人

[1]野猪
[2]野狼
[3]豺狼
[4]巨魔
[5]狂暴丛林者(BOSS)
[6]兽人
[7]奴隶
[8]狼骑
[9]统领
[10]刽子手(BOSS)
[11]僵尸
[12]骷髅
[13]法师
[14]食尸鬼
[15]死亡之主(BOSS)
[16]步兵
[17]射手
[18]剑客
[19]骑士
[20]生命之王(BOSS)
[21]弓箭手
[22]女猎手
[23]守护者
[24]树妖
[25]丛林守护者(BOSS)
[26]鱼人
[27]警卫
[28]近卫兵
[29]船员
[30]九头蛇(BOSS)
[31]恶魔
[32]狗头人
[33]血腥武士
[34]地狱之子
[35]巫妖王
[36]树精
[37]魅魔
[38]兽人
[39]元素
[40]冰霜巨人
[41]虚无
[42]刺蛇
[43]德莱尼
[44]河蟹
[45]食人魔法师

五、游戏截图

肥羊镇最后的30分钟_EX.2 dvadv的精灵造塔师攻略

DarkSheep:我大魔羊对付造塔精灵绝对是秒杀的~哼~╭(╯^╰)╮

dvadv:造塔专家是一个极为强力的建筑师(这不代表着你不需要队友),他的塔是很强力的输出单位。他唯一的限制就是贫穷。一个核塔价格为7800。出4到5个核塔意味着已经三万,加上科技的研究等等,极度贫穷说的就是精灵啦。

一、选位篇

防反派的绝对安全,但是反派在EX.2回炉重做了。

打完试炼再建造,不然你的营地会传送出来:)

推荐兽人在其中建造伐木营地(兵营和磨坊),或者人族的伐木

传说中的黑市(转换钱和木


二、脱贫篇

1.找精灵的好盆友——乔先森

推荐造的塔:炮塔升级成的火塔

注:乔掉落的肥羊的左腿和右腿价格为500,二者合一的望远镜价格为0(很遗憾在6.3版本并不能卖钱)

(我最多的一次出了7个望远镜qwq)

2.力量20级试炼

推荐造塔 狙击塔(箭塔-守望塔-远程塔-狙击塔)

一次400+,你还在等什么qwq

注:先造一个塔配合你的英雄打掉石头人,再传送进去起塔刷钱

Read More »

肥羊镇最后的30分钟_EX.2 dvadv的兽族建造师攻略

DarkSheep:上次我见萌新玩兽族建筑师生产了100个苦工伐木深感痛心!告诉你们一个秘密,大G也是可以伐木的。

dvadv:这篇攻略写给兽族建筑师,建筑神教万岁!兽族建筑师是一个较强的建筑师。他不受伐木限制,塔比较强力,兵种也不错。

兽族建筑师的强力道具-寻宝套装(被英雄拿了就算了qaq,毕竟我们不差钱)

寻宝地点

1墓地中的盔甲

2豺狼人废弃泉水处的宝剑

3前哨水果店附近的戒指

4黑龙boss左边的鞋子

5伐木场上方中的斗篷

上述5个都是在木箱中,而第六件位于强盗营地。(巨魔上方的营地)

建筑师可以卡位拿qwq

小鸡过去,然后建筑师传送就行qwq

Read More »

肥羊镇最后的30分钟_EX.2 dvadv的人族建造师攻略

DarkSheep:感谢dvadv的人族建造师投稿!如果你淡泊名利(shou can),宁静致远(hun zi),那么各族建造师一定是你不二的选择!

dvadv建筑神教万岁!


只要弄清楚木材上限,人族建造师非常好上手。人族建造师是发展相当快速的。他的伐木速度无人能比,但是存在一些限制。他的木材储备是有上限的,不能及时使用掉木材,这段时间内所获得的木头就会被浪费。

俗话说:安全生产重于泰山!

一、建筑的安全位置x2

1谷仓上方

2左方伐木场

二、两个简单流派

1、无脑神射手

先等伐木场都升到最高级出了最高级的伐木工人,然后派工人去肥羊圣地造兵营,研究神射手相关科技并出神射手到300人口(可以配一些其他远程兵种当前排)

推荐科技:铁匠铺2个、加点25攻击25攻速

推荐英雄:神射手或狼骑士

推荐装备: 四级装备军团号角,治疗之书,五级装备鲜血钥匙,宁静法杖

评价:打些简单的还行,比如萌新1之类的

及时点铁匠铺中的科技升级,点的及时与否决定着你的兵的强度

Read More »

肥羊镇最后的30分钟_EX.2 小虎牙u的麦迪文攻略

作者介绍:小虎牙u是肥羊镇的骨灰玩家之一,同时也是汉化成员之一。目前地图等级18,排行榜第6。本攻略适合对本图有一定简单了解的新手玩家,希望新来的小羊们能从中获得部分有用的经验。

DarkSheep:学会了这个,你就是肥羊镇的毒瘤!(滑稽)

写于2019年1月Ex.2版本。适用于6.3.3和EXTRA版本。


开局,此处以萌新模式为例

在这里选择守护者(麦迪文)

这是皮肤 +0.5成长属性并增强E技能,不过需要16级经验等级,较难达成。

Read More »

肥羊镇最后的30分钟_EX.2 dvadv的女妖攻略

感谢dvadv大佬为我们带来的女妖专题攻略。

女妖,在6.3版已经很强了。

一、基本介绍

女妖是一个强力的非英雄单位,它可以占据绝大数的怪物。(当然,那些魔免的肯定不行,boss貌似12级狗头人可以占据)而在这个版本它的回魔大大提高,非常容易上手。

二、如何发展(以萌新难度为例)

怪物选择:1级老鼠,3级青岩傀儡,5级贪婪的雪怪(红),8级幽魂(进攻怪),后面随意,等到10级一般很好发展的。

Read More »

2005.08.18 回忆の天空

把回忆留给天空,它是我的宝盒。­

从那以后,我不再怀念以前了。累了看看窗外的天,回忆在天空挥洒着最大的画笔,赐给我快乐。往后的天空多了几分色彩,白中带蓝,黄中带微红。天空似乎也显得快乐起来了。­

把回忆留给天空保存,这是我的选择!­

无论晴天还是阴天,她永远这么宁静,这么单纯,不为任何风霜雨雪所撼动。也许正是这片天空,才使我跟她同样的简单;也许正是这片天空,才使我对生命中的挫折有了新的见解;也许因为这片天空,才使我的回忆也有了一片天空。­

抬头仰望天穹,无边的天空中,白云悠悠,我的回忆在闪烁……­



不要去忘却,去回忆吧!任何回忆都是无罪的。之所以产生不同是因为你心。用客观的心看问题,你会发现一切都是矛盾而不矛盾的。

2005.08.18 守候冬季

那整整一冬季
我默默地守候
那份穿越时空的孤独
却不知它已尘封多久
但是我还是憧憬
寂寞无人的深夜
一个人躺在滨江的草坪上
一个人欣赏着浩淼的星空
一个人守候着寂寞的冬季
千年的思念
冬季的执着
我愿意守夜而歌
愿为你而歌

10年前的自评:
我发现自己写冬季的文字很多,也许冬天真的有很多回忆吧。
一个人躺在滨江的草坪上 
一个人欣赏着浩淼的星空 
感觉好孤独,我也希望和朋友一起啊。可是他们都面临升学压力啊,你愿意吗?

肥羊镇最后的30分钟_EX.2 dvadv的基础攻略

攻略作者:dvadv

写在前面,这是一篇极为基础的攻略。———dvadv

作者介绍:

截止2019年1月14日网易魔兽官方对战平台排名第2.

一、装备与道具

你需要选择一些基础道具进行开局,初始状态下你拥有2000金币,做出你的选择!

1、道具类

在杂货铺中有便宜的吸血面具,坑钱的(对, 你没看错)属性书等各类道具

一般推荐的是经验书,这会加快你的经验获取速度,更快的发展

2、传送类

传送道具是肥羊镇一个必不可少的道具。在泉水附件有一个麦迪文模型的人物出售这些道具。

初始状态你会自动携带一个传送道具,但其cd较长不推荐使用。我用的较多的是增强型传送权杖(图中第二个权杖),推荐使用。

除传送外,你还可以使用-isp快速回城补给或避难。(但是试炼在30分钟后会无法使用)

3、装备类

装备共有7个等级(目前来说),1级为基础装备,不能合成。2-4级装备可以进行同级合成获得3-5级装备。

基础装备(1级装备)

在泉水附件铁匠铺模型直接可以购买,值得一提的是基础物品是可以原价出售的。

2-5级装备

2-5级装备可以直接在物品转换器处购买。

在物品转换器中,你可以对你的装备进行转化(同级随机),合成(两件同级装备合成随机下一级),也可以购买(2-5级均可)。

另一个获取途径是打boss,boss掉落随机(特别的几个除外)。通常来说15级掉落2级装,20级掉落3级装备,以此类推。

注释

1、boss方位见百度贴吧冷冷先生写的boss方位图:https://tieba.baidu.com/p/5876259435(虽然是6.26版,但是后面地形没怎么改)其中15级的boss除了强盗难打都比较好打。树人一直都很好打。都打过的话,emm试炼/守前线/打野(也许还能摸鱼??)

2、2+级,3+级,6级,7级等装备获取方法萌新基础篇不予说明。

3、善待你的物品转化器,不要拿传送权杖等物品折磨它~

二、萌新英雄推荐

民兵(娱乐英雄酒馆)

死守前哨,等到50级,你就会很快乐。但是有些你需要解决的问题,比如前期的回魔等。推荐解决办法速度到20级,打20级的智力试炼。快乐带兵吧,民兵。

  1. 试炼区域进入:输入-isp即可
  2. 前线的保卫

三、保卫前哨和军港的重要性

随着游戏时间的推移和随机事件的发生(不存在总表的,我懒的弄),前30分钟怪物进攻的力度会越来越大。而如果前线过早的丢失,你可能在前30分钟就会遇到大冰龙(不是随机事件的那两只)和地狱火等强力怪物的进攻。而圣地的血量也是与前哨和港口的存活时间有关,存活时间越久,圣地的生命越多。

 前哨英雄推荐:巫医,神射手等等(其他的英雄也能守,只是不去打boss可惜了)

在三座基地里都有出售回血回魔药水的水果店(烤肉是喂熊的,萌新最好别养,你恐怕养不起2333)

注释:

1熊位于港口基地,英雄带一块烤肉即可触发

2怪物的升级机制不予说明

3在地图的右上角有一个黑色的人,英雄传送过去即可触发国王的死亡骑士。而在其下面的区域有一个魔法师,英雄传送过去所有人加500金币和百分之5的金币获取率

4金币获取率就是在原有的赏金上增加获得的赏金,输入-i即可查看