Register for your free account! | Forgot your password?

You last visited: Today at 05:47

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Release] Muddy's D2NT

Discussion on [Release] Muddy's D2NT within the Diablo 2 Programming forum part of the Diablo 2 category.

Reply
 
Old 05/24/2011, 21:55   #2056
 
elite*gold: 0
Join Date: Mar 2010
Posts: 539
Received Thanks: 418
Bei mir bringt der Bot schon längers folgende Fehlermeldung:
Quote:
<D2NT Error> [D2NT-Pfad]\scripts\libs\common\NTCubing.ntl (1673): TypeError: _cubeItems[0].name is undefined
Diese ist bis jetzt gekommen wenn im Cube noch ein PA, PS oder Baal-SC gelegen ist.
Kann nicht nachvollziehen, wann der Error kommt, kommt nur ca. alle 100 Games und auch immer bei unterschiedlichen Bots, haben alle die gleiche Cube- & Craft-Config:
Weiß aber nicht ob vor oder nach dem cuben, der Cube war auf jeden Fall immer offen.
Der Fehler nervt insofern, dass der eine Bot dadurch einfach hängt und die Games auf maxtime gehen.

Leider habe ich keine API-Referenz (D2NT/D2BS) gefunden, wo GetItems() dokumentiert ist.
Habe auch in der Ur-D2NT nachgesehen, da wird die name-Eigenschaft auch so verwendet wie bei Muddy's.

EDIT: Bei KingHigh scheint es das gleiche Problem zu sein, die Property name passt wohl nicht ganz?
TheCrazy11 is offline  
Old 05/24/2011, 22:03   #2057
 
elite*gold: 0
Join Date: Oct 2010
Posts: 211
Received Thanks: 44
Bei KingHigh tippe ich aber auf einen Fehler in der PickIt, versuch dich doch mal an dem NipCheck aus dem 2 Post im Thread hier, der gibt genauere Infos obs an der PickIt liegt
Bei TheCrazy11 kenn ich mich nicht gut genug aus, sry
Aceridos is offline  
Thanks
1 User
Old 05/24/2011, 22:36   #2058
 
elite*gold: 0
Join Date: Mar 2009
Posts: 382
Received Thanks: 45
Quote:
Originally Posted by KingHigh View Post
Ich bekomme bei meinen Probleläufen mit dem Bot relativ häufig folgende Fehlermldung:

<D2NT Error> C:\Programme\D2bot\Muddy's D2NT V1.22 THIS\Muddy's D2NT\scripts\libs\common\NTSnagit.ntj (168):TypeError:_item.name is undefined
schau mal nach
GruenerApfel is offline  
Thanks
1 User
Old 05/24/2011, 22:44   #2059
 
elite*gold: 0
Join Date: Apr 2011
Posts: 10
Received Thanks: 0
hmm gibts für muddy's nen leech und leechfight script? direkt dabei scheint nix zu sein
Rondo80 is offline  
Old 05/24/2011, 22:56   #2060
 
elite*gold: 0
Join Date: Mar 2009
Posts: 382
Received Thanks: 45
Quote:
Originally Posted by Rondo80 View Post
hmm gibts für muddy's nen leech und leechfight script? direkt dabei scheint nix zu sein
von haus aus net ... gibt aber hier im forum diverse, kann dir aber zumindest die posten welche ich verwende

ntbotleech.ntj


baalleechfight.ntj


diabloleechfight.ntj


und in deiner charconfig musst du dann noch


einfügen

ich hoffe ich hab nix vergessen O_o
GruenerApfel is offline  
Thanks
2 Users
Old 05/24/2011, 23:22   #2061
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41364
Join Date: Jan 2010
Posts: 22,727
Received Thanks: 12,652
Quote:
Originally Posted by Aceridos View Post
Afaik(!) funzt das mit dem cuben wie folgt:

Du stellst ein was er cuben soll, sagen wir... Blutgürtel

Code:
	//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_BELT, 392]);		// Craft Mesh Belt
in dieser Zeile entfernen wir dann die "//", soweit klar

Nun wird dein Bot die Zutaten zum Gürtel (Tal Rune, Juwel, PRuby) erst sammeln, wenn das entsprechende Craftitem im Stash ist(ergo gefunden wurde)
Dieser Gürtel(in dem Beispiel ein normaler Mesh Belt), muss aber durch deine PickIt zum aufheben und behalten freigegeben/definiert werden, die Zeile oben in der Codebox definiert wohl nur das cuben an sich + Zusatzmaterial, nicht aber den Gurt an sich

Vlt hilft dir das weiter, ich cube nicht, meine das aber so hier im Thread an verschiedenen Stellen aufgeschnappt zu haben

Vlt hat er bei dir einfach nur das Hauptitem(welches gecraftet werden soll) nicht gefunden und du hattest die Zusatzmats aber in der PickIt definiert, so hört sich das für mich jedenfalls an

Ringe und Amulette werden wohl auch erst ab 94 oder 95 gecrafted, wenn sie beim gambln "gefunden" wurden, weil das ilvl des gambled Items ja irgendwie Charlvl minus 5(oder 4) oder so ist, und eben erst ab ilvl 89/90+ dann +2 Skills möglich sind

Genaue Werte zum letzten Absatz hab ich nicht im Kopf, im groben dürfte das aber passen


----------------------------

@Bashtour

PublicMode auf false?
Das Basis Item, also in dem Fall der Mesh Belt hat nichts in deinen .nips verloren!

Lediglich für Sockel und Upgrade Rezepte muss das Basisitem in den .nips stehen.

Quote:
Originally Posted by xtoa View Post
so da mein sumonner gerade fertig geworden ist musst ich das script ja gleich mal versuchen
sieht fantastisch aus.
Ich hätt noch eine frage .. . mein nec benuzt hoto in einem slot und beast ( zum auraspenden im 2.) wäre es möglich das er bei bossen auf diesen beast slot switcht und den hoto slot nur zum telen / sumonner benuzt ? schonmal danke
Ohne größeren Aufwand eher nicht.
Spricht irgendwas gegen Fastmod und Beast permanent im 1. Slot?

Mir würde so ehrlich gesagt auch das CTA fehlen, ich würde eher dauerhaft zum Hoto greifen, als das CTA links liegen zu lassen.

Quote:
Originally Posted by KingHigh View Post
Ich bekomme bei meinen Probleläufen mit dem Bot relativ häufig folgende Fehlermldung:

