Advertisement
kolton

Untitled

Oct 21st, 2011
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var switchSkills,
  2.     NTPSkill = [];
  3.    
  4.     NTPSkill["valkyrie"] = 32;
  5.     NTPSkill["enchant"] = 52;
  6.     NTPSkill["thunderstorm"] = 57;
  7.     NTPSkill["energyshield"] = 58;
  8.     NTPSkill["frozenarmor"] = 40;
  9.     NTPSkill["shiverarmor"] = 50;
  10.     NTPSkill["chillingarmor"] = 60;
  11.     NTPSkill["bonearmor"] = 68;
  12.     NTPSkill["claygolem"] = 75;
  13.     NTPSkill["bloodgolem"] = 85;
  14.     NTPSkill["firegolem"] = 94;
  15.     NTPSkill["holyshield"] = 117;
  16.     NTPSkill["shout"] = 138;
  17.     NTPSkill["battleorders"] = 149;
  18.     NTPSkill["battlecommand"] = 155;
  19.     NTPSkill["raven"] = 221;
  20.     NTPSkill["poisoncreeper"] = 222;
  21.     NTPSkill["oaksage"] = 226;
  22.     NTPSkill["spiritwolf"] = 227;
  23.     NTPSkill["carrionvine"] = 231;
  24.     NTPSkill["heartofwolverine"] = 236;
  25.     NTPSkill["direwolf"] = 237;
  26.     NTPSkill["solarcreeper"] = 241;
  27.     NTPSkill["spiritofbarbs"] = 246;
  28.     NTPSkill["grizzly"] = 247;
  29.     NTPSkill["cyclonearmor"] = 235;
  30.     NTPSkill["armageddon"] = 249;
  31.     NTPSkill["hurricane"] = 250;
  32.     NTPSkill["burstofspeed"] = 258;
  33.     NTPSkill["fade"] = 267;
  34.     NTPSkill["shadowwarrior"] = 268;
  35.     NTPSkill["venom"] = 278;
  36.     NTPSkill["shadowmaster"] = 279;
  37.     NTPSkill["bladeshield"] = 277;
  38.  
  39. function NTP_DoPrecast(refresh) {
  40.     NTP_GetSwitchSkills();
  41.    
  42.     var i, currSlot;
  43.    
  44.     currSlot = me.weaponstab; // current slot
  45.    
  46.     for (i = 0; i < NTConfig_Precast.length; i += 1) {
  47.         if (isNaN(NTConfig_Precast[i])) {
  48.             NTConfig_Precast[i] = NTConfig_Precast[i].replace(/ /g, "").toLowerCase();
  49.         }
  50.        
  51.         switch (NTConfig_Precast[i]) {
  52.         // amazon
  53.        
  54.         case 32:
  55.         case "valkyrie":
  56.             if (NTP_GetMinion(357) < 1 && NTP_SkillSwitch(32)) {
  57.                 while (NTP_GetMinion(357) < 1) {
  58.                     NTC_CastSkill(32, 0);
  59.                     NTC_Delay(200);
  60.                 }
  61.             }
  62.            
  63.             break;
  64.            
  65.         // sorceress
  66.        
  67.         case 40:
  68.         case "frozenarmor":
  69.             if ((refresh || !me.GetState(10)) && NTP_SkillSwitch(40)) {
  70.                 NTC_CastSkill(40, 0);
  71.             }
  72.            
  73.             break;
  74.         case 50:
  75.         case "shiverarmor":
  76.             if ((refresh || !me.GetState(88)) && NTP_SkillSwitch(50)) {
  77.                 NTC_CastSkill(50, 0);
  78.             }
  79.            
  80.             break;
  81.         case 60:
  82.         case "chillingarmor":
  83.             if ((refresh || !me.GetState(20)) && NTP_SkillSwitch(60)) {
  84.                 NTC_CastSkill(60, 0);
  85.             }
  86.            
  87.             break;
  88.         case 57:
  89.         case "thunderstorm":
  90.             if ((refresh || !me.GetState(38)) && NTP_SkillSwitch(57)) {
  91.                 NTC_CastSkill(57, 0);
  92.             }
  93.            
  94.             break;
  95.         case 58:
  96.         case "energyshield":
  97.             if ((refresh || me.GetState(30) === 0) && NTP_SkillSwitch(58)) {
  98.                 NTC_CastSkill(58, 0);
  99.             }
  100.            
  101.             break;
  102.            
  103.         // necromancer
  104.        
  105.         case 68:
  106.         case "bonearmor":
  107.             if ((refresh || !me.GetState(14)) && NTP_SkillSwitch(68)) {
  108.                 NTC_CastSkill(68, 0);
  109.             }
  110.            
  111.             break;
  112.         case 75:
  113.         case "claygolem":
  114.             if (NTP_GetMinion(289) < 1 && NTP_SkillSwitch(75)) {
  115.                 while (NTP_GetMinion(289) < 1) {
  116.                     NTC_CastSkill(75, 0);
  117.                     NTC_Delay(200);
  118.                 }
  119.             }
  120.            
  121.             break;
  122.         case 85:
  123.         case "bloodgolem":
  124.             if (NTP_GetMinion(290) < 1 && NTP_SkillSwitch(85)) {
  125.                 while (NTP_GetMinion(290) < 1) {
  126.                     NTC_CastSkill(85, 0);
  127.                     NTC_Delay(200);
  128.                 }
  129.             }
  130.            
  131.             break;
  132.         case 94:
  133.         case "firegolem":
  134.             if (NTP_GetMinion(292) < 1 && NTP_SkillSwitch(85)) {
  135.                 while (NTP_GetMinion(292) < 1) {
  136.                     NTC_CastSkill(85, 0);
  137.                     NTC_Delay(200);
  138.                 }
  139.             }
  140.            
  141.             break;
  142.            
  143.         // paladin
  144.        
  145.         case 117:
  146.         case "holyshield":
  147.             if ((refresh || !me.GetState(101)) && NTP_SkillSwitch(117)) {
  148.                 NTC_CastSkill(117, 0);
  149.             }
  150.            
  151.             break;
  152.            
  153.         // barbarian
  154.        
  155.         case 138:
  156.         case "shout":
  157.             if ((refresh || !me.GetState(26)) && NTP_SkillSwitch(138)) {
  158.                 NTC_CastSkill(138, 0);
  159.             }
  160.            
  161.             break;
  162.         case 149:
  163.         case "battleorders":
  164.             if ((refresh || !me.GetState(32)) && NTP_SkillSwitch(149)) {
  165.                 NTC_CastSkill(149, 0);
  166.             }
  167.            
  168.             break;
  169.         case 155:
  170.         case "battlecommand":
  171.             if ((refresh || !me.GetState(51)) && NTP_SkillSwitch(155)) {
  172.                 NTC_CastSkill(155, 0);
  173.             }
  174.            
  175.             break;
  176.            
  177.         // druid
  178.        
  179.         case 221:
  180.         case "raven":
  181.             if (NTP_GetMinion(419) < 5 && NTP_SkillSwitch(221)) {
  182.                 while (NTP_GetMinion(419) < 5) {
  183.                     NTC_CastSkill(221, 0);
  184.                     NTC_Delay(200);
  185.                 }
  186.             }
  187.            
  188.             break;
  189.         case 222:
  190.         case "poisoncreeper":
  191.             if (NTP_GetMinion(425) < 1 && NTP_SkillSwitch(222)) {
  192.                 while (NTP_GetMinion(425) < 1) {
  193.                     NTC_CastSkill(222, 0);
  194.                     NTC_Delay(200);
  195.                 }
  196.             }
  197.            
  198.             break;
  199.         case 226:
  200.         case "oaksage":
  201.             if (NTP_GetMinion(424) < 1 && NTP_SkillSwitch(226)) {
  202.                 while (NTP_GetMinion(424) < 1) {
  203.                     NTC_CastSkill(226, 0);
  204.                     NTC_Delay(200);
  205.                 }
  206.             }
  207.            
  208.             break;
  209.         case 227:
  210.         case "spiritwolf":
  211.             if (NTP_GetMinion(420) < 5 && NTP_SkillSwitch(227)) {
  212.                 while (NTP_GetMinion(420) < 5) {
  213.                     NTC_CastSkill(227, 0);
  214.                     NTC_Delay(200);
  215.                 }
  216.             }
  217.            
  218.             break;
  219.         case 231:
  220.         case "carrionvine":
  221.             if (NTP_GetMinion(426) < 1 && NTP_SkillSwitch(231)) {
  222.                 while (NTP_GetMinion(426) < 1) {
  223.                     NTC_CastSkill(231, 0);
  224.                     NTC_Delay(200);
  225.                 }
  226.             }
  227.            
  228.             break;
  229.         case 236:
  230.         case "heartofwolverine":
  231.             if (NTP_GetMinion(423) < 1 && NTP_SkillSwitch(236)) {
  232.                 while (NTP_GetMinion(423) < 1) {
  233.                     NTC_CastSkill(236, 0);
  234.                     NTC_Delay(200);
  235.                 }
  236.             }
  237.            
  238.             break;
  239.         case 237:
  240.         case "direwolf":
  241.             if (NTP_GetMinion(421) < 3 && NTP_SkillSwitch(237)) {
  242.                 while (NTP_GetMinion(421) < 3) {
  243.                     NTC_CastSkill(237, 0);
  244.                     NTC_Delay(200);
  245.                 }
  246.             }
  247.            
  248.             break;
  249.         case 241:
  250.         case "solarcreeper":
  251.             if (NTP_GetMinion(427) < 1 && NTP_SkillSwitch(241)) {
  252.                 while (NTP_GetMinion(427) < 1) {
  253.                     NTC_CastSkill(241, 0);
  254.                     NTC_Delay(200);
  255.                 }
  256.             }
  257.            
  258.             break;
  259.         case 246:
  260.         case "spiritofbarbs":
  261.             if (NTP_GetMinion(422) < 1 && NTP_SkillSwitch(246)) {
  262.                 while (NTP_GetMinion(422) < 1) {
  263.                     NTC_CastSkill(246, 0);
  264.                     NTC_Delay(200);
  265.                 }
  266.             }
  267.            
  268.             break;
  269.         case 247:
  270.         case "grizzly":
  271.             if (NTP_GetMinion(428) < 1 && NTP_SkillSwitch(247)) {
  272.                 while (NTP_GetMinion(428) < 1) {
  273.                     NTC_CastSkill(247, 0);
  274.                     NTC_Delay(200);
  275.                 }
  276.             }
  277.            
  278.             break;
  279.         case 235:
  280.         case "cyclonearmor":
  281.             if ((refresh || !me.GetState(151)) && NTP_SkillSwitch(235)) {
  282.                 NTC_CastSkill(235, 0);
  283.             }
  284.            
  285.             break;
  286.         case 249:
  287.         case "armageddon":
  288.             if ((refresh || !me.GetState(145)) && NTP_SkillSwitch(249)) {
  289.                 NTC_CastSkill(249, 0);
  290.             }
  291.            
  292.             break;
  293.         case 250:
  294.         case "hurricane":
  295.             if ((refresh || !me.GetState(144)) && NTP_SkillSwitch(250)) {
  296.                 NTC_CastSkill(250, 0);
  297.             }
  298.            
  299.             break;
  300.            
  301.         // assassin
  302.        
  303.         case 258:
  304.         case "burstofspeed":
  305.             if ((refresh || !me.GetState(157)) && NTP_SkillSwitch(258)) {
  306.                 NTC_CastSkill(258, 0);
  307.             }
  308.            
  309.             break;
  310.         case 267:
  311.         case "fade":
  312.             if ((refresh || !me.GetStat(181)) && NTP_SkillSwitch(267)) {
  313.                 NTC_CastSkill(267, 0);
  314.             }
  315.            
  316.             break;
  317.         case 268:
  318.         case "shadowwarrior":
  319.             if (NTP_GetMinion(417) < 1 && NTP_SkillSwitch(268)) {
  320.                 while (NTP_GetMinion(417) < 1) {
  321.                     NTC_CastSkill(268, 0);
  322.                     NTC_Delay(200);
  323.                 }
  324.             }
  325.            
  326.             break;
  327.         case 278:
  328.         case "venom":
  329.             if ((refresh || !me.GetStat(101)) && NTP_SkillSwitch(278)) {
  330.                 NTC_CastSkill(278, 0);
  331.             }
  332.            
  333.             break;
  334.         case 279:
  335.         case "shadowmaster":
  336.             if (NTP_GetMinion(418) < 1 && NTP_SkillSwitch(279)) {
  337.                 while (NTP_GetMinion(418) < 1) {
  338.                     NTC_CastSkill(279, 0);
  339.                     NTC_Delay(200);
  340.                 }
  341.             }
  342.            
  343.             break;
  344.         case 277:
  345.         case "bladeshield":
  346.             if ((refresh || me.GetState(158) === 0) && NTP_SkillSwitch(277)) {
  347.                 NTC_CastSkill(277, 0);
  348.             }
  349.            
  350.             break;
  351.         }
  352.     }
  353.    
  354.     NTC_SwapWeapons(currSlot);
  355. }
  356.  
  357. function NTP_GetSwitchSkills() {
  358.     var i;
  359.    
  360.     switchSkills = [];
  361.    
  362.     for (i = 0; i < NTConfig_Precast.length; i += 1) {
  363.         if (isNaN(NTConfig_Precast[i])) {
  364.             NTConfig_Precast[i] = NTConfig_Precast[i].replace(/ /g, "").toLowerCase();
  365.             NTConfig_Precast[i] = NTPSkill[NTConfig_Precast[i]];
  366.         }
  367.        
  368.         if (!NTC_GetSkillLevel(NTConfig_Precast[i])) {
  369.             switchSkills.push(NTConfig_Precast[i]);
  370.         }
  371.     }
  372. }
  373.  
  374. function NTP_SkillSwitch(skillID) {
  375.     var i, items,
  376.         primSlot = 0,
  377.         secSlot = 0;
  378.        
  379.     items = me.GetItems();
  380.    
  381.     if (switchSkills.indexOf(skillID) > -1) { // for skills only on secondary slot
  382.         Print("2nd slot skill: " + skillID);
  383.         primSlot = -1;
  384.     }
  385.    
  386.     for (i = 0; i < items.length; i += 1) {
  387.         if (items[i].mode !== 1) {
  388.             continue;
  389.         }
  390.        
  391.         switch (items[i].itemloc) {
  392.         case 4: // I
  393.         case 5:
  394.             if (primSlot === -1) { // skip if we don't have the skill on primary slot
  395.                 break;
  396.             }
  397.            
  398.             primSlot += items[i].GetStat(107, skillID) + items[i].GetStat(127); // all skills
  399.             primSlot += items[i].GetStat(83, me.classid); // class skills
  400.            
  401.             switch (skillID) { // skill tabs
  402.             case 32: // valkyrie
  403.                 primSlot += items[i].GetStat(188, 1); // passive and magic skill tab
  404.                 break;
  405.             case 52: // enchant
  406.                 primSlot += items[i].GetStat(188, 8); // fire skill tab
  407.                 break;
  408.             case 57: // thunder storm
  409.             case 58: // energy shield
  410.                 primSlot += items[i].GetStat(188, 9); // lightning skill tab
  411.                 break;
  412.             case 40: // Frozen Armor
  413.             case 50: // Shiver Armor
  414.             case 60: // Chilling Armor
  415.                 primSlot += items[i].GetStat(188, 10); // cold skill tab
  416.                 break;
  417.             case 68: // Bone Armor
  418.                 primSlot += items[i].GetStat(188, 17); // poison and bone skill tab
  419.                 break;
  420.             case 75: // Clay Golem
  421.             case 85: // Blood Golem
  422.             case 94: // Fire Golem
  423.                 primSlot += items[i].GetStat(188, 18); // necro summoning skill tab
  424.                 break;
  425.             case 117: // Holy Shield           
  426.                 primSlot += items[i].GetStat(188, 24); // paladin combat skill tab
  427.                 break;
  428.             case 138: // Shout
  429.             case 149: // Batttle Orders
  430.             case 155: // Battle Command
  431.                 if (items[i].itemprefix === 20519) {
  432.                     primSlot += 6; // dirty fix for cta, d2nt can't read +skills on runewords
  433.                 }
  434.                
  435.                 primSlot += items[i].GetStat(188, 34); // warcries skill tab
  436.                 break;
  437.             case 221: // Raven
  438.             case 222: // Poison Creeper
  439.             case 226: // Oak Sage
  440.             case 227: // Spirit Wolf
  441.             case 231: // Carrion Vine
  442.             case 236: // Heart of Wolverine
  443.             case 237: // Dire Wolf
  444.             case 241: // Solar Creeper
  445.             case 246: // Spirit of Barbs
  446.             case 247: // Grizzly
  447.                 primSlot += items[i].GetStat(188, 40); // druid summoning skill tab
  448.                 break;
  449.             case 235: // Cyclone Armor
  450.             case 249: // Armageddon
  451.             case 250: // Hurricane
  452.                 primSlot += items[i].GetStat(188, 42); // elemental skill tab
  453.                 break;
  454.             case 258: // Burst of Speed
  455.             case 267: // Fade
  456.             case 268: // Shadow Warrior
  457.             case 278: // Venom
  458.             case 279: // Shadow Master
  459.                 primSlot += items[i].GetStat(188, 49); // shadow disciplines skill tab
  460.                 break;
  461.             case 277: // Blade Shield
  462.                 primSlot += items[i].GetStat(188, 48); // traps skill tab
  463.                 break;
  464.             }
  465.            
  466.             break;
  467.         case 11: // II
  468.         case 12:
  469.             secSlot += items[i].GetStat(107, skillID) + items[i].GetStat(127); // all skills
  470.             secSlot += items[i].GetStat(83, me.classid); // class skills
  471.            
  472.             switch (skillID) { // skill tabs
  473.             case 32: // valkyrie
  474.                 secSlot += items[i].GetStat(188, 1); // passive and magic skill tab
  475.                 break;
  476.             case 52: // enchant
  477.                 secSlot += items[i].GetStat(188, 8); // fire skill tab
  478.                 break;
  479.             case 57: // thunder storm
  480.             case 58: // energy shield
  481.                 secSlot += items[i].GetStat(188, 9); // lightning skill tab
  482.                 break;
  483.             case 40: // Frozen Armor
  484.             case 50: // Shiver Armor
  485.             case 60: // Chilling Armor
  486.                 secSlot += items[i].GetStat(188, 10); // cold skill tab
  487.                 break;
  488.             case 68: // Bone Armor
  489.                 secSlot += items[i].GetStat(188, 17); // poison and bone skill tab
  490.                 break;
  491.             case 75: // Clay Golem
  492.             case 85: // Blood Golem
  493.             case 94: // Fire Golem
  494.                 secSlot += items[i].GetStat(188, 18); // necro summoning skill tab
  495.                 break;
  496.             case 117: // Holy Shield
  497.                 secSlot += items[i].GetStat(188, 24); // paladin combat skill tab
  498.                 break;
  499.             case 138: // Shout
  500.             case 149: // Batttle Orders
  501.             case 155: // Battle Command
  502.                 if (items[i].itemprefix === 20519) {
  503.                     secSlot += 6; // dirty fix for cta, d2nt can't read +skills on runewords
  504.                 }
  505.                
  506.                 secSlot += items[i].GetStat(188, 34); // warcries skill tab
  507.                 break;
  508.             case 221: // Raven
  509.             case 222: // Poison Creeper
  510.             case 226: // Oak Sage
  511.             case 227: // Spirit Wolf
  512.             case 231: // Carrion Vine
  513.             case 236: // Heart of Wolverine
  514.             case 237: // Dire Wolf
  515.             case 241: // Solar Creeper
  516.             case 246: // Spirit of Barbs
  517.             case 247: // Grizzly
  518.                 secSlot += items[i].GetStat(188, 40); // druid summoning skill tab
  519.                 break;
  520.             case 235: // Cyclone Armor
  521.             case 249: // Armageddon
  522.             case 250: // Hurricane
  523.                 secSlot += items[i].GetStat(188, 42); // elemental skill tab
  524.                 break;
  525.             case 258: // Burst of Speed
  526.             case 267: // Fade
  527.             case 268: // Shadow Warrior
  528.             case 278: // Venom
  529.             case 279: // Shadow Master
  530.                 secSlot += items[i].GetStat(188, 49); // shadow disciplines skill tab
  531.                 break;
  532.             case 277: // Blade Shield
  533.                 secSlot += items[i].GetStat(188, 48); // traps skill tab
  534.                 break;
  535.             }
  536.            
  537.             break;
  538.         }
  539.     }
  540.    
  541.     //Print(skillID + " " + primSlot + " " + secSlot);
  542.    
  543.     if (primSlot >= secSlot) {
  544.         if (NTC_SwapWeapons(0)) {
  545.             return true;
  546.         } else {
  547.             return false;
  548.         }
  549.     }
  550.    
  551.     if (NTC_SwapWeapons(1)) {
  552.         return NTC_GetSkillLevel(skillID);
  553.     }
  554.    
  555.     return false;
  556. }
  557.  
  558. function NTP_GetMinion(classID) {
  559.     var minion, count, string;
  560.    
  561.     minion = NTC_FindUnit(1, classID);
  562.     count = 0;
  563.    
  564.     if (minion) {
  565.         string = minion.name;
  566.        
  567.         do {
  568.             if (NTC_CheckOwner(minion) && minion.hp > 0) {
  569.                 count += 1;
  570.             }
  571.         } while (minion.GetNext());
  572.     }
  573.    
  574.     string += ": " + count;
  575.    
  576.     //Print(string);
  577.    
  578.     return count;
  579. }
  580.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement