[Release] Muddy's D2NT

08/24/2011 19:08 DeathFromHeaven#3001
Problem mit den Amuletten bestätigt! Habe schon wieder 7 Amulette, davon 4 unid, im stash. wenn ich alle ins Inventar lege und den Bot wieder starte verkauft er alle bis auf zwei, so wie es richtig ist...
08/24/2011 20:37 mooh#3002
Der Bot macht nix mehr bei mir. Beim Start kommt fdolgende Meldung in rot:
Quote:
<D2NT Error> C:\[blah]\NTItemParser.ntl (89): SyntaxError: unterminated rehular expression literal
Hab in der Datei geguckt.
Die 89 ist nehme ich mal an die Zeile, aber da steht nix auffälliges...
Nur das hier:
Quote:
if(eval(_NTIP_CheckList[i][0]))
Was ist da an der Syntax falsch?
08/24/2011 20:48 Atronia#3003
Ich hab noch eine frage,
mir ist aufgefallen das er bot immer wieder nach ein paar run ein restart macht als neu einlogen kann man das irgend wie ändern das er einfahc immer on bleibt und die games aufmacht?



es passiert jetzt nach jeden game macht der bot ein restart.
08/24/2011 21:10 fred9x9#3004
Quote:
Originally Posted by mooh View Post
Der Bot macht nix mehr bei mir. Beim Start kommt fdolgende Meldung in rot:


Hab in der Datei geguckt.
Die 89 ist nehme ich mal an die Zeile, aber da steht nix auffälliges...
Nur das hier:

Was ist da an der Syntax falsch?
Der hat wohl was gepickt, was er nicht versteht.
Stell dein Dia mal auf englisch um.
Denke, das war es dann.
08/24/2011 21:16 Atronia#3005
steht auf englisch , er macht alle sachen zu ende, soblad er rausgehn will is der restart da
08/24/2011 21:28 Knurrhuhn#3006
Quote:
Originally Posted by mooh View Post
Der Bot macht nix mehr bei mir. Beim Start kommt fdolgende Meldung in rot:


Hab in der Datei geguckt.
Die 89 ist nehme ich mal an die Zeile, aber da steht nix auffälliges...
Nur das hier:

Was ist da an der Syntax falsch?
guck mal in den [Only registered and activated users can see links. Click Here To Register...]. das mag helfen
08/24/2011 22:08 fred9x9#3007
Quote:
Originally Posted by Atronia View Post
steht auf englisch , er macht alle sachen zu ende, soblad er rausgehn will is der restart da
Wie was jetzt?
Beim Start,
oder Rausgehen?
Ich verstand, geht ins game und hängt. Sry.
08/24/2011 22:16 mooh#3008
Haste richtig verstanden, er geht ins Game und hängt.

Hab MWConfig_RunNipCheck = true; gesetzt, aber es existiert keine ..\scripts\Logs\NipErrors.txt ...

Was ist mein Dia? Hab das Spiel schon auf Englisch, falls du das meinst.

Da hat einfach jemand anders ganz frech dazwischen gepostet :>
08/24/2011 22:24 Muddy Waters#3009
Quote:
Originally Posted by Atronia View Post
muddy geil danke hat geklapt nur noch eine frage wie kann man das ausstellen das er nicht mehr übern kopf schreibt was er gerade macht ???
Auch das findet sich übrigens in der [Only registered and activated users can see links. Click Here To Register...], die ich jetzt mal im Startpost verlinkt habe.

Quote:
Originally Posted by DeathFromHeaven View Post
Problem mit den Amuletten bestätigt! Habe schon wieder 7 Amulette, davon 4 unid, im stash. wenn ich alle ins Inventar lege und den Bot wieder starte verkauft er alle bis auf zwei, so wie es richtig ist...
Puh...ich schaue es mir mal an, kann es mir gerade aber eigentlich nicht so richtig erklären. :(

Die Cubing Einstellungen würden mich interessieren.

Quote:
Originally Posted by Atronia View Post
Ich hab noch eine frage,
mir ist aufgefallen das er bot immer wieder nach ein paar run ein restart macht als neu einlogen kann man das irgend wie ändern das er einfahc immer on bleibt und die games aufmacht?



es passiert jetzt nach jeden game macht der bot ein restart.
Hast du in der Text Box im Profil beim Manager hintr der Caption "Game # / CDKey" etwas anderes als 0 eingetragen? Wenn ja, sorg dafür, dass dort eine 0 steht. Stell außerdem sicher, dass der Haken bei "NoSound" im nicht gesetzt ist.

Quote:
Originally Posted by mooh View Post
Haste richtig verstanden, er geht ins Game und hängt.

Hab MWConfig_RunNipCheck = true; gesetzt, aber es existiert keine ..\scripts\Logs\NipErrors.txt ...

Was ist mein Dia? Hab das Spiel schon auf Englisch, falls du das meinst.
Du musst den Char dazu schon ins Spiel gehen und eine Runde rödeln lassen. Dann sollte das an sich funktionieren. :)

LG
Muddy
08/24/2011 22:31 wohltat#3010
Hallo

Also seit ich die neue Version nutze funktioniert das Cow-Level-Skript nicht mehr.
Der Bot beginnt das Script und bricht es ab sobald die erste Truhe auftaucht.

Es kommt eine Fehlermeldung, die beinhaltet irgendetwas von wegen "....openallnearbychests not defined"

Ich nehme mal an, dass in dem Skript vergessen wurde mit der neuen Bezeichnung "MWConfig_OpenContainerMode = 0" (bzw 1/2) die alte "MWConfig_OpenAllNearbyChests = true" (bzw false) zu ersetzen und die char_configs vergeblich nach der alten Zeile abgesucht werden und dann das Skript gestoppt wird

Wenn das tatsächlich der Fall ist brauche ich Hilfe um das umzusetzen.

Da ich nun allerdings scheinbar der erste bin, der dieses Problem hat, liegt es vielleicht eher an meiner Unfähigkeit.
Wenn dem so ist, sagt es mir und ich schildere das Problem genauer und hoffe darauf, dass mir trotzdem jemand helfen kann.

*edit*
Achja und außerdem ist mir aufgefallen, dass meine Amazone es nicht hinbekommt das "MWConfig_BuyPotionsOnLackOfMana = true" auszuführen. Das ist gerade bei ner Amazone wie meiner mit einem besonders niedrigen Manapool ärgerlich.
Aber da ich hier ebenfalls der erste bin, der dieses Problem hat, liegt es wohl an mir.

*edit2*

Danke Muddy, das Cows-Skript aus deiner antwort funktioniert einwandfrei
08/24/2011 22:31 Atronia#3011
Hast du in der Text Box im Profil beim Manager hintr der Caption "Game # / CDKey" etwas anderes als 0 eingetragen? Wenn ja, sorg dafür, dass dort eine 0 steht. Stell außerdem sicher, dass der Haken bei "NoSound" im nicht gesetzt ist.


0stehtdrinund der harken bei no sound is auch drin und mir ist aufgefallen , das ich das nur bekomme wenn ich noch act2 tunnel dazu nehm .
08/24/2011 22:46 Muddy Waters#3012
Quote:
Originally Posted by wohltat View Post
Hallo

Also seit ich die neue Version nutze funktioniert das Cow-Level-Skript nicht mehr.
Der Bot beginnt das Script und bricht es ab sobald die erste Truhe auftaucht.

Es kommt eine Fehlermeldung, die beinhaltet irgendetwas von wegen "....openallnearbychests not defined"

Ich nehme mal an, dass in dem Skript vergessen wurde mit der neuen Bezeichnung "MWConfig_OpenContainerMode = 0" (bzw 1/2) die alte "MWConfig_OpenAllNearbyChests = true" (bzw false) zu ersetzen und die char_configs vergeblich nach der alten Zeile abgesucht werden und dann das Skript gestoppt wird

