:
/**
* This file was modified by

* Check the programming section for updates and further scripts
* Last Update: 16:48 09.08.2011
*/
var _MWP_BoSlot = 2;
var _MWP_AttackSlot = 1;
function NTP_DoPrecast(refresh)
{
var _castBoTwice, _merc, _status, _initSlot;
var i;
_castBoTwice = false;
_status = 0;
_initSlot = -1;
if(_MWP_AttackSlot < 0)
MWP_SetBoSlot();
if(NTC_InTown())
return false;
if(refresh || !me.GetState(32) || !me.GetState(51) || me.classid == NTC_CHAR_CLASS_BARBARIAN && !me.GetState(26))
{
if(me.classid == NTC_CHAR_CLASS_BARBARIAN || _MWP_BoSlot > -1)
{
NTC_SwapWeapons(_MWP_BoSlot);
if(MWConfig_ShowOverheadStatus)
MWC_PrintOverheadStatus("Performing Precast...");
NTC_CastSkill(MWS_BATTLE_COMMAND, NTC_HAND_RIGHT); // Battle Command
NTC_CastSkill(MWS_BATTLE_ORDERS, NTC_HAND_RIGHT); // Battle Orders
if(me.classid == NTC_CHAR_CLASS_BARBARIAN)
NTC_CastSkill(MWS_SHOUT, NTC_HAND_RIGHT); // Shout
if(MWConfig_SwitchSlotsAfterBoPrecast)
NTC_SwapWeapons(_MWP_AttackSlot);
}
}
if(!MWConfig_PrecastSkills || MWConfig_PrecastSkills.length < 1)
return false;
if(_MWP_BoSlot == _MWP_AttackSlot && MWConfig_SwitchSlotsForPrecast)
{
_initSlot = me.weaponstab;
NTC_SwapWeapons();
}
switch(me.classid)
{
case NTC_CHAR_CLASS_AMAZON:
// Valkyrie
if(refresh && MWConfig_PrecastSkills.indexOf(MWS_VALKYRIE) > -1 && MWC_GetMinionCount(MWS_VALKYRIE) == 0)
{
if(NTC_CastSkill(MWS_VALKYRIE, NTC_HAND_RIGHT))
_castBoTwice = true;
}
break;
case NTC_CHAR_CLASS_SORCERESS:
// Thunder Storm
if(MWConfig_PrecastSkills.indexOf(MWS_THUNDER_STOR M) > -1 && (refresh || !me.GetState(38)))
NTC_CastSkill(MWS_THUNDER_STORM, NTC_HAND_RIGHT);
// Energy Shield
if(refresh && MWConfig_PrecastSkills.indexOf(MWS_ENERGY_SHIELD) > -1)
NTC_CastSkill(MWS_ENERGY_SHIELD, NTC_HAND_RIGHT);
// Shiver Armor
if(MWConfig_PrecastSkills.indexOf(MWS_SHIVER_ARMOR ) > -1 && (refresh || !me.GetState(88)))
NTC_CastSkill(MWS_SHIVER_ARMOR, NTC_HAND_RIGHT);
// Chilling Armor
else if(MWConfig_PrecastSkills.indexOf(MWS_CHILLING_ARM OR) > -1 && (refresh || !me.GetState(20)))
NTC_CastSkill(MWS_CHILLING_ARMOR, NTC_HAND_RIGHT);
// Frozen Armor
else if(MWConfig_PrecastSkills.indexOf(MWS_FROZEN_ARMOR ) > -1 && (refresh || !me.GetState(10)))
NTC_CastSkill(MWS_FROZEN_ARMOR, NTC_HAND_RIGHT);
// Enchant
if(MWConfig_PrecastSkills.indexOf(MWS_ENCHANT) > -1)
{
_merc = NTC_GetMerc();
if(_merc && !_merc.GetState(16))
NTC_CastSkill(MWS_ENCHANT, NTC_HAND_RIGHT, _merc);
if(!me.GetState(16))
NTC_CastSkill(MWS_ENCHANT, NTC_HAND_RIGHT);
}
break;
case NTC_CHAR_CLASS_NECROMANCER:
// Bone Armor
if(MWConfig_PrecastSkills.indexOf(MWS_BONE_ARMOR) > -1)
{
if(me.GetStat(133) != 0)
_status = me.GetStat(132) / me.GetStat(133);
if(refresh && _status < 0.9 || me.GetStat(132) == 0 || _status < 0.4)
NTC_CastSkill(MWS_BONE_ARMOR, NTC_HAND_RIGHT);
}
if(refresh)
{
NTM_MoveTo(me.areaid, me.x + Random(-1, 1), me.y + Random(-1, 1));
// Clay Golem
if(MWConfig_PrecastSkills.indexOf(MWS_CLAY_GOLEM) > -1 && MWC_GetMinionCount(MWS_CLAY_GOLEM) == 0)
{
if(NTC_CastSkill(MWS_CLAY_GOLEM, NTC_HAND_RIGHT))
_castBoTwice = true;
}
// Blood Golem
else if(MWConfig_PrecastSkills.indexOf(MWS_BLOOD_GOLEM) > -1 && MWC_GetMinionCount(MWS_BLOOD_GOLEM) == 0)
{
if(NTC_CastSkill(MWS_BLOOD_GOLEM, NTC_HAND_RIGHT))
_castBoTwice = true;
}
// Fire Golem
else if(MWConfig_PrecastSkills.indexOf(MWS_FIRE_GOLEM) > -1 && MWC_GetMinionCount(MWS_FIRE_GOLEM) == 0)
{
if(NTC_CastSkill(MWS_FIRE_GOLEM, NTC_HAND_RIGHT))
_castBoTwice = true;
}
}
break;
case NTC_CHAR_CLASS_PALADIN:
// Holy Shield
if(MWConfig_PrecastSkills.indexOf(MWS_HOLY_SHIELD) > -1 && (refresh || !me.GetState(101)))
NTC_CastSkill(MWS_HOLY_SHIELD, NTC_HAND_RIGHT);
break;
case NTC_CHAR_CLASS_DRUID:
// Cyclone Armor
if(MWConfig_PrecastSkills.indexOf(MWS_CYCLONE_ARMO R) > -1 && (refresh || !me.GetState(151)))
NTC_CastSkill(MWS_CYCLONE_ARMOR, NTC_HAND_RIGHT);
// Hurricane
if(MWConfig_PrecastSkills.indexOf(MWS_HURRICANE) > -1 && (refresh || !me.GetState(144)))
NTC_CastSkill(MWS_HURRICANE, NTC_HAND_RIGHT);
// Oak Sage
if(MWConfig_PrecastSkills.indexOf(MWS_OAK_SAGE) > -1 && !me.GetState(149))
{
if(NTC_CastSkill(MWS_OAK_SAGE, NTC_HAND_RIGHT))
_castBoTwice = true;
}
// Heart of the Wolverine
else if(MWConfig_PrecastSkills.indexOf(MWS_HEART_OF_WOL VERINE) > -1 && !me.GetState(148))
{
if(NTC_CastSkill(MWS_HEART_OF_WOLVERINE, NTC_HAND_RIGHT))
_castBoTwice = true;
}
// Spirit of Barbs
else if(MWConfig_PrecastSkills.indexOf(MWS_SPIRIT_OF_BA RBS) > -1 && !me.GetState(147))
{
if(NTC_CastSkill(MWS_SPIRIT_OF_BARBS, NTC_HAND_RIGHT))
_castBoTwice = true;
}
if(refresh)
{
for(i = 0; i < 5; i++)
{
// Raven
if(MWConfig_PrecastSkills.indexOf(MWS_RAVEN) > -1 && MWC_GetMinionCount(MWS_RAVEN) < MWC_GetMaxMinionCount(MWS_RAVEN))
NTC_CastSkill(MWS_RAVEN, NTC_HAND_RIGHT);
else
break;
}
for(i = 0; i < 5; i++)
{
// Summon Grizzly
if(MWConfig_PrecastSkills.indexOf(MWS_SUMMON_GRIZZ LY) > -1 && MWC_GetMinionCount(MWS_SUMMON_GRIZZLY) == 0)
{
if(NTC_CastSkill(MWS_SUMMON_GRIZZLY, NTC_HAND_RIGHT))
_castBoTwice = true;
break;
}
// Dire Wolf
else if(MWConfig_PrecastSkills.indexOf(MWS_SUMMON_DIRE_ WOLF) > -1 && MWC_GetMinionCount(MWS_SUMMON_DIRE_WOLF) < MWC_GetMaxMinionCount(MWS_SUMMON_DIRE_WOLF))
{
if(NTC_CastSkill(MWS_SUMMON_DIRE_WOLF, NTC_HAND_RIGHT))
_castBoTwice = true;
}
// Spirit Wolf
else if(MWConfig_PrecastSkills.indexOf(MWS_SUMMON_SPIRI T_WOLF) > -1 && MWC_GetMinionCount(MWS_SUMMON_SPIRIT_WOLF) < MWC_GetMaxMinionCount(MWS_SUMMON_SPIRIT_WOLF))
{
if(NTC_CastSkill(MWS_SUMMON_SPIRIT_WOLF, NTC_HAND_RIGHT))
_castBoTwice = true;
}
else
break;
}
// Poison Creeper
if(MWConfig_PrecastSkills.indexOf(MWS_POISON_CREEP ER) > -1 && MWC_GetMinionCount(MWS_POISON_CREEPER) == 0)
{
if(NTC_CastSkill(MWS_POISON_CREEPER, NTC_HAND_RIGHT))
_castBoTwice = true;
}
// Carrion Vine
else if(MWConfig_PrecastSkills.indexOf(MWS_CARRION_VINE ) > -1 && MWC_GetMinionCount(MWS_CARRION_VINE) == 0)
{
if(NTC_CastSkill(MWS_CARRION_VINE, NTC_HAND_RIGHT))
_castBoTwice = true;
}
// Solar Creeper
else if(MWConfig_PrecastSkills.indexOf(MWS_SOLAR_CREEPE R) > -1 && MWC_GetMinionCount(MWS_SOLAR_CREEPER) == 0)
{
if(NTC_CastSkill(MWS_SOLAR_CREEPER, NTC_HAND_RIGHT))
_castBoTwice = true;
}
}
break;
case NTC_CHAR_CLASS_ASSASSIN:
// Burst of Speed
if(MWConfig_PrecastSkills.indexOf(MWS_BURST_OF_SPE ED) > -1 && (refresh || !me.GetState(157)))
NTC_CastSkill(MWS_BURST_OF_SPEED, NTC_HAND_RIGHT);
// Fade
else if(MWConfig_PrecastSkills.indexOf(MWS_FADE) > -1 && (refresh || !me.GetStat(181)))
NTC_CastSkill(MWS_FADE, NTC_HAND_RIGHT);
// Venom
else if(MWConfig_PrecastSkills.indexOf(MWS_VENOM) > -1 && refresh)
NTC_CastSkill(MWS_VENOM, NTC_HAND_RIGHT);
// Blade Shield
if(MWConfig_PrecastSkills.indexOf(MWS_BLADE_SHIELD ) > -1 && (refresh || !me.GetState(158)))
NTC_CastSkill(MWS_BLADE_SHIELD, NTC_HAND_RIGHT);
// Cloak of Shadows
if(MWConfig_PrecastSkills.indexOf(MWS_CLOAK_OF_SHA DOWS) > -1 && (refresh || !me.GetState(153)))
NTC_CastSkill(MWS_CLOAK_OF_SHADOWS, NTC_HAND_RIGHT);
if(refresh)
{
// Shadow Warrior
if(MWConfig_PrecastSkills.indexOf(MWS_SHADOW_WARRI OR) > -1 && MWC_GetMinionCount(MWS_SHADOW_WARRIOR) == 0)
{
if(NTC_CastSkill(MWS_SHADOW_WARRIOR, NTC_HAND_RIGHT))
_castBoTwice = true;
}
// Shadow Master
else if(MWConfig_PrecastSkills.indexOf(MWS_SHADOW_MASTE R) > -1 && MWC_GetMinionCount(MWS_SHADOW_MASTER) == 0)
{
if(NTC_CastSkill(MWS_SHADOW_MASTER, NTC_HAND_RIGHT))
_castBoTwice = true;
}
}
}
if(_castBoTwice)
{
if(me.classid == NTC_CHAR_CLASS_BARBARIAN || _MWP_BoSlot > -1)
{
NTC_SwapWeapons(_MWP_BoSlot);
NTC_CastSkill(MWS_BATTLE_COMMAND, NTC_HAND_RIGHT); // Battle Command
NTC_CastSkill(MWS_BATTLE_ORDERS, NTC_HAND_RIGHT); // Battle Orders
if(me.classid == NTC_CHAR_CLASS_BARBARIAN)
NTC_CastSkill(MWS_SHOUT, NTC_HAND_RIGHT); // Shout
}
}
if(_MWP_BoSlot > -1)
NTC_SwapWeapons(_MWP_AttackSlot);
else if(_initSlot > -1)
NTC_SwapWeapons(_initSlot);
return true;
}
function MWP_SetBoSlot()
{
_MWP_BoSlot = MWC_GetSlotID("precast");
if(_MWP_BoSlot == -1)
{
_MWP_BoSlot = me.weaponstab;
_MWP_AttackSlot = me.weaponstab;
}
else if(_MWP_BoSlot == 0)
_MWP_AttackSlot = 1;
else
_MWP_AttackSlot = 0;
}