战网中国

标题: 自動倉庫 [打印本页]

作者: 29646869zxcv    时间: 2016-10-20 11:46
标题: 自動倉庫
本帖最后由 29646869zxcv 于 2016-10-20 12:18 编辑

请问大神有个具体KOL自动仓库自动注册ACC 的详细说明吗!
小弟求求大神们了 搞了3天2晚还没搞定....

小弟是对照这篇
http://www.battlecn.net/forum.php?mod=viewthread&tid=42683&extra=page%3D1
以及这篇设置
https://github.com/kolton/d2bot-with-kolbot/wiki/AutoMule-and-TorchMule
设置的但启动仓库后只会停在选单动也不动 还是说司机背包还没满没呼叫? 可我也刷了16小时有了
[attach]13444[/attach]
[attach]13445[/attach][attach]13446[/attach]


作者: x2931106    时间: 2016-10-20 11:49
請貼出你的 AutoMule.js內文來瞧瞧

隔空抓藥 華陀再現也難救
作者: 29646869zxcv    时间: 2016-10-20 12:17
本帖最后由 29646869zxcv 于 2016-10-20 12:22 编辑
x2931106發表於11:49二零一六年十月二十零日
請貼出你的AutoMule.js文內來瞧瞧

隔空抓藥華陀再現也。難救