Wenn das tatsächlich der Fall ist brauche ich Hilfe um das umzusetzen.

Da ich nun allerdings scheinbar der erste bin, der dieses Problem hat, liegt es vielleicht eher an meiner Unfähigkeit.
Wenn dem so ist, sagt es mir und ich schildere das Problem genauer und hoffe darauf, dass mir trotzdem jemand helfen kann.
Ich würde eher sagen, du hast absolut Recht und danke für den Hinweis. :)

Versuch es mal so, mit der nächsten Revision ist das dann auch erledigt:
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: 22:45 24.08.2011
*/

const _NTR_STRING_COW_KING = GetLocaleString(2850);
const _NTR_COW_KING_RANGE = 80;

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

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

	MWC_Initialize();

	var _wirtbody, _cube, _leg, _portal, _stash, _npc;
	var i;

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

	NTTMGR_TownManager();

	if(!NTTM_TownMove("waypoint"))
	{
		NTC_SendMsgToScript("MWBotGame.ntj", NTTM_TownMove, 32, "waypoint");
		return;
	}
	
	if(!NTM_TakeWaypoint(4))
	{
		NTC_SendMsgToScript("MWBotGame.ntj", NTM_TakeWaypoint, 38, 4);
		return;
	}

	NTP_DoPrecast(true);
	
	if(!NTM_MoveToPresetUnit(me.areaid, NTC_UNIT_MONSTER, 737, 10, 10))
	{
		NTC_SendMsgToScript("MWBotGame.ntj", NTM_MoveToPresetUnit, 46, me.areaid, NTC_UNIT_MONSTER, 737, 10, 10);
		return;
	}

	if(!NTM_UsePortal("Portal", 38))
	{
		NTC_SendMsgToScript("MWBotGame.ntj", NTM_UsePortal, 52, "Portal", 38);
		return;
	}

	NTM_MoveTo(me.areaid, 25047, 5178);
	
	if(NTA_ClearPosition(10))
		NTSI_PickItems();

	_wirtbody = NTC_FindUnit(NTC_UNIT_OBJECT, 268);

	if(!_wirtbody)
	{
		NTC_SendMsgToScript("MWBotGame.ntj", NTC_FindUnit, 63, NTC_UNIT_OBJECT, 268);
		return;
	}

	if(NTM_MoveTo(_wirtbody.areaid, _wirtbody.x + 3, _wirtbody.y))
	{
		if(NTC_OpenChest(_wirtbody))
		{
			for(i = 0; i < 40; i++)
			{
				NTC_Delay(NTC_DELAY_FRAME);
				
				_leg = NTC_FindUnit(NTC_UNIT_ITEM, 88, 1);
				
				if(_leg)
					break;
			}
			
			if(!NTT_CheckSpace(_leg.xsize, _leg.ysize))
				NTTMGR_VisitTown();
			
			if(MWSI_PickupItem(_leg.classid))
				Print("ÿc4Got Leg");
		}
	}

	if(!_leg)
	{
		NTC_SendMsgToScript("MWBotGame.ntj", NTC_FindUnit, 79, NTC_UNIT_ITEM, 88, 1);
		return;
	}

	NTTM_CheckAct();
	
	NTTM_TownMove("akara");

	for(var i = 0; i < 10; i++)
	{
		_npc = NTC_FindUnit(NTC_UNIT_NPC, NTC_NPC_ID_AKARA);
		
		if(_npc)
			break;
	}

	if(_npc)
	{
		if(NTT_DoInteract(_npc))
		{
			if(NTT_DoTrade(_npc))
			{
				NTT_FillTome(_npc, 1);
				NTT_FillTome(_npc, 0);
				NTT_SecondTomeTP(_npc, "tbk", 1);
				
				_portal = NTR_GetTP();
				
				if(!_portal)
				{
					NTC_SendMsgToScript("MWBotGame.ntj", NTR_GetTP, 121);
					return;
				}
			}		
		}
		
		me.Cancel(1);
	}

	if(MWT_OpenStash())
	{
		_cube = me.GetItems(NTC_UNIT_CUBE);
			
		if(!_cube[0])
		{
			NTC_SendMsgToScript("MWBotGame.ntj", me.GetItems, 136, NTC_UNIT_CUBE);
			return;
		}
		
		if(NTCU_CheckCubeInventoryInt() > 0)
		{
			NTCU_OpenCubeInt(_cube[0]);
			
			if(NTCU_ClearCubeInt() < 1)
			{
				NTC_SendMsgToScript("MWBotGame.ntj", NTCU_ClearCubeInt, 148);
				return;
			}
			
			NTCU_CloseCubeInt();
		}

		NTCU_MoveItemToCubeInt(_cube[0],_leg);
		NTCU_MoveItemToCubeInt(_cube[0],_portal);

		MWCU_Transmute(_cube[0]);

		NTCU_CloseCubeInt();

		me.Cancel(1);
		
		NTC_Delay(250);
	}
	
	if(!NTR_TakeCowPortal(12))
	{
		NTC_SendMsgToScript("MWBotGame.ntj", NTR_TakeCowPortal, 169, 12);
		return;
	}
	
	NTP_DoPrecast();
	
	NTR_ClearRooms(150, NTC_UNIT_MONSTER, 773, _NTR_COW_KING_RANGE);

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

// Internal functions
function NTR_GetTP()
{
	var _portals = me.GetItems("tbk");

	if (_portals)
	{
		for (var i = 0; i < _portals.length; i++)
		{
			if (_portals[i].mode == 0 && (_portals[i].itemloc != 0 || NTConfig_Columns[_portals[i].y][_portals[i].x] > 0))
			{
				return _portals[i];
			}
		}
	}
	return false;
}

function NTR_TakeCowPortal(range)
{
	var _portal;

	_portal = NTC_FindUnit(NTC_UNIT_OBJECT, 60, 5);

	if(_portal)
		return NTM_UsePortal("Portal", 39, "dummy", _portal);
	
	return false;
}

function NTR_ClearRooms(range, type, id, distance)
{
	var i;
	var _unit;
	var _preRoom;
	var _addRooms = new Array();
	var _removeRooms = new Array();

	if (distance)
	{
		_unit = GetPresetUnits(me.areaid, type, id);
		if (!_unit || _unit.length < 1)
			return false;
	}

	_preRoom = GetRoom();
	if (_preRoom)
	{
		do
		{
			if (distance)
			{
				if (GetDistance(_preRoom.x * 5, _preRoom.y * 5, _unit[0].roomx * 5, _unit[0].roomy * 5) < distance)
					continue;
			}
			_addRooms.push([_preRoom.x * 5, _preRoom.y * 5]);
		} while (_preRoom.GetNext());
	}

	if (_addRooms.length < 1)
		return false;

	_preRoom = [me.x, me.y];

	while (_addRooms.length > 0)
	{
		_addRooms.sort(function (a, b) { return (GetDistance(_preRoom[0], _preRoom[1], a[0], a[1]) - GetDistance(_preRoom[0], _preRoom[1], b[0], b[1])); });

		_removeRooms.push([_addRooms[0][0], _addRooms[0][1]]);

		for (i = 1; i < _addRooms.length; i++)
		{
			if (GetDistance(_preRoom[0], _preRoom[1], _addRooms[i][0], _addRooms[i][1]) <= GetDistance(_preRoom[0], _preRoom[1], _addRooms[0][0], _addRooms[0][1]))
			{
				_removeRooms.push([_addRooms[i][0], _addRooms[i][1]]);
			}
			else
				break;
		}

		if (_removeRooms.length > 1)
		{
			_removeRooms.sort(function (a, b) { return (b[0] - a[0]); });
			if (_removeRooms[0][0] <= _preRoom[0])
			{
				_removeRooms.sort(function (a, b) { return (b[1] - a[1]); });
				if (_removeRooms[0][1] <= _preRoom[1])
				{
					_removeRooms.sort(function (a, b) { return (a[0] - b[0]); });
					if (_removeRooms[0][0] >= _preRoom[0])
					_removeRooms.sort(function (a, b) { return (a[1] - b[1]); });
				}
			}
		}

		if (!range || GetDistance(me.x, me.y, _removeRooms[0][0], _removeRooms[0][1]) < range)
		{
			if (NTR_MoveTo(me.areaid, _removeRooms[0][0], _removeRooms[0][1], 3, true))
			_preRoom = _removeRooms[0];
		}

		for (i = 0; i < _addRooms.length; i++)
		{
			if (_addRooms[i][0] == _removeRooms[0][0] && _addRooms[i][1] == _removeRooms[0][1])
			{
				_addRooms.splice(i, 1);
				break;
			}
		}
		_removeRooms.length = 0;
	}
	return true;
}

function NTR_MoveTo(areaId, x, y, retry, isClearPath)
{
	if (x == me.x && y == me.y)
		return true;

	if (arguments.length < 4)
		retry = 3;
	if (arguments.length < 5)
		isClearPath = false;

	var j;
	var _path;
	var _preX, _preY;

	_path = GetPath(areaId, me.x, me.y, x, y, true);
	if (!_path)
		return false;

	for (var i = 0; i < _path.length; i++)
	{
		if (NTR_CheckCowKing() || NTR_CheckSafe(_path[i][0], _path[i][1], 15))
		{
			for (j = 0; j < retry; j++)
			{
				if (NTM_MoveTo(me.areaid, _path[i][0], _path[i][1]))
					break;
			}

			if (j >= retry)
				return false;
		}

		if (isClearPath && !NTR_CheckCowKing())
		{
			_preX = me.x;
			_preY = me.y;

			if(!MWR_ClearPosition(30, true))
				return false;

			NTP_DoPrecast();
			
			if (me.x != _preX || me.y != _preY)
			{
				if (!NTM_MoveTo(me.areaid, _preX, _preY))
					return false;
			}
		}
	}
	
	return true;
}


function NTR_CheckCowKing()
{
	var _cowKing = NTC_FindUnit(NTC_UNIT_MONSTER, _NTR_STRING_COW_KING);
	return (_cowKing && GetDistance(me, _cowKing) < _NTR_COW_KING_RANGE);
}


function NTR_CheckSafe(x, y, range)
{
	var i;
	var _target = NTC_FindUnit(NTC_UNIT_MONSTER);

	if (_target)
	{
		do
		{
			if (GetDistance(x, y, _target.x, _target.y) < range && _target.IsAttackable())
			{
				for (i = 0; i < 6; i++)
				{
					if (NTConfig_AttackSkill[i] && NTA_GetResistance(_target, _NTA_SkillDamage[i]) < 100)
					return false;
				}
			}
		} while (_target.GetNext());
	}

	return true;
}

