战网中国

标题: 远古通道、act3废庙等有盖子的入口会中断的,请用新的NTMo... [打印本页]

作者: dark-f    时间: 2018-1-6 18:50
标题: 远古通道、act3废庙等有盖子的入口会中断的,请用新的NTMo...
主要是NTMove.ntl有修改,这里的NTMove是新的,请用新的覆盖旧的即可。


作者: pengpeng    时间: 2018-1-6 19:18
前排围观
作者: pengpeng    时间: 2018-1-6 19:18
前排围观
作者: tlwh163    时间: 2018-1-6 19:34
楼上借个地围观
作者: web921    时间: 2018-1-7 08:15
谢谢楼主分享,解决了一大难题
作者: dark-f    时间: 2018-1-7 19:09
我2000年玩的时候,估计好多论坛里的朋友还没有长牙呢。我2007年玩的时侯,估计本论坛玩的也是不多吧?哈哈,我现在是“新人”啦!
作者: st7934    时间: 2018-1-9 11:20
本帖最后由 st7934 于 2018-1-9 11:38 编辑

樓主大大 是您自改的嗎?另外請問
如果單純只是想要可以正常跑ancient tunnel
我需要改那些地方就好?

因為你的版本好像跟我不一樣
很多參數我這都沒有

作者: dark-f    时间: 2018-1-9 11:58
不是我改的,如果你用不上,可以把下面这段代码覆盖ntmove中对应部分:
  1. function NTM_TakeStair(areaid)
  2. {
  3.         var _unit;
  4.         var _prearea;
  5.         var _dist = 2;
  6.         var _unit2;
  7.         switch(areaid){
  8.                 case 47:
  9.                 case 65:
  10.                         _unit = NTC_FindUnit(NTC_UNIT_OBJECT, 74); // trap door
  11.                         break;
  12.                 case 93:
  13.                         _unit = NTC_FindUnit(NTC_UNIT_OBJECT, 366); // sewer stairs
  14.                         break;
  15.                 case 94:
  16.                 case 96:
  17.                 case 98:
  18.                         _unit = NTC_FindUnit(NTC_UNIT_OBJECT, 195);// stair
  19.                         _dist = 4;
  20.                         break;
  21.                 case 95:
  22.                 case 97:
  23.                 case 99:
  24.                         _unit = NTC_FindUnit(NTC_UNIT_OBJECT, 194);// stair
  25.                         _dist = 4;
  26.                         break;
  27.                 case 100:
  28.                         _unit = NTC_FindUnit(NTC_UNIT_OBJECT, 386); // trav to duri
  29.                         _dist = 4;
  30.                         break;
  31.                 case 128:
  32.                         _unit = NTC_FindUnit(NTC_UNIT_OBJECT, 547); // to wsk 1
  33.                         break;
  34.                 default:
  35.                         _unit = NTM_GetStairInt(areaid);
  36.                         break;
  37.         }
  38.         if(!_unit){
  39.                 return false;
  40.         }

  41.         _prearea = me.areaid;
  42.         for(var i = 0 ; i < 20 ; i++){
  43.                 if((i % 5) == 0){
  44.                         if(i == 10){
  45.                                 NTM_MoveTo(_prearea, me.x+6, me.y+6);
  46.                         }
  47.                         if(_unit.classid == 366 && _unit.mode != 2){
  48.                                 _unit2 = NTC_FindUnit(NTC_UNIT_OBJECT, 367); // sewer leaver
  49.                                 if(NTM_GetCloserInt(_unit2, _dist)){
  50.                                         NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, _unit2);
  51.                                         NTC_Delay(200);
  52.                                 }
  53.                         }

  54.                         if(NTM_GetCloserInt(_unit, _dist)){
  55.                                 NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, _unit);
  56.                                
  57.                         }
  58.                 }

  59.                 NTC_Delay(200);

  60.                 if(me.areaid != _prearea){
  61.                         break;
  62.                 }
  63.         }

  64.         while(me.areaid == 0){
  65.                 NTC_Delay(200);
  66.         }

  67.         if(me.areaid == _prearea){
  68.                 return false;
  69.         }
  70.         NTC_PingDelay(NTConfig_AreaDelay);

  71.            return true;
  72. }
复制代码

作者: st7934    时间: 2018-1-9 14:40
只需蓋這段 就能成功?
作者: dark-f    时间: 2018-1-9 18:23
是的,因为它的错误就是下楼梯不行。
作者: 天山雪    时间: 2018-1-10 12:04
本帖最后由 天山雪 于 2018-1-10 13:11 编辑

