战网中国

标题: 求教大神,关于私服 BOT不认识新怪物怎么解决! [打印本页]

作者: 匿名    时间: 2016-5-7 16:12
标题: 求教大神,关于私服 BOT不认识新怪物怎么解决!
现在很多私服里都添加了很多新的怪物,比如督瑞尔、巴尔复活后变成“意志的切割者”,BOT不认识,在知道怪物的代码的情况下,如何添加新怪物,这些怪物基本上都是750-1000
作者: pengpeng    时间: 2016-5-7 16:35
。。。 需要查到新怪物的ID ,哈哈哈~~
作者: 36015646    时间: 2016-5-8 10:48
[quote=pengpeng,181467]。。。 需要查到新怪物的ID ,哈哈哈~~[/quote] 已经知道新怪物的ID了,但是不知道怎么添加
作者: 凌晨四点    时间: 2016-5-9 07:52
提示: 作者被禁止或删除 内容自动屏蔽
作者: 白色曼陀螺    时间: 2016-5-9 17:05
直接清场不就完了,管他什么id。
作者: iamiori    时间: 2016-5-10 11:25
如果清场都无法解决. 或者kill指定id的怪都没有效果, 那说明. d2nt.dll已经写死了.
那么它虽然是写死的. 但是id库是来自\\mpqdata\\monstats.txt 这个文件.
除非你懂改mod,

我是不会的了. 看文件, 理论上添加上即可解决
问题是文本格式.
ps :每一个数据之间不是\"空格\" 而是\"tab\", 请注意
作者: 凌晨四点    时间: 2016-5-10 13:19
提示: 作者被禁止或删除 内容自动屏蔽
作者: mymmiss    时间: 2016-5-12 00:09
[quote=iamiori,181579]如果清场都无法解决. 或者kill指定id的怪都没有效果, 那说明. d2nt.dll已经写死了.
那么它虽然是写死的. 但是id库是来自\\mpqdata\\monstats.txt 这个文件.
除非你懂改mod,

我是不会的了. 看...[/quote] 私聊过他,添加的是map的id。。。
作者: 36015646    时间: 2016-5-12 11:54
[quote=白色曼陀螺,181544]直接清场不就完了,管他什么id。[/quote] 就一个新BOSS,地图上不显示 ,不能攻击
作者: 36015646    时间: 2016-5-12 11:55
[quote=mymmiss,181620]私聊过他,添加的是map的id。。。[/quote] 我用八神BOT查看的怪物ID ,添加不起作用
作者: qw32801    时间: 2016-6-5 17:23
直接修改monstats.txt文件,不管是用EXL还是TXT,修改后不对,

比如我删除了ID211督瑞尔,督瑞尔一样能识别,但是在211之后的怪都不能识别了

求解!
作者: iamiori    时间: 2016-6-15 21:20
这问题已经解决,自己复制一份NTA_KillMonster(id)的函数,然后这个复制改名的函数,只要把里面的if _target.ableattack的条件去掉既可。具体单词名字忘记了,自己看看就知道了,并不需要去sdk添加什么怪物的新id
作者: coolcood    时间: 2016-9-27 21:35
比如查的新怪的id为756,坐等白板、八神等大牛修改,本人修改为成功

作者: coolcood    时间: 2016-9-27 21:35
比如查的新怪的id为756,坐等白板、八神等大牛修改,本人修改为成功

作者: coolcood    时间: 2016-9-27 21:36
本帖最后由 coolcood 于 2016-9-28 21:03 编辑

比如查的新怪的id为756,坐等白板、八神等大牛修
function NTA_KillMonster(classid)
{
        var _target;

        if(NTConfig_AttackSkill[1] < 1)
                return false;

        _target = NTC_FindUnit(NTC_UNIT_MONSTER, classid, 5);

        if(!_target)
                return false;

        if(_target.IsAttackable())
        {
                var _attackcount = 0;

                while(_attackcount < 300 && NTA_IsValidMonster(_target))
                {
                        if(NTA_Attack(_target, (_attackcount%30) == 0) < 2)
                                break;

                        _attackcount++;
                }
        }

        return (_target.hp <= 0 || _target.mode == 0 || _target.mode == 12);
}
作者: coolcood    时间: 2016-9-27 21:36
本帖最后由 coolcood 于 2016-9-28 21:03 编辑

比如查的新怪的id为756,坐等白板、八神等大牛修
function NTA_KillMonster(classid)
{
        var _target;

        if(NTConfig_AttackSkill[1] < 1)
                return false;

        _target = NTC_FindUnit(NTC_UNIT_MONSTER, classid, 5);

        if(!_target)
                return false;

        if(_target.IsAttackable())
        {
                var _attackcount = 0;

                while(_attackcount < 300 && NTA_IsValidMonster(_target))
                {
                        if(NTA_Attack(_target, (_attackcount%30) == 0) < 2)
                                break;

                        _attackcount++;
                }
        }

        return (_target.hp <= 0 || _target.mode == 0 || _target.mode == 12);
}
作者: coolcood    时间: 2016-9-28 20:54
悬赏解决!!!!
作者: iamiori    时间: 2016-9-30 02:10
看12楼,早已经解决
作者: coolcood    时间: 2016-9-30 20:48
iamiori 发表于 2016-9-30 02:10
看12楼,早已经解决

按照八神大大说的 ,我修改后还是不行,八神能不能上传一个修改后的脚本,好像是在NTattack里面,能不能上传一个,你亲手修改过的脚本function NTA_KillMonster(id)
感激不尽
作者: iamiori    时间: 2016-10-5 08:42
你复制 一个。 改好后。 你这个复制的比如叫
function NTA_KillMonster_new(id)
{


}

改好后

你的脚本。 就得 调用这个   NTA_KillMonster_new(xxx) 而不是用老的。
作者: iamiori    时间: 2016-10-5 08:48
[attach]13373[/attach]

复制一份。叫另一个名字。
然后,这个新函数,里面这个条件去掉。
回到你的脚本。就调用这个函数杀boss即可。
作者: xntjjy    时间: 2016-10-9 16:12
学习了,支持!
作者: 小希miss    时间: 2016-10-10 13:58
支持!谢谢分享!!
作者: masters    时间: 2018-1-19 15:08
我是来学习的

作者: masters    时间: 2018-1-19 15:08
我是来学习的

作者: idi    时间: 2022-1-6 18:20
学习下修改逻辑




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