[Release] Muddy's D2NT

05/10/2011 17:49 -Nemesis1337-#1831
Hab die Say Funktion beim Sellen mal eingebaut, klappt wunderbar!! :) Vielen Dank!
05/10/2011 20:09 19Miami#1832
Quote:
Originally Posted by Muddy_Waters View Post
Finde ich etwas unsauber, versuch es mal so:
Code:
/**
*	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:50 10.05.2011
*/

var _NTNihlathak_Locations = new Array(8, 4);

_NTNihlathak_Locations[0] = [12519, 5203, 12522, 5227]; // Top Left
_NTNihlathak_Locations[1] = [12704, 5019, 12692, 5022]; // Top Right
_NTNihlathak_Locations[2] = [12705, 5391, 12723, 5413]; // Bottom Right
_NTNihlathak_Locations[3] = [12889, 5206, 12898, 5228]; // Bottom Left
_NTNihlathak_Locations[4] = [12519, 5203, 12522, 5196]; // Top Left
_NTNihlathak_Locations[5] = [12704, 5019, 12692, 5413]; // Top Right
_NTNihlathak_Locations[6] = [12705, 5391, 12727, 5022]; // Bottom Right
_NTNihlathak_Locations[7] = [12889, 5206, 12898, 5192]; // Bottom Left

const _NTN_DAMAGE_TYPE = NTA_DAMAGE_LIGHTNING;
const _NTN_MAX_RESISTANCE = 99;

function NTMain()
{
	Include("libs/common/NTCommon.ntl");
	NTC_IncludeLibs();
	NTC_IncludeConfig("NTBot/char_configs");

	NT_LoadConfig();
	NTSI_LoadNIPFiles("NTBot/item_configs");

	MWC_Initialize();
	
	var _location, _nihla;

	if(!NTTM_CheckAct(me.act, true))
	{
		NTC_SendMsgToScript("MWBotGame.ntj", NTTM_CheckAct, 31, me.act, true);
		return;
	}

	NTTMGR_TownManager();

	if(!NTTM_TownMove("waypoint"))
	{
		NTC_SendMsgToScript("MWBotGame.ntj", NTTM_TownMove, 39, "waypoint");
		return;
	}

	if(!NTM_TakeWaypoint(123))
	{
		NTC_SendMsgToScript("MWBotGame.ntj", NTM_TakeWaypoint, 45, 123);
		return;
	}

	NTP_DoPrecast(true);

	if(!NTM_MoveToStair(me.areaid, 124))
	{
		NTC_SendMsgToScript("MWBotGame.ntj", NTM_MoveToStair, 53, me.areaid, 124);
		return;
	}

	if(!NTM_TakeStair(124))
	{
		NTC_SendMsgToScript("MWBotGame.ntj", NTM_TakeStair, 59, 124);
		return;
	}
		
	if(!MWConfig_SkipOnTombVipers || !NTC_FindUnit(NTC_UNIT_MONSTER, 597))
	{
		_location = NT_FindNihlathakInt();

		if(_location == -1)
		{
			NTC_SendMsgToScript("MWBotGame.ntj", NT_FindNihlathakInt, 67);
			return;
		}

		if(!NTM_MoveTo(me.areaid, _NTNihlathak_Locations[_location][2], _NTNihlathak_Locations[_location][3]))
		{
			NTC_SendMsgToScript("MWBotGame.ntj", NTM_MoveTo, 75, me.areaid, _NTNihlathak_Locations[_location][2], _NTNihlathak_Locations[_location][3]);
			return;
		}

		if(!NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe))
		{
			NTC_SendMsgToScript("MWBotGame.ntj", NTTMGR_CheckSafe, 81, NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe);
			return;
		}
		
		_nihla = NTC_FindUnit(NTC_UNIT_MONSTER, 526, 3);
		
		if(_nihla && NTA_GetResistance(_nihla, _NTN_DAMAGE_TYPE) <= _NTN_MAX_RESISTANCE)
		{
			Print("ÿc1Skipping Nihlatak due to immunity...");
			_nihla = null;
		}

		if(_nihla && NTA_KillMonster(526))
		{
			if(NTConfig_ClearPosition)
				NTA_ClearPosition();
		
			NTSI_PickItems();
		}
		else if(!NTConfig_PindleskinExtension)
		{
			NTC_SendMsgToScript("MWBotGame.ntj", NTA_KillMonster, 94, 526);
			return;
		}
	}
	else
		Print("ÿc1Tomb Vipers detected - Skipping Nihlatak...");
	
	if(NTConfig_PindleskinExtension)
	{
		for(var i = 0; i < 2; i++)
		{
			if(!NTM_MoveToStair(me.areaid, 123 - i))
			{
				NTC_SendMsgToScript("MWBotGame.ntj", NTM_MoveToStair, 107, me.areaid, 123 - i);
				return;
			}

			if(!NTM_TakeStair(123 - i))
			{
				NTC_SendMsgToScript("MWBotGame.ntj", NTM_TakeStair, 113, 123 - i);
				return;
			}
		}

		if(!NTM_MoveToStair(me.areaid, 121))
		{
			NTC_SendMsgToScript("MWBotGame.ntj", NTM_MoveToStair, 120, me.areaid, 121);
			return;
		}

		if(!NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe))
		{
			NTC_SendMsgToScript("MWBotGame.ntj", NTTMGR_CheckSafe, 126, NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe);
			return;
		}

		NTP_DoPrecast(false);

		if(!NTM_TakeStair(121))
		{
			NTC_SendMsgToScript("MWBotGame.ntj", NTM_TakeStair, 134, 121);
			return;
		}

		if(!NTM_MoveTo(me.areaid, 10061, 13234))
		{
			NTC_SendMsgToScript("MWBotGame.ntj", NTM_MoveTo, 140, me.areaid, 10061, 13234);
			return;
		}

		if(!NTA_KillMonster(GetLocaleString(22497)))
		{
			NTC_SendMsgToScript("MWBotGame.ntj", NTA_KillMonster, 146, GetLocaleString(22497));
			return;
		}

		if(NTConfig_ClearPosition)
			NTA_ClearPosition();

		NTSI_PickItems();
		
		MWL_FindItem();
	}

	NTC_SendMsgToScript("MWBotGame.ntj", "SCRIPT_END");
}

// Internal function
function NT_FindNihlathakInt()
{
	var i, x, y;
	var _nihlathak;
	var _mindist = 999999;
	var _currdist;
	var _location = -1;

	_nihlathak = GetPresetUnits(me.areaid, NTC_UNIT_OBJECT, 462);

	if(!_nihlathak || _nihlathak.length < 1)
		return _location;

	x = _nihlathak[0].roomx*5 + _nihlathak[0].x;
	y = _nihlathak[0].roomy*5 + _nihlathak[0].y;

	for(i = 0 ; i < 8 ; i++)
	{
		_currdist = GetDistance(_NTNihlathak_Locations[i][0], _NTNihlathak_Locations[i][1], x, y);

		if(_currdist < _mindist)
		{
			_mindist = _currdist;
			_location = i;
		}
	}

	return _location;
}
LG
Muddy

Script wo einfügen?
05/10/2011 20:22 seltn#1833
Quote:
Originally Posted by 19Miami View Post
Script wo einfügen?
Hmmm... Welcher Name kommt extrem oft vor?
Ah genau! Nihlatak!
->scripts/ntbot/bots/NTNihlatak.ntj

Lg
05/10/2011 20:28 Jatu88#1834
Quote:
Originally Posted by Aceridos View Post
Das kann ich aber entkräften, am PitScript ist alles wunderbar
[Only registered and activated users can see links. Click Here To Register...]
jeder der 4 Chars macht Pit
Dislike, mach mich nich traurig, mein bot startet sooft neu :(-.-*
05/10/2011 20:30 19Miami#1835
spar dir deinen comment und freu dich dass du dich so gut auskennst, in meinem link wurds auch wo anders hinzugefügt.:mofo:

sry für doppelpost, kann im edit keinen anhang verwalten.

zum pic - definitiv etwas zu oft oder? an was kanns liegen?

zudem die vielen chickens, ich mache 34k light dmg, habn infy merc, volle resis und 2.3k hp und keinen maxblock, botte mephi andy dia baal pit, die chickens kommen meist von dia, manchmal aber auch im kerker - :(

die chicken is doch etwas zu hoch fürs equip oder?
05/10/2011 20:54 Jatu88#1836
jo finds schon oft würd dia dann lieber weglassen oder so ;)
05/10/2011 21:18 19Miami#1837
Quote:
Originally Posted by Jatu88 View Post
jo finds schon oft würd dia dann lieber weglassen oder so ;)
vermute da liegt iwo anders der fehler, hab mal beobachtet wie er die monster mit der waffe hauen wollte, und ich guck dem bot nicht oft zu
05/10/2011 21:19 Muddy Waters#1838
Quote:
Originally Posted by 19Miami View Post
spar dir deinen comment und freu dich dass du dich so gut auskennst, in meinem link wurds auch wo anders hinzugefügt.:mofo:

sry für doppelpost, kann im edit keinen anhang verwalten.

zum pic - definitiv etwas zu oft oder? an was kanns liegen?

zudem die vielen chickens, ich mache 34k light dmg, habn infy merc, volle resis und 2.3k hp und keinen maxblock, botte mephi andy dia baal pit, die chickens kommen meist von dia, manchmal aber auch im kerker - :(

die chicken is doch etwas zu hoch fürs equip oder?
Sein Kommentar beantwortet aber wunderbar die Frage, etwas Ironie ist auch erlaubt, es war schon sehr offensichtlich. ;)
Und ja, man auch Anhänge per Edit verändern, was glaubst du denn, wie ich hier Updates hinzufüge.
Da das scheinbar auf Unwissenheit zurückgeht, belasse ich es mal bei dem Hinweis und behalte meine Fanpost für mich. :)

Zu der Sache mit den Restarts:
Auch auf die Gefahr hin, dass ich mich wiederhole, aber wenn ich mit Sicherheit sagen könnte, woran es liegt, hätte ich das Problem schon lange behoben. :(

Zu deinem Equipment:
Ein Storm und Maxblock wirken wunder, die Erfahrung habe ich jedenfalls letzte Ladder gemacht. ;)

LG
Muddy
05/10/2011 21:28 Jatu88#1839
Quote:
Originally Posted by Muddy_Waters View Post

Zu der Sache mit den Restarts:
Auch auf die Gefahr hin, dass ich mich wiederhole, aber wenn ich mit Sicherheit sagen könnte, woran es liegt, hätte ich das Problem schon lange behoben. :(


LG
Muddy
Ich weiß Großer ;) aber vielleicht hat wer anders nen rat weil ich wirklich sogut wie jeden 2 run nen neustart hab kann ja nich nur an mir liegen? Pc is nich lahm win7 etc. und einstellungen scheinen ja nich falsch zu sein sons würde es ja nich laufen ^^
05/11/2011 09:46 thekarx#1840
Quote:
Originally Posted by 19Miami View Post
spar dir deinen comment und freu dich dass du dich so gut auskennst, in meinem link wurds auch wo anders hinzugefügt.:mofo:

sry für doppelpost, kann im edit keinen anhang verwalten.

zum pic - definitiv etwas zu oft oder? an was kanns liegen?

