Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function NTP_DoPrecast(refresh) {
- var i, currSlot;
- currSlot = me.weaponstab; // current slot
- for (i = 0; i < NTConfig_Precast.length; i += 1) {
- if (isNaN(NTConfig_Precast[i])) {
- NTConfig_Precast[i] = NTConfig_Precast[i].replace(/ /g, "").toLowerCase();
- }
- switch (NTConfig_Precast[i]) {
- // amazon
- case 32:
- case "valkyrie":
- break;
- // sorceress
- case 40:
- case "frozenarmor":
- if ((refresh || !me.GetState(10)) && NTP_SkillSwitch(40)) {
- NTC_CastSkill(40, 0);
- }
- break;
- case 50:
- case "shiverarmor":
- if ((refresh || !me.GetState(88)) && NTP_SkillSwitch(50)) {
- NTC_CastSkill(50, 0);
- }
- break;
- case 60:
- case "chillingarmor":
- if ((refresh || !me.GetState(20)) && NTP_SkillSwitch(60)) {
- NTC_CastSkill(60, 0);
- }
- break;
- case 57:
- case "thunderstorm":
- if ((refresh || !me.GetState(38)) && NTP_SkillSwitch(57)) {
- NTC_CastSkill(57, 0);
- }
- break;
- case 58:
- case "energyshield":
- if ((refresh || me.GetState(30) === 0) && NTP_SkillSwitch(58)) {
- NTC_CastSkill(58, 0);
- }
- break;
- // necromancer
- case 68:
- case "bonearmor":
- break;
- case 75:
- case "claygolem":
- break;
- case 85:
- case "bloodgolem":
- break;
- case 94:
- case "firegolem":
- break;
- // paladin
- case 117:
- case "holyshield":
- if ((refresh || !me.GetState(101)) && NTP_SkillSwitch(117)) {
- NTC_CastSkill(117, 0);
- }
- break;
- // barbarian
- case 138:
- case "shout":
- if ((refresh || !me.GetState(26)) && NTP_SkillSwitch(138)) {
- NTC_CastSkill(138, 0);
- }
- break;
- case 149:
- case "battleorders":
- if ((refresh || !me.GetState(32)) && NTP_SkillSwitch(149)) {
- NTC_CastSkill(149, 0);
- }
- break;
- case 155:
- case "battlecommand":
- if ((refresh || !me.GetState(51)) && NTP_SkillSwitch(155)) {
- NTC_CastSkill(155, 0);
- }
- break;
- // druid
- case 221:
- case "raven":
- if (GetMinion(419) < 5 && NTP_SkillSwitch(221)) {
- while (GetMinion(419) < 5) {
- NTC_CastSkill(221, 0);
- NTC_Delay(200);
- }
- }
- break;
- case 222:
- case "poisoncreeper":
- if (GetMinion(425) < 5 && NTP_SkillSwitch(222)) {
- while (GetMinion(425) < 5) {
- NTC_CastSkill(222, 0);
- NTC_Delay(200);
- }
- }
- break;
- case 226:
- case "oaksage":
- if (GetMinion(424) < 1 && NTP_SkillSwitch(226)) {
- while (GetMinion(424) < 1) {
- NTC_CastSkill(226, 0);
- NTC_Delay(200);
- }
- }
- break;
- case 227:
- case "spiritwolf":
- if (GetMinion(420) < 5 && NTP_SkillSwitch(227)) {
- while (GetMinion(420) < 5) {
- NTC_CastSkill(227, 0);
- NTC_Delay(200);
- }
- }
- break;
- case 231:
- case "carrionvine":
- break;
- case 236:
- case "heartofwolverine":
- break;
- case 237:
- case "direwolf":
- if (GetMinion(421) < 3 && NTP_SkillSwitch(237)) {
- while (GetMinion(421) < 3) {
- NTC_CastSkill(237, 0);
- NTC_Delay(200);
- }
- }
- break;
- case 241:
- case "solarcreeper":
- break;
- case 246:
- case "spiritofbarbs":
- break;
- case 247:
- case "grizzly":
- if (GetMinion(428) < 1 && NTP_SkillSwitch(247)) {
- while (GetMinion(428) < 1) {
- NTC_CastSkill(247, 0);
- NTC_Delay(200);
- }
- }
- break;
- // assassin
- }
- }
- NTC_SwapWeapons(currSlot);
- }
- function NTP_SkillSwitch(skillID) {
- var i, items,
- primSlot = 0,
- secSlot = 0;
- items = me.GetItems();
- if (!NTC_GetSkillLevel(skillID)) { // for skills only on secondary slot
- primSlot = -1;
- }
- for (i = 0; i < items.length; i += 1) {
- switch (items[i].itemloc) {
- case 4: // I
- case 5:
- if (primSlot === -1) { // skip if we don't have the skill on primary slot
- break;
- }
- primSlot += items[i].GetStat(107, skillID) + items[i].GetStat(127); // all skills
- primSlot += items[i].GetStat(83, me.classid); // class skills
- switch (skillID) { // skill tabs
- case 32: // valkyrie
- primSlot += items[i].GetStat(188, 1); // passive and magic skill tab
- break;
- case 52: // enchant
- primSlot += items[i].GetStat(188, 8); // fire skill tab
- break;
- case 57: // thunder storm
- case 58: // energy shield
- primSlot += items[i].GetStat(188, 9); // lightning skill tab
- break;
- case 40: // Frozen Armor
- case 50: // Shiver Armor
- case 60: // Chilling Armor
- primSlot += items[i].GetStat(188, 10); // cold skill tab
- break;
- case 68: // Bone Armor
- primSlot += items[i].GetStat(188, 17); // poison and bone skill tab
- break;
- case 75: // Clay Golem
- case 85: // Blood Golem
- case 94: // Fire Golem
- primSlot += items[i].GetStat(188, 18); // necro summoning skill tab
- break;
- case 117: // Holy Shield
- primSlot += items[i].GetStat(188, 24); // paladin combat skill tab
- break;
- case 138: // Shout
- case 149: // Batttle Orders
- case 155: // Battle Command
- if (items[i].itemprefix === 20519) {
- primSlot += 6; // dirty fix for cta, d2nt can't read +skills on runewords
- }
- primSlot += items[i].GetStat(188, 34); // warcries skill tab
- break;
- case 221: // Raven
- case 222: // Poison Creeper
- case 226: // Oak Sage
- case 227: // Spirit Wolf
- case 231: // Carrion Vine
- case 236: // Heart of Wolverine
- case 237: // Dire Wolf
- case 241: // Solar Creeper
- case 246: // Spirit of Barbs
- case 247: // Grizzly
- primSlot += items[i].GetStat(188, 40); // druid summoning skill tab
- break;
- case 235: // Cyclone Armor
- case 249: // Armageddon
- case 250: // Hurricane
- primSlot += items[i].GetStat(188, 42); // elemental skill tab
- break;
- case 258: // Burst of Speed
- case 267: // Fade
- case 268: // Shadow Warrior
- case 278: // Venom
- case 279: // Shadow Master
- primSlot += items[i].GetStat(188, 49); // shadow disciplines skill tab
- break;
- case 277: // Blade Shield
- primSlot += items[i].GetStat(188, 48); // traps skill tab
- break;
- }
- break;
- case 11: // II
- case 12:
- secSlot += items[i].GetStat(107, skillID) + items[i].GetStat(127); // all skills
- secSlot += items[i].GetStat(83, me.classid); // class skills
- switch (skillID) { // skill tabs
- case 32: // valkyrie
- secSlot += items[i].GetStat(188, 1); // passive and magic skill tab
- break;
- case 52: // enchant
- secSlot += items[i].GetStat(188, 8); // fire skill tab
- break;
- case 57: // thunder storm
- case 58: // energy shield
- secSlot += items[i].GetStat(188, 9); // lightning skill tab
- break;
- case 40: // Frozen Armor
- case 50: // Shiver Armor
- case 60: // Chilling Armor
- secSlot += items[i].GetStat(188, 10); // cold skill tab
- break;
- case 68: // Bone Armor
- secSlot += items[i].GetStat(188, 17); // poison and bone skill tab
- break;
- case 75: // Clay Golem
- case 85: // Blood Golem
- case 94: // Fire Golem
- secSlot += items[i].GetStat(188, 18); // necro summoning skill tab
- break;
- case 117: // Holy Shield
- secSlot += items[i].GetStat(188, 24); // paladin combat skill tab
- break;
- case 138: // Shout
- case 149: // Batttle Orders
- case 155: // Battle Command
- if (items[i].itemprefix === 20519) {
- secSlot += 6; // dirty fix for cta, d2nt can't read +skills on runewords
- }
- secSlot += items[i].GetStat(188, 34); // warcries skill tab
- break;
- case 221: // Raven
- case 222: // Poison Creeper
- case 226: // Oak Sage
- case 227: // Spirit Wolf
- case 231: // Carrion Vine
- case 236: // Heart of Wolverine
- case 237: // Dire Wolf
- case 241: // Solar Creeper
- case 246: // Spirit of Barbs
- case 247: // Grizzly
- secSlot += items[i].GetStat(188, 40); // druid summoning skill tab
- break;
- case 235: // Cyclone Armor
- case 249: // Armageddon
- case 250: // Hurricane
- secSlot += items[i].GetStat(188, 42); // elemental skill tab
- break;
- case 258: // Burst of Speed
- case 267: // Fade
- case 268: // Shadow Warrior
- case 278: // Venom
- case 279: // Shadow Master
- secSlot += items[i].GetStat(188, 49); // shadow disciplines skill tab
- break;
- case 277: // Blade Shield
- secSlot += items[i].GetStat(188, 48); // traps skill tab
- break;
- }
- break;
- }
- }
- //Print(skillID + " " + primSlot + " " + secSlot);
- if (primSlot >= secSlot) {
- if (NTC_SwapWeapons(0)) {
- return true;
- } else {
- return false;
- }
- }
- if (NTC_SwapWeapons(1)) {
- return NTC_GetSkillLevel(skillID);
- }
- return false;
- }
- function NTP_GetMinion(classID) {
- var minion, count, string;
- minion = NTC_FindUnit(1, classID);
- count = 0;
- if (minion) {
- string = minion.name;
- do {
- if (NTC_CheckOwner(minion) && minion.hp > 0) {
- count += 1;
- }
- } while (minion.GetNext());
- }
- string += ": " + count;
- //Print(string);
- return count;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement