[Release] Muddy's D2NT

09/13/2010 00:40 JulesWinnfiled#256
alles getestet, endet immer damit das das script geladen wird und sofort auf stopped steht. keinerlei fehlermeldungen.

mh naja...
falls noch jemand eine lösung hat wär ich dafür dankbar, so wichtig ist es auch nicht, auch wenn ich denke damit die create game fails so ziemlich ausmerzen zu können, ist aber nur eine theorie.

ich pack jetzt einfach erstmal ein delay ans ende des coldworm script, am besten noch nach dem picken, dazu noch vor dem picken ein cleanposition damit alles ruhig ist, das sollte den selben effekt haben.

getestet, keine probleme
Code:
	//if(NTConfig_ClearPosition)
		NTA_ClearPosition(10);

	if(NTConfig_OpenChest)
	{
		var _chest;

		_chest = NTC_GetSpecialChest();

		if(_chest)
			NTC_OpenChest(_chest);
	}

	NTSI_PickItems();
	
	NTC_PingDelay(5000);

	NTC_SendMsgToScript("MWBotGame.ntj", "SCRIPT_END");
}
coldworm ist tod -> restliche mobs werden gekillt -> kiste -> looting -> 5s warten -> exit game

hab mich aber jetzt doch entschlossen ancient tunnels als letztes zu machen und dort einfach ein delay ans ende gesetzt

getestet, keine probleme
Code:
	if(!NTA_ClearLevel())
	{
		NTC_SendMsgToScript("MWBotGame.ntj", "NTA_ClearLevel()");
		return;
	}
	
	NTC_PingDelay(5000);
	
	NTC_SendMsgToScript("MWBotGame.ntj", "SCRIPT_END");
}
lg,
jules
09/13/2010 13:57 Zerker.jar#257
Ahoi.
Was doof ist:

[Only registered and activated users can see links. Click Here To Register...]

hab max. script länge auf 6 min gestellt (baalruns only) und wartezeit bei clonewalk auf infinite (0).

mit dem baalscript sollte es doch nix zutun haben , oder? clonewalk hat ja ein eigenes.

hats den bot wegen disconnect rausgehaun oder bin ich einfach zu doof?

finds jedenfalls doof.


Edit: Ich lauf gleich Amok, das gleiche heute nochmal....

[Only registered and activated users can see links. Click Here To Register...]

Was mich wundert: Es wurden keine Sojs verkauft. Clone is gewalkt , ohne dass es gecountet hat. im Manager steht : "Time passed since first Message: NaN mins NaN secs" (NaN = Not a Number) -> keine Counts?!?!

Edit2: Ich weiß wieso der beim 2. Walk restartet hat: Es war Game NR. 80 -> keychange.
Ich fass es einfach nicht , ich glaubs einfach nicht!!!!


Greetings
Zerker
09/13/2010 17:29 TierDrama#258
hi
leider bin ich grad am verzweifeln
hab mir muddys bot besorgt und bekomme folgende fehlermeldung
...\ntbot\mwbotgame.ntj (56) : ReferenceError: NT_loadconfig is not defined

so, ich hab 3 chars mit dem normalen aktuellsten d2nt the bluebird laufen. hab da die botgame.ntj verglichen und kann nix finden. bin aber auch nicht so der crack

dann nochmal den aktuellsten von muddy hier runtergeladen, nur wieder charname eingefügt und immer noch der fehler..google auch keine lösung.

will einen goldbarb laufen/telen^^ lassen...

lg
09/13/2010 18:52 ldevil#259
Wenn steht "NT_LoadConfig is not defined" heisst das soviel wie, dass das Config File nicht geladen werden konnte. Der Fehler wird kaum im MWBotGame.ntj sein, sondern in deinem Config File ;)
09/13/2010 19:09 TierDrama#260
hi jo aber die ist unverändert hier runtergeladen ;)
und als datei zeigt er ja in der fehlermeldung -> \ntbot\mwbotgame.ntj oder was heißt das sonst?
09/13/2010 21:10 ldevil#261
Das heisst nur, dass er im MWBotGame.ntj versucht die Config zu laden, es aber nicht klappt. Mehr nicht.

Versuch sonst Mal die Config zu kopieren und wie folgt zu benennen:

Code:
NTConfig_Barbarian_charname.ntl
Halt einfach die Klasse die der Bot spielen soll und danach der Name das Chars. Wenn du die dann auch noch richtig konfiguriert hast, sollte es schon klappen :)
09/13/2010 22:36 TierDrama#262
danke
anscheinend bin ich nach monaten des bottens einfach zu dumm das _ zwischen barbarian und charname nicht zu löschen...
09/14/2010 00:43 ldevil#263
Hab grad nen kleinen Bug bemerkt: Die Script-Laufzeit wird nicht angehalten wenn man auf DiaClone wartet ;) Sprich er skippt das Script an dem er gerade war danach einfach. Nicht wirklich tragisch aber dacht ich posts mal ^^
09/14/2010 03:45 JulesWinnfiled#264
mir sind noch zwei dinge aufgefallen als ich nochmals das diablo und das baal script probiert hab:

diablo
1. gegner werden unsichtbar für den bot, meine sorc fängt an das CS zu clearen und kloppt die ersten mobs um, dann geht sie weiter zu nächsten gruppe obwohl noch welche leben, die die noch leben werden für den bot quasi unsichtbar.
das hat zur folge das sie hinter sich eine immer größere menge an mobs ansammelt was teilweise recht kritisch werden kann.

2. der pfad zu de seis wird nicht gecleart, sie portet direkt zum siegel und öffnet es, danach kommt das was ich schon mal beschrieben hab, sie portet immer wieder direkt vor de seis füße, evadet, portet wieder vor de seis usw.

konkret sah das beim testrun so aus, ganzer gang voll mit giftfürsten und magiern, sie macht das siegel auf, de seis kommt mit fanatismus aura raus, BAM der komplette gang voll mit mobs inkl. fana aura -> chicken (nach dem sie 2-3 mal den port vor de seis füße gemacht hatte)

3. sorry wenn ich das so sage aber das diablo script ist einfach nicht so der bringer...
für einen pala dürfte das gut funzen, hab noch nie einen gespielt, denn sie versucht ja immer direkt auf die bossmobs drauf zu gehen (wenn sies wie bei allen anderen machen würde wären diaruns gar kein problem)
aber für eine sorc unmachbar

btw beim ersten siegel, großwesir des chaos heisst der mob glaub ich, funzt alles prima, sie hält genug abstand und hat ihn sehr schnell down.

baal
ich komme nicht über die 2. welle hinaus, von daher kann ich nicht mehr als bis da berichten, folgendes passiert nämlich immer:

2. welle kommt -> sie hat alles bis auf die skelette platt -> spiel startet neu (0x0000005 unhandled exception glaub ich, die fehlermeldung verschwindet nach 200ms oder so)
das passiert jedes einzelne mal exakt so, die skelette stehen noch da, sie bemerkt sie mal wieder nicht, was btw absolut tötlich ist, und portet wieder an die ausgangsposition, danach gibts dann sofort einen restart des spiels.
habs jetzt insg. 4x getestet, selbes ergebnis wie oben beschrieben, fehler -> spiel startet neu.

lg,
jules

P.S.: das xml log ist aber wichiger, scheiss auf dia und baal :)

P.S.S.: mir ist was positives aufgefallen und gleichzeitig was negatives daran, also : wenn sie einen fertigkeitsschein findet und nimmt, macht sie einen neuen precast mit allem drum und dran, das ist super! aber wenn sie danach einen fluch bekommt macht sie noch mal einen precast, was natürlich den bonus durch den schrein wieder weg macht, den sie intelligenter weise geholt hat.
09/14/2010 13:03 MtodaPL#265
Hallo.

Ich hoffe diese Fragen wurden nicht schon beantwortet oder dergleichen, habe mich sehr bemüht via google und Foreninterner Suche Lösungen zu finden.

1) Kann ich einstellen, dass meine Sorc nachdem sie Static gecastet hat wieder zurück auf ihre Ausgangsposi geht.

Bsp: Ich hab in meinem Diablo Skript die Sorc soweit bekommen, dass sie sobald Dia erscheint in die Mitte teleportiert und dann ein stück nach unten läuft damit der merc dran steht. Sobald sie aber Static einsetzt (was ich gerne benutze) teleportier sie sich hin und bleibt dann mit dem Merc mitten im Blitzstrahl stehen.

2) Bei vielen Mobgruppen teleportiert sich die Sorc mitten in die Gegner rein, ich hatte zwar schonmal einen Thread gefunden in dem das behandelt wurde aber entweder klappte die lösung nicht oder ich find ihn nicht mehr (zu viele Threads in zu kurzer Zeit :D)
09/14/2010 13:28 fred9x9#266
Quote:
Originally Posted by JulesWinnfiled View Post
mir sind noch zwei dinge aufgefallen als ich nochmals das diablo und das baal script probiert hab:

diablo
1. gegner werden unsichtbar für den bot, meine sorc fängt an das CS zu clearen und kloppt die ersten mobs um, dann geht sie weiter zu nächsten gruppe obwohl noch welche leben, die die noch leben werden für den bot quasi unsichtbar.
das hat zur folge das sie hinter sich eine immer größere menge an mobs ansammelt was teilweise recht kritisch werden kann.

2. der pfad zu de seis wird nicht gecleart, sie portet direkt zum siegel und öffnet es, danach kommt das was ich schon mal beschrieben hab, sie portet immer wieder direkt vor de seis füße, evadet, portet wieder vor de seis usw.

konkret sah das beim testrun so aus, ganzer gang voll mit giftfürsten und magiern, sie macht das siegel auf, de seis kommt mit fanatismus aura raus, BAM der komplette gang voll mit mobs inkl. fana aura -> chicken (nach dem sie 2-3 mal den port vor de seis füße gemacht hatte)

3. sorry wenn ich das so sage aber das diablo script ist einfach nicht so der bringer...
für einen pala dürfte das gut funzen, hab noch nie einen gespielt, denn sie versucht ja immer direkt auf die bossmobs drauf zu gehen (wenn sies wie bei allen anderen machen würde wären diaruns gar kein problem)
aber für eine sorc unmachbar

btw beim ersten siegel, großwesir des chaos heisst der mob glaub ich, funzt alles prima, sie hält genug abstand und hat ihn sehr schnell down.

baal
ich komme nicht über die 2. welle hinaus, von daher kann ich nicht mehr als bis da berichten, folgendes passiert nämlich immer:

2. welle kommt -> sie hat alles bis auf die skelette platt -> spiel startet neu (0x0000005 unhandled exception glaub ich, die fehlermeldung verschwindet nach 200ms oder so)
das passiert jedes einzelne mal exakt so, die skelette stehen noch da, sie bemerkt sie mal wieder nicht, was btw absolut tötlich ist, und portet wieder an die ausgangsposition, danach gibts dann sofort einen restart des spiels.
habs jetzt insg. 4x getestet, selbes ergebnis wie oben beschrieben, fehler -> spiel startet neu.

lg,
jules

P.S.: das xml log ist aber wichiger, scheiss auf dia und baal :)

P.S.S.: mir ist was positives aufgefallen und gleichzeitig was negatives daran, also : wenn sie einen fertigkeitsschein findet und nimmt, macht sie einen neuen precast mit allem drum und dran, das ist super! aber wenn sie danach einen fluch bekommt macht sie noch mal einen precast, was natürlich den bonus durch den schrein wieder weg macht, den sie intelligenter weise geholt hat.
Hallo Jules,
zu 1. kann ich was sagen. Das DiabloScript ist so wie ich es sehe nur für gut gerüstete Chars so spielbar, richtig. Aaaaber.......
wenn du vor dem Öffnen des letzten, im Falle deSeis des einzigen Seals, einige sinnvolle
NTM_MoveTo(me.areaid, xxx, xxx); und
NTA_ClearPosition(0);
setzt, wird es auch für meine Classic Soso gut spielbar. Bei mir bleiben keine "Reste" übrig.
Ignoriert werden von Muddys Routine nur total Immune, wie im OriginalScript auch und leider aber auch deSeis und Venom, wenn sie c/f immun sind.
Meine Soso kann orb und fb und leidlich Gewitter, nova und static ofc.
Aber auch wenn ich Muddys
NTConfig_AttackSkill[5] = 47;
NTConfig_AttackSkill[6] = 42;
NTConfig_AttackSkill[7] = 53;
[CheckImmunitySkills [x, x] benutze,
sie telet, wie bei dir, zu deSeis und macht nix wenn er c/f immun ist.
Liegt wohl an der Routine "Monster_attackable". Aber da trau ich mich nicht ran. Muss eh bei jedem neuen Release zig Änderungen vornehmen.
LG
09/14/2010 15:43 ldevil#267
Hm, evtl. müsste der [5]er ein Lightspell sein? ... Dann würd er wohl aber einfach Frost + Light Immune nimmer angreifen ;)