<D2NT Error> C:\Programme\D2bot\Muddy's D2NT V1.22 THIS\Muddy's D2NT\scripts\libs\common\NTSnagit.ntj (168):TypeError:_item.name is undefined

Ich habe an der NTSnagit.ntj nicht geändert, es ist also die gleiche wie die in der release-Version. Die Zeilen 167 und 168 sehen so aus:
Code:
else if(MWConfig_ShowPotionPickups)
Print("Picked up " + _item.name.split("\n")[0]);
Da es hier anscheinend um das picken von Potions geht habe ich geschaut was ich an pickits aktiviert habe und was davon interessant sein könnte. So sieht es in der charconfig aus:
Code:
NTConfig_NIPFilePath.push("private/normal.nip");
NTConfig_NIPFilePath.push("private/magic_rare.nip");
//NTConfig_NIPFilePath.push("private/set.nip");
NTConfig_NIPFilePath.push("private/unique.nip");
//NTConfig_NIPFilePath.push("private/craft.nip");
//NTConfig_NIPFilePath.push("private/temp.nip");
Potions sind in der normal.nip festgelegt, dort sieht es so aus:
Code:
// ##### Potions #######################
[Name] == GreaterHealingPotion
[Name] == SuperHealingPotion
[Name] == GreaterManaPotion
[Name] == SuperManaPotion
[Name] == RejuvenationPotion
[Name] == FullRejuvenationPotion
Abgesehen von flawless und perfect diamonds und skulls sowie Gold ab 100 habe ich alles andere in dieser .nip ausgestellt.
Hat jemand eine Idee was das sein könnte/ wo ich nach einem Fehler suchen kann?
Das Problem tritt leider viel zu häufig auf als das man es ignorieren könnte....
In der SnagIt library war müsste noch ein Fehler sein, versuch es deshalb mal mit dieser hier, dann sollte das Problem nicht mehr auftreten:
Code:
/**
*	This file was modified by 
*	Check the programming section for updates and further scripts
*	Last Update: 12:56 09.05.2011
*/

var _NTSI_IgnoredList = new Array(
526, // Arrows quiver
528, // Bolts quiver
518, // Tome of Town Portal
519, // Tome of Identify
514, // Antidote potion
513, // Stamina potion
517, // Thawing potion
80, // Rancid Gas Pot
81, // Oil Potion
82, // Choking Gas Pot
83, // Exploding Pot
84, // Strangling Gas
85); // Fulminating Pot

function NTSI_LoadNIPFiles(filepath, checkNips)
{
	if(arguments.length < 2)
		checkNips = true;
	
	for(var i = 0; i < NTConfig_NIPFilePath.length; i++)
		NTIPOpenFile(filepath + "/" + NTConfig_NIPFilePath[i]);
		
	if(MWConfig_RunNipCheck && checkNips)
		MWIPCheckNips();
}

function NTSI_PickItems(pickValuables, flag)
{
	var i, _mode;

	if(pickValuables && !MWConfig_PickUpMoneymakers)
		return;
	
	for(i = 0 ; i < 25 ; i++)
	{
		_mode = me.mode;

		if((_mode >= 1 && _mode <= 3) || _mode == 5 || _mode == 6)
			break;

		NTC_Delay(NTC_DELAY_FRAME);
	}

	if(i < parseInt(NTConfig_SnagDelay/NTC_DELAY_FRAME))
		NTC_PingDelay(NTConfig_SnagDelay-(i*NTC_DELAY_FRAME));

	NTSI_SnagIt(pickValuables, flag);
}

function NTSI_SnagIt(pickValuables)
{
	var i, j;
	var _item;
	var _checkeditem, _checkeditems;
	var _value;
	var _minindex, _mindistance;
		
	if(arguments.length < 1)
		pickValuables = false;
	
	_item = NTC_FindUnit(NTC_UNIT_ITEM);

	if(!_item)
		return;

	_checkeditems = new Array();
	
	do
	{
		if(_item.mode == 3 || _item.mode == 5)
		{
			if(NTSI_IsIgnoredItemInt(_item.classid))
				continue;

			if(GetDistance(me, _item) <= NTConfig_SnagRange)
			{
				_value = NTSI_CheckItem(_item, true);

				if(_item.classid == 529 && MWConfig_MinimumTpScrollCount != 0 || _item.classid == 530 && MWConfig_MinimumIdScrollCount != 0 || _item.classid == 543 && MWConfig_CarryKeys)
					_value = 1;
					
				if(pickValuables && (_value == 0 || _value == 3) && MWSI_IsValuable(_item))
					_value = 4;
				
				if(_value != 0 && _value != 3)
				{
					_checkeditem = new NTSI_ItemInt(_item, _value);
					
					if(_checkeditem)
						_checkeditems.push(_checkeditem);
				}
			}
		}
	} while(_item.GetNext());
	
	while(_checkeditems.length > 0)
	{
		_mindistance = 100000;

		for(i = 0; i < _checkeditems.length; i++)
		{
			if(MWConfig_PickUpPriorityItemsFirst && !_checkeditems[i].HasPriority()) // If the item at index i is a low priority item
			{
				for(j = 0; j < _checkeditems.length; j++) // Loop through all items in pickup queue
				{
					if(j == i)
						continue;
					
					if(_checkeditems[j].HasPriority())
						break;
				}
				 // If the loop was aborted due to a high priority item in the pickup queue, skip the item at index i
				if(j < _checkeditems.length)
					continue;
			}
			
			_value = GetDistance(me.x, me.y, _checkeditems[i].x, _checkeditems[i].y);

			if(_value < _mindistance)
			{
				_minindex = i;
				_mindistance = _value;
			}
		}

		_checkeditem = _checkeditems.splice(_minindex, 1)[0];
		
		_item = NTC_FindUnit(NTC_UNIT_ITEM, _checkeditem.GID);

		if(_item)
		{
			if(!NTSI_IsLimitedItemInt(_item))
			{
				if(MWConfig_ShowOverheadStatus)
					MWC_PrintOverheadStatus("Picking up items...");
				
				if(NTT_CheckSpace(_item.xsize, _item.ysize) || _checkeditem.ClassID == 523 || _item.itemtype == 4 || _item.classid == 543 || _item.itemtype == 22 || _item.itemtype >= 76 && _item.itemtype <= 78)
				{
					MWI_WriteLoc(_item);
					
					if(NTSI_PickUpItemInt(_item)) 
					{
						if(_item && _item.name && _item.itemtype != 22 && _checkeditem.ClassID != 523 && _item.itemtype != 4 && _item.classid != 543)
						{
							if(_item.itemtype < 76 || _item.itemtype > 81)
							{
								Print("Picked up " + NTC_ItemQualityToD2Color[MWC_GetItemColorInt(_item)] + _item.name.split("\n")[0] + ((_checkeditem.Status == 4) ? " ÿc8[" + MWC_InsertDigitSeperator(_item.GetItemCost(1)) + "]" : ""));
								NTC_SendMsgToScript("MWBotGame.ntj", "SET_PICKED_1");
								
								if(!pickValuables)
								{
									if(MWSI_IsCommonLogItem(_item))
										NTC_SendMsgToScript("MWBotGame.ntj", "SET_COMMONITEM_" + _item.classid);
									
									if(_item.quality < 4 && _checkeditem.Status < 2)
									{
										if(MWConfig_UseXMLItemlog)
											MWI_WriteLog(_item, 0);
											
										if(_item.classid <= 609 || _item.classid >= ((MWConfig_LowestRuneToLog < 0 || MWConfig_LowestRuneToLog > 32) ? 0 : MWConfig_LowestRuneToLog) + 610)
											MWI_WriteManagerLog(_item, 0);
									}
								}
							}
							else if(MWConfig_ShowPotionPickups)
								Print("Picked up " + _item.name.split("\n")[0]);
						}
					}
				}
				else
				{
					if(!_checkeditem.Retry && !pickValuables)
					{
						_checkeditem.Retry = true;

						if(MWConfig_IdentAfterPickup)
							MWL_IDItemsAfterPickup(true);
						
						if(!NTT_CheckSpace(_checkeditem.xSize, _checkeditem.ySize))
						{
							if(!NTTMGR_VisitTown())
								return;
						}

						_checkeditems.push(_checkeditem);
					}
				}
			}
		}
	}
	
	if(MWConfig_IdentAfterPickup)
		MWL_IDItemsAfterPickup();
}

