Advertisement
DiabolicOne

NTBoBarb

Nov 21st, 2014
465
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // --------------------------------------------------------------------
  2. //               Scripted by Diabolic@ProjectEtal.com
  3. //                  Intended for use with D2Etal
  4. //          For support on this script visit projectetal.com
  5. // --------------------------------------------------------------------
  6.  
  7. var WpToTown;
  8. var busy = false;
  9. var bocalled = false;
  10.  
  11. function NTMain() {
  12.     var pretown, portal;
  13.  
  14.     WpToTown = false;
  15.  
  16.     Include("libs/common/NTCommon.ntl");
  17.     NTC_IncludeLibs();
  18.     NTC_IncludeConfig("NTBot/char_configs");
  19.  
  20.     NT_LoadConfig();
  21.     NTSI_LoadNIPFiles("NTBot/item_configs");
  22.  
  23.     NTA_Initialize();
  24.  
  25.     busy = true;
  26.  
  27.     if(!NTTM_CheckAct()) {
  28.         NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_CheckAct()");
  29.         return;
  30.     }
  31.  
  32.     NTTM_TownMove("portalspot");
  33.  
  34.     busy = false;
  35.  
  36.  
  37.     RegisterEvent(EVENT_GAMEMSG,
  38.         function (msg, type) {
  39.             if (type === 0) {
  40.                 var sender, lowercase,
  41.                     split = msg.split(":");
  42.  
  43.                 sender = split[0].substring(3, split[0].length - 3);
  44.  
  45.                 if (sender === me.name) {
  46.                     return;
  47.                 }
  48.  
  49.                 lowercase = msg.toLowerCase();
  50.  
  51.                 if (lowercase.indexOf("bo me") !== -1 && !busy) {
  52.                     if (sender === NTConfig_BoWho) {
  53.                         bocalled = true;
  54.                     } else {
  55.                         Say("Get your own bo");
  56.                     }
  57.                 } else if (lowercase.indexOf("bo me") !== -1 && busy) {
  58.                     if (sender === NTConfig_BoWho) {
  59.                         BoSay("Currently boing a toon.", NTConfig_AlertType);
  60.                     } else {
  61.                         Say("Get your own bo");
  62.                     }
  63.                 }  
  64.             }
  65.         });
  66.  
  67.     while (CallerInGame()) {
  68.         if (bocalled) {
  69.             busy = true;
  70.  
  71.             if (me.act !== CheckPlayerAct(NTConfig_BoWho)) {
  72.                 BoSay("Coming, need to switch acts!", NTConfig_AlertType);
  73.                 NTTM_CheckAct(CheckPlayerAct(NTConfig_BoWho));
  74.                 NTTM_TownMove("portalspot");
  75.             } else {
  76.                 NTTM_TownMove("portalspot");
  77.             }
  78.  
  79.             pretown = me.areaid;
  80.  
  81.             NTM_UsePortal("BluePortal", GetPlayerAreaId(NTConfig_BoWho), NTConfig_BoWho);
  82.             NTP_DoPrecast(true);
  83.  
  84.             WpDetected = GetWaypointInt();
  85.  
  86.             if (NTConfig_GrabNearbyWps && WpDetected > 0) {
  87.                 TakeWayPointHome(me.areaid);
  88.                 WpToTown = true;
  89.             } else {
  90.                 if (!NTM_UsePortal("BluePortal", pretown, NTConfig_BoWho)) {
  91.                     NTTM_CheckAct();
  92.                 }
  93.             }
  94.         }
  95.  
  96.         if (WpToTown) {
  97.             NTTM_TownMove("portalspot");
  98.             WpToTown = false;
  99.         }
  100.  
  101.         busy = false;
  102.         bocalled = false;
  103.  
  104.         Delay(500);
  105.     }
  106.     NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
  107. }
  108.  
  109. function BoSay(line, type) {
  110.     if (type === undefined) {
  111.         type = 0;
  112.     }
  113.  
  114.     switch (type) {
  115.         case 0:
  116.             return Print(line);
  117.         case 1:
  118.             return Say(line);
  119.     }
  120. }
  121.  
  122. function CheckPlayerAct (who){
  123.     var act,
  124.         player = GetPlayerUnit();
  125.  
  126.     if (player) {
  127.         do {
  128.             if(player.name === who){
  129.                 act = GetPlayerAct(who);
  130.                 return act;
  131.             }
  132.         } while(player.GetNext());
  133.     }
  134.     return Print("Failed to CheckPlayer");
  135. }
  136.  
  137. function GetPlayerAreaId (who) {
  138.     var player = GetPlayerUnit();
  139.  
  140.     if (player) {
  141.         do {
  142.             if(player.name === who){
  143.                 return player.areaid;
  144.             }
  145.         } while (player.GetNext());
  146.     }
  147.     return Print("Failed to locate areaid of caller");
  148. }
  149.  
  150. function GetPlayerAct(who) {
  151.     var player = GetPlayerUnit();
  152.         if (player) {
  153.             do {
  154.                 if(player.name === who){
  155.                     if (player.areaid < 40) {
  156.                         return 1;
  157.                     }
  158.  
  159.                     if (player.areaid >= 40 && player.areaid <= 74) {
  160.                         return 2;
  161.                     }
  162.  
  163.                     if (player.areaid >= 75 && player.areaid <= 102) {
  164.                         return 3;
  165.                     }
  166.  
  167.                     if (player.areaid >= 103 && player.areaid <= 108) {
  168.                         return 4;
  169.                     }
  170.  
  171.                     if (player.areaid >= 109 && player.areaid <= 132) {
  172.                         return 5;
  173.                     }
  174.                 }
  175.             } while(player.GetNext());
  176.         }
  177.     return Print("Failed to Check Players act");
  178. }
  179.  
  180. function CallerInGame() {
  181.     var player;
  182.  
  183.     player = GetPlayerUnit();
  184.  
  185.     if (player) {
  186.         do {
  187.             if (NTConfig_BoWho.indexOf(player.name) !== -1) {
  188.                 return true;
  189.             }
  190.         } while (player.GetNext());
  191.     }
  192.  
  193.     Print("No caller detected in game");
  194.  
  195.     return false;
  196. }
  197.  
  198. function GetWaypointInt() {
  199.     var i, waypoint, classid;
  200.  
  201.     for(i = 0 ; i <= 2 ; i += 1)
  202.     {
  203.         waypoint = NTC_FindUnit(NTC_UNIT_OBJECT);
  204.  
  205.         if(waypoint)
  206.         {
  207.             do
  208.             {
  209.                 classid = waypoint.classid;
  210.  
  211.                 if(classid === 119 || classid === 145 || classid === 156 || classid === 157
  212.                     || classid === 237 || classid === 238 || classid === 288 || classid === 323
  213.                     || classid === 324 || classid === 398 || classid === 402 || classid === 429
  214.                     || classid === 494 || classid === 496 || classid === 511 || classid === 539) {
  215.                     return classid;
  216.                 }
  217.             } while(waypoint.GetNext());
  218.         }
  219.  
  220.         if(i < 2) {
  221.             NTC_Delay(500);
  222.         }
  223.     }
  224.  
  225.     return null;
  226. }
  227.  
  228. function TakeWayPointHome(areaid){
  229.     var unit, wp, areaId,
  230.         open = true;
  231.  
  232.     switch(areaid) {
  233.         case 3: wp = 119; break;
  234.         case 4: wp = 119; break;
  235.         case 5: wp = 119; break;
  236.         case 6: wp = 119; break;
  237.         case 27: wp = 119; break;
  238.         case 29: wp = 157; break;
  239.         case 32: wp = 119; break;
  240.         case 35: wp = 157; break;
  241.         case 42: wp = 156; break;
  242.         case 43: wp = 156; break;
  243.         case 44: wp = 156; break;
  244.         case 46: wp = 402; break;
  245.         case 48: wp = 323; break;
  246.         case 52: wp = 288; break;
  247.         case 57: wp = 156; break;
  248.         case 74: wp = 402; break;
  249.         case 76: wp = 237; break;
  250.         case 77: wp = 237; break;
  251.         case 78: wp = 237; break;
  252.         case 79: wp = 237; break;
  253.         case 80: wp = 237; break;
  254.         case 81: wp = 237; break;
  255.         case 83: wp = 237; break;
  256.         case 101: wp = 324; break;
  257.         case 106: wp = 238; break;
  258.         case 107: wp = 238; break;
  259.         case 111: wp = 496; break;
  260.         case 112: wp = 496; break;
  261.         case 113: wp = 511; break;
  262.         case 115: wp = 511; break;
  263.         case 117: wp = 496; break;
  264.         case 118: wp = 511; break;
  265.         case 123: wp = 496; break;
  266.         case 129: wp = 494; break;
  267.     }
  268.  
  269.     switch (me.act) {
  270.         case 1:
  271.             areaId = 1;
  272.             break;
  273.         case 2:
  274.             areaId = 40;
  275.             break;
  276.         case 3:
  277.             areaId = 75;
  278.             break;
  279.         case 4:
  280.             areaId = 103;
  281.             break;
  282.         case 5:
  283.             areaId = 109;
  284.             break;
  285.     }
  286.  
  287.     NTM_MoveToPresetUnit(areaid, NTC_UNIT_OBJECT, wp, 1, 1);
  288.  
  289.     if(open){
  290.         unit = NTC_FindUnit(NTC_UNIT_OBJECT, wp);
  291.  
  292.         if(unit){
  293.             if(GetDistance(me, unit) > 2) {
  294.                 NTM_MoveTo(unit.areaid, unit.x+1, unit.y);
  295.             }
  296.  
  297.             NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, unit);
  298.             NTC_PingDelay(1000);
  299.  
  300.             if (me.TakeWaypoint(areaId)) {
  301.                 NTC_PingDelay(NTConfig_AreaDelay);
  302.                 return true;
  303.             }
  304.         }
  305.     }
  306.     return false;
  307. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement