暗黑破坏神吧 关注:289,338贴子:13,934,630

暗黑非常技术——兔子教你挂bot

只看楼主收藏回复

老规矩,1L喂百度!
完成以前请勿插楼,拜托了...





    今天有人在群里一直问我bot的问题,其实一直以来都想写篇指导新人挂bot的文章。不过想到不能带坏年轻人,所以一直都没敢写...
    刚才询问柠檬姐,经过她同意,允许发帖。我想了下,也算是对精华贴的补充(吧里目前还没有关于这方面的帖子)吧!不过事先申明:
    仅限有兴趣的朋友单机测试,请勿轻易在战网尝试!造成的任何损失(被bang),兔子我概不负责!!!


回复
举报|2楼2009-10-16 18:07
         所谓bot,英文翻译就是“机器人”,顾名思义就是自动帮玩家完成一些事情的助工具,如:mf用的mf bot、买东西的shop bot、rr辅助用的rr bot等等...
         本文主要讨论mf用的bot。由于bot的种类繁多,在这里不可能一一列举。所以只讲解当下比较流行的两种bot,全当抛砖引玉。其实原理相同,有兴趣的朋友可以自己下去研究其他的一些bot。废话不多说,直接进入我们的主题:


    回复
    举报|3楼2009-10-16 18:07
      正在崛起的新秀——D2NTBot
      ==============================

      使用方法:
      ----------
      1.将bot下载到本地,解压到任意目录
      2.将包里的JS32.dll复制到Windows/System32里,这一步很重要,因为大bot的核心部分是用js开发的,必须要有JS32.dll才能运行
      3.在scripts\libs\config里面找到NTConfig_Paladin.ntl(圣骑士用的)或NTConfig_Sorceress.ntl(法师用的),然后把这个文件复制一个,并命名为NTConfig_Paladin_XXX.ntl,XXX为你的BOT名(不是ACC名),就是你要选择的char的名字
      4.双击D2NT Manager.exe运行,点击Add,如下图:



      回复
      举报|6楼2009-10-16 18:09
        Profile Name:这个随意
        Game Setting:
        Path是你游戏启动程序的位置,一定要用Game.exe加载,不要使用D2loader。
        下面几个单选框分别是:Window Mode,使用窗口模式;No Sound,去掉声音;Low Quality,低画质...
        CD-Keys是你要使用哪个mpq文件,单机可略过。
        Battle.net Setting:
        Game Type是你要选择的游戏类型,有Closed Battle.Net和单机
        然后是你的acc名称,游戏难度
        Game Name和Game Pass是你所建的房间的名称和密码,不填可以随机生成
        Position是你的char的位置

        设置好以后,点击Apply。选中你刚才设置好的run,点击Save(否则下次启动就没有了)、Start,bot就开始运行了!
        runs是运行次数,Restarts是重启次数,Chickens是你挂了多少次。下面的log可以查看日志,比如每次开始、结束的时间、保留的物品等等。


        回复
        举报|8楼2009-10-16 18:10
             不要以为这样就ok了,还要配置的,这也是最麻烦,最有技术含量的地方!bot挂得好不好,全靠它了...
              下面我们来讲D2NTBot的配置:


          回复
          举报|9楼2009-10-16 18:14
            NTConfig.ntl的配置:
            --------------------

            回到刚才的NTConfig_Sorceress.ntl,这里是设置K什么BOSS,时间,使用什么技能的地方。

            // "Script & Boss Configuration":\\
            首先是配置k什么boss,找到//NTConfig_Script.push("xxx"),xxx是k的boss。把你要k的boss前面的//去掉,不k的前面加上//。


            回复
            举报|17楼2009-10-16 19:08
              // "Chicken, Merc & Others Parametrs Configuration": \\
              me.maxgametime = 0;     最大游戏时间,0为不设置。
              后面是设置什么时候喝药及什么时候给佣兵喝要等,建议新手不要修改。

              // "Inventory Configuration":\\
              NTConfig_FreeSpace = 8;     剩下几列空格会把东西移到箱子内
              NTConfig_Columns[0] = [1,1,1,1,1,1,1,1,0,0];
              NTConfig_Columns[1] = [1,1,1,1,1,1,1,1,0,0];
              NTConfig_Columns[2] = [1,1,1,1,1,1,1,1,0,0];
              NTConfig_Columns[3] = [1,1,1,1,1,1,1,1,0,0];
              这里要和你的包袱对应,0是表示要保留的东西,1是不要保留的东西。建议那些喜欢把右边空出来的改下习惯,把要保留东西都放到左边去。
              NTConfig_MinGoldToStash = 100000;     身上剩下多少钱会放到箱子里去

              // "Belt Configuratio \\
              NTConfig_BeltColType[0] = "hp";
              NTConfig_BeltColType[1] = "mp";
              NTConfig_BeltColType[2] = "rv";
              NTConfig_BeltColType[3] = "rv";
              腰带的设置,hp表示体力药剂、mp表示魔法药剂、rv表示回复药剂。如果要使用回复药剂,请不要设置放在前面,因为买药的时候,药会优先放在前面,这样买完药后,bot会把前面的体力药剂和魔法药剂扔掉...

              // Minimum amount of potions in each belt slot before re-stocki \\
              NTConfig_BeltColMin[0] = 4;
              NTConfig_BeltColMin[1] = 4;
              NTConfig_BeltColMin[2] = 0;
              NTConfig_BeltColMin[3] = 0;
              这一段是说剩下多少瓶会去买来补,如果你前面设置了使用回复药剂,这里请设置成0


              回复
              举报|18楼2009-10-16 19:09
                // "SnagIt Configuration": \\
                设置导入哪些nip文件,后面会讲到

                // "Cubing Configuration":
                NTConfig_Cubing = false;     是否使用合成,建议不使用,经测试存在bug

                // "Gamble Configuration":
                NTConfig_Gamble = true;     钱满了是否去赌博
                NTConfig_GambleStopGold = 300000;     这一行是赌剩下多少钱就收手了
                NTConfig_GambleItem.push("rin");       // Rings
                NTConfig_GambleItem.push("amu");       // Amulets
                NTConfig_GambleItem.push("ci0");       // Circlets
                NTConfig_GambleItem.push("ci1");       // Coronets
                设置要赌博些什么,不需要赌博的东西在前面加上//


                回复
                举报|19楼2009-10-16 19:10
                  // "Sorceress Attack Configuration"    
                  NTConfig_AttackSkill[0] = 0;     你第一要使用且只使用一次的技能,0是不使用
                  NTConfig_AttackSkill[1] = 0;     你对boss使用的技能
                  NTConfig_AttackSkill[2] = 0;     你对杂兵使用的技能
                  NTConfig_AttackSkill[3] = 0;     当第一技能冻结时间没有结束时,使用的技能
                  NTConfig_AttackSkill[4] = 0;     怪物对第一技能免疫时使用的技能
                  NTConfig_AttackSkill[5] = 0;     上面那个技能冻结时间时使用的技能

                  NTConfig_ClearPosition = true;     杀死boss后是否清场
                  NTConfig_CheckSafe = true;     中了诅咒是否回城治疗,佣兵挂了是否复活

                  NTConfig_CastThunderStorm = true;     是否使用ThunderStorm
                  NTConfig_CastEnergyShield = false;     是否使用EnergyShield
                  TConfig_CastFrozenArmor = false;      是否使用FrozenArmor
                  TConfig_CastShiverArmor = true;     是否使用ShiverArmor
                  TConfig_CastChillingArmor = false;     是否使用ChillingArmor
                  NTConfig_CastStatic = 60;     使用静电立场刷掉boss多少血量,单位是%,设置为0不使用。使用不使用看自己,因为总是要tp到boss面前去用,很不安全。


                  回复
                  举报|20楼2009-10-16 19:11
                    每个技能对应的代码,请到\scripts\libs\config的Skill_IDs.txt文件里找。
                    只讲了sor的设置,其他char大同小异,自己琢磨...


                    回复
                    举报|21楼2009-10-16 19:12
                      normal.nip的配置:
                      --------------------
                          到\scripts\settings目录下,这里的文件是可以自己建的,但是后缀必须是.nip,比如:unique.nip、magic.nip等等。不过你在这里添加了文件,需要在你的ntl文件中做相应的配置:
                      NTConfig_NIPFilePath.push("xxx.nip");

                      这里配置的是保留哪些dd,比如我们想设置只保留4抗为35的海蛇皮:
                      Name = Serpentskin Armor : Quality = Unique : 39 > 34 : 41 > 34 : 43 > 34 : 45 > 34 ; Skin of the Vipermagi

                      首先是要写一个Name=Serpentskin Armor,这里是装备的类型,必须写英文。然后是装备的成色Quality = Unique,表示是暗金的,中间都要用:隔开。然后是4r大于34,分号后面的内容在读取时会忽略,主要是给你注释用的。
                      这里的代码可以在\sdk\stats.txt中找到,比如0代表strength、1代表energy等等。
                      其实用过udietoo朋友对这些东西应该很熟悉,这里的代码和udietoo是完全一样的。

                      最后再说一下如果要设置拾取或者不拾取无形的,在后面加上Flag=Eth或者Flag!=Eth就可以了,如果都要拾取,就不写。比如:
                      Name = Scarabshell Boots : Quality = Unique : Flag = Eth ;无形沙暴鞋


                      回复
                      举报|27楼2009-10-16 21:40
                        D2NTBot我是我用过的最成熟的bot了,他的bots脚本写得非常健壮。尤其是k虫,非常稳当,几乎不会在洞口挂掉。

                        不过唯一遗憾的是,到目前为止还没有牛关的bot。据说国外已经出了,不过是要收费的。虽然我是一个程序员,但还是要对这种在开源源码基础上进行完善以后就收费的行为表示鄙视!因为这种行为严重地阻碍了技术的进步,非常无耻...

                        该bot只支持1.12,由于是直接加载Game.exe,而不是d2loader所以被侦测到的几率较小,适合在bn和一些1.12的sf上使用。

                        下载地址:
                        http://qun.qq.com/air/#12533999/share
                        D2NT_Modded_by_CyberVirus_v3.6M2_ENGLISH.rar

                        这个是目前最完善的版本,里面添加了Assassin、Druid、Necromancer的配置文件和很多新的boss bot。


                        回复
                        举报|32楼2009-10-16 21:54
                          接下来,我们来看适用于1.11b的bot:


                          回复
                          举报|33楼2009-10-16 21:56
                            完美整合的bot利器——d2jsp+yamb11b3
                            ========================================
                                d2jsp可以说最老牌的d2 bot了,现在大多数bot都是在它的基础上发展而来的。yamb是一个第三方的、基于d2jsp的bot脚本,11b3是目前的最新版本,采用的pick it拾取物品,而且bot脚本比final版的更加犀利,在牛关的表现尤为优异。

                                唯一的缺陷是会出现只run一次的问题,经过我的反复研究以及其他BBS bot版块的同好讨论,问题现已解决。所以大家下载的时候请同时下载群共享里面的autostarter.rar,这是final版本的autostarter.d2j文件,使用时请用该文件覆盖你目录下的autostarter.d2j。

                            下载地址:
                            http://qun.qq.com/air/#12533999/share
                            d2jsp_yamb11b3.rar

                            该bot不能在vista和windows7下运行,这个问题到目前为止还无法解决!所以想用它的朋友们还是用xp吧...


                            回复
                            举报|40楼2009-10-16 22:10
                              yamb11b3的使用方法:
                              --------------------
                              1.将bot下载到本地,解压到任意目录
                              2.同样地将包里的JS32.dll复制到Windows/System32里
                              3.运行autod2jsp.exe文件,点击左上角第一个按钮,如下图:




                              回复
                              举报|41楼2009-10-16 22:23


                                回复
                                举报|43楼2009-10-16 22:25
                                  Setting Name:随意
                                  Diablo II:这是你的游戏启动程序的位置,使用D2Loader的请把下面This is D2Loader勾上
                                  Diablo II title:如果要同时run多个char,请设置成不同的名称,否则会冲突
                                  Default Script和Starter Script:请不要修改
                                  Follow Bot Options:这里是rr用的

                                  其他基本上和D2NTBot一样,说一下Misc Settings的Minimize D2 On Start:
                                  这里是每次启动后最小化d2窗口,不喜欢请不要勾...


                                  回复
                                  举报|45楼2009-10-16 22:35
                                    再讲一下几个按钮的作用:

                                    依次是新建、修改、删除、复制、保存(后面那个是保存日志)


                                    回复
                                    举报|47楼2009-10-16 22:39
                                      Config.ini的配置
                                      -------------------------
                                           这里和D2NTBot不一样,在autod2jsp里设置好你要run的char的位置(Char Location),运行一次,d2jsp会在\scripts\libs\YAMB\configs生成一个配置文件:YAM_Config_xxx.ini,xxx是你的char的名称。

                                      // Boss configuration
                                      //YAMXXP.push(“Eldritch”);怪异者
                                      //YAMXXP.push(“Trav”);崔凡克
                                      //YAMXXP.push(“Pindle”);暴皮
                                      //YAMXXP.push(“Countess”);女伯爵
                                      //YAMXXP.push(“Meph”);老墨
                                      //YAMXXP.push(“Cow”);牛关
                                      //YAMXXP.push(“Hephasto”);海法斯特盔甲制作者
                                      //YAMXXP.push(“Andy”);安达利尔
                                      //YAMXXP.push(“Pit”);泰摩高地的地穴
                                      //YAMXXP.push(“ThreshSocket”);脱壳凹槽
                                      //YAMXXP.push(“Baal”);巴尔
                                      //YAMXXP.push(“Shenk”);山克
                                      //YAMXXP.push(“Summoner ”);召唤者
                                      //YAMXXP.push(“Nihlathak ”);老尼

                                      同样地,把你要run的boss前面的//去掉


                                      回复
                                      举报|48楼2009-10-16 22:53
                                        // General configuration
                                        YAM_MaxGameLength = 900; // 游戏最大时间
                                        YAM_MinGameLength = 200; //游戏最短时间,单位是秒,上战网的不要设置得太短

                                        // Cubing settings
                                        //====================================================================
                                        // YAM_EnableCubing = true/false Set to true to enable cubing
                                        //--------------------------------------------------------------------
                                        YAM_EnableCubing = false; //是不是要合成物品,最好不要


                                        回复
                                        举报|49楼2009-10-16 22:57
                                          // Stashing configuration
                                          //====================================================================
                                          // DT_FreeSpace = number Minimum number of free columns: if less full columns are free, go to stash.
                                          // DT_MinGoldToStash = number Maximum gold amount carried before going to stash.
                                          //--------------------------------------------------------------------
                                          DT_FreeSpace = 4; //剩下几列空格把东西放到箱子里
                                          DT_MinGoldToStash = 50000; //身上多少钱会放到箱子内
                                          DT_Columns[0]=[1,1,1,1,0,0,0,0,0,0];
                                          DT_Columns[1]=[1,1,1,1,0,0,0,0,0,0];
                                          DT_Columns[2]=[1,1,1,1,0,0,0,0,0,0];
                                          DT_Columns[3]=[1,1,1,1,0,0,0,0,0,0];
                                          0是表示要保留的东西
                                          1是不要保留的东西


                                          回复
                                          举报|50楼2009-10-16 22:59
                                            // Belt configuration
                                            YAM_UseBeltManager = true; //是不是要用腰带管理员,true就是要
                                            DT_BeltColType[0] = "hp"; // Column 1 in belt
                                            DT_BeltColType[1] = "hp"; // Column 2
                                            DT_BeltColType[2] = “hp"; // Column 3
                                            DT_BeltColType[3] = "mp"; // Column 4
                                            在此hp表示放加血的,mp表示加mana的,而恢复药水腰带管理员会自行放在加血的部份,要用时会自行使用
                                            DT_BeltColMin[0] = 3;
                                            DT_BeltColMin[1] = 3;
                                            DT_BeltColMin[2] = 3;
                                            DT_BeltColMin[3] = 3;
                                            这一段是说剩下多少瓶会去买来补,不需设置


                                            回复
                                            举报|51楼2009-10-16 23:02
                                              // ShopIt! and GambleIt!
                                              YAM_ShopIt = false;
                                              YAM_GambleIt = true;
                                              YAM_GambleStartGold = 1000000;//开始赌博的金额
                                              YAM_GambleStopGold = 300000; //剩下多少钱就收手了


                                              回复
                                              举报|52楼2009-10-16 23:03
                                                // Precasting configuration
                                                DA_UseCTA = false;//是否使用CTA
                                                DA_AutoPrecasts = true;//自动使用冰甲
                                                XP_ColdArmor = 0;//是否使用冰甲及冰甲类型,1/碎冰甲,2/冰封装甲,3/寒冰装甲,
                                                XP_EnergyShield = false;//是否使用能量护盾
                                                XP_ThunderStorm = false;//是否使用雷云风暴


                                                回复
                                                举报|53楼2009-10-16 23:04
                                                  // Attack configuration
                                                  // Bosses section.
                                                  //====================================================================
                                                  //PXP_SorcSkill.push(64); // Frozen Orb
                                                  PXP_SorcSkill.push(59); // Blizzard
                                                  EXP_SorcSkill.push(53); // Chain Lightning
                                                  SXP_SorcSkill.push(59); // Blizzard
                                                  CXP_SorcSkill.push(53); // Chain Lightning
                                                  //YAM_SorcSkill.push(64); // Frozen Orb
                                                  YAM_SorcSkill.push(59); // Blizzard
                                                  //YAM_SorcSkill.push(45);      // Ice Blast
                                                  YAM_SorcSkill.push(55); // Glacial Spike
                                                  //YAM_SorcSkill.push(48); // Nova
                                                  //YAM_SorcSkill.push(62); // Hydra
                                                  //YAM_SorcSkill.push(56); // Meteor
                                                  //YAM_SorcSkill.push(38); // Charged Bolt
                                                  //YAM_SorcSkill.push(47); // Fire Ball
                                                  //YAM_SorcSkill.push(51); // Fire Wall
                                                  //YAM_SorcSkill.push(49); // Lightning
                                                  YAM_SorcSkill.push(53); // Chain Lightning
                                                  XP的分别是:
                                                  P指暴皮,E指矫正者,S指山克,C指女伯爵, M=Meph, A=Andy, B=Baal
                                                  Y指其他没有特别指名的头目(因为没有特别免疫)
                                                  另外技能的数字可以在\sdk\skill.txt内找到
                                                  要使用的就把前面的//去除即可,不然就自己再加入


                                                  回复
                                                  举报|55楼2009-10-16 23:07
                                                    // Monster skill section(打小怪的部份)
                                                    //--------------------------------------------------------------------
                                                    Monster_SorcSkill.push(59);      // Blizzard
                                                    Monster_SorcSkill.push(55); // Glacial Spike
                                                    Monster_SorcSkill.push(53); // Chain Lightning
                                                    依照你的法师所有的技能加入


                                                    回复
                                                    举报|56楼2009-10-16 23:08
                                                      // Configurable variables for bosses.
                                                      // General section
                                                      XP_SwitchOnKill = true;//最后一击换副手,如阿里巴巴、ist剑等


                                                      回复
                                                      举报|57楼2009-10-16 23:12
                                                        // Other configurations
                                                        DT_RepairPercent = 25;//隔几场去修理一次
                                                        DT_SkipHealLife = 70;//剩多少血会去找NPC治疗
                                                        DT_SkipHealMana = 10;//剩多少mana会去找NPC治疗


                                                        回复
                                                        举报|58楼2009-10-16 23:13
                                                          // Immunities/Resistances/Enchantments to skip
                                                          //====================================================================
                                                          // Set each to true to chicken out if a monster is immune to that kind of damage.
                                                          // Thanks to D32v1n for contributing to some of these settings
                                                          //--------------------------------------------------------------------
                                                          有那些免疫时跳过
                                                          DA_Immunities[1] = false; // Physical实体攻击无效
                                                          DA_Immunities[2] = false; // Magic魔法免疫
                                                          DA_Immunities[3] = false; // Fire火焰无效
                                                          DA_Immunities[4] = false; // Lightning闪电无效
                                                          DA_Immunities[5] = false; // Cold冰冷无效
                                                          DA_Immunities[6] = false; // Poison毒素无效


                                                          回复
                                                          举报|59楼2009-10-16 23:15