function MWR_ClearPosition(range, pickitem, safelevel, openchests, usefinditem)
{
	var _orgx, _orgy;
	var _skiplist;
	var _attackcount = 0;
	var _target;
	var _distance, _mingid, _mindistance;
	var _result;
	
	switch(arguments.length)
	{
	case 0:
		range = 20;
	case 1:
		pickitem = false;
	case 3:
		openchests = true;
	case 4: 
		usefinditem = true;
	default:
		if(NTConfig_CheckSelfSafe < 0x01 && NTConfig_CheckMercSafe < 0x01)
			safelevel = 0;
		break;
	}

	_orgx = me.x;
	_orgy = me.y;

	for(var i = 0; i < 3; i++)
	{
		_skiplist = new Array();

		while(_attackcount < (i+1)*100)
		{
			if(NTR_CheckCowKing())
				return false;
			
			_mindistance = 1E6;

			_target = NTC_FindUnit(NTC_UNIT_MONSTER);

			if(_target)
			{
				do
				{
					if(_skiplist.indexOf(_target.gid) < 0)
					{
						if(_target.IsAttackable())
						{
							if(GetDistance(_orgx, _orgy, _target.x, _target.y) <= range && NTA_IsValidMonster(_target))
							{
								_distance = GetDistance(me, _target);

								if(_distance < _mindistance)
								{
									_mingid = _target.gid;
									_mindistance = _distance;
								}
							}
						}
						else
							_skiplist.push(_target.gid);
					}
				} while(_target.GetNext());
			}

			if(_mindistance < 1E6)
			{
				_target = NTC_FindUnit(NTC_UNIT_MONSTER, _mingid, 1);

				if(_target)
				{
					if(MWConfig_ShowOverheadStatus)
						Say("!Attacking " + _target.name + " (" + (_target.hp * 100 / _target.hpmax).toFixed(0) + "%)");

					_result = NTA_Attack(_target, (_attackcount % 30) == 0);
					
					if(MWConfig_ShowOverheadStatus)
						Say("!Attacking " + _target.name + " (" + (_target.hp * 100 / _target.hpmax).toFixed(0) + "%)");

					switch(_result)
					{
						case 1:
							_skiplist.push(_mingid);
							break;
						case 2:
						case 3:
							if(MWConfig_PickItemsInstantly && (_target.hp <= 0 || _target.mode == 0 || _target.mode == 12))
								NTSI_PickItems();
							_attackcount++;
							break;
						default:
							_attackcount = 1E6;
					}
				}
			}
			else
				break;
		}
	}

	if(_attackcount > 2)
	{
		switch(me.classid)
		{
			case NTC_CHAR_CLASS_PALADIN:
				if(parseInt(me.hp * 100 / me.hpmax) < NTConfig_UseRedemptionHP || parseInt(me.mp * 100 / me.mpmax) < NTConfig_UseRedemptionMP)
				{
					if(NTC_PutSkill(124, NTC_HAND_RIGHT))
						NTC_PingDelay(1000);
				}
				break;
			case NTC_CHAR_CLASS_BARBARIAN:
				if(usefinditem && MWConfig_UseFindItem && !NTR_CheckCowKing())
					MWL_FindItem(MWConfig_FindItemRange);
				break;
			case NTC_CHAR_CLASS_NECROMANCER:
				if(!NTR_CheckCowKing())
					MWA_RaiseMinions();
				break;
		}
	}
	
	if(pickitem && _attackcount > 0)
		NTSI_PickItems();

	if(MWConfig_OpenContainerMode == 2 && openchests && !NTR_CheckCowKing())
		MWL_OpenNearbyChests(MWConfig_OpenChestsRange);
	
	if(MWConfig_ActivateNearbyShrines)
		MWL_ActivateNearbyShrines();

	switch(safelevel)
	{
		case 1:
			return NTTMGR_CheckSafe(0x00, NTConfig_CheckMercSafe&0x01);
		case 2:
			return NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe);
	}

	if(MWConfig_IdentAfterPickup)
		MWL_IDItemsAfterPickup();

	return true;
}

function NTT_SecondTomeTP(npc, type, amount)
{
	var _items;
	var _counter = 0;

	if(arguments.length < 1)
		return false;

	if(arguments.length < 2)
		type = 0;

	if(arguments.length < 0)
		amount = 1;

	if(amount == 0)
		return false;

	if(type)
		_items = npc.GetItems("tbk");

	if(_items)
	{
		if(_items.length > 0)
		{
			for(var i = 0 ; i < amount ; i++)
			{
				if(NTT_ShopItem(_items[0], npc, 2))
					_counter++;
			}
		}
	}
	return (_counter > 0);
}
Quote:
Originally Posted by Atronia View Post
Hast du in der Text Box im Profil beim Manager hintr der Caption "Game # / CDKey" etwas anderes als 0 eingetragen? Wenn ja, sorg dafür, dass dort eine 0 steht. Stell außerdem sicher, dass der Haken bei "NoSound" im nicht gesetzt ist.


