Quote:
Originally Posted by The Angerfist
Danke, gibt dann wohl keine bessere Lösung. Hab schon alles bis auf Rare Ringe/Amus, Charms, Runen und Uniques rausgenommen.
|
Code:
function NTMain()
{
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
NTC_IncludeConfig("NTBot/char_configs");
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs");
NTA_Initialize();
Say("/f m in_new_game " + me.gamename);
if(!NTTM_CheckAct())
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_CheckAct()");
return;
}
NTTMGR_TownManager();
if(!NTTM_TownMove("waypoint"))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_TownMove()");
return;
}
if(!NTM_TakeWaypoint(107))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeWaypoint()");
return;
}
NTP_DoPrecast(true);
if(!NTM_MoveTo(108, 7797, 5560))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_MoveTo()");
return;
}
if(!NT_OpenSealsInt())
{
NTC_SendMsgToScript("NTBotGame.ntj", "NT_OpenSealsInt()");
return;
}
//NTM_MoveTo(me.areaid, 7767, 5238); //old
NTM_MoveTo(108, 7750, 5267); //testing
NTM_MakeTP();
Say("come diablo");
NTP_DoPrecast(true);
if(!NTM_MoveTo(me.areaid, 7792, 5292))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_MoveTo()");
return;
}
NTC_FindUnit(NTC_UNIT_MONSTER, 243, 100);
if(!NTA_KillMonster(243))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTA_KillMonster()");
return;
}
NTSI_PickItems();
NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
}
// Internal function
function NT_OpenSealsInt()
{
var i, _unit;
var _result;
_unit = GetPresetUnits(me.areaid, NTC_UNIT_OBJECT);
if(!_unit)
return false;
_result = false;
for(i = 0 ; i < _unit.length ; i++)
{
if(_unit[i].id == 396)
{
if(_unit[i].roomy*5 + _unit[i].y == 5275)
_result = NT_OpenVizierSealInt(1);
else
_result = NT_OpenVizierSealInt(2);
break;
}
}
if(!_result)
return false;
NTP_DoPrecast(false);
_result = false;
for(i = 0 ; i < _unit.length ; i++)
{
if(_unit[i].id == 394)
{
if(_unit[i].roomx*5 + _unit[i].x == 7773)
_result = NT_OpenDeSeisSealInt(1);
else
_result = NT_OpenDeSeisSealInt(2);
break;
}
}
if(!_result)
return false;
NTP_DoPrecast(false);
_result = false;
for(i = 0 ; i < _unit.length ; i++)
{
if(_unit[i].id == 392)
{
if(_unit[i].roomx*5 + _unit[i].x == 7893)
_result = NT_OpenVenomSealInt(1);
else
_result = NT_OpenVenomSealInt(2);
break;
}
}
return _result;
}
function NT_OpenVizierSealInt(type)
{
var i, n;
if(type == 1)
var _attackpos = [7694, 5309, 7709, 5311, 7718, 5290, 7717, 5274, 7699, 5292, 7707, 5272];
else
var _attackpos = [7704, 5312, 7718, 5307, 7717, 5287, 7716, 5275, 7698, 5286];
var _monstername = GetLocaleString(2851);
for(i = 0 ; i < _attackpos.length ; i += 2)
{
NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]);
NTA_ClearPosition(25, true, 2);
NTA_ClearPosition(25, true, 2);
}
NTM_MoveTo(me.areaid, _attackpos[_attackpos.length - 1], _attackpos[_attackpos.length]);
NTM_MakeTP();
NTA_ClearPosition(40, true, 2);
NTM_MoveTo(me.areaid, _attackpos[_attackpos.length - 1], _attackpos[_attackpos.length]);
NTA_ClearPosition(40, true, 2);
Say("come");
NTP_DoPrecast(true);
for(i = 0 ; i < 3 ; i++)
{
if(type == 1)
{
NT_OpenSealInt(395, 7654, 5310);
NT_OpenSealInt(396, 7659, 5277);
NTM_MoveTo(me.areaid, 7665, 5277);
}
else
{
NT_OpenSealInt(395, 7650, 5276);
NT_OpenSealInt(396, 7651, 5310);
}
for(n = 0 ; n < 10 ; n++)
{
NTC_Delay(200);
if(NTA_KillMonster(_monstername))
{
NTA_ClearPosition();
NTSI_PickItems();
NTM_MoveTo(108, 7709, 5271);
NTM_MakeTP();
Say("back");
while(!NT_IsPlayerOut())
NTC_Delay(250);
return NTM_MoveTo(me.areaid, 7750, 5280);
}
}
}
return false;
}
function NT_OpenDeSeisSealInt(type)
{
var i, n;
if(type == 1)
var _attackpos = [7814, 5230, 7794, 5233, 7774, 5231, 7775, 5211, 7774, 5195, 7794, 5193, 7811, 5193, 7818, 5230];
else
var _attackpos = [7781, 5191, 7793, 5191, 7776, 5191, 7776, 5174, 7776, 5152, 7796, 5155, 7808, 5154, 7816, 5186];
var _monstername = GetLocaleString(2852);
for(i = 0 ; i < _attackpos.length ; i += 2)
{
NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]);
NTA_ClearPosition(25, true, 2);
NTA_ClearPosition(25, true, 2);
}
NTM_MoveTo(me.areaid, _attackpos[_attackpos.length - 1], _attackpos[_attackpos.length]);
NTM_MakeTP();
NTA_ClearPosition(40, true, 2);
NTM_MoveTo(me.areaid, _attackpos[_attackpos.length - 1], _attackpos[_attackpos.length]);
NTA_ClearPosition(40, true, 2);
Say("come");
NTP_DoPrecast(true);
for(i = 0 ; i < 3 ; i++)
{
if(type == 1)
{
NT_OpenSealInt(394, 7769, 5158);
NTM_MoveTo(me.areaid, 7771, 5196);
}
else
{
NT_OpenSealInt(394, 7810, 5156);
NTM_MoveTo(me.areaid, 7770, 5169);
}
for(n = 0 ; n < 10 ; n++)
{
NTC_Delay(200);
if(NTA_KillMonster(_monstername))
{
NTA_ClearPosition(30);
if(type == 1)
NTM_MoveTo(108, 7816, 5230);
else
NTM_MoveTo(108, 7820, 5190);
NTM_MakeTP();
Say("back");
NTSI_PickItems();
while(!NT_IsPlayerOut())
NTC_Delay(250);
return NTM_MoveTo(me.areaid, 7800, 5255);
}
}
}
return false;
}
function NT_OpenVenomSealInt(type)
{
var i, n;
if(type == 1)
var _attackpos = [7892, 5307, 7891, 5293, 7909, 5292, 7921, 5289, 7885, 5320];
else
var _attackpos = [7870, 5290, 7870, 5303, 7871, 5314, 7880, 5301];
var _monstername = GetLocaleString(2853);
for(i = 0 ; i < _attackpos.length ; i += 2)
{
NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]);
NTA_ClearPosition(25, true, 2);
NTA_ClearPosition(25, true, 2);
}
NTM_MoveTo(me.areaid, _attackpos[_attackpos.length - 1], _attackpos[_attackpos.length]);
NTM_MakeTP();
NTA_ClearPosition(40, true, 2);
NTM_MoveTo(me.areaid, _attackpos[_attackpos.length - 1], _attackpos[_attackpos.length]);
NTA_ClearPosition(40, true, 2);
Say("come");
NTP_DoPrecast(true);
for(i = 0 ; i < 3 ; i++)
{
if(type == 1)
{
NT_OpenSealInt(392, 7895, 5318);
NTM_MoveTo(me.areaid, 7892, 5298);
}
{
NT_OpenSealInt(392, 7916, 5310);
NTM_MoveTo(me.areaid, 7937, 5305);
}
for(n = 0 ; n < 10 ; n++)
{
NTC_Delay(200);
if(NTA_KillMonster(_monstername))
{
NTA_ClearPosition(30);
if(NTC_PutSkill(124, NTC_HAND_RIGHT))
NTC_PingDelay(1000);
if(type == 1)
NTM_MoveTo(108, 7884, 5320);
else
NTM_MoveTo(108, 7882, 5306);
NTM_MakeTP();
Say("back");
NTSI_PickItems();
while(!NT_IsPlayerOut())
NTC_Delay(250);
if(type == 1)
NT_OpenSealInt(393, 7915, 5280);
else
NT_OpenSealInt(393, 7905, 5277);
return true;
}
}
}
return false;
}
function NT_OpenSealInt(classid, x, y)
{
var _seal;
NTM_MoveTo(me.areaid, x, y);
NTA_ClearPosition(25, true, 2);
_seal = NTC_FindUnit(NTC_UNIT_OBJECT, classid, 5);
if(!_seal)
return false;
if(_seal.mode > 0)
return true;
for(var i = 0 ; i < 4 ; i++)
{
if((i % 2) == 0)
{
if(GetDistance(me, _seal) > 2)
NTM_MoveTo(_seal.areaid, _seal.x+1, _seal.y);
NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, _seal);
}
NTC_Delay(500);
if(_seal.mode > 0)
return true;
}
return false;
}
function NT_IsPlayerOut(area) { //function by Thursty
var _player;
var _myPartyId;
_player = GetPlayerUnit();
_myPartyId = _player.partyid;
if(arguments.length < 1)
_area = me.areaid;
else
_area = area;
do {
if(_player.areaid == _area && _myPartyId == _player.partyid)
return false;
NTC_Delay(100);
} while(_player.GetNext());
return true;
}
Quote:
Originally Posted by Tanker_Tank
Hab nen Problem mit meinem Leader!! Das Problem wirkt sich halt Massiv auf die Speed Zeit der Runde aus..
Der Leader soll ein HOT Tp machen.. Er macht aber oftmals keins, sondern TPed throne und tötet dann erstmal paar Monster, macht dann ein Tp und schreibt alle Monster, die sich im Thron befunden haben!
Kann mir da jemand weiterhelfen, ist halt ziemlich nervig im Acht mann Game, da der LEader dann doch ziemlich viel Zeit brauch, die alleine zu töten^^
|
Code:
RegisterEvent(EVENT_SCRIPTMSG, HostileHandler);
var _hostilepause = false;
var poscount = 1;
var _trapsPreCasted;
function NTMain(){
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
NTC_IncludeConfig("NTBot/char_configs");
var i;
var _wave;
var _starttick;
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs");
NTA_Initialize();
if(!NTTM_CheckAct()){
NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_CheckAct()");
return;
}
NTTMGR_TownManager();
if(!NTTM_TownMove("waypoint")){
NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_TownMove()");
return;
}
if(!NTM_TakeWaypoint(129)){
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeWaypoint()");
return;
}
NTP_DoPrecast(true);
if(NTConfig_ClearWSK == 1){ // Chair add - checking what clear option has been selected. non specified = don't clear!
clearpath = true;
}
else if(NTConfig_ClearWSK == 2){
clearpath = 2;
}
else{
clearpath = false;
}
if(clearpath != 2){ //Chair add - first block handles anything but full level clears
if(!NTM_MoveToStair(me.areaid, 130,0,0,clearpath)){ // Chair add - the clearpath variable is adjusted by NTConfig_ClearWSK above
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_MoveToStair()");
return;
}
if(!NTM_TakeStair(130)){
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeStair()");
return;
}
if(!NTM_MoveToStair(me.areaid, 131,0,0,clearpath)){ // Chair add - the clearpath variable is adjusted by NTConfig_ClearWSK above
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_MoveToStair()");
return;
}
if(NTConfig_MakeHelpTPBeforeThrone && NTConfig_PublicMode){
NTM_MakeTP();
Say(Baal_WSlvl3tpMSG);
NTC_Delay(1000);
NTP_DoPrecast(true);
}
if(!NTM_TakeStair(130+i)){ // stair var i isn't being used yet so not sure why you have it here??? doesn't get used until line 147
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeStair()");
return;
}
}
else{ //Chair add - This entire block handles the option to clear the entire lvl 2 and 3, not only the path.
if(!NTA_ClearLevel()){
NTC_SendMsgToScript("NTBotGame.ntj", "NTA_ClearLevel()");
return;
}
if(NTConfig_OpenChestsInArea && NTU_DontOpenAreas())
OpenChestsInArea();
if(!NTM_MoveToPresetUnit(me.areaid, NTC_UNIT_TILE, 82)){
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_MoveToPresetUnit()");
return;
}
if(!NTM_TakeStair()){
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeStair()");
return;
}
if(NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe)){
NTTMGR_VisitTown();
}
NTP_DoPrecast();
if(!NTA_ClearLevel()){
NTC_SendMsgToScript("NTBotGame.ntj", "NTA_ClearLevel()");
return;
}
if(NTConfig_OpenChestsInArea && NTU_DontOpenAreas())
OpenChestsInArea();
if(!NTM_MoveToPresetUnit(me.areaid, NTC_UNIT_TILE, 82)){
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_MoveToPresetUnit()");
return;
}
if(!NTM_TakeStair()){
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeStair()");
return;
}
if(NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe)){
NTTMGR_VisitTown();
}
NTP_DoPrecast();
if(!NTA_ClearLevel()){
NTC_SendMsgToScript("NTBotGame.ntj", "NTA_ClearLevel()");
return;
}
if(NTConfig_OpenChestsInArea && NTU_DontOpenAreas())
OpenChestsInArea();
}
//End of things added by Chairman
if(!NTM_MoveTo(me.areaid, 15112, 5068)){
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_MoveTo()");
return;
}
// Adding Doll Check
if(NTConfig_CheckSoulKillers && NTC_FindUnit(NTC_UNIT_MONSTER, GetLocaleString(2904))) {
NTC_SendLogToOOG(NTC_LOG_COMMON, COLOR_1 + "Undead Soul Killers found.");
NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
return;
}
// End Doll Check
if(NTConfig_PublicMode){
if(NTConfig_MakeHotTP){
NTM_MoveTo(me.areaid, 15116, 5068);
NTC_PingDelay(1000);
NTM_MoveTo(me.areaid, 15116, 5068);
if(NTThrone_Announce)
_announceTMobs();
NTM_MakeTP();
Say(Baal_HotTp);
}
}
NT_ClearThroneInt();
if(NTConfig_PublicMode){
NTM_MoveTo(me.areaid, 15112, 5004, 1, true);
NTM_MakeTP();
Say(Baal_SafeTp);
}
while(1){
NTM_MoveTo(me.areaid, prewavespot[0], prewavespot[1]);
if(me.GetState(2))
NTC_PutSkill(109, NTC_HAND_RIGHT);
if(NTConfig_IdInField){
NT_FieldID();
}
for(i = 0 ; i < 6 ; i++){
_wave = NT_ThroneCheckInt();
if(_wave > 0)
break;
NTC_Delay(500);
}
_starttick = GetTickCount();
while(_wave == 0){
if(!NT_ThronePreAttackInt())
NTC_Delay(200);
if(GetTickCount()-_starttick > 17000){
NT_ClearThroneInt();
_starttick = GetTickCount();
}
_wave = NT_ThroneCheckInt();
}
switch(_wave){
case 1:
if(NTConfig_TeleEachWave){
NTM_TeleportTo(me.x+1, me.y+3);
}
NTA_ClearPosition(40, true, 2);
NTP_DoPrecast(false);
break;
case 2:
if(NTConfig_TeleEachWave){
NTM_TeleportTo(me.x+1, me.y+3);
}
if(NTConfig_HolyBoltBaal)
if (me.classid == NTC_CHAR_CLASS_PALADIN && NTConfig_AttackSkill[5] == 101)
achmel();
NTA_ClearPosition(40, true, 2);
if(NTConfig_PsnW2){
if(NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe)){
NTTMGR_VisitTown();
}
}
break;
case 3:
if(NTConfig_TeleEachWave){
NTM_TeleportTo(me.x+1, me.y+3);
}
NTA_ClearPosition(40, true, 2);
if(NTConfig_Wave3 > 0){
NT_CheckHydraInt();
}
else
NTC_Delay(3000);
break;
case 4:
if(NTConfig_TeleEachWave){
NTM_TeleportTo(me.x+1, me.y+3);
}
NTA_ClearPosition(40, true, 2);
break;
case 5:
if(NTConfig_TeleEachWave){
NTM_TeleportTo(me.x+1, me.y+3);
}
NTA_ClearPosition(40, true, 2);
break;
default:
if(NTConfig_TeleEachWave){
NTM_TeleportTo(me.x+1, me.y+3);
}
NTA_ClearPosition(40, true, 2);
break;
}
if(_wave != 0) // Need to force a one time cast/wave Assassin only
_trapsPreCasted = false;
if(_wave == 5)
break;
}
if(NTConfig_KillBaal){
var _portal;
if(NTConfig_PublicMode)
Say(Baal_KillBaalMessage);
if(NTConfig_TownBeforeBaal && NTT_CheckInventoryBeforeBoss()){
Delay(1000);
if(NTConfig_PublicMode) {
Say(Baal_FreeSpaceMessage);
}
NTTMGR_VisitTown();
}
if(NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe)){
NTTMGR_VisitTown();
}
NTM_MoveTo(me.areaid, 15092, 5010);
NTP_DoPrecast(false);
if(NTConfig_IdInField){
NT_FieldID();
}
/*
while(NTC_FindUnit(NTC_UNIT_MONSTER, 543))
NTC_Delay(500);
*/
for(var i = 0; i < 60; i++) {
Delay(500);
if(!NTC_FindUnit(NTC_UNIT_MONSTER, 543)) {
break;
}
if(i >= 58) {
Say("looks like baal is bugged");
if(Baal_BSayNextGame.length > 0 && NTConfig_PublicMode) {
Say(Baal_BSayNextGame + NTC_NextGameSayererer());
}
}
}
_portal = NTC_FindUnit(NTC_UNIT_OBJECT, 563, 1);
if(!_portal){
NTC_SendMsgToScript("NTBotGame.ntj", "NTC_FindUnit()");
return;
}
if(!NTM_UsePortal("Portal", 132, null, _portal)){
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_UsePortal()");
return;
}
NTM_MoveTo(me.areaid, 15138, 5916);
if(!NTA_KillMonster(544)){
if(NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe)){
NTTMGR_VisitTown();
}
NTC_SendMsgToScript("NTBotGame.ntj", "NTA_KillMonster()");
return;
}
NTSI_PickItems();
}
Delay(500);
if(NTConfig_PublicMode)
Say(Baal_NextGameMessage);
Delay(500)
if(Baal_BSayNextGame.length > 0 && NTConfig_PublicMode)
Say(Baal_BSayNextGame + NTC_NextGameSayererer());
Delay(1000);
NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
}
// Internal function
function NT_ClearThroneInt(){
var _attackpos = [15112, 5068, 15075, 5065, 15114, 5045, 15114, 5012, 15095, 5024, 15078, 5013, 15092, 5040];
for(var i = 0 ; i < _attackpos.length ; i += 2){
NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]);
NTA_ClearPosition(25, true, 2);
}
}
function NT_ThroneCheckInt(){
var _monster;
if(!NTC_FindUnit(NTC_UNIT_MONSTER, 543))
return 5;
_monster = NTC_FindUnit(NTC_UNIT_MONSTER);
if(_monster){
do{
if(NTA_IsValidMonster(_monster)){
if(_monster.classid == 23 || _monster.classid == 62)
return 1;
if(_monster.classid == 105 || _monster.classid == 381)
return 2;
if(_monster.classid == 557)
return 3;
if(_monster.classid == 558)
return 4;
if(_monster.classid == 571)
return 5;
}
} while(_monster.GetNext());
}
return 0;
}
function NT_ThronePreAttackInt(){
if(me.classid == NTC_CHAR_CLASS_SORCERESS){
if(NTConfig_PreWaveSpam > 0){
if(poscount == 1){
poscount = 2;
return NTC_CastSkill(NTConfig_PreWaveSpam, 0, KBLSpamPos[0], KBLSpamPos[1]);
}
else if(poscount == 2){
poscount = 3;
return NTC_CastSkill(NTConfig_PreWaveSpam, 0, KBLSpamPos[2], KBLSpamPos[3]);
}
else{
poscount = 1;
return NTC_CastSkill(NTConfig_PreWaveSpam, 0, KBLSpamPos[4], KBLSpamPos[5]);
}
}
}
else if(me.classid == NTC_CHAR_CLASS_DRUID){
if(NTConfig_AttackSkill[3] == 245){
return NTC_CastSkill(NTConfig_AttackSkill[3], 2, DruidPreAtt[0], DruidPreAtt[1]);
}
}
else if(me.classid == NTC_CHAR_CLASS_NECROMANCER){
if(NTConfig_PreWaveSpam > 0)
return NTC_CastSkill(NTConfig_PreWaveSpam, _NTA_SkillHand[NTConfig_PreWaveSpam], NecroPreAtt[0], NecroPreAtt[1]);
}
else if(me.classid == NTC_CHAR_CLASS_PALADIN){
if(NTConfig_AttackSkill[3] == 112){
NTC_PutSkill(NTConfig_AttackSkill[3], NTC_HAND_LEFT);
NTC_PutSkill(NTConfig_AttackSkill[4], NTC_HAND_RIGHT);
return NTC_CastSkill(NTConfig_AttackSkill[3], 2, 15092, 5028);
}
}
else if(me.classid == NTC_CHAR_CLASS_ASSASSIN){
var _attackPos = [15088,5023,15087,5032,15098,5022,15101,5034,15094,5029];
if(NTConfig_UseTraps && !_trapsPreCasted){
for(var i=0;i<5;i++) {
if(i == 0 || i == 2 || i == 3) // Added delays to prevent trap miscast
NTC_Delay(25);
if(NTConfig_TrapSet[i] > 0)
NTC_CastSkill(NTConfig_TrapSet[i], NTC_HAND_RIGHT, _attackPos[i*2],_attackPos[(i*2)+1]);
}
_trapsPreCasted = true;
}
if(NTConfig_AttackSkill[3] == 256)
if(me.GetSkillStatus(NTConfig_AttackSkill[3]) != 8)
return NTC_CastSkill(NTConfig_AttackSkill[3], 2, 15093, 5030);
}
return false;
}
function NT_CheckHydraInt(){
var _hydra1, _hydra2, _hydra3;
_hydra1 = NTC_FindUnit(NTC_UNIT_MONSTER, 351);
_hydra2 = NTC_FindUnit(NTC_UNIT_MONSTER, 352);
_hydra3 = NTC_FindUnit(NTC_UNIT_MONSTER, 353);
if((_hydra1 && _hydra1.GetStat(172) != 2 && _hydra1.GetState(105))
|| (_hydra2 && _hydra2.GetStat(172) != 2 && _hydra2.GetState(105))
|| (_hydra3 && _hydra3.GetStat(172) != 2 && _hydra3.GetState(105))){
if(NTConfig_Wave3 == 1)
NTM_MoveTo(me.areaid, 15112, 5004); // right side
else if(NTConfig_Wave3 == 2)
NTM_MoveTo(me.areaid, 15073, 5002); // left side
if(me.GetState(2))
NTC_PutSkill(109, NTC_HAND_RIGHT);
NTC_PingDelay(3000);
}
}
function achmel(){
var x = 0;
var _holdTargetHp = 0;
NTC_PutSkill(NTConfig_AttackSkill[6], NTC_HAND_RIGHT);
var _achmel = NTC_FindUnit(NTC_UNIT_MONSTER, GetLocaleString(21852));
while (_achmel && _achmel.hp > 0){
_holdTargetHp = _achmel.hp;
for(var i = 0; i < 5 ; i++){
NTC_CastSkill(NTConfig_AttackSkill[5], NTC_HAND_LEFT, _achmel);
}
if(_holdTargetHp <= _achmel.hp && NTConfig_WalkAround) {
x++;
if(x % 2 == 0)
NTM_WalkTo(me.x+10, me.y);
else
NTM_WalkTo(me.x-10, me.y);
}
}
var _company = NTC_FindUnit(NTC_UNIT_MONSTER, 105);
do{
while (_company != null && _company.hp >0 && !_company.GetState(53) && !_company.GetState(96)){
_holdTargetHp = _company.hp;
for(var i = 0; i < 5 ; i++){
NTC_CastSkill(NTConfig_AttackSkill[5], NTC_HAND_LEFT, _company);
}
if(_holdTargetHp <= _company.hp && NTConfig_WalkAround) {
x++;
if(x % 2 == 0)
NTM_WalkTo(me.x+10, me.y);
else
NTM_WalkTo(me.x-10, me.y);
}
}
} while (_company && _company.GetNext());
}
function HostileHandler(msg){
if(msg == "pause"){
if(_hostilepause){
Print(COLOR_3 + "Resuming...");
_hostilepause = false;
}
else{
Print(COLOR_1 + "Pausing to kill hostiles...");
_hostilepause = true;
ClickMap(NTC_CLICK_LUP, NTC_SHIFT_NONE, null);
ClickMap(NTC_CLICK_RUP, NTC_SHIFT_NONE, null);
while(_hostilepause)
NTC_Delay(250);
}
}
}
function _announceTMobs() {
var _throneMobs = [];
var _count = [];
_monster = NTC_FindUnit(NTC_UNIT_MONSTER);
if(_monster){
do {
if(_outofTBounds(_monster.x, _monster.y))
continue;
switch(_monster.classid) {
case 120:
case 641:
case 733: _updateTMobs("Burning Soul");
break;
case 215:
case 691: _updateTMobs("Undead Soul Killer");
break;
case 478:
case 637: _updateTMobs("Hell Witch");
break;
case 77:
case 598: _updateTMobs("Serpent Magus");
break;
case 133:
case 697:
case 731: _updateTMobs("Dark Lord");
break;
case 510: _updateTMobs("Blood Lord");
break;
case 310:
case 699:
case 700: _updateTMobs("Doom Knight");
break;
case 312:
case 701:
case 702:
case 713: _updateTMobs("Oblivion Knight");
break;
case 361:
case 687:
case 712: _updateTMobs("Pit Lord");
break;
case 104:
case 669:
case 670: _updateTMobs("Horadrim Ancient");
break;
case 33:
case 603: _updateTMobs("Assailant");
break;
default: _updateTMobs("Trash Mob");
break;
}
} while(_monster.GetNext())
}
_sayTMobs();
function _updateTMobs(Tmob) {
var _tIndex = _throneMobs.indexOf(Tmob);
if(_tIndex == -1) {
_throneMobs.push(Tmob);
_count.push(1);
}
else {
_count[_tIndex]++;
}
}
function _sayTMobs() {
for(var i = 0; i < _throneMobs.length; i++) {
Say(_count[i] + " " + (_count[i] == 1 ? _throneMobs[i] : (_throneMobs[i].charAt(_throneMobs[i].length - 1).toLowerCase() == "s" ? _throneMobs[i] + "'s" : (_throneMobs[i].indexOf("Witch") != -1 ? _throneMobs[i] + "es" : _throneMobs[i] + "s"))));
Delay(100);
}
}
function _outofTBounds(monX, monY) {
if((monX >= 15072 && monX <= 15118 && monY >= 5002 && monY <=5073) || (monX >= 15087 && monX <= 15104 && monY >= 5073 && monY <= 5094))
return false;
return true;
}
}
Versucht das mal, dürfte euch eventuell weiter helfen :)
@ TheAnger: Das mit dem passiv dia hab ich mir selber umgeändert, weil mein hdin noch ziemlich schlecht bei de seis und den giftfürsten war. Er ging jedes Mal town und meine Chars standen einfach nur da. Jetzt wird an der TP Posi nach dem clearen ein neues tp auf der stelle, wo es sein sollte, aufgemacht.
@ Tanker: Probier einfach mein ntbaal script aus, dürfte dich zufrieden stellen, hoffe ich zumindest :)