Author Topic: Absolutely Amazing  (Read 489 times)

GXLZPGX

  • Guest
Absolutely Amazing
« on: October 17, 2010, 04:48:13 PM »
Alright, the bot is outstanding. I've used it once before, and I just started up diablo again, and I have to say it is better than before. Much more simple.

Now one question is, the bot runs, and lets say I'm going to andariel, when it gets to Catacombs Level 4, it makes a TP, and goes to akara.. is this to heal or what?

Oh my, I apologize! Wrong section! Can you move this to the D2NT bot help section!
« Last Edit: October 17, 2010, 04:50:37 PM by GXLZPGX »

mythosis

  • Guest
Re: Absolutely Amazing
« Reply #1 on: October 18, 2010, 12:48:50 AM »
I assume you mean the regular bot then, and not rushbot?
In which case, it goes to akara if any checksafe options are met. See character configure (at the bottom) to edit those. Remember, you can't comment out the lines.

Typically speaking, its going to :
Heal hp
Heal mp
buy potions
heal curses
heal poison
clear inventory

For you or your merc.

GXLZPGX

  • Guest
Re: Absolutely Amazing
« Reply #2 on: October 18, 2010, 06:11:55 AM »
Makes sense. Thanks for your reply!

And another thing, before I stop annoying you:

When my sorceress is doing any type of runs, she uses meteor, whether it be bosses, or I'm doing baal runs, but she isn't set to use it.

NTConfig_AttackSkill[0] = 0;
NTConfig_AttackSkill[1] = 47;
NTConfig_AttackSkill[2] = 47;
NTConfig_AttackSkill[3] = 0;
NTConfig_AttackSkill[4] = 0;
NTConfig_AttackSkill[5] = 0;
NTConfig_AttackSkill[6] = 0;

I do some coding myself, and I was looking at this statement:

Code: [Select]
if(me.classid == NTC_CHAR_CLASS_SORCERESS)
{
if(NTConfig_AttackSkill[3] == 56 || NTConfig_AttackSkill[3] == 59)
return NTC_CastSkill(NTConfig_AttackSkill[3], 2, 15092, 5028);
}

I noticed 56 was the meteor skill (this is NTBot.ntj), and I was going to remove the "OR" and the check for the variable, leaving only:

Code: [Select]
if(NTConfig_AttackSkill[3] == 59)
But I'm not sure of NTC_CastSkill's paramater's.
« Last Edit: October 18, 2010, 06:28:35 AM by GXLZPGX »

mythosis

  • Guest
Re: Absolutely Amazing
« Reply #3 on: October 19, 2010, 04:48:49 AM »
These are in your char config:
Quote
NTConfig_AttackSkill[0] = 0;
NTConfig_AttackSkill[1] = 47;
NTConfig_AttackSkill[2] = 47;
NTConfig_AttackSkill[3] = 0;
NTConfig_AttackSkill[4] = 0;
NTConfig_AttackSkill[5] = 0;
NTConfig_AttackSkill[6] = 0;

These... confusing why its there:
Quote
if(me.classid == NTC_CHAR_CLASS_SORCERESS)
{
   if(NTConfig_AttackSkill[3] == 56 || NTConfig_AttackSkill[3] == 59)
      return NTC_CastSkill(NTConfig_AttackSkill[3], 2, 15092, 5028);
}
Maybe you will indulge me and post your ntBot.ntj so I may see?


This is a part of NTAttack, that handles the sorceress attacks:
Code: [Select]
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;
}

I have a feeling your not running a purekaoz bot, or else its an outdated one. Where did you get yours? (do not link outside purekaoz) and what version is it? (mouse over the .exe) You can find d2nt links in my sgy.
« Last Edit: October 19, 2010, 05:17:58 AM by mythosis »

GXLZPGX

  • Guest
Re: Absolutely Amazing
« Reply #4 on: October 19, 2010, 03:17:57 PM »
I'm running D2NT, that's why it's probably confusing.

mythosis

  • Guest
Re: Absolutely Amazing
« Reply #5 on: October 19, 2010, 07:03:24 PM »
I'm running D2NT, that's why it's probably confusing.
I get that.
*cough* D2NT/Program Technician *cough*
:D
And if you mouse over the .exe you will see your version number. The ntBot.ntj usually says where you got the d2nt as well.