0stehtdrinund der harken bei no sound is auch drin und mir ist aufgefallen , das ich das nur bekomme wenn ich noch act2 tunnel dazu nehm .
Der Haken sollte eben gerade nicht gesetzt sein, da dieser Parameter dafür bekannt ist, zu Abstürzen beim Aktwechsel zu führen.

Ansonsten wäre auch ein Logikfehler im Entry Point denkbar, der beim Erreichen der betroffenen Anweisung zu einer Exception führt.

LG
Muddy
08/24/2011 23:17 wohltat#3013
Für den Fall, dass mein editierter Post wegen der schnellen Antwort übersehen wird:

Außerdem ist mir aufgefallen, dass meine Amazone es nicht hinbekommt das "MWConfig_BuyPotionsOnLackOfMana = true" auszuführen. Das ist gerade bei ner Amazone wie meiner mit einem besonders niedrigen Manapool ärgerlich.
Aber da ich hier ebenfalls der erste bin, der dieses Problem hat, liegt es wohl an mir.
(Es passiert wirklich jedes Mal und erst wenn das Skript abgeschlossen ist geht der char mit der entsprechenden Nachricht "leak of mana, visiting town" oderso aus der jeweiligen Ebene. Zuvor wartet er einfach bis genug Mana für den nächsten Telejump regeneriert wurde)

Desweiteren habe ich Probleme mit dem Maggotslair Skript.
Am liebsten würde ich die Wurmgruft mit manchen chars komplett säubern, oder es zumindest mal ausprobieren.
Wenn nur alle Bossmonster auf dem Weg zu Kaltwurm erledigt werden reichte es mir auch.

In irgendeinem Post in diesem thread habe ich mal gelesen, dass "MWConfig_ClearAreaSpectypes.MaggotsLair" auf 0x01, bzw 0x08 gestellt werden müsste. Diese Einstellung ändert allerdings absolut garnix am verhalten meiner chars (mit 4 verschiedenen habe ich es versucht und außer Kaltwurm und area um ihn herum wird nichts angegriffen).

Bei allen anderen Skripten klappt es übrigens wunderbar mit "0x01" bzw "0x08"

Eine Frage habe ich noch :
Bei manchen "ClearPathSpectypes" bzw "ClearAreaSpectypes" folgt nur eine (Dezimal?-)Zahl und bei anderen folgt eine (Hexadezimal?-) Zahl

Bewirkt eine "1" beim ersten das Gleiche wie eine "0x01" beim zweiten und eine "8" das gleiche wie eine "0x08" ?


*edit*
Dein unten gepostetes Maggotslair Skript funktioniert ebenfalls einwandfrei.
Vielen Dank dafür!!

Meine Blizz-sorc und meine Light-sorc haben eine wahnsinnig gute killspeed da unten. Ich empfehle allerdings "0x01" anstelle von "0x0E" zu verwenden, da bei "0x0E" zuviel sinnlos hin und her gehüpft wird.
08/24/2011 23:49 Meistermacher1#3014
Muddy_Waters lag an english ^^ hatte es schon raus gefunden die sache mit dem cow bot war mir dan auch gleich aufgefallen ^^ thx für den geilen bot und weiter so dickes lob
08/25/2011 00:00 Muddy Waters#3015
Das mit den Manatränken muss ich mir mal anschauen, ich hatte an sich eine Variable eingefügt, die nur einen einzigen Aufruf der betroffenen Funktion erlaubt, da die vorherige Implementierung in manchen Situationen eine Endlosrekursion zur Folge haben konnte.

Die Sache mit den Spectypes sollte ich wohl mal in die FAQ aufnehmen, das versteht man eigentlich nur mit entsprechendem Hintergrundwissen, wobei du in meiner Signatur eine kleine Erläuterung zu den verschiedenen Zahlensystemen findest.

