Author Topic: [D2NT] A few questions  (Read 2464 times)

cooptheking

  • Guest
Re: [D2NT] A few questions
« Reply #15 on: August 31, 2010, 01:20:18 PM »
Okay!
1) Open NTAttack.ntl file
2) Delete the entire contents of the file
3) Copy/paste the code below in there
4) If it works post and lmk
5) If 4=fail post and lmk

[noae]
Code: [Select]
const NTA_DAMAGE_NONE = 0;
const NTA_DAMAGE_PHYSICAL = 1;
const NTA_DAMAGE_MAGIC = 2;
const NTA_DAMAGE_FIRE = 3;
const NTA_DAMAGE_LIGHTNING = 4;
const NTA_DAMAGE_COLD = 5;
const NTA_DAMAGE_POISON = 6;

var _NTA_SkillHand = new Array(7);
var _NTA_SkillDamage = new Array(7);
var _NTA_SkillRange = new Array(7);

function NTA_Initialize()
{
   if(NTConfig_AttackSkill[1] == 0 || NTConfig_AttackSkill[3] == 0)
      NTA_DetectAttackPattern();

   for(var i = 0 ; i < 7 ; i++)
   {
      if(NTConfig_AttackSkill[i] > 0)
      {
         _NTA_SkillHand[i] = GetBaseStat("skills.txt", NTConfig_AttackSkill[i], 166) ? 2 : NTC_HAND_RIGHT;
         _NTA_SkillDamage[i] = NTA_GetDamageType(NTConfig_AttackSkill[i]);

         switch(NTConfig_AttackSkill[i])
         {
    case 6:  //Magic Arrow
         case 7:  //Fire Arrow
            _NTA_SkillRange[i] = 15;
            break;
         case 10: //Jab
            _NTA_SkillRange[i] = 3;
            break;
         case 11: //Cold Arrow
         case 12: //Multiple Shot
         case 16: //Exploding Arrow
         case 21: //Ice arrow
         case 22: //Guided arrow
            _NTA_SkillRange[i] = 20;
            break;
         case 24: //Charged Strike
            _NTA_SkillRange[i] = 3;
            break;
         case 25: //Plague jav
            _NTA_SkillRange[i] = 10;
            break;
         case 26://Strafe
         case 27://Immolation Arrow
            _NTA_SkillRange[i] = 15;
            break;
         case 30: //Fend
            _NTA_SkillRange[i] = 3;
            break;
         case 31: //Freezing arrow
            _NTA_SkillRange[i] = 15;
            break;
         case 35: //Lightning Fury
            _NTA_SkillRange[i] = 12;
            break;
         case 44: //Frost Nova
         case 48: // Nova
            _NTA_SkillRange[i] = 10;
            break;
         case 64: // Frozen Orb
            _NTA_SkillRange[i] = 15;
            break;
         case 97: //Smite
         case 106: //Zeal
         case 112: //Blessed Hammer
            _NTA_SkillRange[i] = 3;
            break;
         case 151: //Whirlwind
            _NTA_SkillRange[i] = 8;
            break;
         case 152: //Berserk
            _NTA_SkillRange[i] = 3;
            break;
         default:
            _NTA_SkillRange[i] = 25;
            break;
         }
      }
   }
}

function NTA_KillMonster(classid)
{
   var _target;

   if(NTConfig_AttackSkill[1] < 1)
      return false;

   _target = NTC_FindUnit(NTC_UNIT_MONSTER, classid, 5);

   if(!_target)
      return false;

   if(_target.IsAttackable())
   {
      var _attackcount = 0;

      while(_attackcount < 300 && NTA_IsValidMonster(_target))
      {
         if(NTA_Attack(_target, (_attackcount%30) == 0) < 2)
            break;

         _attackcount++;
      }
   }

   return (_target.hp <= 0 || _target.mode == 0 || _target.mode == 12);
}

function NTA_ClearPosition(range, pickitem, safelevel)
{
   var _orgx, _orgy;
   var _spectype = [0x0A, 0x01, 0x01];
   var _skiplist;
   var _attackcount = 0;
   var _target;
   var _distance, _mingid, _mindistance;
   var _result;

   if(NTConfig_AttackSkill[1] < 1 || NTConfig_AttackSkill[3] < 1)
      return false;

   switch(arguments.length)
   {
   case 0:
      range = 20;
   case 1:
      pickitem = false;
   case 2:
      safelevel = 0;
   default:
      if(NTConfig_CheckSelfSafe < 0x01 && NTConfig_CheckMercSafe < 0x01)
         safelevel = 0;
      break;
   }

   _orgx = me.x;
   _orgy = me.y;

   for(var i = 0 ; i < _spectype.length ; i++)
   {
      _skiplist = new Array();

      while(_attackcount < (i+1)*100)
      {
         _mindistance = 100000;

         _target = NTC_FindUnit(NTC_UNIT_MONSTER);

         NTSI_PickItems();

         if(_target)
         {
            do
            {
               if(_skiplist.indexOf(_target.gid) < 0)
               {
                  if(_target.IsAttackable() && (_target.spectype&_spectype[i]))
                  {
                     if(GetDistance(_orgx, _orgy, _target.x, _target.y) <= range && NTA_IsValidMonster(_target))
                     {
                        _distance = GetDistance(me, _target);

                        if(_distance < _mindistance)
                        {
                           _mingid = _target.gid;
                           _mindistance = _distance;
                        }
                     }
                  }
                  else
                     _skiplist.push(_target.gid);
               }
            } while(_target.GetNext());
         }

         if(_mindistance < 100000)
         {
            _target = NTC_FindUnit(NTC_UNIT_MONSTER, _mingid);

            if(_target)
            {
               _result = NTA_Attack(_target, (_attackcount%30) == 0);

               switch(_result)
               {
               case 1:
                  _skiplist.push(_mingid);
                  break;
               case 2:
               case 3:
                  _attackcount++;
                  break;
               default:
                  return false;
               }
            }
         }
         else
            break;
      }
   }

   if(me.classid == NTC_CHAR_CLASS_PALADIN)
   {
      if(_attackcount > 2 && (parseInt(me.hp*100/me.hpmax) < NTConfig_UseRedemptionHP || parseInt(me.mp*100/me.mpmax) < NTConfig_UseRedemptionMP))
      {
         if(NTC_PutSkill(124, NTC_HAND_RIGHT))
            NTC_PingDelay(1000);
      }
   }

   if(NTConfig_OpenChest)
   {
      _target = NTC_GetSpecialChest();

      if(_target && GetDistance(_orgx, _orgy, _target.x, _target.y) <= range && NTC_OpenChest(_target))
         _attackcount++;
   }

   if(pickitem && _attackcount > 0)
      NTSI_PickItems();

   switch(safelevel)
   {
   case 1:
      return NTTMGR_CheckSafe(0x00, NTConfig_CheckMercSafe&0x01);
   case 2:
      return NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe);
   }

   return true;
}

function NTA_ClearLevel(pickitem, safelevel)
{
   var i;
   var _room, _rooms;
   var _distance, _minindex, _mindistance;

   _room = GetRoom();

   if(!_room)
      return false;

   switch(arguments.length)
   {
   case 0:
      pickitem = true;
   case 1:
      safelevel = 2;
   default:
      if(NTConfig_CheckSelfSafe < 0x01 && NTConfig_CheckMercSafe < 0x01)
         safelevel = 0;
      break;
   }

   _rooms = new Array();

   do
   {
      _rooms.push([parseInt(_room.x*5 + _room.xsize*5/2), parseInt(_room.y*5 + _room.ysize*5/2)]);
   } while(_room.GetNext());

   while(_rooms.length > 0)
   {
      _mindistance = 100000;

      for(i = 0 ; i < _rooms.length ; i++)
      {
         _distance = GetDistance(me.x, me.y, _rooms[i][0], _rooms[i][1]);

         if(_distance < _mindistance)
         {
            _minindex = i;
            _mindistance = _distance;
         }
      }

      if(NTM_MoveTo(me.areaid, _rooms[_minindex][0], _rooms[_minindex][1], 1))
      {
         if(!NTA_ClearRoom(pickitem, safelevel))
            return false;

         NTP_DoPrecast(false);
      }

      _rooms.splice(_minindex, 1);
   }

   return true;
}

function NTA_ClearRoom(pickitem, safelevel)
{
   var _room;
   var _spectype = [0x0A, 0x01, 0x01];
   var _skiplist;
   var _attackcount = 0;
   var _target;
   var _distance, _mingid, _mindistance;
   var _result;

   if(NTConfig_AttackSkill[1] < 1 || NTConfig_AttackSkill[3] < 1)
      return false;

   _room = me.GetRoom();

   if(!_room)
      return false;

   switch(arguments.length)
   {
   case 0:
      pickitem = false;
   case 1:
      safelevel = 0;
   default:
      if(NTConfig_CheckSelfSafe < 0x01 && NTConfig_CheckMercSafe < 0x01)
         safelevel = 0;
      break;
   }

   for(var i = 0 ; i < _spectype.length ; i++)
   {
      _skiplist = new Array();

      while(_attackcount < (i+1)*100)
      {
         _mindistance = 100000;

         _target = NTC_FindUnit(NTC_UNIT_MONSTER);

         if(_target)
         {
            do
            {
               if(_skiplist.indexOf(_target.gid) < 0)
               {
                  if(_target.IsAttackable() && (_target.spectype&_spectype[i]))
                  {
                     if(_room.UnitInRoom(_target) && NTA_IsValidMonster(_target))
                     {
                        _distance = GetDistance(me, _target);

                        if(_distance < _mindistance)
                        {
                           _mingid = _target.gid;
                           _mindistance = _distance;
                        }
                     }
                  }
                  else
                     _skiplist.push(_target.gid);
               }
            } while(_target.GetNext());
         }

         if(_mindistance < 100000)
         {
            _target = NTC_FindUnit(NTC_UNIT_MONSTER, _mingid);

            if(_target)
            {
               _result = NTA_Attack(_target, (_attackcount%30) == 0);

               switch(_result)
               {
               case 1:
                  _skiplist.push(_mingid);
                  break;
               case 2:
               case 3:
                  _attackcount++;
                  break;
               default:
                  return false;
               }
            }
         }
         else
            break;
      }
   }

   if(me.classid == NTC_CHAR_CLASS_PALADIN)
   {
      if(_attackcount > 2 && (parseInt(me.hp*100/me.hpmax) < NTConfig_UseRedemptionHP || parseInt(me.mp*100/me.mpmax) < NTConfig_UseRedemptionMP))
      {
         if(NTC_PutSkill(124, NTC_HAND_RIGHT))
            NTC_PingDelay(1000);
      }
   }

   if(NTConfig_OpenChest)
   {
      _target = NTC_GetSpecialChest();

      if(_target && _room.UnitInRoom(_target) && NTC_OpenChest(_target))
         _attackcount++;
   }

   if(pickitem && _attackcount > 0)
      NTSI_PickItems();

   switch(safelevel)
   {
   case 1:
      return NTTMGR_CheckSafe(0x00, NTConfig_CheckMercSafe&0x01);
   case 2:
      return NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe);
   }

   return true;
}

function NTA_IsValidMonster(monster)
{
   var _classid;

   if(monster.hp <= 0 || monster.mode == 0 || monster.mode == 12)
      return false;

   _classid = monster.classid;

   if(((_classid >= 110 && _classid <= 113) || _classid == 608) && monster.mode == 8) // ignore flying scavengers
      return false;

   if(_classid == 68 && monster.mode == 14) // ignore burrowing maggots
      return false;

   if(_classid >= 258 && _classid <= 263 && monster.mode == 14) // ignore submerged WaterWatchers
      return false;

   if(monster.GetState(53) || monster.GetState(96)) // Conversion, Revive
      return false;

   return true;
}

function NTA_GetDamageType(skillid)
{
   if(skillid == 74) // Corpse Explosion
      return NTA_DAMAGE_PHYSICAL;

   if(skillid == 101) // hbolt
      return NTA_DAMAGE_NONE;

   switch(GetBaseStat("skills.txt", skillid, 233))
   {
   case "cold":
      return NTA_DAMAGE_COLD;
   case "fire":
      return NTA_DAMAGE_FIRE;
   case "ltng":
      return NTA_DAMAGE_LIGHTNING;
   case "mag":
      return NTA_DAMAGE_MAGIC;
   case "pois":
      return NTA_DAMAGE_POISON;
   case "stun":
      return NTA_DAMAGE_NONE;
   default:
      if(GetBaseStat("skills.txt", skillid, 178) || GetBaseStat("skills.txt", skillid, 182)) // aura or passive
         return NTA_DAMAGE_NONE;
   }

   return NTA_DAMAGE_PHYSICAL;
}

function NTA_GetResistance(enemy, type)
{
   switch(type)
   {
   case NTA_DAMAGE_PHYSICAL:
      return enemy.GetStat(36);
   case NTA_DAMAGE_MAGIC:
      return enemy.GetStat(37);
   case NTA_DAMAGE_FIRE:
      return enemy.GetStat(39);
   case NTA_DAMAGE_LIGHTNING:
      return enemy.GetStat(41);
   case NTA_DAMAGE_COLD:
      return enemy.GetStat(43);
   case NTA_DAMAGE_POISON:
      return enemy.GetStat(45);
   }

   return 0;
}

function NTA_DetectAttackPattern()
{
   switch(me.classid)
   {
   case NTC_CHAR_CLASS_AMAZON:
      return NTA_AmazonAttackPatternInt();
   case NTC_CHAR_CLASS_SORCERESS:
      return NTA_SorceressAttackPatternInt();
   case NTC_CHAR_CLASS_NECROMANCER:
      return NTA_NecromancerAttackPatternInt();
   case NTC_CHAR_CLASS_PALADIN:
      return NTA_PaladinAttackPatternInt();
   case NTC_CHAR_CLASS_BARBARIAN:
      return NTA_BarbarianAttackPatternInt();
   case NTC_CHAR_CLASS_DRUID:
      return NTA_DruidAttackPatternInt();
   case NTC_CHAR_CLASS_ASSASSIN:
      return NTA_AssassinAttackPatternInt();
   }

   return false;
}

// Return value : 0 = Unrecoverable process, 1 = Unavailable attack, 2 = Onetime fail, 3 = Success
function NTA_Attack(target, firstorder)
{
   switch(me.classid)
   {
   case NTC_CHAR_CLASS_AMAZON:
      return NTA_AmazonAttackInt(target, firstorder);
   case NTC_CHAR_CLASS_SORCERESS:
      return NTA_SorceressAttackInt(target, firstorder);
   case NTC_CHAR_CLASS_NECROMANCER:
      return NTA_NecromancerAttackInt(target, firstorder);
   case NTC_CHAR_CLASS_PALADIN:
      return NTA_PaladinAttackInt(target, firstorder);
   case NTC_CHAR_CLASS_BARBARIAN:
      return NTA_BarbarianAttackInt(target, firstorder);
   case NTC_CHAR_CLASS_DRUID:
      return NTA_DruidAttackInt(target, firstorder);
   case NTC_CHAR_CLASS_ASSASSIN:
      return NTA_AssassinAttackInt(target, firstorder);
   }

   return 0;
}

function NTA_IsWeaponBroken()
{
   var _weapon;
   _weapon = me.GetItems();

      if(_weapon)
      {
         for(var i = 0 ; i < _weapon.length ; i++)
         {
            if(_weapon[i].itemflag&0x100)
            {   
               if(_weapon[i].mode == 1 && _weapon[i].itemloc == 4 || _weapon[i].itemloc == 5)
               {
                  Print("?c8My weapon broke, I am going to town to repair it.")
                  NTTMGR_VisitTown();
                  NTTMGR_TownManager();   
                  break;

               }   
            }
         }
      }
}

// Internal function

function NTA_AmazonAttackPatternInt()
{
   
   var _maxindex, _maxskill;
   var _avgskilllevel = new Array();

   _avgskilllevel[0]  = me.GetSkill(35, false);
   _avgskilllevel[1]  = parseInt((me.GetSkill(31, false) + me.GetSkill(11, false) + me.GetSkill(21, false)) /3 );
   _avgskilllevel[2]  = me.GetSkill(26, false);


   _maxindex = -1;
   _maxskill = 0;

   for(var i = 0 ; i < _avgskilllevel.length ; i++)
   {
      if(_avgskilllevel[i] > _maxskill)
      {
         _maxindex = i;
         _maxskill = _avgskilllevel[i];
      }
   }

   switch(_maxindex)
   {
   case 0: // Lightning Fury for Javazon
     
      NTConfig_AttackSkill[1] = 35;
      NTConfig_AttackSkill[2] = 35;
      NTConfig_AttackSkill[3] = 35;
      NTConfig_AttackSkill[4] = 35;
      NTConfig_AttackSkill[5] = 35;
      NTConfig_AttackSkill[6] = 35;
      NTConfig_AttackSkill[7] = 24;
      break;

   case 1: // Freezing Arrow for Bowzon
     
      NTConfig_AttackSkill[1] = 31;
      NTConfig_AttackSkill[2] = 31;
      NTConfig_AttackSkill[3] = 31;
      NTConfig_AttackSkill[4] = 31;
      NTConfig_AttackSkill[5] = 31;
      NTConfig_AttackSkill[6] = 31;
      NTConfig_AttackSkill[7] = 31;
      break;
   
   case 2: // Cold Arrow + Strafe for Bowzon
   
      NTConfig_AttackSkill[0] = 11;
      NTConfig_AttackSkill[1] = 26;
      NTConfig_AttackSkill[2] = 26;
      NTConfig_AttackSkill[3] = 26;
      NTConfig_AttackSkill[4] = 26;
      NTConfig_AttackSkill[5] = 26;
      NTConfig_AttackSkill[6] = 26;
      NTConfig_AttackSkill[7] = 22;
      break;
   }

   return (NTConfig_AttackSkill[1] && NTConfig_AttackSkill[3]);
}


function NTA_AmazonAttackInt(target, firstorder)
{
   var _primaryindex;
   
   if(NTTMGR_CheckCurse(NTConfig_CheckSelfSafe&0x10, NTConfig_CheckMercSafe&0x10))
   {
      if(!NTTMGR_VisitTown())
         return 0;
   }
   
   
   if(me.GetSkill(12, false) > 1)
      NTA_HaveArrows();
   else
      NTA_IsWeaponBroken();
   

   if(firstorder && NTConfig_AttackSkill[0] > 0 && NTA_GetResistance(target, _NTA_SkillDamage[0]) < 100)
   {
      if(GetDistance(me, target) > _NTA_SkillRange[0] || !CheckCollision(me, target, 4))
      {
         var _pos = me.GetOptimalAttackPos(target.areaid, target.x, target.y, _NTA_SkillRange[0], 4);

         if(_pos)
            NTM_MoveTo(target.areaid, _pos[0], _pos[1], 0);
      }

      if(!NTC_CastSkill(NTConfig_AttackSkill[0], _NTA_SkillHand[0], target))
         return 2;

      return 3;
   }

   _primaryindex = (target.spectype&0x0A) ? 1 : 3;

   switch(target.classid)
   {
      case 243://Diablo
      case 544://Baal
      case 242:
         if(!NTA_AmazonCastSkillInt(7, target))
            return 2;

         return 3;
      default:
         break;
   }

   if(NTA_GetResistance(target, _NTA_SkillDamage[_primaryindex]) <= 90)
   {
      if(!NTA_AmazonCastSkillInt(_primaryindex, target))
         return 2;

      return 3;
   }
   
   
   if(NTConfig_AttackSkill[5] > 0  && NTA_GetResistance(target, _NTA_SkillDamage[5]) > 80)
   {
      if(!NTA_AmazonCastSkillInt(5, target))
         return 2;

      return 3;
   }
   
   if(NTA_GetResistance(target, _NTA_SkillDamage[_primaryindex]) < 100 || (_primaryindex == 1 && NTC_GetMerc()))
   {
      if(!NTA_AmazonCastSkillInt(_primaryindex, target))
         return 2;

      return 3;
   }

   return 1;
}

function NTA_AmazonCastSkillInt(index, target)
{

   if(GetDistance(me, target) > _NTA_SkillRange[index] || !CheckCollision(me, target, 4))
   {
      var _pos = me.GetOptimalAttackPos(target.areaid, target.x, target.y, _NTA_SkillRange[index], 4);

      if(_pos)
         NTM_MoveTo(target.areaid, _pos[0], _pos[1], 0);
   }
 
   return NTC_CastSkill(NTConfig_AttackSkill[index], NTC_HAND_LEFT, target);
   
   if(NTConfig_AttackSkill[index+1] > 0)
   {
      if(GetDistance(me, target) > _NTA_SkillRange[index+1] || !CheckCollision(me, target, 4))
            {
               var _pos = me.GetOptimalAttackPos(target.areaid, target.x, target.y, _NTA_SkillRange[index+1], 4);

               if(_pos)
                     NTM_MoveTo(target.areaid, _pos[0], _pos[1], 0);
           }

             return NTC_CastSkill(NTConfig_AttackSkill[index+1], _NTA_SkillHand[index+1], target);
        }
   
}

function NTA_SorceressAttackPatternInt()
{
   var _maxindex, _maxskill;
   var _avgskilllevel = new Array();

   _avgskilllevel[0] = parseInt((me.GetSkill(59, false)+me.GetSkill(39, false)+me.GetSkill(45, false)+me.GetSkill(55, false))/4);
   _avgskilllevel[1] = parseInt((me.GetSkill(53, false)+me.GetSkill(38, false)+me.GetSkill(48, false)+me.GetSkill(49, false))/4);
   _avgskilllevel[2] = parseInt((me.GetSkill(47, false)+me.GetSkill(36, false)+me.GetSkill(56, false)+me.GetSkill(64, false))/4);
   _avgskilllevel[3] = parseInt((me.GetSkill(47, false)+me.GetSkill(36, false)+me.GetSkill(56, false))/3);

   _maxindex = -1;
   _maxskill = 0;

   for(var i = 0 ; i < _avgskilllevel.length ; i++)
   {
      if(_avgskilllevel[i] > _maxskill)
      {
         _maxindex = i;
         _maxskill = _avgskilllevel[i];
      }
   }

   switch(_maxindex)
   {
   case 0: // Blizzard + Glacial Spike
      NTConfig_AttackSkill[1] = 59;
      NTConfig_AttackSkill[2] = 55;
      NTConfig_AttackSkill[3] = 59;
      NTConfig_AttackSkill[4] = 55;
      break;
   case 1: // Chain Lightning + Lightning
      NTConfig_AttackSkill[1] = 49;
      NTConfig_AttackSkill[3] = 53;
      break;
   case 2: // Fire Ball + Frozen Orb
      NTConfig_AttackSkill[0] = 64;
      NTConfig_AttackSkill[1] = 47;
      NTConfig_AttackSkill[3] = 47;
      NTConfig_AttackSkill[5] = 64;
      NTConfig_AttackSkill[6] = 55;
      break;
   case 3: // Fire Ball + Meteor
      NTConfig_AttackSkill[1] = 56;
      NTConfig_AttackSkill[2] = 47;
      NTConfig_AttackSkill[3] = 56;
      NTConfig_AttackSkill[4] = 47;
      break;
   }

   return (NTConfig_AttackSkill[1] && NTConfig_AttackSkill[3]);
}

function NTA_SorceressAttackInt(target, firstorder)
{
   var _primaryindex;

   if(NTTMGR_CheckCurse(NTConfig_CheckSelfSafe&0x10, NTConfig_CheckMercSafe&0x10))
   {
      if(!NTTMGR_VisitTown())
         return 0;
   }

   if(firstorder && NTConfig_AttackSkill[0] > 0 && NTA_GetResistance(target, _NTA_SkillDamage[0]) < 100 && me.GetSkillStatus(NTConfig_AttackSkill[0]) != 8)
   {
      if(GetDistance(me, target) > _NTA_SkillRange[0] || !CheckCollision(me, target, 4))
      {
         var _pos = me.GetOptimalAttackPos(target.areaid, target.x, target.y, _NTA_SkillRange[0], 4);

         if(_pos)
            NTM_MoveTo(target.areaid, _pos[0], _pos[1], 0);
      }

      if(!NTC_CastSkill(NTConfig_AttackSkill[0], _NTA_SkillHand[0], target))
         return 2;

      return 3;
   }

   if(NTConfig_CastStatic < 100 && parseInt(target.hp*100/target.hpmax) > NTConfig_CastStatic && NTA_GetResistance(target, NTA_DAMAGE_LIGHTNING) <= 80)
   {
      var _staticlevel = NTC_GetSkillLevel(42);

      if(_staticlevel > 0)
      {
         var _staticrange;
         var _castx, _casty;

         _staticrange = Math.floor((5+_staticlevel-1)*2/3);

         if(GetDistance(me, target) > _staticrange || !CheckCollision(me, target, 6))
         {
            var _pos = me.GetOptimalAttackPos(target.areaid, target.x, target.y, _staticrange, 6);

            if(_pos)
               NTM_MoveTo(target.areaid, _pos[0], _pos[1], 0);
         }

         if(target.x < me.x)
            _castx = me.x - 1;
         else if(target.x > me.x)
            _castx = me.x + 1;
         else
            _castx = me.x;

         if(target.y < me.y)
            _casty = me.y - 1;
         else if(target.y > me.y)
            _casty = me.y + 1;
         else
            _casty = me.y;

         if(!CheckCollision(target.areaid, _castx, _casty, 1))
         {
            _castx = me.x;
            _casty = me.y;
         }

         if(!NTC_CastSkill(42, NTC_HAND_RIGHT, _castx, _casty))
            return 2;

         return 3;
      }
   }

   _primaryindex = (target.spectype&0x0A) ? 1 : 3;

   if(NTA_GetResistance(target, _NTA_SkillDamage[_primaryindex]) <= 90)
   {
      if(!NTA_SorceressCastSkillInt(_primaryindex, target))
         return 2;

      return 3;
   }

   if(NTConfig_AttackSkill[5] > 0 && NTA_GetResistance(target, _NTA_SkillDamage[5]) <= 80)
   {
      if(!NTA_SorceressCastSkillInt(5, target))
         return 2;

      return 3;
   }

   if(NTA_GetResistance(target, _NTA_SkillDamage[_primaryindex]) < 100 || (_primaryindex == 1 && NTC_GetMerc()))
   {
      if(!NTA_SorceressCastSkillInt(_primaryindex, target))
         return 2;

      return 3;
   }

   return 1;
}