function NTSI_CheckItem(item, checkQuantity)
{
	var _result;
	
	if(arguments.length < 2)
		checkQuantity = false;

	switch(item.quality)
	{
	case 5:
	case 8:
		_result = NTIPCheckItem(item, checkQuantity);
		break;
	default:
		_result = NTIPCheckItem(item, checkQuantity);

		if(NTCU_CheckItem(item, _result))
			_result = 2;

		break;
	}
	
	if(item.itemflag&0x4000000)
		_result = 1;
	
	return _result;
}

// Internal function
function NTSI_ItemInt(item, checkedstatus)
{
	this.ClassID = item.classid;
	this.GID = item.gid;
	this.ItemType = item.itemtype;
	this.x = item.x;
	this.y = item.y;
	this.xSize = item.xsize;
	this.ySize = item.ysize;
	this.Status = checkedstatus;
	this.Retry = false;
	
	this.HasPriority = function()
	{
		if(this.ItemType >= 91 && this.ItemType <= 102 // Gem
			|| this.ItemType >= 76 && this.ItemType <= 81 // Potions
			|| this.ClassID == 543 || this.ItemType == 4 // Gold
			|| this.ClassID >= 610 && this.ClassID <= 629 // Runes <= FAL
			|| this.ClassID == 529 || this.ClassID == 530 // Scrolls
			|| this.ClassID == 543) // Keys
			return false;
			
		return true;
	}
}

function NTSI_PickUpItemInt(snagitem)
{
	var _classid;
	var _tome, _scrollPreCount;
	var _keys, _gold;
	
	_classid = snagitem.classid;
	
	// Save properties that will be invalidated at pickup
	_gold = snagitem.GetStat(14);
	_keys = snagitem.GetStat(70);
	
	// The successful pickup of a scroll is determined by the change of quantity
	if(_classid == 529 || _classid == 530)
	{
		_tome = NTT_GetTome(Math.abs(snagitem.classid - 530));
		
		if(!_tome)
			return false;
		
		_scrollPreCount = _tome.GetStat(70); // Save the quantity before pickup
	}

	for(var i = 0; i < 40; i++)
	{
		if((i % 10) == 0 && (snagitem.mode == 3 || snagitem.mode == 5))
		{
			if(MWConfig_UseTelekinesis && i < 20 && (_classid == 523 || snagitem.itemtype == 4 || _classid == 543 || _classid == 529 || _classid == 530 || snagitem.itemtype >= 76 && snagitem.itemtype <= 81) && NTC_GetSkillLevel(MWS_TELEKINESIS) > 0)
				MWC_CastTelekinesis(snagitem);
			else
			{
				if(GetDistance(me, snagitem) > 3)
					NTM_MoveTo(snagitem.areaid, snagitem.x, snagitem.y, 3, false, 0, false);

				if(NTC_ClearCursor())
					NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, snagitem);
			}
		}

		NTC_Delay(NTC_DELAY_FRAME);
		
		if(_classid == 529 || _classid == 530) // Scrolls
		{
			_tome = NTT_GetTome(Math.abs(_classid - 530));

			if(_tome && _tome.GetStat(70) != _scrollPreCount) // The scroll was picked up successfully if the quantity after pickup differs from the one before
				return true;
		}
		else if(_classid == 543) // Keys
		{
			if(snagitem.GetStat(70) == -1) // The quantity property turns to -1 after the key was picked
			{
				if(_keys > 1)
					Print("Picked up " + _keys + " Keys");
				else
					Print("Picked up Key");
					
				return true;
			}
		}
		else if(_classid == 523 || snagitem.itemtype == 4) // Gold
		{
			if(snagitem.GetStat(14) == -1) // The gold property turns to -1 after the gold was picked
			{
				if(MWConfig_ShowGoldPickupsPerScript)
					NTC_SendMsgToScript("MWBotGame.ntj", "SET_SCRIPTGOLD_" + _gold);
				if(MWConfig_ShowGoldPickups)
					Print("Picked up " + MWC_InsertDigitSeperator(_gold) + " Gold");
					
				return true;
			}
				
			if(i % 10 == 0 && NTC_CharGoldFull())
			{
				NTC_SendMsgToScript("MWBotGame.ntj", "STOP_STATUS_TEXT_UPDATE");
				SetStatusText("ÿc8Visiting Town...");
				NTTMGR_VisitTown();
				SetStatusText("ÿc8Done!");
				NTC_SendMsgToScript("MWBotGame.ntj", "SET_DEFAULT_STATUS");
			}
			
			return true;
		}
		else if(snagitem.mode != 3 && snagitem.mode != 5)
			return true;
	}

	return false;
}

function NTSI_IsIgnoredItemInt(classid)
{
	for(var i = 0 ; i < _NTSI_IgnoredList.length ; i++)
	{
		if(classid == _NTSI_IgnoredList[i])
			return true;
	}

	return false;
}

function NTSI_IsLimitedItemInt(item)
{
	var i;
	var _items, _tome, _keys;

	if(item.itemtype >= 76 && item.itemtype <= 78)
	{
		if(!MWT_IsPotionRequired(item.code))
			return true;
	}
	else if(item.quality == 7 && item.classid >= 603 && item.classid <= 605)
	{
		_items = me.GetItems(item.classid);

		if(_items.length > 0)
			return true;
	}
	else if(item.classid == 529 || item.classid == 530) // Scrolls
	{
		_tome = NTT_GetTome(Math.abs(item.classid - 530));

		if(!_tome || _tome.GetStat(70) == 20 || item.classid == 529 && _tome.GetStat(70) >= MWConfig_MinimumTpScrollCount || item.classid == 530 && _tome.GetStat(70) >= MWConfig_MinimumIdScrollCount)
			return true;
	}
	else if(item.classid == 543) // Keys
	{
		_keys = MWTMGR_GetKeyQuantity();
		
		if(_keys >= 12 || _keys + item.GetStat(70) > 12)
			return true;
	}
	else if(item.classid == NTC_UNIT_CUBE)
	{
		_items = me.GetItems(NTC_UNIT_CUBE);
		
		if(_items.length > 0)
			return true;
	}
	else if(NTSI_CheckItem(item, true) == 3)
		return true;
		
	return false;
}

function MWSI_PickupItem(search)
{
	var _item;
	
	if(arguments.length < 1)
		return false;
	
	_item = NTC_FindUnit(NTC_UNIT_ITEM);
	
	if(_item)
	{
		do
		{
			if(_item.classid == search || _item.gid == search || _item.name == search || _item.itemprefix == search || _item.itemsuffix == search)
			{
				if(NTT_CheckSpace(_item.xsize, _item.ysize) && NTSI_PickUpItemInt(_item))
				{
					MWI_WriteLoc(_item);
					
					Print("Picked up " + NTC_ItemQualityToD2Color[MWC_GetItemColorInt(_item)] + _item.name.split("\n")[0]);
					
					if(MWSI_IsCommonLogItem(_item))
						NTC_SendMsgToScript("MWBotGame.ntj", "SET_COMMONITEM_" + _item.classid);
						
					if(GetUIState(0x01) && me.itemoncursor)
					{
						NTCU_CheckCubeInventoryInt();
						NTCU_MoveItemToInventoryInt(_item);
					}
					
					return true;
				}
			}
		} while(_item.GetNext());
	}
	
	return false;
}

function MWSI_IsCommonLogItem(item)
{
	if(item.classid >= 610 && item.classid <= 642) // Rune
		return true;
		
	if(item.classid >= 647 && item.classid <= 657) // Key/Organ/Essence
		return true;
	
	if(item.itemtype >= 91 && item.itemtype <= 102) // Gem
		return true;
	
	return false;
}

function MWSI_IsValuable(item)
{
	if(item.quality >= 2)
	{
		if(item.itemtype == 12 || item.itemtype == 24 || item.itemtype == 25 && item.quality > 3 || item.itemtype == 74 && item.classid >= 622) // Amulets/Scepters/Wands/Runes >= SHAEL
			return true;
		
		if(item.itemclass >= 1)
		{
			switch(item.itemtype)
			{
				case 19: // Belts
				case 32: // Knives
				case 37: // Helms
				case 42: // Throwing Knives
				case 67: // Claws
					if(item.quality < 4)
						break;
				case 3: // Armors
				case 65: // Circlets
				case 68: // Orbs
					return true;
			}
		}
		
		if(item.itemclass >= 2)
		{
			switch(item.itemtype)
			{
				case 2: // Shields
				case 32: // Knives
				case 37: // Helms
				case 69: // Voodooheads
				case 72: // Pelts
					return true;
				case 15: // Boots
				case 16: // Gloves
				case 42: // Throwing Knives
				case 67: // Claws
					if(item.quality > 3)
						return true;
			}
		}
		
		switch(item.classid)
		{
			case 196: // Tomahawk
			case 210: // Truncheon
			case 214: // Tyrant Club
			case 215: // Reinforced Mace
			case 216: // Devil Star
			case 221: // Falcata
			case 222: // Ataghan
			case 223: // Elegant Blade
			case 224: // Hydra Edge
			case 226: // Conquest Sword
			case 227: // Cryptic Sword
			case 228: // Mythical Sword
			case 240: // Flying Axe
			case 259: // Walking Stick
			case 324: // Gothic Plate
			case 325: // Full Plate Mail
			case 326: // Ancient Armor
			case 498: // Sacred Target
			case 499: // Sacred Rondache
			case 502: // Vortex Shield
				return true;
		}
	}
	
	if(MWT_IsSellable(item) && item.GetItemCost(1) >= 25E3)
		return true;
	
	return false;
}
Quote:
Originally Posted by TheCrazy11 View Post
Bei mir bringt der Bot schon längers folgende Fehlermeldung:

Diese ist bis jetzt gekommen wenn im Cube noch ein PA, PS oder Baal-SC gelegen ist.
Kann nicht nachvollziehen, wann der Error kommt, kommt nur ca. alle 100 Games und auch immer bei unterschiedlichen Bots, haben alle die gleiche Cube- & Craft-Config:
Weiß aber nicht ob vor oder nach dem cuben, der Cube war auf jeden Fall immer offen.
Der Fehler nervt insofern, dass der eine Bot dadurch einfach hängt und die Games auf maxtime gehen.

Leider habe ich keine API-Referenz (D2NT/D2BS) gefunden, wo GetItems() dokumentiert ist.
Habe auch in der Ur-D2NT nachgesehen, da wird die name-Eigenschaft auch so verwendet wie bei Muddy's.

EDIT: Bei KingHigh scheint es das gleiche Problem zu sein, die Property name passt wohl nicht ganz?
"Passt wohl nicht ganz" ist der falsche Ausdruck, die Eigenschaft hat ganz einfach den Wert undefined. Das wäre an sich nicht problematisch, nur wird eben über diese Eigenschaft noch die Split() Methode der String Klasse aufgerufen und die lässt sich natürlich nur über ein String Objekt aufrufen.

Es sollte an sich schon reichen, wenn man einfach vor der Ausgabe kontrolliert, ob die Eigenschaft name definiert ist. Demnach müsste die Zeile davor, also Zeile 1672 so aussehen:
Code:
if(_cubeItems[0].name && (MWConfig_ShowCubedGemsInCommonLog || _cubeItems[0].itemtype < 91))
LG
Muddy
Muddy Waters is offline  
Thanks
5 Users
Old 05/24/2011, 23:56   #2062
 
elite*gold: 0
Join Date: Oct 2010
Posts: 211
Received Thanks: 44
Ah, dann hab ich das mit den Sockelrezepten gelesen und auf die Craftrezepte übertragen, dankeschön
Aceridos is offline  
Old 05/25/2011, 00:03   #2063
 
elite*gold: 0
Join Date: Aug 2009
Posts: 435
Received Thanks: 159
mir ist gerade was sehr seltsames passiert:

wollte wie von Gruener Apfel beschrieben mir mal die Leechscripte mit einbauen.

Hab mir also 2 Bot-scripte im "bots" Ordner erstellt und den von Gruener apfel genannten Inhalt eingefügt. ebenso mit dem Entrypoint und in der Charconfig. Nach einem Manager-Restart, kommt D2 aber nicht mal mehr über den Loading screen hinaus -.-
Passiert mir nicht zum ersten Mal. Also hab ich nur die beiden Bot-Scripte im "bots" Ordner wieder gelöscht und nach nem Manager-Restart funzte alles wie gehabt

Kann mir wer jetzt bitte erklären wieso das so ist? Ich kann mir absolut keine eigenen Scripte einfügen egal was drin steht, D2 bleibt beim Loading-screen stehen, "klickt" sich also nicht durch den Splash-Screen oder versucht überhaupt sich einzuloggen oder irgendwas
DeathFromHeaven is offline  
Old 05/25/2011, 00:08   #2064
 
elite*gold: 0
Join Date: Mar 2009
Posts: 382
Received Thanks: 45
war das nur bei den von mir geposteten scripten so, oder is das generell der fall ?

weil n fehler beim copy pasten habe ich eigentlich nicht gemacht und was vergessen habe ich, denke ich, auch net
GruenerApfel is offline  
Old 05/25/2011, 00:08   #2065
 
elite*gold: 0
Join Date: Apr 2011
Posts: 10
Received Thanks: 0
Quote:
Originally Posted by GruenerApfel View Post
von haus aus net ... gibt aber hier im forum diverse, kann dir aber zumindest die posten welche ich verwende

ntbotleech.ntj


baalleechfight.ntj


diabloleechfight.ntj


und in deiner charconfig musst du dann noch


einfügen

ich hoffe ich hab nix vergessen O_o
also das klappt so nicht, bekomme immer nen error, hat noch wer ne idee?
vor allem den part check ich nit MWConfig_Script.push(["", 5]); woher weiss der bot welches script er nutzen soll?

edit: ok scheint als wenn im ntbotleech.ntj script irgendwo nen syntax error is -.-
Rondo80 is offline  
Old 05/25/2011, 00:16   #2066
 
elite*gold: 0
Join Date: Mar 2009
Posts: 382
Received Thanks: 45
Quote:
Originally Posted by Rondo80 View Post
also das klappt so nicht, bekomme immer nen error, hat noch wer ne idee?
vor allem den part check ich nit MWConfig_Script.push(["", 5]); woher weiss der bot welches script er nutzen soll?
ja rofl -.- woher weiß ich wie du das script bei dir benannt hast ? O_o

wenn du die datei im bot ordner "baalleechfight.ntj" benannt hast, steht dort logischerweise dann MWConfig_Script.push(["baalleechfight.ntj", 5]);

das erste is der entrypoint ... sollte eigentlich klar sein
GruenerApfel is offline  
Old 05/25/2011, 00:52   #2067
 
elite*gold: 0
Join Date: Apr 2011
Posts: 10
Received Thanks: 0
ok habs jetzt anders gemacht und nehme jetzt für den leecher ne andere d2nt version, die aus dem public bot für dummies. Kann den syntax error leider nicht finden somit is das die einfachere Wahl
Rondo80 is offline  
Old 05/25/2011, 09:33   #2068
 
elite*gold: 0
Join Date: Mar 2010
Posts: 539
Received Thanks: 418
Quote:
Originally Posted by Muddy_Waters View Post
"Passt wohl nicht ganz" ist der falsche Ausdruck, die Eigenschaft hat ganz einfach den Wert undefined. Das wäre an sich nicht problematisch, nur wird eben über diese Eigenschaft noch die Split() Methode der String Klasse aufgerufen und die lässt sich natürlich nur über ein String Objekt aufrufen.

Es sollte an sich schon reichen, wenn man einfach vor der Ausgabe kontrolliert, ob die Eigenschaft name definiert ist. Demnach müsste die Zeile davor, also Zeile 1672 so aussehen:
Code:
if(_cubeItems[0].name && (MWConfig_ShowCubedGemsInCommonLog || _cubeItems[0].itemtype < 91))
LG
Muddy
Ach ja, hab vergessen zu erwähnen, dass ich die NTCubing.ntl nicht verändert hatte...

Habs jetzt eingebaut, überprüfen werde ich das nicht, mag keine extra else-Anweisung schreiben... xD

In Zeile 1762 kommt nochmals name.split() vor:
Code:
_NTCU_LogString += NTC_ItemQualityToD2Color[MWC_GetItemColorInt(_items[n])] + _items[n].name.split("\n")[0];
Habs durch folgendes ersetzt:
Code:
_NTCU_LogString += NTC_ItemQualityToD2Color[MWC_GetItemColorInt(_items[n])] + (_items[n].name) ? _items[n].name.split("\n")[0] : "_items[n].name not defined";
Dann steht einfach anstatt des Itemnamens "_items[n].name not defined".
(Ich weiß, ist dirty, aber so sieht man den Fehler, sollte er mal vorkommen...)


Da ich gerade dabei bin, was muss geändert werden, dass die gecrafteten Sachen verkauft werden und nicht gedroppt?
Habe da mal was von einem Bugfix gelesen, aber imho war das nur zur Fehlerbehebung, dass gar keine Items mehr verkauft werden?
TheCrazy11 is offline  
Old 05/25/2011, 09:59   #2069
 
elite*gold: 0
Join Date: Aug 2009
Posts: 435
Received Thanks: 159
Quote:
Originally Posted by GruenerApfel View Post
war das nur bei den von mir geposteten scripten so, oder is das generell der fall ?

weil n fehler beim copy pasten habe ich eigentlich nicht gemacht und was vergessen habe ich, denke ich, auch net
Nein, das ist Allgemein so, wenn ich eine neue Datei im "bots"-Ordner anlege, egal mit welchem Namen, und auch egal mit welchem Inhalt
DeathFromHeaven is offline  
Old 05/25/2011, 10:17   #2070
 
elite*gold: 0
Join Date: Aug 2004
Posts: 233
Received Thanks: 39
Quote:
In der SnagIt library war müsste noch ein Fehler sein, versuch es deshalb mal mit dieser hier, dann sollte das Problem nicht mehr auftreten:
Code:
/**
*	This file was modified by 
*	Check the programming section for updates and further scripts
*	Last Update: 12:56 09.05.2011
*/

var _NTSI_IgnoredList = new Array(
526, // Arrows quiver
528, // Bolts quiver
518, // Tome of Town Portal
519, // Tome of Identify
514, // Antidote potion
513, // Stamina potion
517, // Thawing potion
80, // Rancid Gas Pot
81, // Oil Potion
82, // Choking Gas Pot
83, // Exploding Pot
84, // Strangling Gas
85); // Fulminating Pot

function NTSI_LoadNIPFiles(filepath, checkNips)
{
	if(arguments.length < 2)
		checkNips = true;
	
	for(var i = 0; i < NTConfig_NIPFilePath.length; i++)
		NTIPOpenFile(filepath + "/" + NTConfig_NIPFilePath[i]);
		
	if(MWConfig_RunNipCheck && checkNips)
		MWIPCheckNips();
}

function NTSI_PickItems(pickValuables, flag)
{
	var i, _mode;

	if(pickValuables && !MWConfig_PickUpMoneymakers)
		return;
	
	for(i = 0 ; i < 25 ; i++)
	{
		_mode = me.mode;

		if((_mode >= 1 && _mode <= 3) || _mode == 5 || _mode == 6)
			break;

		NTC_Delay(NTC_DELAY_FRAME);
	}

	if(i < parseInt(NTConfig_SnagDelay/NTC_DELAY_FRAME))
		NTC_PingDelay(NTConfig_SnagDelay-(i*NTC_DELAY_FRAME));

	NTSI_SnagIt(pickValuables, flag);
}

function NTSI_SnagIt(pickValuables)
{
	var i, j;
	var _item;
	var _checkeditem, _checkeditems;
	var _value;
	var _minindex, _mindistance;
		
	if(arguments.length < 1)
		pickValuables = false;
	
	_item = NTC_FindUnit(NTC_UNIT_ITEM);

	if(!_item)
		return;

	_checkeditems = new Array();
	
	do
	{
		if(_item.mode == 3 || _item.mode == 5)
		{
			if(NTSI_IsIgnoredItemInt(_item.classid))
				continue;

			if(GetDistance(me, _item) <= NTConfig_SnagRange)
			{
				_value = NTSI_CheckItem(_item, true);

				if(_item.classid == 529 && MWConfig_MinimumTpScrollCount != 0 || _item.classid == 530 && MWConfig_MinimumIdScrollCount != 0 || _item.classid == 543 && MWConfig_CarryKeys)
					_value = 1;
					
				if(pickValuables && (_value == 0 || _value == 3) && MWSI_IsValuable(_item))
					_value = 4;
				
				if(_value != 0 && _value != 3)
				{
					_checkeditem = new NTSI_ItemInt(_item, _value);
					
					if(_checkeditem)
						_checkeditems.push(_checkeditem);
				}
			}
		}
	} while(_item.GetNext());
	
	while(_checkeditems.length > 0)
	{
		_mindistance = 100000;

		for(i = 0; i < _checkeditems.length; i++)
		{
			if(MWConfig_PickUpPriorityItemsFirst && !_checkeditems[i].HasPriority()) // If the item at index i is a low priority item
			{
				for(j = 0; j < _checkeditems.length; j++) // Loop through all items in pickup queue
				{
					if(j == i)
						continue;
					
					if(_checkeditems[j].HasPriority())
						break;
				}
				 // If the loop was aborted due to a high priority item in the pickup queue, skip the item at index i
				if(j < _checkeditems.length)
					continue;
			}
			
			_value = GetDistance(me.x, me.y, _checkeditems[i].x, _checkeditems[i].y);

			if(_value < _mindistance)
			{
				_minindex = i;
				_mindistance = _value;
			}
		}

		_checkeditem = _checkeditems.splice(_minindex, 1)[0];
		
		_item = NTC_FindUnit(NTC_UNIT_ITEM, _checkeditem.GID);

		if(_item)
		{
			if(!NTSI_IsLimitedItemInt(_item))
			{
				if(MWConfig_ShowOverheadStatus)
					MWC_PrintOverheadStatus("Picking up items...");
				
				if(NTT_CheckSpace(_item.xsize, _item.ysize) || _checkeditem.ClassID == 523 || _item.itemtype == 4 || _item.classid == 543 || _item.itemtype == 22 || _item.itemtype >= 76 && _item.itemtype <= 78)
				{
					MWI_WriteLoc(_item);
					
					if(NTSI_PickUpItemInt(_item)) 
					{
						if(_item && _item.name && _item.itemtype != 22 && _checkeditem.ClassID != 523 && _item.itemtype != 4 && _item.classid != 543)
						{
							if(_item.itemtype < 76 || _item.itemtype > 81)
							{
								Print("Picked up " + NTC_ItemQualityToD2Color[MWC_GetItemColorInt(_item)] + _item.name.split("\n")[0] + ((_checkeditem.Status == 4) ? " ÿc8[" + MWC_InsertDigitSeperator(_item.GetItemCost(1)) + "]" : ""));
								NTC_SendMsgToScript("MWBotGame.ntj", "SET_PICKED_1");
								
								if(!pickValuables)
								{
									if(MWSI_IsCommonLogItem(_item))
										NTC_SendMsgToScript("MWBotGame.ntj", "SET_COMMONITEM_" + _item.classid);
									
									if(_item.quality < 4 && _checkeditem.Status < 2)
									{
										if(MWConfig_UseXMLItemlog)
											MWI_WriteLog(_item, 0);
											
										if(_item.classid <= 609 || _item.classid >= ((MWConfig_LowestRuneToLog < 0 || MWConfig_LowestRuneToLog > 32) ? 0 : MWConfig_LowestRuneToLog) + 610)
											MWI_WriteManagerLog(_item, 0);
									}
								}
							}
							else if(MWConfig_ShowPotionPickups)
								Print("Picked up " + _item.name.split("\n")[0]);
						}
					}
				}
				else
				{
					if(!_checkeditem.Retry && !pickValuables)
					{
						_checkeditem.Retry = true;

						if(MWConfig_IdentAfterPickup)
							MWL_IDItemsAfterPickup(true);
						
						if(!NTT_CheckSpace(_checkeditem.xSize, _checkeditem.ySize))
						{
							if(!NTTMGR_VisitTown())
								return;
						}

						_checkeditems.push(_checkeditem);
					}
				}
			}
		}
	}
	
	if(MWConfig_IdentAfterPickup)
		MWL_IDItemsAfterPickup();
}