zudem die vielen chickens, ich mache 34k light dmg, habn infy merc, volle resis und 2.3k hp und keinen maxblock, botte mephi andy dia baal pit, die chickens kommen meist von dia, manchmal aber auch im kerker - :(

die chicken is doch etwas zu hoch fürs equip oder?
Hatte das Problem auch mit den Chickens bei Diablo & Mephi ( Trashs ).
Bei mir hatter versucht die Mobs mit dem Hoto totzuprügeln.
Abhilfe hat mir eine Änderung der Immunity Einstellung gebracht.
Post mal bitte deine Config von der Soso.

lg
05/11/2011 11:10 DeathFromHeaven#1841
bei mir wollte er den Infector Mob-Totprügeln, wenn ich "KillFullInfector = true;" hatte ein ausstellen dessen hats behoben^^
05/11/2011 12:43 letsid#1842
Quote:
Originally Posted by taubenberg View Post
Hi,

zuerstmal bin ich überaus zufrieden mit deinem Bot und habe keine größeren Probleme, bis auf zwei:

Meine Zauberin weigert sich auszuweichen. Die entsprechende Variable in der Config ist gesetzt. Ich hab mich dann etwas in der NTAttack.ntl umgeschaut und bin der Meinung, dass der Block in NTA_SorceressCastSkillInt(), in dem die MWA_MoveAwayFromMonster() aufgerufen wird, nie erreicht wird.

So wie ich die Funktion verstehe, wird zuerst überprüft, ob der gewählte skill derzeit verfügbar ist: if(me.GetSkillStatus(NTConfig_AttackSkill[index]) != 8)
und daraufhin von der optimalen Angriffsposition aus geschossen. Danach wird jedoch die Funktion beendet, der Block, in dem die Fluchtdistanzen bestimmt werden und letztendlich ausgewichen werden soll, wird bei mir (L/CL-Sorc) nie ausgeführt.
Wenn ich die entsprechenden Blöcke an den Anfang der Funktion setze, funktioniert es reibungslos.

Ist das ein Bug? Hab ich eine falsche Version der NTAttack.ntl?

Ein anderes Problem habe ich noch mit meinem Paladin:
Er soll Baalcharms, Bloodcraft-Ringe und zwei mal Caster-Amulette craften. Er hebt jedoch laufend neue Ringe, Amulette und Baalcharms (die natürlich seltener) auf, auch wenn schon genug Zutaten vorhanden sind. Wenn ich das Skript stoppe, alle Ringe und Amulette aus der Kiste ins Inventar lege und weiterlaufen lasse, verkauft er auch brav alle bis auf die benötigten. Ebenso ist keine der Zutaten in irgendeinem .nip-File enthalten. Eigenartigerweise zeigt nur mein Paladin dieses Verhalten, die Sorc craftet brav vor sich hin. Beide Chars laufen auf demselben System, benutzen also die gleiche Globale Config; auch die .nip-Files sind identisch.

Ich hoffe, dass irgendwer auf diese Fragen eine Antwort hat.

lg,
taubenberg
Wäre diesbezüglich an dem Fix interessiert, da ich auch eine light soso laufen lasse.
Ich frage mich welche blöcke genau an den anfang der funktion geschoben werden müssen, Gruß
05/11/2011 13:17 .Marcel'#1843
Der D2NT bot ist der erste den ich nutzen werde, nur bei mir gibts keine CDkey.mpq im ordner.. und diese muss man ja auswählen...
05/11/2011 13:30 letsid#1844
CDkey.mpq musst du nur auswählen wenn du mit mehr als 1 char gleichzeitig botten willst oder deine runs so schnell sind das du einen realmbann bekommen würdest.
Wenn du nur 1 Char zum botten benutzt, dann kannst du das leer lassen.

Ansonsten diesen Guide befolgen:

[Only registered and activated users can see links. Click Here To Register...]
05/11/2011 13:36 .Marcel'#1845
Ja wen ich da was frei lasse, oder überhaupt wenn ich auf run klicke erscheint die Fehlermeldung : "Die Version kann nicht identifiziert werden" ...
Habe 1.13