Das dort von Haus aus bei den MWConfig_ClearPathSpectypes eine 0, sowie 0x01 bei den MWConfig_ClearAreaSpectypes steht, hat folgenden Hintergrund:
Die Tatsache, dass es sich bei letzterem um eine Hexadezimal Zahl handelt, deutet darauf hin, dass dieses Bitweise zu interpretieren ist - rein von der Funktion her könnte dort auch eine Dezimal Zahl stehen. Bei den Pfad Spectypes ist es von Haus aus eine dezimale 0, die besagt, dass gar keine Monster auf dem Weg angegriffen werden. Man könnte genausogut 0x00 schreiben, aber es macht eigentlich keinen Sinn, da keine Interpretierung dieses Wertes nötig ist, die Bedeutung ist unmittelbar klar.

Übrigens liegt der Fehler mal wieder weniger bei dir, als bei mir. Denn ich habe scheinbar mein Maggot's Lair Script über das NTColdworm Script geschrieben und dann nicht entsprechend umbenannt.

Ersetz darum einfach mal den Inhalt des Scripts durch das hier:
Code:
/**
*	This file was written by [Only registered and activated users can see links. Click Here To Register...]
*	Check the programming section for updates and further scripts
*	Last Update: 16:40 17.08.2011
*/

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

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

	MWC_Initialize();

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

	NTTMGR_TownManager();

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

	if(!NTM_TakeWaypoint(43))
	{
		NTC_SendMsgToScript("MWBotGame.ntj", NTM_TakeWaypoint, 32, 43);
		return;
	}

	NTP_DoPrecast(true);

	for(var i = 0; i < 3; i++)
	{
		if(i > 0 && MWConfig_ClearAreaSpectypes.MaggotsLair > 0)
			NTA_ClearLevel(true, 2, MWConfig_ClearAreaSpectypes.MaggotsLair);
			
		if(!NTM_MoveToStair(me.areaid, 62 + i, 0, 0, MWConfig_ClearPathSpectypes.MaggotsLair > 0, MWConfig_ClearPathSpectypes.MaggotsLair))
		{
			NTC_SendMsgToScript("MWBotGame.ntj", NTM_MoveToStair, 42, me.areaid, 62 + i, 0, 0, MWConfig_ClearPathSpectypes.MaggotsLair > 0, MWConfig_ClearPathSpectypes.MaggotsLair);
			return;
		}

		if(!NTM_TakeStair(62 + i))
		{
			NTC_SendMsgToScript("MWBotGame.ntj", NTM_TakeStair, 48, 62 + i);
			return;
		}
	}

	if(!NTM_MoveToPresetUnit(me.areaid, NTC_UNIT_OBJECT, 356, 4, 0, MWConfig_ClearPathSpectypes.MaggotsLair > 0, MWConfig_ClearPathSpectypes.MaggotsLair))
	{
		NTC_SendMsgToScript("MWBotGame.ntj", NTM_MoveToPresetUnit, 55, me.areaid, NTC_UNIT_OBJECT, 356, 4, 0, MWConfig_ClearPathSpectypes.MaggotsLair > 0, MWConfig_ClearPathSpectypes.MaggotsLair);
		return;
	}

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

	if(!NTA_KillMonster(284))
	{
		NTC_SendMsgToScript("MWBotGame.ntj", NTA_KillMonster, 67, 284);
		return;
	}

	if(NTConfig_ClearPosition)
		NTA_ClearPosition();

	if(MWConfig_OpenContainerMode == 1)
		MWL_LootSpecialChests();
		
	if(MWConfig_ClearAreaSpectypes.MaggotsLair)
		NTA_ClearLevel(true, 2, MWConfig_ClearAreaSpectypes.MaggotsLair);

	NTSI_PickItems();

	NTC_SendMsgToScript("MWBotGame.ntj", "SCRIPT_END");
}
Um alle Bosse, Champions und Minions auf dem Weg zu erledigen, initialisiert du die entsprechende Variable wie folgt:
Code:
MWConfig_ClearPathSpectypes.MaggotsLair = 0x0E;
LG
Muddy