function NTA_SorceressCastSkillInt(index, target)
{
   if(me.GetSkillStatus(NTConfig_AttackSkill[index]) != 8)
   {
      if(GetDistance(me, target) > _NTA_SkillRange[index] || !CheckCollision(me, target, 4))
      {
         var _pos = me.GetOptimalAttackPos(target.areaid, target.x, target.y, _NTA_SkillRange[index], 4);

         if(_pos)
            NTM_MoveTo(target.areaid, _pos[0], _pos[1], 0);
      }

      return NTC_CastSkill(NTConfig_AttackSkill[index], _NTA_SkillHand[index], target);
   }

   if(NTConfig_AttackSkill[index+1] > 0)
   {
      if(GetDistance(me, target) > _NTA_SkillRange[index+1] || !CheckCollision(me, target, 4))
      {
         var _pos = me.GetOptimalAttackPos(target.areaid, target.x, target.y, _NTA_SkillRange[index+1], 4);

         if(_pos)
            NTM_MoveTo(target.areaid, _pos[0], _pos[1], 0);
      }

      return NTC_CastSkill(NTConfig_AttackSkill[index+1], _NTA_SkillHand[index+1], target);
   }

   for(var i = 0 ; i < 25 ; i++)
   {
      NTC_Delay(NTC_DELAY_FRAME);

      if(me.GetSkillStatus(NTConfig_AttackSkill[index]) != 8)
         break;
   }

   return false;
}

function NTA_NecromancerAttackPatternInt()
{
   return false;
}

function NTA_NecromancerAttackInt(target, firstorder)
{
   return 1;
}

function NTA_NecromancerCastSkillInt(index, target)
{
   return false;
}

function NTA_PaladinAttackPatternInt()
{
   var _maxindex, _maxskill;
   var _avgskilllevel = new Array();

   _avgskilllevel[0] = parseInt((me.GetSkill(112, false)+me.GetSkill(108, false)+me.GetSkill(115, false))/3);
   _avgskilllevel[1] = parseInt((me.GetSkill(106, false)+me.GetSkill(96, false))/2);
   _avgskilllevel[2] = parseInt((me.GetSkill(121, false)+me.GetSkill(101, false)+me.GetSkill(118, false))/3);

   _maxindex = -1;
   _maxskill = 0;

   for(var i = 0 ; i < _avgskilllevel.length ; i++)
   {
      if(_avgskilllevel[i] > _maxskill)
      {
         _maxindex = i;
         _maxskill = _avgskilllevel[i];
      }
   }

   switch(_maxindex)
   {
   case 0: // Blessed Hammer
      NTConfig_AttackSkill[1] = 112;
      NTConfig_AttackSkill[2] = 113;
      NTConfig_AttackSkill[3] = 112;
      NTConfig_AttackSkill[4] = 113;
      break;
   case 1: // Zeal
      NTConfig_AttackSkill[1] = 106;
      NTConfig_AttackSkill[2] = 122;
      NTConfig_AttackSkill[3] = 106;
      NTConfig_AttackSkill[4] = 122;
      break;
   case 2: // Fist of the Heavens
      NTConfig_AttackSkill[1] = 121;
      NTConfig_AttackSkill[2] = 123;
      NTConfig_AttackSkill[3] = 121;
      NTConfig_AttackSkill[4] = 123;
      break;
   }

   return (NTConfig_AttackSkill[1] && NTConfig_AttackSkill[3]);
}

function NTA_PaladinAttackInt(target, firstorder)
{
   var _primaryindex;

   if(NTTMGR_CheckCurse(NTConfig_CheckSelfSafe&0x10, NTConfig_CheckMercSafe&0x10))
   {
      if(!NTTMGR_VisitTown())
         return 0;
   }

   if(firstorder && NTConfig_AttackSkill[0] > 0 && NTA_GetResistance(target, _NTA_SkillDamage[0]) < 100)
   {
      if(GetDistance(me, target) > _NTA_SkillRange[0] || !CheckCollision(me, target, 4))
      {
         var _pos = me.GetOptimalAttackPos(target.areaid, target.x, target.y, _NTA_SkillRange[0], 4);

         if(_pos)
            NTM_MoveTo(target.areaid, _pos[0], _pos[1], 0);
      }

      if(!NTC_CastSkill(NTConfig_AttackSkill[0], _NTA_SkillHand[0], target))
         return 2;

      return 3;
   }

   _primaryindex = (target.spectype&0x0A) ? 1 : 3;

   if(NTA_GetResistance(target, _NTA_SkillDamage[_primaryindex]) < 100)
   {
      if(_NTA_SkillRange[_primaryindex] < 4 && !CheckCollision(target.areaid, target.x, target.y, 1))
         return 1;

      if(!NTA_PaladinCastSkillInt(_primaryindex, target))
         return 2;

      return 3;
   }

   if(NTConfig_AttackSkill[5] > 0 && NTA_GetResistance(target, _NTA_SkillDamage[5]) < 100)
   {
      if(_NTA_SkillRange[5] < 4 && !CheckCollision(target.areaid, target.x, target.y, 1))
         return 1;

      if(!NTA_PaladinCastSkillInt(5, target))
         return 2;

      return 3;
   }

   return 1;
}