function NTSI_CheckItem(item, checkQuantity)
{
	var _result;
	
	if(arguments.length < 2)
		checkQuantity = false;

	switch(item.quality)
	{
	case 5:
	case 8:
		_result = NTIPCheckItem(item, checkQuantity);
		break;
	default:
		_result = NTIPCheckItem(item, checkQuantity);

		if(NTCU_CheckItem(item, _result))
			_result = 2;

		break;
	}
	
	if(item.itemflag&0x4000000)
		_result = 1;
	
	return _result;
}

// Internal function
function NTSI_ItemInt(item, checkedstatus)
{
	this.ClassID = item.classid;
	this.GID = item.gid;
	this.ItemType = item.itemtype;
	this.x = item.x;
	this.y = item.y;
	this.xSize = item.xsize;
	this.ySize = item.ysize;
	this.Status = checkedstatus;
	this.Retry = false;
	
	this.HasPriority = function()
	{
		if(this.ItemType >= 91 && this.ItemType <= 102 // Gem
			|| this.ItemType >= 76 && this.ItemType <= 81 // Potions
			|| this.ClassID == 543 || this.ItemType == 4 // Gold
			|| this.ClassID >= 610 && this.ClassID <= 629 // Runes <= FAL
			|| this.ClassID == 529 || this.ClassID == 530 // Scrolls
			|| this.ClassID == 543) // Keys
			return false;
			
		return true;
	}
}

function NTSI_PickUpItemInt(snagitem)
{
	var _classid;
	var _tome, _scrollPreCount;
	var _keys, _gold;
	
	_classid = snagitem.classid;
	
	// Save properties that will be invalidated at pickup
	_gold = snagitem.GetStat(14);
	_keys = snagitem.GetStat(70);
	
	// The successful pickup of a scroll is determined by the change of quantity
	if(_classid == 529 || _classid == 530)
	{
		_tome = NTT_GetTome(Math.abs(snagitem.classid - 530));
		
		if(!_tome)
			return false;
		
		_scrollPreCount = _tome.GetStat(70); // Save the quantity before pickup
	}

	for(var i = 0; i < 40; i++)
	{
		if((i % 10) == 0 && (snagitem.mode == 3 || snagitem.mode == 5))
		{
			if(MWConfig_UseTelekinesis && i < 20 && (_classid == 523 || snagitem.itemtype == 4 || _classid == 543 || _classid == 529 || _classid == 530 || snagitem.itemtype >= 76 && snagitem.itemtype <= 81) && NTC_GetSkillLevel(MWS_TELEKINESIS) > 0)
				MWC_CastTelekinesis(snagitem);
			else
			{
				if(GetDistance(me, snagitem) > 3)
					NTM_MoveTo(snagitem.areaid, snagitem.x, snagitem.y, 3, false, 0, false);

				if(NTC_ClearCursor())
					NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, snagitem);
			}
		}

		NTC_Delay(NTC_DELAY_FRAME);
		
		if(_classid == 529 || _classid == 530) // Scrolls
		{
			_tome = NTT_GetTome(Math.abs(_classid - 530));

			if(_tome && _tome.GetStat(70) != _scrollPreCount) // The scroll was picked up successfully if the quantity after pickup differs from the one before
				return true;
		}
		else if(_classid == 543) // Keys
		{
			if(snagitem.GetStat(70) == -1) // The quantity property turns to -1 after the key was picked
			{
				if(_keys > 1)
					Print("Picked up " + _keys + " Keys");
				else
					Print("Picked up Key");
					
				return true;
			}
		}
		else if(_classid == 523 || snagitem.itemtype == 4) // Gold
		{
			if(snagitem.GetStat(14) == -1) // The gold property turns to -1 after the gold was picked
			{
				if(MWConfig_ShowGoldPickupsPerScript)
					NTC_SendMsgToScript("MWBotGame.ntj", "SET_SCRIPTGOLD_" + _gold);
				if(MWConfig_ShowGoldPickups)
					Print("Picked up " + MWC_InsertDigitSeperator(_gold) + " Gold");
					
				return true;
			}
				
			if(i % 10 == 0 && NTC_CharGoldFull())
			{
				NTC_SendMsgToScript("MWBotGame.ntj", "STOP_STATUS_TEXT_UPDATE");
				SetStatusText("ÿc8Visiting Town...");
				NTTMGR_VisitTown();
				SetStatusText("ÿc8Done!");
				NTC_SendMsgToScript("MWBotGame.ntj", "SET_DEFAULT_STATUS");
			}
			
			return true;
		}
		else if(snagitem.mode != 3 && snagitem.mode != 5)
			return true;
	}

	return false;
}

function NTSI_IsIgnoredItemInt(classid)
{
	for(var i = 0 ; i < _NTSI_IgnoredList.length ; i++)
	{
		if(classid == _NTSI_IgnoredList[i])
			return true;
	}

	return false;
}