Aber hast du sonst Mal dein Dia Script? Ich bin extrem faul, ich weiss, aber wenn du's ja eh schon gemacht hast ^^

edit: Aber irgendwie hab ich das Gefühl, das mit den Immunen war in der letzten Version noch besser :)
09/14/2010 17:31 Muddy Waters#268
Ich muss mich erstmal entschuldigen, dass ich mich hier so wenig beteilige.
Aber momentan siehts bei mir zeitlich ziemlich mau aus... :(

Und da ich auf der Arbeit auch schon den ganzen Tag programmiere, widme ich mich nach Feierabend lieber meiner Gitarre, als der D2NT Programmierung. :rolleyes:

Mal schauen ob ich die Tage mal wieder Lust habe, dann werde ich mal ein paar der hier genannten Änderungen umsetzen, allen voran ldevils AutoMule Implementierung, für dessen schöne PMs ich mich an dieser Stelle nochmal herzlich bedanken möchte! :)

Lg
Muddy
09/14/2010 17:45 fred9x9#269
Quote:
Originally Posted by ldevil View Post
Hm, evtl. müsste der [5]er ein Lightspell sein? ... Dann würd er wohl aber einfach Frost + Light Immune nimmer angreifen ;)

Aber hast du sonst Mal dein Dia Script? Ich bin extrem faul, ich weiss, aber wenn du's ja eh schon gemacht hast ^^

edit: Aber irgendwie hab ich das Gefühl, das mit den Immunen war in der letzten Version noch besser :)
ja, so dachte ich auch, aber egal was ich in 5 mache, es wird nix.
Anbei mal "mein" geändertes Diascript.
Wie gesagt, wenn deSeis oder Venom c/f resist sind, dann gehts halt net weiter. Game end. Einiges ist noch zu verbessern, hab zu viel des Guten gemacht :-) . Einige pos. sind wohl zuviel.
Meine Soso (Classic) fängt bei Star an, cleart diesen in 4 Positionen und wendet sich dann langsam aber recht problemlos zu Vizier, öffnet und killt. Von dort langsam ab zum Seal von deSeis. Öffnet und telet in die Nähe der erwarteten Positionen der Mobs und killt diese. Ist deSeis nicht f/c immun, fällt er mit und sie geht langsam zu Venom. Dort gilt das Gleiche.
Chicken bei Star clearen ~15 %
Chicken zu Vizier seal ~ 5 %
Chicken Vizier ~ 0 %
Chicken zu de Seis seal ~ 8 %
Chicken deSeis ~ 10 %, manchmal sind die doch wo anderst :-)
wenn deSeis c/f immun, game end
Chicken zu Venom ~ 5 %
Chicken Venom ~ 50 % grrr
wenn c/f immun, halt game end
Erfolg bei Baal ~ 7 %
Leider, aber nur zu 10 %, findet sie nach Vizier, deSeis oder Venom, keine Fortsetzung. D.h. Siegel offen, Boss tot und die dummt rum. Macht sie aber auch im Originalscript.
Also versuchs mal und berichtige meine Statistik aus so 250 games :-)

