Advertisement
dzik

Diablo 2 - ETAL - Set Stats & Skills by Ned

Jun 14th, 2014
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ////////////////////////////////////////////////////////////
  2. /// Set Stats  & Skills by Ned V 1.1
  3. /// Credit to DysfunctionaI @ blizzhackers.cc
  4. ////////////////////////////////////////////////////////////
  5.  
  6. function NTS_DoStats()
  7. {
  8.     var nStats = (me.GetStat(4)-NTConfig_UnusedStats);
  9.     var nSkills = (me.GetStat(5)-NTConfig_UnusedSkills);
  10.  
  11.     if(nStats < 1 && nSkills < 1)
  12.         return;
  13.  
  14.     if(nStats && NTConfig_UseStatPoints)
  15.         NTS_AddAttributes();
  16.    
  17.     if(nSkills && NTConfig_UseSkillPoints)
  18.         NTS_Skills();
  19.    
  20.     return;
  21. }
  22.  
  23. function NTS_AddAttributes()
  24. {
  25.     if(NTConfig_UnusedStats < 0)
  26.         NTConfig_UnusedStats = 0;
  27.    
  28.     var _canuse = me.GetStat(4)-NTConfig_UnusedStats;
  29.  
  30.     if(_canuse <= 0)
  31.         return true;
  32.  
  33.     if(NTConfig_Dexterity == "maxblock")
  34.         NTConfig_Dexterity = NTS_GetMaxBlockDex();
  35.    
  36.     var _str = me.GetStat(0);
  37.     var _dex = me.GetStat(2);
  38.     var _vit = me.GetStat(3);
  39.     var _ene = me.GetStat(1);
  40.    
  41.     if(_str < NTConfig_Strength)
  42.     {
  43.         if(NTConfig_Strength - _str < _canuse)
  44.         {
  45.             NTS_StatAdd(0, NTConfig_Strength-_str);
  46.         }
  47.        
  48.         else
  49.             NTS_StatAdd(0, _canuse);
  50.  
  51.     _canuse = me.GetStat(4)-NTConfig_UnusedStats;
  52.     }
  53.    
  54.     if(_dex < NTConfig_Dexterity && _canuse > 0)
  55.     {
  56.         if(NTConfig_Dexterity - _dex < _canuse)
  57.         {
  58.             NTS_StatAdd(2, NTConfig_Dexterity-_dex);
  59.         }
  60.        
  61.         else
  62.             NTS_StatAdd(2, _canuse);
  63.  
  64.     _canuse = me.GetStat(4)-NTConfig_UnusedStats;
  65.     }  
  66.  
  67.     if(_vit < NTConfig_Vitality && _canuse > 0)
  68.     {
  69.         if(NTConfig_Vitality - _vit < _canuse)
  70.         {
  71.             NTS_StatAdd(3, NTConfig_Vitality-_vit);
  72.         }
  73.        
  74.         else
  75.             NTS_StatAdd(3, _canuse);
  76.  
  77.     _canuse = me.GetStat(4)-NTConfig_UnusedStats;
  78.     }
  79.    
  80.     if(_ene < NTConfig_Energy && _canuse > 0)
  81.     {
  82.         if(NTConfig_Energy - _ene < _canuse)
  83.         {
  84.             NTS_StatAdd(3, NTConfig_Energy-_ene);
  85.         }
  86.        
  87.         else
  88.             NTS_StatAdd(3, _canuse);
  89.     }
  90.    
  91.     return true;
  92. }
  93.  
  94. function NTS_Skills()
  95. {
  96.     var _canuse = 0;
  97.     if(NTConfig_UnusedSkills < 0)
  98.         NTConfig_UnusedSkills = 0;
  99.    
  100.     for(i = 0; i < NTConfig_SetSkill.length; i++)
  101.     {
  102.         if(!skillIdCheck(NTConfig_SetSkill[i][0]))
  103.             return NTC_SendLogToOOG(NTC_LOG_COMMON, COLOR_1 + "Incorrect Char skill set " + NTConfig_SetSkill[i][0]);
  104.        
  105.         _canuse = me.GetStat(5)-NTConfig_UnusedSkills;
  106.  
  107.         if(_canuse < 1)
  108.             return;
  109.        
  110.         if(NTConfig_SetSkill[i][1] > 20)
  111.             NTConfig_SetSkill[i][1] = 20;
  112.        
  113.         _slvl = me.GetSkill(NTConfig_SetSkill[i][0], false);
  114.         if(_slvl < NTConfig_SetSkill[i][1])
  115.         {
  116.                 if(NTConfig_SetSkill[i][1] - _slvl < _canuse)
  117.                 {
  118.                     NTS_SkillsAdd(NTConfig_SetSkill[i][0], NTConfig_SetSkill[i][1]-_slvl);
  119.                 }      
  120.             else
  121.                     NTS_SkillsAdd(NTConfig_SetSkill[i][0], _canuse);
  122.                
  123.         }
  124.     }
  125. }
  126.  
  127. function NTS_SkillsAdd(skillid, num)
  128. {
  129.     var max = me.GetStat(5);
  130.     var timedelay = me.ping+200;
  131.    
  132.     if(max < num)
  133.         {Print(COLOR_1 + "Not enough points available");return;}
  134.    
  135.     var pre = me.GetSkill(skillid, false);
  136.  
  137.     var _beltsize = NTC_GetBeltSize();
  138.  
  139.     var skilltree = NTS_SkillArray(skillid);
  140.    
  141.     if(skilltree[4] > me.GetStat(12))
  142.         return NTC_SendLogToOOG(NTC_LOG_COMMON, COLOR_1 + "You need to be level " + skilltree[4] + " to get " + skilltree[0]);
  143.  
  144.     SetUIState(0x04, true);//Char skill screen
  145.     SetUIState(0x1F, true);//Belt screen
  146.    
  147.     if(!me.itemoncursor)
  148.     {
  149.         _items = me.GetItems();
  150.  
  151.         if(!_items)
  152.             return false;
  153.  
  154.         for(i = 0 ; i < _items.length ; i++)
  155.         {
  156.             if(_items[i].mode == 2)
  157.             {
  158.                 _clickitem = _items[i];
  159.                 _clickitemslot = _items[i].x;
  160.                 break;
  161.             }
  162.         }
  163.        
  164.         if(!_clickitem)
  165.             return false;
  166.     }
  167.        
  168.     NTC_ItemToCursor(_clickitem);
  169.        
  170.     me.ClickItem(0, 7, skilltree[1], 5);
  171.     Delay(timedelay);
  172.    
  173.     for(i = 0 ; i < num ; i++)
  174.             {
  175.                 me.ClickItem(0, skilltree[3], skilltree[2], 5);            
  176.                 Delay(timedelay);
  177.             }
  178.  
  179.     Delay(100);
  180.     if(me.GetSkill(skillid, false) > pre)
  181.         NTC_SendLogToOOG(NTC_LOG_COMMON, COLOR_2 + "Successfully added " + (me.GetSkill(skillid, false)-pre) + " points to " + skilltree[0]);
  182.     if(me.GetSkill(skillid, false) == pre)
  183.         NTC_SendLogToOOG(NTC_LOG_COMMON, COLOR_1 + "Cant add to skill " + skilltree[0] + " need more levels");
  184.        
  185.     Delay(500);
  186.     if(me.itemoncursor)
  187.     {
  188.     for(var i = 0; (i < 6 && me.itemoncursor); i++)
  189.         {
  190.             me.ClickItem(0, _clickitemslot, NTC_GetBeltSize()-1, 5);
  191.             Delay(timedelay);
  192.         }
  193.         NTC_ClearCursor();
  194.     }
  195.    
  196.     SetUIState(0x1F, false);SetUIState(0x04, false);
  197.     Delay(timedelay);
  198.     //NTSI_PickItems();
  199.     return;
  200.  
  201. }
  202.  
  203. function NTS_StatAdd(stat,  num)
  204. {
  205.     var StatId, _y, timedelay = me.ping+200;
  206.     var pre = me.GetStat(stat);
  207.  
  208.     var _beltsize = NTC_GetBeltSize();
  209.  
  210.     SetUIState(0x02, true);//Char stats screen
  211.     SetUIState(0x1F, true);//Belt screen
  212.     Delay(200);
  213.    
  214.     if(!me.itemoncursor)
  215.     {
  216.         _items = me.GetItems();
  217.  
  218.         if(!_items)
  219.             return false;
  220.  
  221.         for(i = 0 ; i < _items.length ; i++)
  222.         {
  223.             if(_items[i].mode == 2)
  224.             {
  225.                 _clickitem = _items[i];
  226.                 _clickitemslot = _items[i].x;
  227.                 break;
  228.             }
  229.         }
  230.        
  231.         if(!_clickitem)
  232.             return false;
  233.     }
  234.        
  235.     NTC_ItemToCursor(_clickitem);
  236.  
  237.     Delay(300);
  238.    
  239.     switch(stat)
  240.     {
  241.         case 0:     _y = 13; StatId = "Strength";
  242.                     break;
  243.         case 2:     _y = -4; StatId = "Dexterity"; SetUIState(0x01, true);
  244.                     break;
  245.         case 3:     _y = 9; StatId = "Vitality";
  246.                     break;
  247.         case 1:     _y = 7; StatId = "Energy";
  248.                     break;
  249.     }
  250.    
  251.     for(i = 0 ; i < num ; i++)
  252.             {
  253.                 if(stat == 2)
  254.                     me.ClickItem(0, -7, _y, 0);
  255.                 else
  256.                     me.ClickItem(0, -7, _y, 5);
  257.                
  258.                 Delay(timedelay);
  259.                 if(me.GetStat(stat) >= pre+num)
  260.                 {Print("interupted");break;}
  261.             }
  262.    
  263.     Delay(300);
  264.        
  265.     if(me.GetStat(stat) == pre+num)
  266.         NTC_SendLogToOOG(NTC_LOG_COMMON, COLOR_2 + "Successfully added " + num + " points to " + StatId);
  267.    
  268.     if(me.GetStat(stat) > pre+num)
  269.         NTC_SendLogToOOG(NTC_LOG_COMMON, COLOR_2 + "Successfully added to " + StatId + " " + num + " + Item bonus");// unsure on this  
  270.        
  271.     if(me.GetStat(stat) == pre)
  272.         NTC_SendLogToOOG(NTC_LOG_COMMON, COLOR_1 + "Failed adding to " + StatId);
  273.        
  274.     Delay(500);
  275.     if(me.itemoncursor)
  276.     {
  277.     for(var i = 0; (i < 6 && me.itemoncursor); i++)
  278.         {
  279.             me.ClickItem(0, _clickitemslot, NTC_GetBeltSize()-1, 5);
  280.             Delay(timedelay);
  281.         }
  282.  
  283.         NTC_ClearCursor();
  284.  
  285.     }
  286.    
  287.     SetUIState(0x1F, false);SetUIState(0x01, false);SetUIState(0x02, false);
  288.     Delay(500);
  289.     //NTSI_PickItems();
  290.     return;
  291. }
  292.  
  293. function skillIdCheck(SkillId)
  294. {
  295.    
  296.     switch (me.classid)
  297.     {
  298.         case 0: if(SkillId >= 6 && SkillId <= 35)
  299.                     return true;
  300.                 break;
  301.         case 1: if(SkillId >= 36 && SkillId <= 65)
  302.                     return true;
  303.                 break;
  304.         case 2:if(SkillId >= 66 && SkillId <= 95)
  305.                     return true;
  306.                 break;
  307.         case 3: if(SkillId >= 96 && SkillId <= 125)
  308.                     return true;
  309.                 break;
  310.         case 4: if(SkillId >= 126 && SkillId <= 155)
  311.                     return true;
  312.                 break;
  313.         case 5: if(SkillId >= 221 && SkillId <= 250)
  314.                     return true;
  315.                 break;
  316.         case 6: if(SkillId >= 251 && SkillId <= 280)
  317.                     return true;
  318.                 break;
  319.     }
  320.     return false;
  321. }
  322.  
  323. function NTS_SkillArray(sk)
  324. {
  325.     var skloc = [];
  326.     switch(sk)
  327.     {
  328.         case 6: skloc = ["Magic Arrow", 5, 15, 2, 1];       break;
  329.         case 7: skloc = ["Fire Arrow", 5, 15, 5, 1];        break;
  330.         case 8: skloc = ["Inner Sight", 8, 15, 0, 1];       break;
  331.         case 9: skloc = ["Critical Strike", 8, 15, 5, 1];   break;
  332.         case 10: skloc = ["Jab", 11, 15, 0, 1];             break;
  333.         case 11: skloc = ["Cold Arrow", 5, 13, 0, 6];       break;
  334.         case 12: skloc = ["Multiple Shot", 5, 13, 2, 6];    break;
  335.         case 13: skloc = ["Dodge", 8, 13, 2, 6];            break;
  336.         case 14: skloc = ["Power Strike", 11, 13, 2, 6];    break;
  337.         case 15: skloc = ["Poison Javelin", 11, 13, 5, 6];  break;
  338.         case 16: skloc = ["Exploding Arrow", 5, 11, 5, 12]; break;
  339.         case 17: skloc = ["Slow Missiles", 8, 11, 0, 12];   break;
  340.         case 18: skloc = ["Avoid", 8, 11, 2, 12];           break;
  341.         case 19: skloc = ["Impale", 11, 11, 0, 12];         break;
  342.         case 20: skloc = ["Lightning Bolt", 11, 11, 5, 12]; break;
  343.         case 21: skloc = ["Ice Arrow", 5, 9, 0, 18];        break;
  344.         case 22: skloc = ["Guided Arrow", 5, 9, 2, 18];     break;
  345.         case 23: skloc = ["Penetrate", 8, 9, 5, 18];        break;
  346.         case 24: skloc = ["Charged Strike", 11, 9, 2, 18];  break;
  347.         case 25: skloc = ["Plague Javelin", 11, 9, 5, 18];  break;
  348.         case 26: skloc = ["Strafe", 5, 7, 2, 24];           break;
  349.         case 27: skloc = ["Immolation Arrow", 5, 7, 5, 24]; break;
  350.         case 28: skloc = ["Decoy", 8, 7, 0, 24];            break;
  351.         case 29: skloc = ["Evade", 8, 7, 2, 24];            break;
  352.         case 30: skloc = ["Fend", 11, 7, 0, 24];            break;
  353.         case 31: skloc = ["Freezing Arrow", 5, 5, 0, 30];   break;
  354.         case 32: skloc = ["Valkyrie", 8, 5, 0, 30];         break;
  355.         case 33: skloc = ["Pierce", 8, 5, 5, 30];           break;
  356.         case 34: skloc = ["Lightning Strike", 11, 5, 2, 30];    break;
  357.         case 35: skloc = ["Lightning Fury", 11, 5, 5, 30];  break;
  358.         case 36: skloc = ["Fire Bolt", 5, 15, 2, 1];        break;
  359.         case 37: skloc = ["Warmth", 5, 15, 5, 1];           break;
  360.         case 38: skloc = ["Charged Bolt", 8, 15, 2, 1];     break;
  361.         case 39: skloc = ["Ice Bolt", 11, 15, 2, 1];        break;
  362.         case 40: skloc = ["Frozen Armor", 11, 15, 5, 1];    break;
  363.         case 41: skloc = ["Inferno", 5, 13, 0, 6];          break;
  364.         case 42: skloc = ["Static Field", 8, 13, 0, 6];     break;
  365.         case 43: skloc = ["Telekinesis", 8, 13, 5, 6];      break;
  366.         case 44: skloc = ["Frost Nova", 11, 13, 0, 6];      break;
  367.         case 45: skloc = ["Ice Blast", 11, 13, 2, 6];       break;
  368.         case 46: skloc = ["Blaze", 5, 11, 0, 12];           break;
  369.         case 47: skloc = ["Fire Ball", 5, 11, 2, 12];       break;
  370.         case 48: skloc = ["Nova", 8, 11, 0, 12];            break;
  371.         case 49: skloc = ["Lightning", 8, 11, 2, 12];       break;
  372.         case 50: skloc = ["Shiver Armor", 11, 11, 5, 12];   break;
  373.         case 51: skloc = ["Fire Wall", 5, 9, 0, 18];        break;
  374.         case 52: skloc = ["Enchant", 5, 9, 5, 18];          break;
  375.         case 53: skloc = ["Chain Lightning", 8, 9, 2, 18];  break;
  376.         case 54: skloc = ["Teleport", 8, 9, 5, 18];         break;
  377.         case 55: skloc = ["Glacial Spike", 11, 9, 2, 18];   break;
  378.         case 56: skloc = ["Meteor", 5, 7, 2, 24];           break;
  379.         case 57: skloc = ["Thunder Storm", 8, 7, 0, 24];    break;
  380.         case 58: skloc = ["Energy Shield", 8, 7, 5, 24];    break;
  381.         case 59: skloc = ["Blizzard", 11, 7, 0, 24];        break;
  382.         case 60: skloc = ["Chilling Armor", 11, 7, 5, 24];  break;
  383.         case 61: skloc = ["Fire Mastery", 5, 5, 2, 30];     break;
  384.         case 62: skloc = ["Hydra", 5, 5, 5, 30];            break;
  385.         case 63: skloc = ["Lightning Mastery", 8, 5, 2, 30];    break;
  386.         case 64: skloc = ["Frozen Orb", 11, 5, 0, 30];      break;
  387.         case 65: skloc = ["Cold Mastery", 11, 5, 2, 30];    break;
  388.         case 66: skloc = ["Amplify Damage", 5, 15, 2, 1];   break;
  389.         case 67: skloc = ["Teeth", 8, 15, 2, 1];            break;
  390.         case 68: skloc = ["Bone Armor", 8, 15, 5, 1];       break;
  391.         case 69: skloc = ["Skeleton Mastery", 11, 15, 0, 1];    break;
  392.         case 70: skloc = ["Raise Skeleton", 11, 15, 5, 1];  break;
  393.         case 71: skloc = ["Dim Vision", 5, 13, 0, 6];       break;
  394.         case 72: skloc = ["Weaken", 5, 13, 5, 6];           break;
  395.         case 73: skloc = ["Poison Dagger", 8, 13, 0, 6];    break;
  396.         case 74: skloc = ["Corpse Explosion", 8, 13, 2, 6]; break;
  397.         case 75: skloc = ["Clay Golem", 11, 13, 2, 6];      break;
  398.         case 76: skloc = ["Iron Maiden", 5, 11, 2, 12];     break;
  399.         case 77: skloc = ["Terror", 5, 11, 5, 12];          break;
  400.         case 78: skloc = ["Bone Wall", 8, 11, 5, 12];       break;
  401.         case 79: skloc = ["Golem Mastery", 11, 11, 0, 12];  break;
  402.         case 80: skloc = ["Raise Skeletal mage", 11, 11, 5, 12];    break;
  403.         case 81: skloc = ["Confuse", 5, 9, 0, 18];          break;
  404.         case 82: skloc = ["Life Tap", 5, 9, 2, 18];         break;
  405.         case 83: skloc = ["Poison Explosion", 8, 9, 0, 18]; break;
  406.         case 84: skloc = ["Bone Spear", 8, 9, 2, 18];       break;
  407.         case 85: skloc = ["Blood Golem", 11, 9, 2, 18];     break;
  408.         case 86: skloc = ["Attract", 5, 7, 0, 24];          break;
  409.         case 87: skloc = ["Decrepify", 5, 7, 5, 24];        break;
  410.         case 88: skloc = ["Bone Prison", 8, 7, 5, 24];      break;
  411.         case 89: skloc = ["Summon Resist", 11, 7, 0, 24];   break;
  412.         case 90: skloc = ["Iron Golem", 11, 7, 2, 24];      break;
  413.         case 91: skloc = ["Lower Resist", 5, 5, 2, 30];     break;
  414.         case 92: skloc = ["Poison Nova", 8, 5, 0, 30];      break;
  415.         case 93: skloc = ["Bone Spirit", 8, 5, 2, 30];      break;
  416.         case 94: skloc = ["Fire Golem", 11, 5, 2, 30];      break;
  417.         case 95: skloc = ["Revive", 11, 5, 5, 30];          break;
  418.         case 96: skloc = ["Sacrifice", 5, 15, 0, 1];        break;
  419.         case 97: skloc = ["Smite", 5, 15, 5, 1];            break;
  420.         case 98: skloc = ["Might", 8, 15, 0, 1];            break;
  421.         case 99: skloc = ["Prayer", 11, 15, 0, 1];          break;
  422.         case 100: skloc = ["Resist Fire", 11, 15, 5, 1];    break;
  423.         case 101: skloc = ["Holy Bolt", 5, 13, 2, 6];       break;
  424.         case 102: skloc = ["Holy Fire", 8, 13, 2, 6];       break;
  425.         case 103: skloc = ["Thorns", 8, 13, 5, 6];          break;
  426.         case 104: skloc = ["Defiance", 11, 13, 2, 6];       break;
  427.         case 105: skloc = ["Resist Cold", 11, 13, 5, 6];    break;
  428.         case 106: skloc = ["Zeal", 5, 11, 0, 12];           break;
  429.         case 107: skloc = ["Charge", 5, 11, 5, 12];         break;
  430.         case 108: skloc = ["Blessed Aim", 8, 11, 0, 12];    break;
  431.         case 109: skloc = ["Cleansing", 11, 11, 0, 12];     break;
  432.         case 110: skloc = ["Resist Lightning", 11, 11, 5, 12];  break;
  433.         case 111: skloc = ["Vengeance", 5, 9, 0, 18];       break;
  434.         case 112: skloc = ["Blessed Hammer", 5, 9, 2, 18];  break;
  435.         case 113: skloc = ["Concentration", 8, 9, 0, 18];   break;
  436.         case 114: skloc = ["Holy Freeze", 8, 9, 2, 18];     break;
  437.         case 115: skloc = ["Vigor", 11, 9, 2, 18];          break;
  438.         case 116: skloc = ["Conversion", 5, 7, 0, 24];      break;
  439.         case 117: skloc = ["Holy Shield", 5, 7, 5, 24];     break;
  440.         case 118: skloc = ["Holy Shock", 8, 7, 2, 24];      break;
  441.         case 119: skloc = ["Sanctuary", 8, 7, 5, 24];       break;
  442.         case 120: skloc = ["Meditation", 11, 7, 0, 24];     break;
  443.         case 121: skloc = ["Fist of the Heavens", 5, 5, 2, 30]; break;
  444.         case 122: skloc = ["Fanaticism", 8, 5, 0, 30];      break;
  445.         case 123: skloc = ["Conviction", 8, 5, 5, 30];      break;
  446.         case 124: skloc = ["Redemption", 11, 5, 2, 30];     break;
  447.         case 125: skloc = ["Salvation", 11, 5, 5, 30];      break;
  448.         case 126: skloc = ["Bash", 5, 15, 2, 1];            break;
  449.         case 127: skloc = ["Sword Mastery", 8, 15, 0, 1];   break;
  450.         case 128: skloc = ["Axe Mastery", 8, 15, 2, 1];     break;
  451.         case 129: skloc = ["Mace Mastery", 8, 15, 5, 1];    break;
  452.         case 130: skloc = ["Howl", 11, 15, 0, 1];           break;
  453.         case 131: skloc = ["Find Potion", 11, 15, 5, 1];    break;
  454.         case 132: skloc = ["Leap", 5, 13, 0, 6];            break;
  455.         case 133: skloc = ["Double Swing", 5, 13, 5, 6];    break;
  456.         case 134: skloc = ["Polearm Mastery", 8, 13, 0, 6]; break;
  457.         case 135: skloc = ["Throwing Mastery", 8, 13, 2, 6];    break;
  458.         case 136: skloc = ["Spear Mastery", 8, 13, 5, 6];   break;
  459.         case 137: skloc = ["Taunt", 11, 13, 0, 6];          break;
  460.         case 138: skloc = ["Shout", 11, 13, 2, 6];          break;
  461.         case 139: skloc = ["Stun", 5, 11, 2, 12];           break;
  462.         case 140: skloc = ["Double Throw", 5, 11, 5, 12];   break;
  463.         case 141: skloc = ["Increased Stamina", 8, 11, 0, 12];  break;
  464.         case 142: skloc = ["Find Item", 11, 11, 5, 12];     break;
  465.         case 143: skloc = ["Leap Attack", 5, 9, 0, 18];     break;
  466.         case 144: skloc = ["Concentrate", 5, 9, 2, 18];     break;
  467.         case 145: skloc = ["Iron Skin", 8, 9, 5, 18];       break;
  468.         case 146: skloc = ["Battle Cry", 11, 9, 0, 18];     break;
  469.         case 147: skloc = ["Frenzy", 5, 7, 5, 24];          break;
  470.         case 148: skloc = ["Increased Speed", 8, 7, 0, 24]; break;
  471.         case 149: skloc = ["Battle Orders", 11, 7, 2, 24];  break;
  472.         case 150: skloc = ["Grim Ward", 11, 7, 5, 24];      break;
  473.         case 151: skloc = ["Whirlwind", 5, 5, 0, 30];       break;
  474.         case 152: skloc = ["Berserk", 5, 5, 2, 30];         break;
  475.         case 153: skloc = ["Natural Resistance", 8, 5, 5, 30];  break;
  476.         case 154: skloc = ["War Cry", 11, 5, 0, 30];        break;
  477.         case 155: skloc = ["Battle Command", 11, 5, 2, 30]; break;
  478.         case 221: skloc = ["Raven", 5, 15, 2, 1];           break;
  479.         case 222: skloc = ["Poison Creeper", 5, 15, 5, 1];  break;
  480.         case 223: skloc = ["Wearwolf", 8, 15, 0, 1];        break;
  481.         case 224: skloc = ["Lycanthropy", 8, 15, 2, 1];     break;
  482.         case 225: skloc = ["Firestorm", 11, 15, 0, 1];      break;
  483.         case 226: skloc = ["Oak Sage", 5, 13, 0, 6];        break;
  484.         case 227: skloc = ["Summon Spirit wolf", 5, 13, 2, 6];  break;
  485.         case 228: skloc = ["Wearbear", 8, 13, 5, 6];        break;
  486.         case 229: skloc = ["Molten Boulder", 11, 13, 0, 6]; break;
  487.         case 230: skloc = ["Arctic Blast", 11, 13, 5, 6];   break;
  488.         case 231: skloc = ["Carion Vine", 5, 11, 5, 12];    break;
  489.         case 232: skloc = ["Feral Rage", 8, 11, 0, 12];     break;
  490.         case 233: skloc = ["Maul", 8, 11, 5, 12];           break;
  491.         case 234: skloc = ["Fissure", 11, 11, 0, 12];       break;
  492.         case 235: skloc = ["Cyclone Armor", 11, 11, 5, 12]; break;
  493.         case 236: skloc = ["Heart of Wolverine", 5, 9, 0, 18];  break;
  494.         case 237: skloc = ["Summon DireWolf", 5, 9, 2, 18]; break;
  495.         case 238: skloc = ["Rabies", 8, 9, 0, 18];          break;
  496.         case 239: skloc = ["Fire Claws", 8, 9, 2, 18];      break;
  497.         case 240: skloc = ["Twister", 11, 9, 2, 18];        break;
  498.         case 241: skloc = ["Solar Creeper", 5, 7, 5, 24];   break;
  499.         case 242: skloc = ["Hunger", 8, 7, 2, 24];          break;
  500.         case 243: skloc = ["Shock Wave", 8, 7, 5, 24];      break;
  501.         case 244: skloc = ["Volcano", 11, 7, 0, 24];        break;
  502.         case 245: skloc = ["Tornado", 11, 7, 2, 24];        break;
  503.         case 246: skloc = ["Spirit of Barbs", 5, 5, 0, 30]; break;
  504.         case 247: skloc = ["Summon Grizzly", 5, 5, 2, 30];  break;
  505.         case 248: skloc = ["Fury", 8, 5, 0, 30];            break;
  506.         case 249: skloc = ["Armageddon", 11, 5, 0, 30];     break;
  507.         case 250: skloc = ["Hurricane", 11, 5, 2, 30];      break;
  508.         case 251: skloc = ["Fire Blast", 5, 15, 2, 1];      break;
  509.         case 252: skloc = ["Claw Mastery", 8, 15, 2, 1];    break;
  510.         case 253: skloc = ["Psychic Hammer", 8, 15, 5, 1];  break;
  511.         case 254: skloc = ["Tiger Strike", 11, 15, 2, 1];   break;
  512.         case 255: skloc = ["Dragon Talon", 11, 15, 5, 1];   break;
  513.         case 256: skloc = ["Shock Web", 5, 13, 0, 6];       break;
  514.         case 257: skloc = ["Blade Sentinel", 5, 13, 5, 6];  break;
  515.         case 258: skloc = ["Burst of Speed", 8, 13, 0, 6];  break;
  516.         case 259: skloc = ["Fists of Fire", 11, 13, 0, 6];  break;
  517.         case 260: skloc = ["Dragon Claw", 11, 13, 5, 6];    break;
  518.         case 261: skloc = ["Charged Bolt Sentry", 5, 11, 0, 12];    break;
  519.         case 262: skloc = ["Wake of Fire", 5, 11, 2, 12];   break;
  520.         case 263: skloc = ["Weapon Block", 8, 11, 2, 12];   break;
  521.         case 264: skloc = ["Cloak of Shadows", 8, 11, 5, 12];   break;
  522.         case 265: skloc = ["Cobra Strike", 11, 11, 2, 12];  break;
  523.         case 266: skloc = ["Blade Fury", 5, 9, 5, 18];      break;
  524.         case 267: skloc = ["Fade", 8, 9, 0, 18];            break;
  525.         case 268: skloc = ["Shadow Warrior", 8, 9, 2, 18];  break;
  526.         case 269: skloc = ["Claws of Thunder", 11, 9, 0, 18];   break;
  527.         case 270: skloc = ["Dragon Tail", 11, 9, 5, 18];    break;
  528.         case 271: skloc = ["Lightning Sentry", 5, 7, 0, 24];    break;
  529.         case 272: skloc = ["Wake of Inferno", 5, 7, 2, 24]; break;
  530.         case 273: skloc = ["Mind Blast", 8, 7, 5, 24];      break;
  531.         case 274: skloc = ["blades of Ice", 11, 7, 0, 24];  break;
  532.         case 275: skloc = ["Dragon Flight", 11, 7, 5, 24];  break;
  533.         case 276: skloc = ["Death Sentry", 5, 5, 0, 30];    break;
  534.         case 277: skloc = ["Blade Shield", 5, 5, 5, 30];    break;
  535.         case 278: skloc = ["Venom", 8, 5, 0, 30];           break;
  536.         case 279: skloc = ["Shadow Master", 8, 5, 2, 30];   break;
  537.         case 280: skloc = ["Pheonix Strike", 11, 5, 2, 30]; break;
  538.  
  539.         }
  540.     return skloc;
  541. }
  542.  
  543.  
  544. function NTS_GetMaxBlockDex()
  545. {
  546.     var _items = me.GetItems();
  547.     var block = ShieldBlock();
  548.     if(!block)
  549.         return 0;
  550.    
  551.     //Print("Shield block = " + block);
  552.    
  553.     var block = block + ItemAddBlock();
  554.    
  555.     var d2value = Math.floor((block * (me.GetStat(2) - 15)) / (me.GetStat(12) * 2));
  556.     //Print("Current Block % = " + d2value);
  557.    
  558.     block = block + ItemAddBlock() + HolyShieldBonus();
  559.    
  560.     var d2value = Math.floor((block * (me.GetStat(2) - 15)) / (me.GetStat(12) * 2));
  561.     Print("Block % + HS = " + d2value);
  562.    
  563.     var Charblock = Math.ceil((75 * ((me.GetStat(12) * 2)) / (block)) + 15);   
  564.     Print("Required dex = " + Charblock);
  565.    
  566.     //return Print("No changes to dex have been made - Testing");
  567.     return Charblock;
  568.        
  569.     function ShieldBlock()
  570.     {
  571.        
  572.         var ShBlock = "";
  573.    
  574.         for(i = 0; i < _items.length; i++)
  575.         {
  576.             if(_items[i].itemloc == 5 && _items[i].mode == 1)
  577.             {
  578.                 var item = _items[i];
  579.                 if(item.quality == 7){return ShieldUniq(item.classid);}
  580.                 break;
  581.             }
  582.         }
  583.         if(!item)
  584.             return 0;
  585.    
  586.         ShBlock = item.itemdesc.split("Chance to Block: ")[1];
  587.         if(!ShBlock)
  588.             return 0;
  589.        
  590.         ShBlock = ShBlock.split("\n")[0];
  591.         ShBlock = ShBlock.replace(/ΓΏc[0-9]/g,"");
  592.         ShBlock = parseInt(ShBlock);
  593.            
  594.         return ShBlock;
  595.     }
  596.    
  597.    
  598.     function HolyShieldBonus()
  599.     {
  600.         if(me.classid != NTC_CHAR_CLASS_PALADIN)
  601.             return 0;
  602.  
  603.         var _hslevel = me.GetSkill(117, true);
  604.         if(_hslevel < 1)
  605.             return 0;
  606.         //Print("Hs Function");
  607.         for(i = 0; i < _items.length; i++) // CTA
  608.         {
  609.             if(_items[i].mode && _items[i].name.indexOf("Call to Arms") != -1)
  610.             {
  611.                 _hslevel++;
  612.                 break;
  613.             }
  614.         }
  615.        
  616.         if(me.GetState(51)) // Battle Command
  617.             _hslevel--;
  618.  
  619.         return Math.floor((30*(Math.floor((110*_hslevel) / (_hslevel+6))) / 100) + 10);
  620.     }
  621.    
  622.     function ItemAddBlock()
  623.     {
  624.         var _tempblock = 0;
  625.                
  626.         for(i = 0; i < _items.length; i++) // TemplarCoat-Twitchthroe
  627.         {
  628.             if(_items[i].mode && _items[i].itemloc == 3 && _items[i].quality == 7)
  629.             {
  630.                 _tempblock = _items[i].GetStat(20);
  631.                 break;
  632.             }
  633.         }
  634.         return _tempblock;
  635.     }
  636.    
  637.     function ShieldUniq(id)
  638.     {
  639.         var shb = 0
  640.         Print("Unique sheild" + id);
  641.         switch(id)
  642.         {
  643.             //case xxx: shb = 78;   break;//AlmaNegra
  644.             case 328: shb = 50; break;//PeltaLunata
  645.             case 329: shb = 65; break;//UmbralDisk
  646.             case 330: shb = 72; break;//StormGuild
  647.             case 331: shb = 63; break;//SteelClash
  648.             case 332: shb = 64; break;//BverritKeep
  649.             case 333: shb = 56; break;//TheWard
  650.             case 350: shb = 50; break;//WalloftheEyeless
  651.             case 351: shb = 60; break;//SwordBackHold
  652.             case 374: shb = 70; break;//Viscurantuant
  653.             case 375: shb = 67; break;//Moser's
  654.             case 376: shb = 64; break;//StornChaser
  655.             case 377: shb = 48; break;//TiamatsRebuke
  656.             case 378: shb = 84; break;//GerkesSanctuary
  657.             case 379: shb = 66; break;//RadamentsSphere
  658.             case 396: shb = 50; break;//LidlessWall
  659.             case 397: shb = 47; break;//LanceGuard
  660.             case 445: shb = 50; break;//BlackOak
  661.             case 447: shb = 77; break;//StormShield
  662.             case 448: shb = 54; break;//MedusasGaze
  663.             case 449: shb = 84; break;//SpiritWard
  664.             case 466: shb = 50; break;//HeadHuntersGlory
  665.             case 467: shb = 50; break;//SpikeThorn
  666.             case 481: shb = 82; break;//hoz
  667.             case 501: shb = 82; break;//hoz
  668.             //case xxx: shb = 57;   break;//homunculus
  669.             //case xxx: shb = 40;   break;//boneflame
  670.             //case xxx: shb = 42;   break;//darkforce
  671.         }
  672.    
  673.     if(shb > 0 && (me.classid == 1 || me.classid == 2 || me.classid == 5))//sorc nec dru
  674.         shb = shb-10;
  675.     if(shb > 0 && (me.classid == 0 || me.classid == 4 || me.classid == 6))//zon barb sin
  676.         shb = shb-5;
  677.     return shb;
  678.     }
  679.    
  680. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement