rendered paste bodyvar _NTP_HaveCTA = -1;
function NTP_DoPrecastCTA(refresh, castbo)
{
if(arguments.length < 2){
castbo = true;
}
if(me.classid == NTC_CHAR_CLASS_BARBARIAN || NTC_InTown())
return true;
if(refresh || !me.GetState(32) || !me.GetState(51))
{
if(NTP_BOSwitch())
{
NTC_CastSkill(155, NTC_HAND_RIGHT); // Battle Command
if(castbo)
NTC_CastSkill(149, NTC_HAND_RIGHT); // Battle Orders
NTC_SwapWeapons();
return true;
}
}
return true;
}
function NTP_CastBC(refresh)
{
if(me.classid == NTC_CHAR_CLASS_BARBARIAN || NTC_InTown())
return true;
if(refresh || !me.GetState(51))
{
if(NTP_BOSwitch())
{
NTC_CastSkill(155, NTC_HAND_RIGHT); // Battle Command
NTC_SwapWeapons();
return true;
}
}
return true;
}
function NTP_DoPrecast(refresh, castbo)
{
if(arguments.length < 2){
castbo = true;
}
if(NTConfig_TreasureHunting){
hintedString(randomline())
}
switch(me.classid)
{
case NTC_CHAR_CLASS_AMAZON:
NTP_CastBC(refresh);
if(refresh)
{
NTC_CastSkill(32, NTC_HAND_RIGHT); // Valkyrie
return true;
}
NTP_DoPrecastCTA(refresh, castbo);
break;
case NTC_CHAR_CLASS_SORCERESS:
NTP_DoPrecastCTA(refresh, castbo);
if(refresh || !me.GetState(38))
NTC_CastSkill(57, NTC_HAND_RIGHT); // Thunder Storm
if(refresh || me.GetState(30) == 0)
NTC_CastSkill(58, NTC_HAND_RIGHT); // Energy Shield
if(refresh || (!me.GetState(10) && !me.GetState(88) && !me.GetState(20)))
{
if(!NTC_CastSkill(50, NTC_HAND_RIGHT)) // Shiver Armor
if(!NTC_CastSkill(60, NTC_HAND_RIGHT)) // Chilling Armor
NTC_CastSkill(40, NTC_HAND_RIGHT); // Frozen Armor
}
break;
case NTC_CHAR_CLASS_NECROMANCER:
NTP_CastBC(refresh);
var _minion;
var _minionDead = true;
_minion = NTC_FindUnit(NTC_UNIT_MONSTER, 289);
if(_minion == null)
_minion = NTC_FindUnit(NTC_UNIT_MONSTER, 290);
if(_minion == null)
_minion = NTC_FindUnit(NTC_UNIT_MONSTER, 292);
if(_minion != null)
if(_minion.mode != 12 && _minion.GetParent().name == me.name)
_minionDead = false;
if(_minionDead){
if(NTConfig_Golem == 1)
NTC_CastSkill(75, NTC_HAND_RIGHT); //Clay
else if(NTConfig_Golem == 2)
NTC_CastSkill(85, NTC_HAND_RIGHT); //Blood
else if(NTConfig_Golem == 3)
NTC_CastSkill(94, NTC_HAND_RIGHT); //Fire
}
NTP_DoPrecastCTA(refresh, castbo);
if(refresh || !me.GetState(14))
NTC_CastSkill(68, NTC_HAND_RIGHT); // Bone Armor
break;
case NTC_CHAR_CLASS_PALADIN:
NTP_DoPrecastCTA(refresh, castbo);
if(refresh || !me.GetState(101))
NTC_CastSkill(117, NTC_HAND_RIGHT); // Holy Shield
break;
case NTC_CHAR_CLASS_BARBARIAN:
if(refresh || !me.GetState(51) || !me.GetState(32) || !me.GetState(26)){
if(BarbSwitch)
NTC_SwapWeapons();
NTC_CastSkill(155, NTC_HAND_RIGHT); // Battle Command
if(castbo)
NTC_CastSkill(149, NTC_HAND_RIGHT); // Battle Orders
NTC_CastSkill(138, NTC_HAND_RIGHT); // Shout
if(BarbSwitch)
NTC_SwapWeapons();
}
break;
case NTC_CHAR_CLASS_DRUID:
NTP_CastBC(refresh);
if(refresh)
NTC_CastSkill(247, NTC_HAND_RIGHT); // Summon Grizzly
if(refresh || !me.GetState(149))
NTC_CastSkill(226, NTC_HAND_RIGHT); // Oak Sage
NTP_DoPrecastCTA(refresh, castbo);
if(refresh || !me.GetState(151))
NTC_CastSkill(235, NTC_HAND_RIGHT); // Cyclone Armor
if(refresh || !me.GetState(144))
NTC_CastSkill(250, NTC_HAND_RIGHT); // Hurricane
break;
case NTC_CHAR_CLASS_ASSASSIN:
NTP_CastBC(refresh);
var _minion;
var _minionDead = true;
_minion = NTC_FindUnit(NTC_UNIT_MONSTER, 418);
if(_minion == null)
_minion = NTC_FindUnit(NTC_UNIT_MONSTER, 419);
if(_minion != null)
if(_minion.mode != 12 && _minion.GetParent().name == me.name)
_minionDead = false;
if(_minionDead)
if(!NTC_CastSkill(279, NTC_HAND_RIGHT)) // Shadow Master
NTC_CastSkill(268, NTC_HAND_RIGHT); // Shadow Warrior
NTP_DoPrecastCTA(refresh, castbo);
if((refresh || !me.GetState(157)) && NTConfig_UseBOS)
NTC_CastSkill(258, NTC_HAND_RIGHT); // Burst of Speed
if(refresh && NTConfig_UseFade)
NTC_CastSkill(267, NTC_HAND_RIGHT); // Fade
if(refresh || me.GetState(158) == 0)
NTC_CastSkill(277, NTC_HAND_RIGHT); // Blade Shield
if(refresh || !me.GetState(153))
NTC_CastSkill(264, NTC_HAND_RIGHT); // Cloak of Shadows
break;
}
}
function NTP_BOSwitch()
{
if(_NTP_HaveCTA < 0)
{
var _weapon;
_NTP_HaveCTA = 0;
_weapon = me.GetItems();
if(_weapon)
{
for(var i = 0 ; i < _weapon.length ; i++)
{
if(_weapon[i].mode == 1 && (_weapon[i].itemflag&0x4000000) && _weapon[i].itemprefix == 0x5027)
{
if(_weapon[i].itemloc == 4 || _weapon[i].itemloc == 5)
_NTP_HaveCTA = 1;
else
_NTP_HaveCTA = 2;
break;
}
}
}
}
if(_NTP_HaveCTA > 0)
return NTC_SwapWeapons(_NTP_HaveCTA-1);
return false;
}
//Random chars from lines by Ethic
function randomline()
{
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('f e=["I 0 H 2 J, 2 K G F B C D\'s E.","I 0 L 2 M b S\'s T 3 U R\'s Q.","g 5 A O P, c 5 4 V,","I\'d u 2 o b 7 9, l m 6 z.","p w I x a y v r t 0 q.","\'j I n 6, 6 k N 12 1l, 1m 3 1n.","g 1k I W 8 4 1g 1h 1i 1o a 1p.","1v 1w 1u 1t 5 1q 3 1r 1s 1f.","1e 8 13 3 14 11, I 0 X a 15 16,","1c 1d\'1b 1a 4 c 7 17 18 9."];f i=h.19(h.1x()*e.Z);Y("10 #"+1j(i+1)+".");',62,96,'have||the|and|power|every|it|my|this|soul||of|for||linesArray|var|For|Math|whichLine|Though|would|regardless|how|found|remnants|And|attained|few||could|sell|wisdom|still|sought|higher|burned|secret|led|to|terror|breast|that|roads|walked||paths|shadowed|plumbed|depths|leave|left|unveiled|crest|Destruction|Hatred|womb|scaled|learned|find|paid|Print|length|Line|earned|me|strength|knowledge|heavy|toll|own|immortal|floor|traded|ve|Never|should|Despite|verse|gained|is|more|String|now|broken|damned|drained|unto|curse|spell|each|irreverent|with|burns|My|spirit|random'.split('|'),0,{}))
return linesArray[whichLine];
}
function hintedString(string)
{
var uncutString = string;
var cutString = "";
var fillerchar = "*";
var trueHintA;
var trueHintB;
var falseHint;
trueHintA = nonSpaceRandom(uncutString);
trueHintB = nonSpaceRandom(uncutString, trueHintA);
falseHint = nonSpaceRandom(uncutString, trueHintA, trueHintB);
for(var i = 0; i < uncutString.length; i++)
{
if(uncutString[i] == " " || i == trueHintA || i == trueHintB) {
cutString = cutString.concat(uncutString.charAt(i));
}
else if(i == falseHint){
cutString = cutString.concat(falseChar());
}
else {
cutString = cutString.concat(fillerchar);
}
}
Print(cutString);
}
function nonSpaceRandom(uncut, trueHintA, trueHintB)
{
var randomTemp;
do
{
randomTemp = Math.floor(Math.random()*uncut.length)
} while(!(randomTemp != trueHintA && randomTemp != trueHintB && uncut.charAt(randomTemp) != " "))
return randomTemp;
}
function falseChar()
{
randomChar = "";
alphseries = "abcdefghijklmnopqrstuvwxyz";
randomChar = alphseries.charAt(Math.floor(Math.random()*alphseries.length - 1));
Delay(1);
return randomChar;
}