請大神幫看AutoMule文件是否有錯誤
  1. <font color="#000000" size="2">var AutoMule = {
  2.         Mules: {
  3.                 "Mule1":  {
  4.                         muleProfile: "BOT AUTO",  // The name of mule profile in d2bot#. It will be started and stopped when needed.
  5.                         accountPrefix: "camry-",  // Account prefix. Numbers added automatically when making accounts.
  6.                         accountPassword: "24516349",  // Account password.
  7.                         charPrefix: "camry-",  // Character prefix. Suffix added automatically when making characters.
  8.                         realm: "asia", // Available options: "useast", "uswest", "europe", "asia"
  9.                         expansion: true,
  10.                         ladder: true,
  11.                         hardcore: false,

  12.                         // Game name and password of the mule game. Never use the same game name as for mule logger.
  13.                         muleGameName: ["152", "42"], // ["gamename", "password"]

  14.                         // List of profiles that will mule items. Example: enabledProfiles: ["BOT AUTO", "BOT AUTO2"],
  15.                         enabledProfiles: ["BOT AUTO"],

  16.                         // Stop a profile prior to muling. Useful when running 8 bots without proxies.
  17.                         stopProfile: "",

  18.                         // Trigger muling at the end of a game if used space in stash and inventory is equal to or more than given percent.
  19.                         usedStashTrigger: 80,
  20.                         usedInventoryTrigger: 80,

  21.                         // Mule items that have been stashed at some point but are no longer in pickit.
  22.                         muleOrphans: true
  23.                 }
  24.         },

  25.         /** Torch/Anni muleAs
  26.                 - Torch is muled in OrgTorch script after finishing uber Tristram successfully or when starting OrgTorch script with a Torch already on the character.
  27.                 - Anni is muled after successfully killing Diablo in Palace Cellar level 3 using Config.KillDclone option or KillDClone script.
  28.                         If a profile is listed in Torch/Anni mule's enabledProfiles list, it will also do a check to mule Anni at the end of each game.
  29.                         Anni that is in locked inventory slot will not be muled.

  30.                 * Each mule will hold either a Torch or an Anni, but not both. As soon as the current mule has either one, a new one will be created.
  31.         */
  32.         TorchAnniMules: {
  33.                 "Mule1":  {
  34.                         muleProfile: "",  // The name of mule profile in d2bot#. It will be started and stopped when needed.
  35.                         accountPrefix: "",  // Account prefix. Numbers added automatically when making accounts.
  36.                         accountPassword: "",  // Account password.
  37.                         charPrefix: "",  // Character prefix. Suffix added automatically when making characters.
  38.                         realm: "", // Available options: "useast", "uswest", "europe", "asia"
  39.                         expansion: true,
  40.                         ladder: true,
  41.                         hardcore: false,

  42.                         // Game name and password of the mule game. Never use the same game name as for mule logger.
  43.                         muleGameName: ["", ""], // ["gamename", "password"]

  44.                         // List of profiles that will mule items. Example: enabledProfiles: ["profile 1", "profile 2"],
  45.                         enabledProfiles: [""],

  46.                         // Stop a profile prior to muling. Useful when running 8 bots without proxies.
  47.                         stopProfile: ""
  48.                 }
  49. //##########################################################################################
  50.         },

  51.         inGame: false,
  52.         check: false,
  53.         torchAnniCheck: false,

  54.         // *** Master functions ***
  55.         getInfo: function () {
  56.                 var i, j, info;

  57.                 for (i in this.Mules) {
  58.                         if (this.Mules.hasOwnProperty(i)) {
  59.                                 for (j = 0; j < this.Mules[i].enabledProfiles.length; j += 1) {
  60.                                         if (this.Mules[i].enabledProfiles[j].toLowerCase() === me.profile.toLowerCase()) {
  61.                                                 if (!info) {
  62.                                                         info = {};
  63.                                                 }

  64.                                                 info.muleInfo = this.Mules[i];
  65.                                         }
  66.                                 }
  67.                         }
  68.                 }

  69.                 for (i in this.TorchAnniMules) {
  70.                         if (this.TorchAnniMules.hasOwnProperty(i)) {
  71.                                 for (j = 0; j < this.TorchAnniMules[i].enabledProfiles.length; j += 1) {
  72.                                         if (this.TorchAnniMules[i].enabledProfiles[j].toLowerCase() === me.profile.toLowerCase()) {
  73.                                                 if (!info) {
  74.                                                         info = {};
  75.                                                 }

  76.                                                 info.torchMuleInfo = this.TorchAnniMules[i];
  77.                                         }
  78.                                 }
  79.                         }
  80.                 }

  81.                 return info;
  82.         },

  83.         muleCheck: function () {
  84.                 var info = this.getInfo();

  85.                 if (info && info.hasOwnProperty("muleInfo") && info.muleInfo.hasOwnProperty("usedStashTrigger") && info.muleInfo.hasOwnProperty("usedInventoryTrigger") &&
  86.                                 Storage.Inventory.UsedSpacePercent() >= info.muleInfo.usedInventoryTrigger && Storage.Stash.UsedSpacePercent() >= info.muleInfo.usedStashTrigger &&
  87.                                         this.getMuleItems().length > 0) {
  88.                         D2Bot.printToConsole("MuleCheck triggered!", 7);

  89.                         return true;
  90.                 }

  91.                 return false;
  92.         },

  93.         getMule: function () {
  94.                 var info;

  95.                 info = this.getInfo();

  96.                 if (info) {
  97.                         if (this.check && info.hasOwnProperty("muleInfo")) {
  98.                                 return info.muleInfo;
  99.                         }

  100.                         if (this.torchAnniCheck && info.hasOwnProperty("torchMuleInfo")) {
  101.                                 return info.torchMuleInfo;
  102.                         }
  103.                 }

  104.                 return false;
  105.         },

  106.         outOfGameCheck: function () {
  107.                 if (!this.check && !this.torchAnniCheck) {
  108.                         return false;
  109.                 }

  110.                 var i, control, muleObj,
  111.                         stopCheck = false,
  112.                         muleInfo = {status: ""},
  113.                         failCount = 0;

  114.                 muleObj = this.getMule();

  115.                 if (!muleObj) {
  116.                         return false;
  117.                 }

  118.                 function MuleCheckEvent(mode, msg) {
  119.                         if (mode === 10) {
  120.                                 muleInfo = JSON.parse(msg);
  121.                         }
  122.                 }

  123.                 addEventListener("copydata", MuleCheckEvent);
  124.                 D2Bot.printToConsole("Starting " + (this.torchAnniCheck === 2 ? "anni" : this.torchAnniCheck === 1 ? "torch" : "")  + " mule profile: " + muleObj.muleProfile, 7);

  125. MainLoop:
  126.                 while (true) {
  127.                         // If nothing received our copy data start the mule profile
  128.                         if (!sendCopyData(null, muleObj.muleProfile, 10, JSON.stringify({profile: me.profile, mode: this.torchAnniCheck || 0}))) {
  129.                                 D2Bot.start(muleObj.muleProfile);
  130.                         }

  131.                         delay(1000);

  132.                         switch (muleInfo.status) {
  133.                         case "loading":
  134.                                 if (!stopCheck && muleObj.stopProfile && me.profile.toLowerCase() !== muleObj.stopProfile.toLowerCase()) {
  135.                                         D2Bot.stop(muleObj.stopProfile);

  136.                                         stopCheck = true;
  137.                                 }

  138.                                 failCount += 1;

  139.                                 break;
  140.                         case "busy":
  141.                         case "begin":
  142.                                 D2Bot.printToConsole("Mule profile is busy.", 9);

  143.                                 break MainLoop;
  144.                         case "ready":
  145.                                 control = getControl(6, 652, 469, 120, 20);

  146.                                 if (control) {
  147.                                         delay(200);
  148.                                         control.click();
  149.                                 }

  150.                                 delay(2000);

  151.                                 this.inGame = true;
  152.                                 me.blockMouse = true;

  153.                                 try {
  154.                                         joinGame(muleObj.muleGameName[0], muleObj.muleGameName[1]);
  155.                                 } catch (joinError) {

  156.                                 }

  157.                                 me.blockMouse = false;

  158.                                 // Untested change 11.Feb.14.
  159.                                 for (i = 0; i < 8; i += 1) {
  160.                                         delay(1000);

  161.                                         if (me.ingame && me.gameReady) {
  162.                                                 break MainLoop;
  163.                                         }
  164.                                 }

  165.                                 break;
  166.                         default:
  167.                                 failCount += 1;

  168.                                 break;
  169.                         }

  170.                         if (failCount >= 60) {
  171.                                 D2Bot.printToConsole("No response from mule profile.", 9);

  172.                                 break;
  173.                         }
  174.                 }

  175.                 removeEventListener("copydata", MuleCheckEvent);

  176.                 while (me.ingame) {
  177.                         delay(1000);
  178.                 }

  179.                 this.inGame = false;
  180.                 this.check = false;
  181.                 this.torchAnniCheck = false;

  182.                 // No response - stop mule profile
  183.                 if (failCount >= 60) {
  184.                         D2Bot.stop(muleObj.muleProfile);
  185.                         delay(1000);
  186.                 }

  187.                 if (stopCheck && muleObj.stopProfile) {
  188.                         D2Bot.start(muleObj.stopProfile);
  189.                 }

  190.                 return true;
  191.         },

  192.         inGameCheck: function () {
  193.                 var muleObj, tick, info,
  194.                         timeout = 150 * 1000, // Ingame mule timeout
  195.                         status = "muling";

  196.                 // Single player
  197.                 if (!me.gamename) {
  198.                         return false;
  199.                 }

  200.                 info = this.getInfo();

  201.                 // Profile is not a part of AutoMule
  202.                 if (!info) {
  203.                         return false;
  204.                 }

  205.                 // Profile is not in mule or torch mule game
  206.                 if (!((info.hasOwnProperty("muleInfo") && me.gamename.toLowerCase() === info.muleInfo.muleGameName[0].toLowerCase()) ||
  207.                                 (info.hasOwnProperty("torchMuleInfo") && me.gamename.toLowerCase() === info.torchMuleInfo.muleGameName[0].toLowerCase()))) {
  208.                         return false;
  209.                 }

  210.                 function DropStatusEvent(mode, msg) {
  211.                         if (mode === 10) {
  212.                                 switch (JSON.parse(msg).status) {
  213.                                 case "report": // reply to status request
  214.                                         sendCopyData(null, muleObj.muleProfile, 12, JSON.stringify({status: status}));

  215.                                         break;
  216.                                 case "quit": // quit command
  217.                                         status = "quit";

  218.                                         break;
  219.                                 }
  220.                         }
  221.                 }

  222.                 function MuleModeEvent(msg) {
  223.                         switch (msg) {
  224.                         case "2":
  225.                                 AutoMule.torchAnniCheck = 2;

  226.                                 break;
  227.                         case "1":
  228.                                 AutoMule.torchAnniCheck = 1;

  229.                                 break;
  230.                         case "0":
  231.                                 AutoMule.check = true;

  232.                                 break;
  233.                         }
  234.                 }

  235.                 addEventListener("copydata", DropStatusEvent);
  236.                 addEventListener("scriptmsg", MuleModeEvent);
  237.                 scriptBroadcast("getMuleMode");
  238.                 delay(500);

  239.                 if (!this.check && !this.torchAnniCheck) {
  240.                         print("Error - Unable to determine mule mode");
  241.                         quit();

  242.                         return false;
  243.                 }

  244.                 muleObj = this.getMule();
  245.                 me.maxgametime = 0;

  246.                 if (!Town.goToTown(1)) {
  247.                         print("Error - Failed to go to Act 1");
  248.                         quit();

  249.                         return false;
  250.                 }

  251.                 sendCopyData(null, muleObj.muleProfile, 11, "begin");

  252.                 if (this.torchAnniCheck === 2) {
  253.                         print("c4AutoMulec0: In anni mule game.");
  254.                         D2Bot.updateStatus("AutoMule: In game.");
  255.                         this.dropCharm(true);
  256.                 } else if (this.torchAnniCheck === 1) {
  257.                         print("c4AutoMulec0: In torch mule game.");
  258.                         D2Bot.updateStatus("AutoMule: In game.");
  259.                         this.dropCharm(false);
  260.                 } else {
  261.                         print("c4AutoMulec0: In mule game.");
  262.                         D2Bot.updateStatus("AutoMule: In game.");
  263.                         this.dropStuff();
  264.                 }

  265.                 status = "done";
  266.                 tick = getTickCount();

  267.                 while (true) {
  268.                         if (status === "quit") {
  269.                                 break;
  270.                         }

  271.                         if (getTickCount() - tick > timeout) {
  272.                                 D2Bot.printToConsole("Mule didn't rejoin. Picking up items.", 9);

  273.                                 Misc.useItemLog = false; // Don't log items picked back up in town.

  274.                                 Pickit.pickItems();

  275.                                 break;
  276.                         }

  277.                         delay(500);
  278.                 }

  279.                 removeEventListener("copydata", DropStatusEvent);
  280.                 D2Bot.stop(muleObj.muleProfile);
  281.                 delay(1000);

  282.                 if (muleObj.stopProfile) {
  283.                         D2Bot.start(muleObj.stopProfile);
  284.                 }

  285.                 if (getScript("AnniStarter.dbj")) {
  286.                         scriptBroadcast("exit");
  287.                 }

  288.                 delay(2000);
  289.                 quit();
  290.                 //delay(10000);

  291.                 return true;
  292.         },

  293.         dropStuff: function () {
  294.                 if (!Town.openStash()) {
  295.                         return false;
  296.                 }

  297.                 var i,
  298.                         items = this.getMuleItems();

  299.                 if (!items || items.length === 0) {
  300.                         return false;
  301.                 }

  302.                 D2Bot.printToConsole("AutoMule: Transfering items.", 7);

  303.                 for (i = 0; i < items.length; i += 1) {
  304.                         items[i].drop();
  305.                 }

  306.                 delay(1000);
  307.                 me.cancel();

  308.                 return true;
  309.         },

  310.         // get a list of items to mule
  311.         getMuleItems: function () {
  312.                 var item, items, info;

  313.                 info = this.getInfo();</font>
复制代码




作者: 小渔    时间: 2016-10-20 12:27
本帖最后由 小渔 于 2016-10-20 12:28 编辑

里面这么变量也用中文,晕! “亞洲”,……要这样:
realm: "asia", // 引号内填入国度,可用选项有: "useast", "uswest", "europe", "asia" // Available options: "useast", "uswest", "europe", "asia"

作者: bluemood    时间: 2016-10-20 12:31
enabledProfiles: ["BOT AUTO"]
这里错了,这里是填启动bot auto这个profile的profile,你的应该填”bot1“,这样bot1的人物达到启动条件的时候会自动启动 bot auto这个profile
作者: 29646869zxcv    时间: 2016-10-20 12:32
小渔 发表于 2016-10-20 12:27
里面这么变量也用中文,晕! “亞洲”,……要这样:
realm: "asia", // 引号内填入国度,可用选项有: "us ...

大哥可能按到網頁自動翻譯了
作者: 29646869zxcv    时间: 2016-10-20 12:37
bluemood 发表于 2016-10-20 12:31
enabledProfiles: ["BOT AUTO"]
这里错了,这里是填启动bot auto这个profile的profile,你的应该填”bot1“ ...

有找到並且更改了 那麼倉庫的BOT停在主選單是正常嗎? 意思是BOT2呼叫的時候倉庫才會自己創帳號開房間嗎?
作者: bluemood    时间: 2016-10-20 12:38
29646869zxcv 发表于 2016-10-20 12:37
有找到並且更改了 那麼倉庫的BOT停在主選單是正常嗎? 意思是BOT2呼叫的時候倉庫才會自己創帳號開房間嗎? ...

bot1 会自动呼叫的,auto bot 正常情况下是stop状态
作者: 29646869zxcv    时间: 2016-10-20 12:43
本帖最后由 29646869zxcv 于 2016-10-20 13:03 编辑
bluemood 发表于 2016-10-20 12:38
bot1 会自动呼叫的,auto bot 正常情况下是stop状态

大神 修改成功了!!
方才有用BOT2按數字鍵5 會自動呼叫倉庫也會自動開號上去太感謝您了

想再請教方才BOT2丟完裝備後 倉庫就自動關閉遊戲 那麼之後我必須自己在手動打開倉庫嗎?
作者: uuiiuu    时间: 2016-10-20 12:54
kolbbot功能还有更强大的,自动仓库中,除了自己建新账号,由bot自己呼叫仓库外,假如遇到cd事件,会自动打完cd,然后自己重新建新账号,让bot自己把usc扔给仓库小号。另外,还可以自己呼叫仓库进入游戏,放钥匙,然后自己打完ulc以后,自己再呼叫仓库把ulc放回去。
这一切,都是自动的。
另外:kolbot,还可以实现全自动让4个角色从1级bb组成team,然后按照你给定的升级路线,装备路线,实现1—80级的飞跃
可惜,那么好的bot,就是没有可视化界面,设置起来麻烦,但是有什么办法呢?玩d2不就是玩bot么,就是一个不断摧残自己的过程
作者: wcg928    时间: 2016-10-20 14:12
uuiiuu 发表于 2016-10-20 12:54
kolbbot功能还有更强大的,自动仓库中,除了自己建新账号,由bot自己呼叫仓库外,假如遇到cd事件,会自动打 ...

期待大神能把KOL 可视化设置!




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