function NTA_PaladinCastSkillInt(index, target)
{
   if(NTConfig_AttackSkill[index] == 112)
   {
      if(me.x-target.x < 1 || me.x-target.x > 2 || me.y-target.y < 1 || me.y-target.y > 2)
      {
         if(CheckCollision(target.areaid, target.x+2, target.y+2, 1))
            NTM_MoveTo(target.areaid, target.x+2, target.y+2, 0);
         else if(me.x-target.x < -4 || me.x-target.x > 2 || me.y-target.y < 0 || me.y-target.y > 2)
            NTM_MoveTo(target.areaid, target.x-4, target.y, 0);
      }
   }
   else
   {
      if(GetDistance(me, target) > _NTA_SkillRange[index] || !CheckCollision(me, target, 4))
      {
         var _pos = me.GetOptimalAttackPos(target.areaid, target.x, target.y, _NTA_SkillRange[index], 4);

         if(_pos)
            NTM_MoveTo(target.areaid, _pos[0], _pos[1], 0);
      }
   }

   if(NTConfig_AttackSkill[index+1] > 0)
      NTC_PutSkill(NTConfig_AttackSkill[index+1], NTC_HAND_RIGHT);

   return NTC_CastSkill(NTConfig_AttackSkill[index], _NTA_SkillHand[index], target);
}

function NTA_BarbarianAttackPatternInt()
{
   var _maxindex, _maxskill;
   var _avgskilllevel = new Array();

   _avgskilllevel[0] = me.GetSkill(151, false);

   _maxindex = -1;
   _maxskill = 0;

   for(var i = 0 ; i < _avgskilllevel.length ; i++)
   {
      if(_avgskilllevel[i] > _maxskill)
      {
         _maxindex = i;
         _maxskill = _avgskilllevel[i];
      }
   }

   switch(_maxindex)
   {
   case 0: // Whirlwind
      NTConfig_AttackSkill[1] = 151;
      NTConfig_AttackSkill[3] = 151;
      NTConfig_AttackSkill[5] = 152;
      break;
   }

   return (NTConfig_AttackSkill[1] && NTConfig_AttackSkill[3]);
}

function NTA_BarbarianAttackInt(target, firstorder)
{
   var _primaryindex;

   if(NTTMGR_CheckCurse(NTConfig_CheckSelfSafe&0x10, NTConfig_CheckMercSafe&0x10))
   {
      if(!NTTMGR_VisitTown())
         return 0;
   }

   if(firstorder && NTConfig_AttackSkill[0] > 0 && NTA_GetResistance(target, _NTA_SkillDamage[0]) < 100)
   {
      if(GetDistance(me, target) > _NTA_SkillRange[0] || !CheckCollision(me, target, 4))
      {
         var _pos = me.GetOptimalAttackPos(target.areaid, target.x, target.y, _NTA_SkillRange[0], 4);

         if(_pos)
            NTM_MoveTo(target.areaid, _pos[0], _pos[1], 0);
      }

      if(!NTC_CastSkill(NTConfig_AttackSkill[0], _NTA_SkillHand[0], target))
         return 2;

      return 3;
   }

   _primaryindex = (target.spectype&0x0A) ? 1 : 3;

   if(NTA_GetResistance(target, _NTA_SkillDamage[_primaryindex]) < 100)
   {
      if((_NTA_SkillRange[_primaryindex] < 4 || NTConfig_AttackSkill[_primaryindex] == 151) && !CheckCollision(target.areaid, target.x, target.y, 1))
         return 1;

      if(!NTA_BarbarianCastSkillInt(_primaryindex, target))
         return 2;

      return 3;
   }

   if(NTConfig_AttackSkill[5] > 0 && NTA_GetResistance(target, _NTA_SkillDamage[5]) < 100)
   {
      if((_NTA_SkillRange[5] < 4 || NTConfig_AttackSkill[5] == 151) && !CheckCollision(target.areaid, target.x, target.y, 1))
         return 1;

      if(!NTA_BarbarianCastSkillInt(5, target))
         return 2;

      return 3;
   }

   return 1;
}

function NTA_BarbarianCastSkillInt(index, target)
{
   if(NTConfig_AttackSkill[index] == 151)
   {
      var _castx, _casty;

      if(GetDistance(me, target) > _NTA_SkillRange[index] || !CheckCollision(me, target, 5))
      {
         var _pos = me.GetOptimalAttackPos(target.areaid, target.x, target.y, _NTA_SkillRange[index], 5);

         if(_pos)
            NTM_MoveTo(target.areaid, _pos[0], _pos[1], 0);
      }

      _castx =  target.x > me.x ? target.x+3 : target.x-3;
      _casty =  target.y > me.y ? target.y+3 : target.y-3;

      return NTC_CastSkill(NTConfig_AttackSkill[index], _NTA_SkillHand[index], _castx, _casty);
   }

   if(GetDistance(me, target) > _NTA_SkillRange[index] || !CheckCollision(me, target, 4))
   {
      var _pos = me.GetOptimalAttackPos(target.areaid, target.x, target.y, _NTA_SkillRange[index], 4);

      if(_pos)
         NTM_MoveTo(target.areaid, _pos[0], _pos[1], 0);
   }

   return NTC_CastSkill(NTConfig_AttackSkill[index], _NTA_SkillHand[index], target);
}

function NTA_DruidAttackPatternInt()
{
   var _maxindex, _maxskill;
   var _avgskilllevel = new Array();

   _avgskilllevel[0] = me.GetSkill(245, false);
   _maxindex = -1;
   _maxskill = 0;

   for(var i = 0 ; i < _avgskilllevel.length ; i++)
   {
      if(_avgskilllevel[i] > _maxskill)
      {
         _maxindex = i;
         _maxskill = _avgskilllevel[i];
      }
   }

   switch(_maxindex)
   {
   case 0: //
      NTConfig_AttackSkill[0] = 245;
      NTConfig_AttackSkill[1] = 245;
      NTConfig_AttackSkill[2] = 230;
      break;
   case 1:
      NTConfig_AttackSkill[1] = 245;
      NTConfig_AttackSkill[2] = 230;
      NTConfig_AttackSkill[3] = 245;
      break;
   }

   return (NTConfig_AttackSkill[1] && NTConfig_AttackSkill[3]);
}

