Untrusted 通关攻略 - 推酷
Untrusted 通关攻略
今天早上刷微博的时候看到 @fakefish 分享了一个游戏微博,游戏的名字叫做《Untrusted》,通过修改JS代码来通关的游戏,作者把游戏代码托管在了
上,游戏地址在
这关简单,移动玩家对象@先拾取?然后移动到出口就好了。
这关看着挺吓人的,路都被#号给各种拦着了,但是其实读一下代码发现也就那么回事。13行的
new ROT.Map.DividedMaze(map.getWidth(), map.getHeight())
负责根据地图大小生成迷宫,30行到33行在出口的四个方向生成了#号阻拦我们。看着其实挺恐怖的,但是其实我们只要开辟一个新思路不移动@对象到出口而是把出口移动到对象边上就好了。
当然没办法移动现有的这个出口了,我就尝试着再新建了一个出口在@的旁边。
map.placeObject(7,6,'exit');
,一次性成功!
这一关#栅栏把@和出口给隔开来了,首先想到的是把生成#栅栏的代码删除掉。但是很不幸的是过关验证函数
validateLeve()
上清楚的写着一定要有一定数量的栅栏才行。所以我们转变思路,用栅栏把@和出口都包括进去就好了。为了方便我就直接生成在了边缘了。
for (y = 0; y &= map.getHeight(); y++) {
map.placeObject(0, y, 'block');
map.placeObject(map.getWidth(), y, 'block');
for (x = 0; x &= map.getWidth(); x++) {
map.placeObject(x, 0, 'block');
map.placeObject(x, map.getHeight()-1, 'block');
这一关和上一关的感觉是一样的,应该可以抄袭上一关的代码。不过你仔细读代码的话会发现比上一关少了过关验证函数。所以我这里就取巧用了第二关的方法,用
map.placeObject(map.getWidth() - 5, map.getHeight() - 5, 'exit');
在@对象旁边新建了一个出口。
初看血红的图像可能还觉得兴奋,觉得直接移动过去就好了。不过仔细一看代码你就会发现不是那么回事。代码随机在地图上生成了75个看不见的
对象,不能触碰到它,否则就Game Over。
要越过无形的东西只要让它现行知道它的方位避开它就好了,所以我们可以用
map.setSquareColor(x, y, '#000')
给他们都附上一个颜色。
这一关就比较高级了,有一个攻击者来守护出口,并且会跟随你的步伐靠近你并杀掉你。我的第一想法比较简单,就是建议一个横向屏障让其无法靠近我,不过为了能让自己到达出口位置,我设置了一个空的出口。
for(var x = 0; x & map.getWidth()-3; x++) {
map.placeObject(x, 11, 'block')
这一关有一个***符号,吃了它就可以在移动过程中执行回调函数。在过关路上有不同颜色的障碍物,如果@对象颜色和障碍物的颜色不一样就不允许通过。结合以上两个消息,得到的解决办法是通过一次障碍物前用***回调函数进行一次“变装”就好了,为了方便我直接指定了在障碍物的前一个位置进行“换装“。
if(player.atLocation(24, 12) || player.atLocation(33,12))
player.setColor('#f00');
if(player.atLocation(27,12) || player.atLocation(36,12))
player.setColor('#ff0');
if(player.atLocation(30,12))
player.setColor('#0f0');
到这里就成功进入第二章了!这一关出现了一片一片的绿森林,不幸的是路被他们给挡住了。可供我们修改的代码也非常有限,仅仅只能修改101行的几个字符。可以看到
functionList
是一个函数组成的数组,看代码的意思应该是让我们给***回调函数指定一个
functionList
里面设置好的函数。
理解一下后我们就能想到利用***回调函数执行重新生成森林的代码,这样每次@对象旁边的道路就会“开辟”出来。
哈哈这关做的很漂亮,乘船过河的说。这里我们发现可以自定义对象,
参数提醒了我们可以通过设置这个参数让@对象穿过自己。所以我另辟蹊径,自己创建了一个可以通过的通道。
map.defineObject('boat', {
'type': 'dynamic',
'symbol': '?',
'color': '#420',
'transport': true, // (prevents player from drowning in water)
'behavior': function () {}
for (var y = 5; y & 15; y++) {
map.placeObject(1, y, 'boat');
这一关有各种攻击者挡住你的去路。因为可以自定义各个攻击者的行为函数,所以我这里的想法是让攻击者自动让出一个通道出来。
map.defineObject('attackDrone', {
'type': 'dynamic',
'symbol': 'd',
'color': 'red',
'onCollision': function (player) {
player.killedBy('an attack drone');
'behavior': function (me) {
if(me.getY() == 12) me.move('left')
if(me.getY() == 11) me.move('down')
map.defineObject('reinforcementDrone', {
'type': 'dynamic',
'symbol': 'd',
'color': 'yellow',
'onCollision': function (player) {
player.killedBy('a reinforcement drone');
'behavior': function (me) {
me.move('down');
map.defineObject('defenseDrone', {
'type': 'dynamic',
'symbol': 'd',
'color': 'green',
'onCollision': function (player) {
player.killedBy('a defense drone');
'behavior': function (me) {
if(me.getX() == map.getWidth() - 10)
if(me.getY() == 12) me.move('right')
if(me.getY() == 11) me.move('down')
同样是控制对象的运动行为,需要良好的控制R机器人拿到K钥匙并交给@后才能顺利通关。这里比较简单,只要让R在能右的时候往右走不能右走的时候往下走就好了,然后@在门口静候机器人送钥匙过来就好啦。
me.canMove('right')?me.move('right'):me.move('down')
哈哈,和上关以一样,不过高级了一点增加了两个阻碍物。解法是一样的,看个人的控制情况了,我的想法比较简单,就是左边的话是能下就下不能下就右,右边就是能上就上,不能上就右。
if(me.getX() & map.getWidth() / 2 || me.getX() == map.getWidth() - 2)
me.canMove('down') ? me.move('down') : me.move('right')
me.canMove('up') ? me.move('up') : me.move('right')
这一关在上一关的基础上又更上一层楼,出了个迷宫般。开始我绞尽脑汁想怎么让机器人自动出来的算法,不过想来我是实在没有那个本事了。后来突发奇想,既然之前的关卡中有攻击者对象根据@对象的操作做出反应,那么我也可以通过@对象来控制机器人咯?所以我比较简单的设置了一个上下左右四个位置,只要@在这个位置上就做出对应的操作。不过作者的Github项目里面收录了各种机器人自动和人工控制的算法,比我这个好用多了,大家可以去欣赏一下:
这关自己的代码太dirty了就不放上来了
这一关很简单,就是用同颜色的钥匙开同颜色的锁,然后最终拿到A并过关的意思。可以操作的地方不多,一看就是让我们设置当开绿锁的时候我们应该把哪把钥匙献上。要么是
自己肯定是不可能了。通过实验你会发现***是
这一关我也想了很久,同样是过河,但是比之前那关少了一条船,最重要的是可以修改代码的地方不多。我想了一下觉得既然在行为中player被killed了那我就可以再新建一个player了,然后我填写了
map.placePlayer(map.getWidth()-2,map.getHeight())
这个代码后成功了,但是并不是我想的一样。大概是因为新建了Player然后直接跳到了Player的判定而跳过了Kill的操作了。
这关是随机新建了25个无形的墙壁(你还不能删除这些墙壁,因为
validateLeve()
函数有验证),每个墙壁有一个颜色如果@对象的颜色和墙壁颜色不同的话就会被撞,相同就会通过。
由于作者非常好像的给出了一部分代码让我们通过
将无形的墙壁变的有形,大大的降低了问题的难度。所以我们只要让无形的颜色变成有形的颜色,在通过墙壁之前“换装”成相应的颜色就好了。换装同样是用***回调函数,不过因为不知道怎么获取最近的墙壁的颜色,我选择的是在墙壁的颜色(总共3个)随机,最多只要点两下就会粗来正确的颜色了。
function createLaser(centerX, centerY, angleInDegrees, length, color) {
var angleInRadians = angleInDegrees * Math.PI / 180;
var x1 = centerX - Math.cos(angleInRadians) * length / 2;
var y1 = centerY + Math.sin(angleInRadians) * length / 2;
var x2 = centerX + Math.cos(angleInRadians) * length / 2;
var y2 = centerY - Math.sin(angleInRadians) * length / 2;
// map.createLine() creates a line with an effect when
// the player moves over it, but doesn't display it
map.createLine([x1, y1], [x2, y2], function (player) {
if (player.getColor() != color) {
player.killedBy('a ' + color + ' laser');
// using canvas to draw the line
var ctx = map.getCanvasContext();
ctx.beginPath();
ctx.strokeStyle =
ctx.lineWidth = 5;
ctx.moveTo(x1, y1);
ctx.lineTo(x2, y2);
ctx.stroke();
player.setPhoneCallback(function(){
var colors = ['red', 'yellow', 'teal'];
colors.filter(function(color){
return player.getColor() !=
player.setColor(colors[parseInt(Math.random()*(colors.length-1))]);
这关大概的意思是每个紫色的出口都是传送门,但是你不知道你是传送到下一个传送门还是荆棘中。所以我们的目标是让传送到传送门的传送门给我们现实出来,这里我利用上一关刚学会的
做标记操作。
if(t1.getType() == 'teleporter' && t2.getType() == 'teleporter') {
var t1p = map.getCanvasCoords(t1);
canvas.strokeStyle = 'green';
canvas.moveTo(t1p.x, t1p.y);
canvas.lineTo(t1p.x+5,t1p.y+5);
canvas.stroke();
这一关是让我们编写一个
回调函数让@跳过&悬崖&抵达出口。不过我们如果真的被
这个词给迷惑住了的话可能真的会想一会儿。我看了一下***回调函数中执行
函数的条件是当@对象下面不是空,那就是立即可以执行了(初始状态下面是#号不是空)。所以我直接在悬崖上架了一座桥让@“跳”过去。
function jump() {
for(x = Math.floor(w/2)-5; x&Math.floor(w/2)+5; x++) {
map.placeObject(x, Math.floor(h/2), 'block');
这关没怎么理解真谛,大概的意思是让红色和绿色的@碰到一块吧,反正我随便左右上下左右上下的按了一通就过去了。不过有大牛看出了前因后果,我摘抄一下:
19 巨坑爹的一关 我居然认真的读了该主页 并且认为一个玩TCS 的副教授人搞人机交互 以及 UI 毫无不妥。毕竟高德纳不也写了LATEX嘛。。 然后看到它把Lorem 放上去还觉得很有艺术性。。 然后觉得这哥们的姓很有特色 居然叫Eval 天生搞计算机的命啊。。。 然后我就去搜了一下 没找到 paper 才意识到被蒙了。 。。。。。。 忒缺德了。 欺负老实人啊。。。。
总之。。 这是个抓虫子 游戏 网页本质上是一个 递归组合 也就是 盒子里面套盒子 按上会走到 外面的盒子 按下 会进入里面的盒子 按左右会 走到 并列的盒子 操纵绿色符号追击红色符号 策略就是 首先走到根盒子 然后看红色在哪个盒子 就进入哪个盒子 尽可能地 在它外面的盒子 然后 慢慢接近它 很容易就抓到了。。
这一关是天降毒雨,我们必须顶着毒雨和上面的BOSS作斗争,消灭所有的BOSS之后拿到A之后才能通关。这关我想了很久,然后在我翻API的时候突然发现有
map.overrideKey
这个函数,可以复写一个方向键的回调函数,解决了我想了半天没办法触发的问题。然后我们只要做向上发射的子弹去消灭BOSS就好了。这里因为我们要往右上下移动,所以我选择复写了左方向键。
map.defineObject('arrow', {
'type': 'dynamic',
'symbol': '↑',
'color': 'green',
'interval': 100,
'projectile': true,
'behavior': function (me) {
me.move('up');
function shoot() {
for (x = 0; x & map.getWidth(); x++) {
map.placeObject(x,12,'arrow');
map.overrideKey('left', shoot);
这一关是耗费我最久的一关了,什么阻碍都没有,然后你也不可以操作代码,但是就是没法过关。看代码的原因应该是
map.finalLevel
这个值变成True了表示最后一关,所以就没办法再下一关了。
最后搜索了一下发现原来Menu界面下可以插件scripts文件夹,就是游戏的源码了,而且可以修改的说。进
对象的行为判断函数,把
if(!map.finalLevel){}
去掉就好了。
这一关是作者的谢幕,至此全部通关。
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致U9论坛欢迎您,有任何疑问均可以发帖咨询!
看一看U9会员都在讨论什么~
欢迎关注游久网电竞专区。
查看: 9130|回复: 6
节操0 绿叶0 注册时间在线时间4 小时阅读权限10精华0主题听众数最后登录KPI值0
见习会员[初], 积分 288, 距离下一级还需 32 积分
UID帖子U9币1 魅力6 声誉5 U菜花0
求一个详细的通关攻略,谢谢!
节操0 绿叶0 注册时间在线时间4 小时阅读权限10精华0主题听众数最后登录KPI值0
见习会员[初], 积分 288, 距离下一级还需 32 积分
UID帖子U9币1 魅力6 声誉5 U菜花0
自己打了几天都没通关,求大神指导,详细一点。
节操3 绿叶0 注册时间在线时间17 小时阅读权限15精华0主题听众数最后登录KPI值0
见习会员[中], 积分 343, 距离下一级还需 67 积分
UID1881496帖子U9币329 魅力26 声誉5 U菜花0
你玩的难几?
节操610 绿叶0 注册时间在线时间1510 小时阅读权限120精华12主题听众数最后登录KPI值22
UID帖子U9币52061 魅力2844 声誉5 U菜花960
我的帖子就这么没存在感么。。。
&谁叫不设定回复可见,当然没有存在感&
节操40 绿叶0 注册时间在线时间208 小时阅读权限20精华1主题听众数最后登录KPI值1
正式会员[中], 积分 1084, 距离下一级还需 416 积分
UID1886429帖子U9币1694 魅力259 声誉5 U菜花23
宅之小天 发表于
我的帖子就这么没存在感么。。。
谁叫不设定回复可见,当然没有存在感
节操14 绿叶0 注册时间在线时间131 小时阅读权限15精华0主题听众数最后登录KPI值0
正式会员[初], 积分 909, 距离下一级还需 91 积分
UID帖子U9币1205 魅力104 声誉5 U菜花0
本帖最后由 宅之小天 于
23:01 编辑
1.此攻略为新手的入门攻略,以帮助刚接触此图的朋友熟悉此图,大神勿喷。
2.由于之前有句号比较详尽的攻略,副本掉落装备技能等不再截图赘述,以更新内功介绍为主,请结合以下链接观看
决战江湖 正式版1.11 资料整理
截止1.26修复版,所有武功内功的集合,暂时不含门派武功内功
不隐藏点东西没人回复沉贴,全隐藏了没游久号的朋友们看起来又不方便,我把攻略的目录隐藏了好了。
本帖隐藏的内容
一、基本简介
二、三围、六围及人物属性的作用与提升方法
三、主线任务——历练与通关流程
四、技能的分类、获取、学习与删除
五、技能威力的决定,强化输出与强化生存的方法
六、核心伤害系统——残章详解
七、副职简介
一、基本简介
决战江湖是原作者云杨根据游戏金庸群侠传设计的一款武侠防守rpg,1.11后云杨停更,后由zei-kale接手更新,并陆续添加了4个新门派及各种新系统。关于各版本改动请详见游久论坛武林浩荡区各版本发布帖
现版决战江湖拥有三种游戏模式,分别为:
1.普通模式:即之前1.11版的模式,可以由主机随时通过输入指令“up”提升难度。
2.特殊事件模式:此模式在第一波及第五波出怪前将由一楼选择难度,此后不可更改,每波进攻怪将由玩家等级决定是否触发特殊事件“魔教全力进攻”。若触发,则将出现魔教boss,且进攻怪数量翻倍。触发条件为平均等级>进攻怪波数×4
3.生存模式:此模式无限波数,进攻怪采用与之前完全不同的设定,通常需要几人共同努力完美方可存活。此版本不完善,不建议选择
现在大家玩特殊事件模式比较多(守家积分多boss多。。。)
决战江湖指令大全
二、三围、六围及人物属性的作用与提升方法
先插播一个额外的东西决战各人物资质、属性详解&&可以看看更好的选人。
不同于其他地图的力敏智等属性,本图将人物三围重新定为招式伤害、内力、真实伤害
招式伤害决定技能的基础伤害,人物每升一级+2(莫言+3),习得技能九阴真经内功(即九阴真经上卷)后每杀100个怪+10。
内力百分比加成由招式伤害决定的基础伤害,习得技能吸星大法后每杀200个怪+10,少林降魔功经脉达到25后每杀10个怪+1。
真实伤害因不受怪物等级影响而得名。
1.25版本后,四个门派技能全部保留升到6重后可获得门派掌门称号,不同门派可获得不同的三围奖励。在此之前的版本则是需要7重,以下为门派掌门的奖励(此表格为1.2版数据,可能有偏差)
另外,在1.26中作者又增加了一些新称号,这些称号也有着三围奖励和特殊奖励。详见决战江湖1.26全称号获得& &&&注:称号的获取机会只有一次,即有了称号后不能获取其他称号
除了传统三围,按ESC键还可查看人物的其他属性。
暴击率/暴击伤害=根骨+装备+绝内
武功伤害加成=武功搭配+绝内
伤害吸收=绝内
根骨~医术=装备+丹药+属性点等,为决战江湖的六围属性。技能的学习往往要求某些属性超过多少
绝学领悟力=装备+武功& &对绝学和残章的伤害有较大影响
修行=历练& & 对伤害有较大影响
武学修为=剑意修炼层数(不是剑意的数量)
江湖声望=刷怪获得
守家积分=进攻怪
当前用丹数量=吃丹药
三、主线任务——历练与通关流程
该游戏的主线任务为历练,位于基地左下方的火熊猫npc(石破天)处,每次通过历练后可获得六围+1、技能伤害加强等等奖励,且可进入更高级副本去打更高级的装备。
历练有等级和声望要求,其中等级可在基地处用金币购买,声望有以下几种获得途径:
1.每杀一个怪声望+1,前期练功房刷怪为声望的主要来源。
2.完成接受的任务会有额外的声望奖励,其中边境辽国军心任务给的声望最多,为250点,中期有空可以多刷。
3.击杀地图上掉落技能书的三个boss(林朝英、扫地僧、黄裳)可获得额外声望
简单来说,决战江湖的流程就是:
刷钱停怪买等级,刷声望过历练——去更高级副本杀boss更新装备,去打更厉害的武功保证输出——输出够、能顶住则继续刷声望买等级过历练——循环
当然,中间要夹杂着守家什么的......
低难度下,可不去副本12刷装备(可以去刷技能书丹药什么的),直接买等级买商店的C级装备过历练1、2
四、技能的分类、获取、学习、升重与删除
决战江湖中技能分为以下五种:
1.& && &门派武功,在人物3、8、15级时自动领悟,另外通过历练2后可获得门派毕业卷,可去少林达摩祖师处学习门派心法。
达摩祖师位置:
下面四类技能为自主搭配技能,需要技能书,满足技能书所要求的六围条件后点击即可学习。
2.江湖武功,前三个副本的动态boss和古墓的林朝英。
3.江湖内功,同江湖武功。
古墓从历练1的npc丘处机左侧的传送圈进入,需要声望800福缘15
4.绝世武功(绝学),拥有较高的六围学习条件,藏经阁扫地僧掉落。
藏经阁从达摩下方虚竹处进入。
5.绝世内功,拥有特别高的六围学习条件,通过任务梦回前朝击败黄裳掉落。
梦回前朝任务在历练1丘处机左侧找郝大通
PS.少林达摩祖师下方有四个少林高僧分别出售四类技能书,可用珍惜币购买。
边境辽国军心任务可获得神偷世家令,携带可在练功房刷木头。
技能书和技能残章均可通过基地右侧古董商人用古董兑换。
古墓林朝英掉落C、D级古董。
高昌迷宫极恶领主掉落B、C级古董。
后期进攻怪极低几率掉落A古董,锻造师可合成A古董。
技能通过使用可以升重,重数越高伤害越高。注:部分技能空放无效,通过ckjn指令可查看技能升重进度。
遗忘技能需要鸟(侠侣)携带遗忘之石后使用遗忘技能(快捷键Z)。遗忘石可通过守家积分兑换、边境刷新掉落及边境辽国军心任务获得。
满技能完成桃花岛周伯通的寻找九阴上下卷任务后遗忘技能将不再需要遗忘石。
技能遗忘后重新学习将刷新cd,但也会变回一重。
五、技能威力的决定,强化输出与强化生存的方法
首先搬运贼哥的决战江湖伤害公式详解
因此强化输出最基本的就是通过前面提到的成长性技能、称号奖励、装备等提升人物三围。
另外还可通过合理学习江湖武功、绝世武功作为主力输出或强化门派武功。而后期的伤害,则是依靠绝学的残章,详见攻略后面第六点。
少林高僧卖的那九种江湖武功集齐所有搭配后,有N个搭配则伤害会翻N倍。低难度下可试试(伤害一般)
强化生存前期则通过成长性技能九阳神功(杀怪加血)和罗汉伏魔功(杀怪加防)。基地右上守家积分兑换商店可兑换九阳丹,一颗加2000血(必须人物亲自过去换,否则会给鸟加)。
后期则依靠绝世内功的伤害吸收(上限80%)和招式伤害加成绝学领悟力等属性。
后期残章多不如绝内多,残章够用即可,没有绝内支持的残章打出的伤害不够高。
另外:九阳神功主动使用拥有魔法免疫和加血效果。
斗转星移和葵花宝典拥有闪避效果。
反两仪刀法拥有防御最大化效果。
洗髓经拥有主动快速回血效果,小无相功拥有。都可以作为强化生存的选择。
武器熟练度成倍影响伤害,拿到新武器应该尽快练满熟练度,这样输出会高一截子。
通过ckwq指令查看,通过杀怪获得,熟练度上限为1w,击杀副本2及之后副本的boss、名门boss获得的努力值是小怪的100倍。
悄悄告诉你们,副本4进入的绝情谷底里的鱼人和野猪王那边的蝎子算是boss单位,低调使用
六、核心伤害系统——残章详解
残章是决战后期的主要输出,其获得方式有以下几种:
①边境苗人凤处任务概率获得。(高昌迷宫从副本三奇缘npc阎基处进入)
②选择副职锻造师后,可通过BCD级古董合成A级古董四羊方尊,然后可在基地右侧古董商人处用两个四羊方尊兑换一个残章。
③右下角牛妖概率掉落残章一式
残章的激活需要学齐残章要求的三个技能,以黯然销魂掌残章为例,需要人物学习弹指神通、九阴真经内功(即九阴上卷)、蛤蟆功,条件满足后点击残章即会提示成功激活。此后绝学永久是激活状态,只要人物身上有绝学黯然销魂掌,通过普攻即可被动触发残章招式。
激活残章无数量限制。仅仅是激活残章不需要学习绝学(当然必须有相应绝学才能触发残章),可以激活后删掉小技能学习(这样做的意义是可以利用三个技能格子完成激活操作,而不必删其余技能)
具体残章资料请参见其他贴比如上面给出的1.11资料整理贴。
右上残章二式未开放,只有降龙拥有残章二式效果。
七、副职简介
副职在基地左方郭靖处选择,分为炼丹师、锻造师、兵器师,分别给5点医术、胆魄、根骨。另外各个职业有本职业的独家辅助优势,分别是:
炼丹师可以吃15颗属性丹药,可以在基地左下npc处进行炼丹。炼丹要求为药引、医术、阴性阳性。其中药引医术为必须满足条件,阴性阳性不足依旧可以炼丹,但成功率会相应降低。
药草掉落及丹药作用等详见决战江湖炼丹攻略
锻造师可在基地左下宝石商人处对有孔装备进行镶嵌以获得额外属性,且锻造师拥有掌门等称号后可通过最后一个副本“挑战场”打冯默峰获得熔炼石进行锻造,具体锻造公式详见基地右侧“我是随风”npc的提示
兵器师的武器熟练度上限为普通的两倍,即2w。另外兵器师的武器不会损坏、兵器师死后养武镇妖不会消失。
节操2 绿叶0 注册时间在线时间36 小时阅读权限15精华0主题听众数最后登录KPI值0
见习会员[中], 积分 369, 距离下一级还需 41 积分
UID1583546帖子U9币36 魅力22 声誉5 U菜花0
楼上辛苦,顶顶
Powered by魔兽3烈雪TD最后的boss有几轮啊_百度知道麻烦能告诉我无间密室冥婚的通关秘籍么,详细一点谢谢_百度知道