35版本的kor  bot可以替换用吗?我刚刚替换整个文件后出错,人物背包满了,开回城卷,就报错,不能回城

ps,用代码替换后报错问题解决了,但是还是不能去sewerslevel 第2层,一开楼梯就直接退出游戏,古代通道一会测试一下
作者: dark-f    时间: 2018-1-13 07:24
天山雪 发表于 2018-1-10 12:04
35版本的kor  bot可以替换用吗?我刚刚替换整个文件后出错,人物背包满了,开回城卷,就报错,不能回城

ps ...

我用的是Etal bot,所以不知kor的怎样
作者: yfzh2012    时间: 2018-1-13 22:34
本帖最后由 yfzh2012 于 2018-1-13 22:36 编辑

回归以来还没跑过古代通道 ,果然有这个问题,韩国bot 不用这个函数  用的是MyMove.ntl 文件里的,请参照此进行进行替换这个函数即可,本人用的是33版的,如果你用更新一些的35 38 版 请自己参照,如果有区别自行修改
My.Move.TakeStair = function (areaId, distance, offsetX, offsetY)
{
    var _unit;
    var _preArea, _moveX, _moveY;

                var _unit2;
        
    if (arguments.length < 2) distance = 4;
    if (arguments.length < 3) offsetX  = 1;
    if (arguments.length < 4) offsetY  = 1;

    if (me.areaid == areaId)
        return true;

        switch(areaId){
                case 47:
                case 65:
                        _unit = NTC_FindUnit(NTC_UNIT_OBJECT, 74); // trap door
                        break;
                case 93:
                        _unit = NTC_FindUnit(NTC_UNIT_OBJECT, 366); // sewer stairs
                        break;
                case 94:
                case 96:
                case 98:
                        _unit = NTC_FindUnit(NTC_UNIT_OBJECT, 195);// stair
                        _dist = 4;
                        break;
                case 95:
                case 97:
                case 99:
                        _unit = NTC_FindUnit(NTC_UNIT_OBJECT, 194);// stair
                        _dist = 4;
                        break;
                case 100:
                        _unit = NTC_FindUnit(NTC_UNIT_OBJECT, 386); // trav to duri
                        _dist = 4;
                        break;
                case 128:
                        _unit = NTC_FindUnit(NTC_UNIT_OBJECT, 547); // to wsk 1
                        break;
                default:
                        _unit = NTM_GetStairInt(areaId);
                        break;
        }

    if (!_unit)
    {
        NTC_PingDelay(500);
                switch(areaId){
                case 47:
                case 65:
                        _unit = NTC_FindUnit(NTC_UNIT_OBJECT, 74); // trap door
                        break;
                case 93:
                        _unit = NTC_FindUnit(NTC_UNIT_OBJECT, 366); // sewer stairs
                        break;
                case 94:
                case 96:
                case 98:
                        _unit = NTC_FindUnit(NTC_UNIT_OBJECT, 195);// stair
                        _dist = 4;
                        break;
                case 95:
                case 97:
                case 99:
                        _unit = NTC_FindUnit(NTC_UNIT_OBJECT, 194);// stair
                        _dist = 4;
                        break;
                case 100:
                        _unit = NTC_FindUnit(NTC_UNIT_OBJECT, 386); // trav to duri
                        _dist = 4;
                        break;
                case 128:
                        _unit = NTC_FindUnit(NTC_UNIT_OBJECT, 547); // to wsk 1
                        break;
                default:
                        _unit = NTM_GetStairInt(areaId);
                        break;
        }
    }
  
    if (!_unit)
        return false;

    _preArea = me.areaid;

    for (var i = 0; i < 20; i++)
    {
        if ((i % 5) == 0)
        {
            if (i == 10)
            {
                _moveX = Math.round(-6 * (_unit.x - me.x) / GetDistance(me, _unit));
                _moveY = Math.round(-6 * (_unit.y - me.y) / GetDistance(me, _unit));
                if (_moveX == 0 && _moveY == 0)
                {
                    _moveX = 6;
                    _moveY = 6;
                }

                My.Move.MoveTo(_preArea, me.x + _moveX, me.y + _moveY);
            }
                        if(_unit.classid == 366 && _unit.mode != 2){
                                _unit2 = NTC_FindUnit(NTC_UNIT_OBJECT, 367); // sewer leaver
                                if(My.Move.GetCloser(_unit2, distance, offsetX, offsetY)){
                                        NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, _unit2);
                                        NTC_Delay(200);
                                }
                        }
            if (My.Move.GetCloser(_unit, distance, offsetX, offsetY))
            {
                if (NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, _unit))
                    Delay(200);
            }
        }

        Delay(200);

        if (me.areaid != _preArea)
        {
            while (me.areaid == 0)
                Delay(200);

            if (me.areaid != _preArea)
            {
                NTC_PingDelay(NTConfig_AreaDelay);
                return true;
            }
            else
                return false;
        }
    }

    return false;
};
作者: bobby945    时间: 2018-1-17 13:53
技术贴,马克一下
作者: rs6810    时间: 2018-1-18 00:24
yfzh2012 发表于 2018-1-13 22:34
回归以来还没跑过古代通道 ,果然有这个问题,韩国bot 不用这个函数  用的是MyMove.ntl 文件里的,请参 ...