function NTA_DruidAttackInt(target, firstorder)
{
   var _primaryindex;
   if(NTTMGR_CheckCurse(NTConfig_CheckSelfSafe&0x10, NTConfig_CheckMercSafe&0x10))
   {
      if(!NTTMGR_VisitTown())
         return 0;
   }

   if(firstorder && NTConfig_AttackSkill[0] > 0 && NTA_GetResistance(target, _NTA_SkillDamage[0]) < 100 && me.GetSkillStatus(NTConfig_AttackSkill[0]) != 8)
   {
     
     
      if(GetDistance(me, target) > NTConfig_AttackSkill[0] || !CheckCollision(me, target, 4))
      {
     
   
         if(target.name != "Andariel")
         {
            if (target.name == "Lister the Tormentor")
               _NTA_SkillRange[index] = 15;
            if (target.name == "Baal")
               _NTA_SkillRange[index] = 3;
           
         
            var _pos = me.GetOptimalAttackPos(target.areaid, target.x, target.y,  _NTA_SkillRange[index], 4);

            if(_pos)
               NTM_MoveTo(target.areaid, _pos[0], _pos[1], 0);
         }
         
         else
         {
            Print("Moving closer to Andariel for a better chance to hit...");
            NTM_MoveTo(target.areaid, target.x, target.y,0);
         }
      }

      if(!NTC_CastSkill(NTConfig_AttackSkill[0], _NTA_SkillHand[0], target))
         return 2;

      return 3;
   }


   _primaryindex = (target.spectype&0x0A) ? 1 : 3;

   if(NTA_GetResistance(target, _NTA_SkillDamage[index]) <= 90)
   {
      if(!NTA_DruidCastSkillInt(_primaryindex, target))
         return 2;

      return 3;
   }

   if(NTConfig_AttackSkill[3] > 0 && NTA_GetResistance(target, _NTA_SkillDamage[3]) <= 80)
   {
      if(!NTA_DruidCastSkillInt(3, target))
         return 2;

      return 3;
   }

   if(NTA_GetResistance(target, _NTA_SkillDamage[index]) < 100 || (_primaryindex == 1 && NTC_GetMerc()))
   {
      if(!NTA_DruidCastSkillInt(_primaryindex, target))
         return 2;

      return 3;
   }

   return 1;
}

function NTA_DruidCastSkillInt(index, target)
{   
      if(me.GetSkillStatus(NTConfig_AttackSkill[index]) != 8)
      {   
     
     
      if(GetDistance(me, target) > _NTA_SkillRange[index] || !CheckCollision(me, target, 4))
      {
         if(target.name != "Andariel")
         {
            if (target.name == "Lister the Tormentor")
            _NTA_SkillRange[index] = 15;
            if (target.name == "Baal")
               _NTA_SkillRange[index] = 3;
         
            var _pos = me.GetOptimalAttackPos(target.areaid, target.x, target.y,  _NTA_SkillRange[index], 4);

            if(_pos)
               NTM_MoveTo(target.areaid, _pos[0], _pos[1], 0);
         }
         
         else
         {
            Print("Moving closer to Andariel for a better chance to hit...");
            NTM_MoveTo(target.areaid, target.x, target.y,0);
         }
      }

      return NTC_CastSkill(NTConfig_AttackSkill[index], _NTA_SkillHand[index], target);
   }

   if(NTConfig_AttackSkill[index+1] > 0)
   {
     
      if(GetDistance(me, target) > _NTA_SkillRange[index] || !CheckCollision(me, target, 4))
      {
         if(target.name != "Andariel")
         {
            if (target.name == "Lister the Tormentor")
            _NTA_SkillRange[index] = 15;
            if (target.name == "Baal")
               _NTA_SkillRange[index] = 3;
         
            var _pos = me.GetOptimalAttackPos(target.areaid, target.x, target.y,  _NTA_SkillRange[index], 4);

            if(_pos)
               NTM_MoveTo(target.areaid, _pos[0], _pos[1], 0);
         }
         
         else
         {
            Print("Moving closer to Andariel for a better chance to hit...");
            NTM_MoveTo(target.areaid, target.x, target.y,0);
         }
      }

      return NTC_CastSkill(NTConfig_AttackSkill[index+1], _NTA_SkillHand[index+1], target);
   }

   for(var i = 0 ; i < 25 ; i++)
   {
      NTC_Delay(NTC_DELAY_FRAME);

      if(me.GetSkillStatus(NTConfig_AttackSkill[index]) != 8)
         break;
   }

   return false;
}

function NTA_AssassinAttackPatternInt()
{
   var _maxindex, _maxskill;
   var _avgskilllevel = new Array();

   _avgskilllevel[0] = me.GetSkill(271, false);

   _maxindex = -1;
   _maxskill = 0;

   for(var i = 0 ; i < _avgskilllevel.length ; i++)
   {
      if(_avgskilllevel[i] > _maxskill)
      {
         _maxindex = i;
         _maxskill = _avgskilllevel[i];
      }
   }

   switch(_maxindex)
   {
   case 0: // Lightning Sentry + Fire Blast + Physical Hammer
      NTConfig_AttackSkill[1] = 271;
      NTConfig_AttackSkill[3] = 251;
      NTConfig_AttackSkill[5] = 253;
      break;
   }

   return (NTConfig_AttackSkill[1] && NTConfig_AttackSkill[3]);
}

function NTA_AssassinAttackInt(target, firstorder)
{
   var _primaryindex;

   if(NTTMGR_CheckCurse(NTConfig_CheckSelfSafe&0x04, NTConfig_CheckMercSafe&0x04))
   {
      if(!NTTMGR_VisitTown())
         return 0;
   }

   if(firstorder && NTConfig_AttackSkill[0] > 0 && NTA_GetResistance(target, _NTA_SkillDamage[0]) < 100)
   {
      if(GetDistance(me, target) > _NTA_SkillRange[15] || !CheckCollision(me, target, 10))
      {
         var _pos = me.GetOptimalAttackPos(target.areaid, target.x, target.y, _NTA_SkillRange[0], 4);

         if(_pos)
            NTM_MoveTo(target.areaid, _pos[0], _pos[10], 0);
      }

      if(!NTC_CastSkill(NTConfig_AttackSkill[0], _NTA_SkillHand[0], target))
         return 2;

      return 3;
   }

   _primaryindex = (target.spectype&0x0A) ? 1 : 3;

   if(NTA_GetResistance(target, _NTA_SkillDamage[_primaryindex]) < 100)
   {
      if((_NTA_SkillRange[_primaryindex] < 4 || NTConfig_AttackSkill[_primaryindex] == 271) && !CheckCollision(target.areaid, target.x, target.y, 1))
         return 1;

      if(!NTA_AssassinCastSkillInt(_primaryindex, target))
         return 2;

      return 3;
   }

   if(NTConfig_AttackSkill[5] > 0 && NTA_GetResistance(target, _NTA_SkillDamage[5]) < 100)
   {
      if((_NTA_SkillRange[5] < 4 || NTConfig_AttackSkill[5] == 271) && !CheckCollision(target.areaid, target.x, target.y, 1))
         return 1;

      if(!NTA_AssassinCastSkillInt(5, target))
         return 2;

      return 3;
   }

   return 1;
}