/**
* This file was modified by [Only registered and activated users can see links. Click Here To Register...]
* Check the programming section for updates and further scripts
* Last Update: 09/05/2010
* Modyfied for Classic Soso by [Only registered and activated users can see links. Click Here To Register...]
* 09/13/2010
*/
function NTMain()
{
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
NTC_IncludeConfig("NTBot/char_configs");
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs");
NTA_Initialize();
if(!NTTM_CheckAct())
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTTM_CheckAct()");
return;
}
NTTMGR_TownManager();
if(!NTTM_TownMove("waypoint"))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTTM_TownMove()");
return;
}
if(!NTM_TakeWaypoint(107))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_TakeWaypoint()");
return;
}
NTP_DoPrecast(true);
if(!NTM_MoveTo(108, 7797, 5560))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_MoveTo()");
return;
}
if(!MWConfig_StartAtStar)
{
var _attackpos = [7792, 5525, 7793, 5501, 7773, 5495, 7768, 5480, 7767, 5458, 7770, 5438, 7774, 5417, 7767, 5391, 7768, 5369, 7769, 5345, 7770, 5320, 7780, 5308];
if(!NTM_MoveTo(me.areaid, 7790, 5544))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_MoveTo()");
return;
}
if(NTConfig_PublicMode)
{
var _monsterCount = MWA_FindNearbyMonsters(20);
if(_monsterCount)
{
if(_monsterCount < 3)
Say("TP cold, " + _monsterCount + " Monsters close!");
else if(_monsterCount < 6)
Say("TP warm, " + _monsterCount + " Monsters close!");
else
Say("TP hot, " + _monsterCount + " Monsters close!");
}
else
Say("TP up, no Monsters close!");
NTM_MakeTP();
}
NTA_ClearPosition(25, false, 2);
NTM_MoveTo(me.areaid, 7790, 5544);
NTC_PingDelay(1000);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7790, 5544);
if(NTConfig_PublicMode)
{
if(MWA_FindNearbyMonsters(15) < 2)
Say("TP should be safe now!");
else
Say("TP still might be warm!");
}
for(var i = 0 ; i < _attackpos.length ; i += 2)
{
NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1], 3, true);
NTA_ClearPosition(35, true, 2);
}
}
NTM_MoveTo(me.areaid, 7792, 5292);
if(NTConfig_PublicMode)
{
if(MWConfig_StartAtStar)
{
var _monsterCount = MWA_FindNearbyMonsters(25);
if(_monsterCount)
{
if(_monsterCount < 3)
Say("TP cold, cleaning Star, then Vizier, " + _monsterCount + " Monsters close!");
else if(_monsterCount < 6)
Say("TP warm, cleaning Star, then Vizier, " + _monsterCount + " Monsters close!");
else
Say("TP hot, cleaning Star, then Vizier, " + _monsterCount + " Monsters close!");
}
else
Say("TP up, no Monsters close!");
}
Say("Cleaning Star, then Vizier!");
Say("Let me open Seals !");
NTM_MakeTP();
}
NTC_Delay(1000);
NTP_DoPrecast(true);
NTA_ClearPosition(30);
NTM_MoveTo(me.areaid, 7792, 5292, 3, true);
if(!NT_OpenSealsInt())
{
NTC_SendMsgToScript("MWBotGame.ntj", "NT_OpenSealsInt()");
return;
}
if(NTConfig_PublicMode)
Say("Killing Diablo");
if(!NTM_MoveTo(me.areaid, 7792, 5292))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_MoveTo()");
return;
}
NTP_DoPrecast(true);
if(me.classid == NTC_CHAR_CLASS_PALADIN && !MWC_CheckForExpShrineUsers())
NTC_PutSkill(109, NTC_HAND_RIGHT);
if(!NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTTMGR_CheckSafe()");
return;
}
NTC_FindUnit(NTC_UNIT_MONSTER, 243, 100);
if(!NTA_KillMonster(243))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTA_KillMonster()");
return;
}
NTSI_PickItems();
if(NTConfig_PublicMode)
Say("Next game");
NTC_SendMsgToScript("MWBotGame.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;
NTM_MoveTo(me.areaid, 7792, 5292, 3, true);
NTA_ClearPosition(40);
NTP_DoPrecast();
_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;
NTM_MoveTo(me.areaid, 7792, 5292, 3, true);
NTA_ClearPosition(40);
NTP_DoPrecast(true);
_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;
var _attackpos = [7793, 5267, 7815, 5288, 7798, 5314, 7770, 5288, 7750, 5308, 7730, 5300, 7720, 5306, 7700, 5300, 7680, 5300, 7670, 5300, 7660, 5315, 7660, 5292]; //ff
var _monstername = GetLocaleString(2851);
for(i = 0 ; i < _attackpos.length ; i += 2)
{
NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1], 3, true);
NTA_ClearPosition(30, true, 2);
NTSI_PickItems(); //ff
}
for(i = 0 ; i < 3 ; i++)
{
if(type == 1) //ff river
{
NT_OpenSealInt(395, 7654, 5310);
NT_OpenSealInt(396, 7659, 5277);
NTM_MoveTo(me.areaid, 7665, 5277);
NTA_ClearPosition(30, true, 2); //ff
NTSI_PickItems(); //ff
}
else //ff long
NTM_MoveTo(me.areaid, 7660, 5310); //ff
NTA_ClearPosition(30, true, 2); //ff
NTSI_PickItems(); //ff
{
NT_OpenSealInt(395, 7650, 5276);
NT_OpenSealInt(396, 7651, 5310);
NTA_ClearPosition(); //ff
NTSI_PickItems(); //ff
}
for(n = 0 ; n < 10 ; n++)
{
NTC_Delay(200);
if(NTA_KillMonster(_monstername))
{
NTA_ClearPosition();
NTSI_PickItems();
return NTM_MoveTo(me.areaid, 7750, 5280);
}
}
}
return false;
}
function NT_OpenDeSeisSealInt(type)
{
Say("DeSeis now, let me open Seal!"); //ff
var i, n;
var _attackpos = [7781, 5301, 7780, 5255, 7786, 5253, 7795, 5253, 7803, 5253, 7814, 5253, 7788, 5194]; //ff
var _monstername = GetLocaleString(2852);
var _deSeis, _dist;
switch(me.classid)
{
case NTC_CHAR_CLASS_BARBARIAN:
case NTC_CHAR_CLASS_PALADIN:
_dist = 8;
break;
case NTC_CHAR_CLASS_DRUID:
_dist = 10;
break;
default:
_dist = 12;
}
for(i = 0 ; i < _attackpos.length ; i += 2)
{
NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]);
NTA_ClearPosition(25, true, 2);
NTSI_PickItems(); //ff
}
for(i = 0 ; i < 3 ; i++)
{
if(type == 1) //ff long
{
NTM_MoveTo(me.areaid, 7817, 5170); //ff
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
NTM_MoveTo(me.areaid, 7817, 5160); //ff
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
NTM_MoveTo(me.areaid, 7817, 5156); //ff
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
NTM_MoveTo(me.areaid, 7790, 5158); //ff
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
NTTMGR_CheckSafe(NTConfig_CheckSelfSafe); //ff
NT_OpenSealInt(394, 7769, 5158);
NTM_MoveTo(me.areaid, 7790, 5194); //ff
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
NTM_MoveTo(me.areaid, 7771, 5196);
NTA_ClearPosition(30);
NTSI_PickItems(); //ff
//ff NTM_MoveTo(me.areaid, 7771, 5196);
_deSeis = NTC_FindUnit(NTC_UNIT_MONSTER, _monstername, 5);
if(_deSeis)
{ //ff
NTM_MoveTo(me.areaid, 7776, _deSeis.y + _dist);
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
NTM_MoveTo(me.areaid, 7776, 5195); //ff
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
} //ff
}
else //ff short
{
NTM_MoveTo(me.areaid, 7773, 5189); //ff
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
NTM_MoveTo(me.areaid, 7773, 5153); //ff
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
NT_OpenSealInt(394, 7810, 5156);
NTM_MoveTo(me.areaid, 7790, 5156); //ff
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
NTM_MoveTo(me.areaid, 7780, 5156); //ff
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
NTM_MoveTo(me.areaid, 7790, 5193); //ff
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
// ff NTM_MoveTo(me.areaid, 7770, 5169);
_deSeis = NTC_FindUnit(NTC_UNIT_MONSTER, _monstername, 5);
if(_deSeis && _deSeis.y + _dist <= 5201)
{ //ff
NTM_MoveTo(me.areaid, 7776, _deSeis.y + _dist);
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
} // ff
else
{ // ff
NTM_MoveTo(me.areaid, 7776, 5195);
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
} // ff
}
for(n = 0 ; n < 10 ; n++)
{
NTC_Delay(200);
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
if(NTA_KillMonster(_monstername))
{
NTA_ClearPosition(30);
NTSI_PickItems();
return NTM_MoveTo(me.areaid, 7800, 5255);
}
}
}
return false;
}
function NT_OpenVenomSealInt(type)
{
Say("Venom now, let me open Seals!")
var i, n;
var _attackpos = [7817, 5274, 7825, 5280, 7835, 5292, 7835, 5283, 7855, 5288];
var _monstername = GetLocaleString(2853);
NTP_DoPrecast(true); //ff
for(i = 0 ; i < _attackpos.length ; i += 2)
{
NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1], 3, true);
NTA_ClearPosition(15, true, 2); //ff war 30, true, 2
NTSI_PickItems(); //ff
}
for(i = 0 ; i < 3 ; i++)
{
if(type == 1) //ff short
{
NTM_MoveTo(me.areaid, 7875, 5300); //ff
NTA_ClearPosition(); //ff
NTM_MoveTo(me.areaid, 7895, 5300); //ff
NTA_ClearPosition(); //ff
NTM_MoveTo(me.areaid, 7910, 5300); //ff
NTA_ClearPosition(); //ff
NTM_MoveTo(me.areaid, 7920, 5300); //ff
NTA_ClearPosition(); //ff
NTSI_PickItems(30);
NT_OpenSealInt(393, 7915, 5280);
NT_OpenSealInt(392, 7895, 5318);
NTM_MoveTo(me.areaid, 7880, 5300); //ff
NTA_ClearPosition(); //ff
NTM_MoveTo(me.areaid, 7890, 5300); //ff
NTA_ClearPosition(); //ff
NTM_MoveTo(me.areaid, 7895, 5300); //ff
NTA_ClearPosition(); //ff
NTM_MoveTo(me.areaid, 7900, 5300); //ff
NTA_ClearPosition(); //ff
NTM_MoveTo(me.areaid, 7905, 5300); //ff
NTA_ClearPosition(30); //ff
NTSI_PickItems(30);
//ff NTM_MoveTo(me.areaid, 7892, 5298);
}
else //ff long
{
NTM_MoveTo(me.areaid, 7875, 5277); //ff
NTA_ClearPosition(); //ff
NTM_MoveTo(me.areaid, 7895, 5277); //ff
NTA_ClearPosition(); //ff
NTM_MoveTo(me.areaid, 7910, 5277); //ff
NTA_ClearPosition(); //ff
NTSI_PickItems(30);
NT_OpenSealInt(393, 7905, 5277);
NTA_ClearPosition(); //ff
NTM_MoveTo(me.areaid, 7931, 5272); //ff
NTA_ClearPosition(); //ff
NTM_MoveTo(me.areaid, 7934, 5285); //ff
NTA_ClearPosition(); //ff
NTM_MoveTo(me.areaid, 7935, 5305); //ff
NTA_ClearPosition(); //ff
NTM_MoveTo(me.areaid, 7931, 5310); //ff
NTA_ClearPosition(); //ff
NTM_MoveTo(me.areaid, 7921, 5310); //ff
NTA_ClearPosition(); //ff
NTSI_PickItems(30);
NT_OpenSealInt(392, 7916, 5310);
NTM_MoveTo(me.areaid, 7937, 5310); //ff
NTA_ClearPosition(30); //ff
NTM_MoveTo(me.areaid, 7937, 5300); //ff
NTA_ClearPosition(30); //ff
NTM_MoveTo(me.areaid, 7937, 5290); //ff
NTA_ClearPosition(30); //ff
NTM_MoveTo(me.areaid, 7937, 5280); //ff
NTA_ClearPosition(30); //ff
NTM_MoveTo(me.areaid, 7880, 5275); //ff
NTA_ClearPosition(30); //ff
NTSI_PickItems(30);

So, das ist "meine" NTDiablo.ntj
Wenn ich Nichts vergessen habe sind //ff von mir geändert, bzw. neu eingefügt. Verbesserungen erwünsht. :handsdown:
LG
09/14/2010 18:28 fred9x9#270
Sorry, wurde wohl abgeschnitten weil zu lang. Also hier der Rest.


Quote:
//ff NTM_MoveTo(me.areaid, 7937, 5305);
}

for(n = 0 ; n < 10 ; n++)
{
NTC_Delay(200);

NTA_ClearPosition(30, true, 2); //ff
NTSI_PickItems(); //ff

if(NTA_KillMonster(_monstername))
{

NTA_ClearPosition(30, true, 2); //ff
NTSI_PickItems();

if(NTC_PutSkill(124, NTC_HAND_RIGHT))
NTC_PingDelay(1000);
NTA_ClearPosition(30, true, 2); //ff
return true;
}
}
}

return false;
}

function NT_OpenSealInt(classid, x, y)
{
var _seal;

NTM_MoveTo(me.areaid, x, y);

NTA_ClearPosition(30, true, 2);

NTSI_PickItems(); //ff

_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+1);

NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, _seal);
}

NTC_Delay(500);

if(_seal.mode > 0)
return true;
}

return false;
}