高手厉害
作者: tlwh163    时间: 2018-4-2 15:43
这个需要好好学习
作者: dark-f    时间: 2018-4-2 15:56
怎么把这个古董又搬出来啦?
作者: cnlinux    时间: 2018-4-4 08:14
我的MyMove.ntl 里面的代码是这样的:
TakeStair: function (areaId, distance, offsetX, offsetY, player, retry)
    {
        var _unit;
        var _preArea;

        if (me.areaid == areaId)
            return true;

        switch (arguments.length)
        {
        case 1:
            distance = 4;
        case 2:
            offsetX = 1;
        case 3:
            offsetY = 1;
        case 4:
            player = null;
        case 5:
            retry = 2;
            break;
        }

        _unit = this.GetStair(areaId, player, retry);
        if (!_unit)
            return false;

        _preArea = me.areaid;

        for (var i = 0; i < 50; i++)
        {
            if ((i % 5) == 0)
            {
                if (i > 30)
                    this.ClickTo(me.x + Math.round(-7 * (_unit.x - me.x) / GetDistance(me, _unit)), me.y + Math.round(-7 * (_unit.y - me.y) / GetDistance(me, _unit)));

                if (this.GetCloser(_unit, distance, offsetX, offsetY))
                {
                    if (this.DoClick(MyMove_CLICK_LDOWN, MyMove_SHIFT_NONE, _unit))
                        Delay(200);
                }
            }

            Delay(200);

            if (me.areaid != _preArea)
            {
                while (me.areaid == 0)
                    Delay(200);

                if (me.areaid != _preArea)
                {
                    MyCommon.DelayPing(MyConfig.AreaDelay);
                    return true;
                }
                else
                    return false;
            }
        }

        return false;
    },
作者: yfzh2012    时间: 2018-4-4 08:26
本帖最后由 yfzh2012 于 2018-4-4 08:34 编辑
cnlinux 发表于 2018-4-4 08:14
我的MyMove.ntl 里面的代码是这样的:
TakeStair: function (areaId, distance, offsetX, offsetY, player ...

> 35版本的 请 参照 自行修改  ,只是语法略有不同而已 ,实质差不多
this.GetCloser(_unit, distance, offsetX, offsetY)   <<===============函数调用 要保留现在这种新的形式 不用 My.Move.GetCloser(_unit2, distance, offsetX, offsetY)  这种老的方式

作者: 天山雪    时间: 2018-4-4 18:24
谢谢楼主
作者: haihu    时间: 2018-4-4 20:48
好高深的样子
作者: oppo123    时间: 2018-4-5 23:19
高手在人間~跪拜
作者: jeans2000uk    时间: 2018-4-6 09:14
dark-f 发表于 2018-1-7 19:09
我2000年玩的时候,估计好多论坛里的朋友还没有长牙呢。我2007年玩的时侯,估计本论坛玩的也是不多吧?哈哈 ...

这个论坛我02年加入的,  当时可以说国内最火的论坛之一吧,  而且基本都是玩战网的, 包括人物搭建, pk讲解, 甚至包括各服的物价表, 都是应有尽有,  不过现在论坛老人少了, 而且服务器里的数据好像丢失过一次, 也搬过一次家如果我没记错, 所以貌似这个论坛很多数据很新, 很早的资料都找不到啦




欢迎光临 战网中国 (http://battlecn.net/) Powered by Discuz! X3.1