function NTA_AssassinCastSkillInt(index, target)
{
   if(NTConfig_AttackSkill[index] == 271)
   {
      var _castx, _casty;

      if(GetDistance(me, target) > _NTA_SkillRange[300] || !CheckCollision(me, target, 5))
      {
         var _pos = me.GetOptimalAttackPos(target.areaid, target.x, target.y, _NTA_SkillRange[index], 5);

         if(_pos)
            NTM_MoveTo(target.areaid, _pos[1], _pos[5], 0);
      }

      _castx =  target.x > me.x ? target.x+3 : target.x-3;
      _casty =  target.y > me.y ? target.y+3 : target.y-3;

      return NTC_CastSkill(NTConfig_AttackSkill[index], _NTA_SkillHand[index], _castx, _casty);
   }

   if(GetDistance(me, target) > _NTA_SkillRange[index] || !CheckCollision(me, target, 4))
   {
      var _pos = me.GetOptimalAttackPos(target.areaid, target.x, target.y, _NTA_SkillRange[index], 4);

      if(_pos)
         NTM_MoveTo(target.areaid, _pos[1], _pos[5], 0);
   }

   return NTC_CastSkill(NTConfig_AttackSkill[index], _NTA_SkillHand[index], target);
}
[/noae]

Offline Corruption

  • Newbie
  • *
  • Posts: 34
  • Reputation 1
    • View Profile
Re: [D2NT] A few questions
« Reply #16 on: August 31, 2010, 03:09:08 PM »
Still a no go boss.
Get the same error as before.

:X

cooptheking

  • Guest
Re: [D2NT] A few questions
« Reply #17 on: August 31, 2010, 04:30:49 PM »
Still a no go boss.
Get the same error as before.

:X

did you edit your attack configs (make sure there are NO zeros..none..at all..make them the attacks you wish to do)

:)

Offline Corruption

  • Newbie
  • *
  • Posts: 34
  • Reputation 1
    • View Profile
Re: [D2NT] A few questions
« Reply #18 on: September 01, 2010, 04:16:58 AM »
Did after you said that and set them all to Charged Strike; and it still does same error.

;X

Offline Corruption

  • Newbie
  • *
  • Posts: 34
  • Reputation 1
    • View Profile
Re: [D2NT] A few questions
« Reply #19 on: September 03, 2010, 10:05:32 AM »
Bump

cooptheking

  • Guest
Re: [D2NT] A few questions
« Reply #20 on: September 03, 2010, 11:56:53 AM »
okay
newly updated
http://purekaoz.com/index.php/topic,793.0.html

go and redo all the steps :)
this is for your javazon issues

Offline Corruption

  • Newbie
  • *
  • Posts: 34
  • Reputation 1
    • View Profile
Re: [D2NT] A few questions
« Reply #21 on: September 06, 2010, 01:38:34 PM »
ooo thx. it works now yay.

Any idea on how to get it to farcast instead of getting right on top of the monsters?

cooptheking

  • Guest
Re: [D2NT] A few questions
« Reply #22 on: September 06, 2010, 03:14:42 PM »
ooo thx. it works now yay.

Any idea on how to get it to farcast instead of getting right on top of the monsters?

you mean throw javas instead of run up on boss?
thats in your attack config in your character file..
change it to whatever skill u want instead of charged strike
if that doesnt work lmk

Offline Corruption

  • Newbie
  • *
  • Posts: 34
  • Reputation 1
    • View Profile
Re: [D2NT] A few questions
« Reply #23 on: September 06, 2010, 11:29:07 PM »
I mean like do charged strike from like 10 ft away kinda farcast.

mythosis

  • Guest
Re: [D2NT] A few questions
« Reply #24 on: September 07, 2010, 12:26:51 AM »
See this part of the code? In your NTAttack
Code: [Select]
switch(NTConfig_AttackSkill[i])
         {
    case 6:  //Magic Arrow
         case 7:  //Fire Arrow
            _NTA_SkillRange[i] = 15;
            break;
         case 10: //Jab
            _NTA_SkillRange[i] = 3;
            break;
         case 11: //Cold Arrow
         case 12: //Multiple Shot
         case 16: //Exploding Arrow
         case 21: //Ice arrow
         case 22: //Guided arrow
            _NTA_SkillRange[i] = 20;
            break;
         case 24: //Charged Strike
            _NTA_SkillRange[i] = 3;
            break;
         case 25: //Plague jav
            _NTA_SkillRange[i] = 10;
            break;
         case 26://Strafe
         case 27://Immolation Arrow
            _NTA_SkillRange[i] = 15;
            break;
         case 30: //Fend
            _NTA_SkillRange[i] = 3;
            break;
         case 31: //Freezing arrow
            _NTA_SkillRange[i] = 15;
            break;
         case 35: //Lightning Fury
            _NTA_SkillRange[i] = 12;
            break;
         case 44: //Frost Nova
         case 48: // Nova
            _NTA_SkillRange[i] = 10;
            break;
         case 64: // Frozen Orb
            _NTA_SkillRange[i] = 15;
            break;
         case 97: //Smite
         case 106: //Zeal
         case 112: //Blessed Hammer
            _NTA_SkillRange[i] = 3;
            break;
         case 151: //Whirlwind
            _NTA_SkillRange[i] = 8;
            break;
         case 152: //Berserk
            _NTA_SkillRange[i] = 3;
            break;
         default:
            _NTA_SkillRange[i] = 25;
            break;
         }

You can change the range there. If it doesnt work, reply again.
The line will be
case #: //SkillName

You can find the skill list in your sdk folder in skills.txt
Change case 24:
Code: [Select]
         case 24: //Charged Strike
            _NTA_SkillRange[i] = 10;
            break;

cooptheking

  • Guest
Re: [D2NT] A few questions
« Reply #25 on: September 07, 2010, 02:28:06 AM »
I mean like do charged strike from like 10 ft away kinda farcast.
Farcast, isn't that some sort of "trigger/hack" that allows that? If so, we cannot help with things that are not in the bot in this section

Offline Corruption

  • Newbie
  • *
  • Posts: 34
  • Reputation 1
    • View Profile
Re: [D2NT] A few questions
« Reply #26 on: September 10, 2010, 11:28:59 PM »
I mean like do charged strike from like 10 ft away kinda farcast.
Farcast, isn't that some sort of "trigger/hack" that allows that? If so, we cannot help with things that are not in the bot in this section

Farcast is a simple mod that can be done in the d2_patch.mpq via skills.txt; and I'm assuming also done another way as mythosis posted, haven't been on enough to test it yet.

Also; grats on the promo.

mythosis

  • Guest
Re: [D2NT] A few questions
« Reply #27 on: September 14, 2010, 03:24:06 PM »
Assuming Issues Resolved :)
Closed & Archieved.