function NTSI_IsLimitedItemInt(item)
{
	var i;
	var _items, _tome, _keys;

	if(item.itemtype >= 76 && item.itemtype <= 78)
	{
		if(!MWT_IsPotionRequired(item.code))
			return true;
	}
	else if(item.quality == 7 && item.classid >= 603 && item.classid <= 605)
	{
		_items = me.GetItems(item.classid);

		if(_items.length > 0)
			return true;
	}
	else if(item.classid == 529 || item.classid == 530) // Scrolls
	{
		_tome = NTT_GetTome(Math.abs(item.classid - 530));

		if(!_tome || _tome.GetStat(70) == 20 || item.classid == 529 && _tome.GetStat(70) >= MWConfig_MinimumTpScrollCount || item.classid == 530 && _tome.GetStat(70) >= MWConfig_MinimumIdScrollCount)
			return true;
	}
	else if(item.classid == 543) // Keys
	{
		_keys = MWTMGR_GetKeyQuantity();
		
		if(_keys >= 12 || _keys + item.GetStat(70) > 12)
			return true;
	}
	else if(item.classid == NTC_UNIT_CUBE)
	{
		_items = me.GetItems(NTC_UNIT_CUBE);
		
		if(_items.length > 0)
			return true;
	}
	else if(NTSI_CheckItem(item, true) == 3)
		return true;
		
	return false;
}

function MWSI_PickupItem(search)
{
	var _item;
	
	if(arguments.length < 1)
		return false;
	
	_item = NTC_FindUnit(NTC_UNIT_ITEM);
	
	if(_item)
	{
		do
		{
			if(_item.classid == search || _item.gid == search || _item.name == search || _item.itemprefix == search || _item.itemsuffix == search)
			{
				if(NTT_CheckSpace(_item.xsize, _item.ysize) && NTSI_PickUpItemInt(_item))
				{
					MWI_WriteLoc(_item);
					
					Print("Picked up " + NTC_ItemQualityToD2Color[MWC_GetItemColorInt(_item)] + _item.name.split("\n")[0]);
					
					if(MWSI_IsCommonLogItem(_item))
						NTC_SendMsgToScript("MWBotGame.ntj", "SET_COMMONITEM_" + _item.classid);
						
					if(GetUIState(0x01) && me.itemoncursor)
					{
						NTCU_CheckCubeInventoryInt();
						NTCU_MoveItemToInventoryInt(_item);
					}
					
					return true;
				}
			}
		} while(_item.GetNext());
	}
	
	return false;
}

function MWSI_IsCommonLogItem(item)
{
	if(item.classid >= 610 && item.classid <= 642) // Rune
		return true;
		
	if(item.classid >= 647 && item.classid <= 657) // Key/Organ/Essence
		return true;
	
	if(item.itemtype >= 91 && item.itemtype <= 102) // Gem
		return true;
	
	return false;
}

function MWSI_IsValuable(item)
{
	if(item.quality >= 2)
	{
		if(item.itemtype == 12 || item.itemtype == 24 || item.itemtype == 25 && item.quality > 3 || item.itemtype == 74 && item.classid >= 622) // Amulets/Scepters/Wands/Runes >= SHAEL
			return true;
		
		if(item.itemclass >= 1)
		{
			switch(item.itemtype)
			{
				case 19: // Belts
				case 32: // Knives
				case 37: // Helms
				case 42: // Throwing Knives
				case 67: // Claws
					if(item.quality < 4)
						break;
				case 3: // Armors
				case 65: // Circlets
				case 68: // Orbs
					return true;
			}
		}
		
		if(item.itemclass >= 2)
		{
			switch(item.itemtype)
			{
				case 2: // Shields
				case 32: // Knives
				case 37: // Helms
				case 69: // Voodooheads
				case 72: // Pelts
					return true;
				case 15: // Boots
				case 16: // Gloves
				case 42: // Throwing Knives
				case 67: // Claws
					if(item.quality > 3)
						return true;
			}
		}
		
		switch(item.classid)
		{
			case 196: // Tomahawk
			case 210: // Truncheon
			case 214: // Tyrant Club
			case 215: // Reinforced Mace
			case 216: // Devil Star
			case 221: // Falcata
			case 222: // Ataghan
			case 223: // Elegant Blade
			case 224: // Hydra Edge
			case 226: // Conquest Sword
			case 227: // Cryptic Sword
			case 228: // Mythical Sword
			case 240: // Flying Axe
			case 259: // Walking Stick
			case 324: // Gothic Plate
			case 325: // Full Plate Mail
			case 326: // Ancient Armor
			case 498: // Sacred Target
			case 499: // Sacred Rondache
			case 502: // Vortex Shield
				return true;
		}
	}
	
	if(MWT_IsSellable(item) && item.GetItemCost(1) >= 25E3)
		return true;
	
	return false;
}
Ich habe die Snagit ersetzt und dann kam ein fehler:
Zeile 88 in der NTBotGame.ntl
letsid is offline  
Reply


Similar Threads Similar Threads
[Release] D2NT 3.1 1.13c
07/17/2016 - Diablo 2 - 91 Replies
hi, hab eben den d2nt3.1 gefunden. ein neues baba script is dabei. release thread eon D2NT3.1
[Realease] Muddy's Waypoint Catcher
08/21/2013 - Diablo 2 Programming - 46 Replies
Moin zusammen, hier mal die erste Release Version eines kleinen Scripts genannt Waypoint Catcher. Das ganze ist jetzt nichtmal 24h alt, dementsprechend sind vermutlich noch einige Bugs vorhanden. Hinweise dazu nehme ich gerne entgegen. ;) Features: - Suchen sämtlicher Wegpunkte mit Ausnahme, wobei in Akt ein durch Probleme im Jail Bereich nach dem Wegpunkt Outer Cloister abgebrochen wird - Wahlweise auch mit TP an jedem gefundenen Wp, sodass man damit auch anderen (nicht-Bots) die...
[D2NT] Long Dia Release
05/10/2011 - Diablo 2 Programming - 28 Replies
Ein kleines Script für diablo, es startet beim eingang macht ein tp cleart den weg zum star macht am star noch ein tp dann läufts wie das normale nur cleart es schöner :) hoffe euch gefällts ich habs noch nicht wirklich getestet (2-3 runs) bugs können gerne hier gepostet werden verbesserungs vorschläge auch :D installation: 1.)Script in den Bot ordner kopieren 2.)Script im editor oder vergleichbaren öffnen 3.) Msg´s anpassen (ist nicht schwer) 4.) in der char config die zeile...
D2NT 3.0 Pickit release
10/22/2010 - Diablo 2 - 77 Replies
edit
Muddy's D2NT Help
07/29/2010 - Diablo 2 - 3 Replies
hi i just started to use the bot it work's great. how do i set up the skill's i use on my Sorc and pick up itme's? ..... if you reply to this post please use english



All times are GMT +1. The time now is 05:47.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.