Register for your free account! | Forgot your password?

You last visited: Today at 02:15

  • 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 04/29/2011, 15:20   #1591
 
elite*gold: 0
Join Date: Nov 2010
Posts: 36
Received Thanks: 16
Kurzer Auszug aus der Datei, 2h botten mit 3 Bots, 34MB!


Code:
[13:35:41] 
Current Area: 110
_item.act [undefined] == undefined
_item.areaid [number] == 110
_item.classid [number] == 523
_item.code [undefined] == undefined
_item.gid [number] == 2423664725
_item.hp [undefined] == undefined
_item.hpmax [undefined] == undefined
_item.itemclass [undefined] == undefined
_item.itemdesc [undefined] == undefined
_item.itemflag [number] == 10493968
_item.itemlevel [number] == 1
_item.itemloc [undefined] == undefined
_item.itemprefix [undefined] == undefined
_item.itemsuffix [undefined] == undefined
_item.itemtype [number] == 4
_item.mode [number] == 3
_item.mp [undefined] == undefined
_item.mpmax [undefined] == undefined
_item.name [undefined] == undefined
_item.quality [number] == 2
_item.shrinetype [undefined] == undefined
_item.spectype [undefined] == undefined
_item.subareaid [undefined] == undefined
_item.type [undefined] == undefined
_item.x [number] == 3901
_item.xsize [number] == 1
_item.y [number] == 5116
_item.ysize [number] == 1
[13:35:41] 
Current Area: 110
_item.act [undefined] == undefined
_item.areaid [number] == 110
_item.classid [number] == 523
_item.code [undefined] == undefined
_item.gid [number] == 2423664725
_item.hp [undefined] == undefined
_item.hpmax [undefined] == undefined
_item.itemclass [undefined] == undefined
_item.itemdesc [undefined] == undefined
_item.itemflag [number] == 10493968
_item.itemlevel [number] == 1
_item.itemloc [undefined] == undefined
_item.itemprefix [undefined] == undefined
_item.itemsuffix [undefined] == undefined
_item.itemtype [number] == 4
_item.mode [number] == 3
_item.mp [undefined] == undefined
_item.mpmax [undefined] == undefined
_item.name [undefined] == undefined
_item.quality [number] == 2
_item.shrinetype [undefined] == undefined
_item.spectype [undefined] == undefined
_item.subareaid [undefined] == undefined
_item.type [undefined] == undefined
_item.x [number] == 3901
_item.xsize [number] == 1
_item.y [number] == 5116
_item.ysize [number] == 1
[13:35:41] 
Current Area: 110
_item.act [undefined] == undefined
_item.areaid [number] == 110
_item.classid [number] == 523
_item.code [undefined] == undefined
_item.gid [number] == 2423664725
_item.hp [undefined] == undefined
_item.hpmax [undefined] == undefined
_item.itemclass [undefined] == undefined
_item.itemdesc [undefined] == undefined
_item.itemflag [number] == 10493968
_item.itemlevel [number] == 1
_item.itemloc [undefined] == undefined
_item.itemprefix [undefined] == undefined
_item.itemsuffix [undefined] == undefined
_item.itemtype [number] == 4
_item.mode [number] == 3
_item.mp [undefined] == undefined
_item.mpmax [undefined] == undefined
_item.name [undefined] == undefined
_item.quality [number] == 2
_item.shrinetype [undefined] == undefined
_item.spectype [undefined] == undefined
_item.subareaid [undefined] == undefined
_item.type [undefined] == undefined
_item.x [number] == 3901
_item.xsize [number] == 1
_item.y [number] == 5116
_item.ysize [number] == 1
[13:35:41] 
Current Area: 110
_item.act [undefined] == undefined
_item.areaid [number] == 110
_item.classid [number] == 523
_item.code [undefined] == undefined
_item.gid [number] == 2423664725
_item.hp [undefined] == undefined
_item.hpmax [undefined] == undefined
_item.itemclass [undefined] == undefined
_item.itemdesc [undefined] == undefined
_item.itemflag [number] == 10493968
_item.itemlevel [number] == 1
_item.itemloc [undefined] == undefined
_item.itemprefix [undefined] == undefined
_item.itemsuffix [undefined] == undefined
_item.itemtype [number] == 4
_item.mode [number] == 3
_item.mp [undefined] == undefined
_item.mpmax [undefined] == undefined
_item.name [undefined] == undefined
_item.quality [number] == 2
_item.shrinetype [undefined] == undefined
_item.spectype [undefined] == undefined
_item.subareaid [undefined] == undefined
_item.type [undefined] == undefined
_item.x [number] == 3901
_item.xsize [number] == 1
_item.y [number] == 5116
_item.ysize [number] == 1
Wie gesagt liegt im Scripts Ordner, wo auch die Eni-Resets mitgeloggt werden.

Hier n Auszug aus der NTSnagIt, der einzige Ort, wo ich was zu gefunden hab. Wir hatten nichts nachträglich editiert, letztes Update war der NipChecker.

Code:
				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)
						{
							if(_item.itemtype < 76 || _item.itemtype > 81) // All items except potions
							{
								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 && 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
						{
							var _propString = "\nCurrent Area: " + me.areaid;
							
							for(var z in _item)
								_propString += "\n_item." + z + " [" +  (typeof _item[z]) + "] == " + _item[z];
							
							MWC_WriteToTextfile(_propString, "ItemErrors.txt", 2, true);
						}
					}
				}
				else
lafaro is offline  
Old 04/29/2011, 15:42   #1592
 
elite*gold: 0
Join Date: Dec 2010
Posts: 152
Received Thanks: 23
Quote:
das telen an sich würd weniger stören wenn er auch mal hammern würde.
die hammer treffen gut, aber wenn ich dann seh, dass er zum legen eines mobs aus 6 monstern nur 2 hammer gecastet hat ist das doch ziemlich ernüchternd. was ich sagen will: er könnte so viel schneller sein. ^^
hab noch keine lösung gefunden. hammert immer noch wenig.


mir ist noch was aufgefallen. wenn man channel announcements einschaltet gibt er tatsächlich nur für jedes zweite game eine nachricht.
tonk1 is offline  
Old 04/29/2011, 17:32   #1593
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,654
Quote:
Originally Posted by Gaterrrr View Post
Erstmal: Super Bot, gefällt mir sehr gut und genauso lobenswert finde ich, dass du den Bot bis heute supportest!

Frage: Inwiefern ist die Assasine "unfertig"? Mir würde da nur einfallen, dass die Assa nach Gegnern scannt, und das auch durch Wände, und eben versucht Traps zu legen, was natürlich durch Wände nicht funktioniert und dann erst die 20 Sekunden vergehen müssen, bis er zum nächsten Gegner geht.

Keep up the great work!
Schau dir mal an.

Quote:
Originally Posted by lafaro View Post
Kurzer Auszug aus der Datei, 2h botten mit 3 Bots, 34MB!


Code:
[13:35:41] 
Current Area: 110
_item.act [undefined] == undefined
_item.areaid [number] == 110
_item.classid [number] == 523
_item.code [undefined] == undefined
_item.gid [number] == 2423664725
_item.hp [undefined] == undefined
_item.hpmax [undefined] == undefined
_item.itemclass [undefined] == undefined
_item.itemdesc [undefined] == undefined
_item.itemflag [number] == 10493968
_item.itemlevel [number] == 1
_item.itemloc [undefined] == undefined
_item.itemprefix [undefined] == undefined
_item.itemsuffix [undefined] == undefined
_item.itemtype [number] == 4
_item.mode [number] == 3
_item.mp [undefined] == undefined
_item.mpmax [undefined] == undefined
_item.name [undefined] == undefined
_item.quality [number] == 2
_item.shrinetype [undefined] == undefined
_item.spectype [undefined] == undefined
_item.subareaid [undefined] == undefined
_item.type [undefined] == undefined
_item.x [number] == 3901
_item.xsize [number] == 1
_item.y [number] == 5116
_item.ysize [number] == 1
[13:35:41] 
Current Area: 110
_item.act [undefined] == undefined
_item.areaid [number] == 110
_item.classid [number] == 523
_item.code [undefined] == undefined
_item.gid [number] == 2423664725
_item.hp [undefined] == undefined
_item.hpmax [undefined] == undefined
_item.itemclass [undefined] == undefined
_item.itemdesc [undefined] == undefined
_item.itemflag [number] == 10493968
_item.itemlevel [number] == 1
_item.itemloc [undefined] == undefined
_item.itemprefix [undefined] == undefined
_item.itemsuffix [undefined] == undefined
_item.itemtype [number] == 4
_item.mode [number] == 3
_item.mp [undefined] == undefined
_item.mpmax [undefined] == undefined
_item.name [undefined] == undefined
_item.quality [number] == 2
_item.shrinetype [undefined] == undefined
_item.spectype [undefined] == undefined
_item.subareaid [undefined] == undefined
_item.type [undefined] == undefined
_item.x [number] == 3901
_item.xsize [number] == 1
_item.y [number] == 5116
_item.ysize [number] == 1
[13:35:41] 
Current Area: 110
_item.act [undefined] == undefined
_item.areaid [number] == 110
_item.classid [number] == 523
_item.code [undefined] == undefined
_item.gid [number] == 2423664725
_item.hp [undefined] == undefined
_item.hpmax [undefined] == undefined
_item.itemclass [undefined] == undefined
_item.itemdesc [undefined] == undefined
_item.itemflag [number] == 10493968
_item.itemlevel [number] == 1
_item.itemloc [undefined] == undefined
_item.itemprefix [undefined] == undefined
_item.itemsuffix [undefined] == undefined
_item.itemtype [number] == 4
_item.mode [number] == 3
_item.mp [undefined] == undefined
_item.mpmax [undefined] == undefined
_item.name [undefined] == undefined
_item.quality [number] == 2
_item.shrinetype [undefined] == undefined
_item.spectype [undefined] == undefined
_item.subareaid [undefined] == undefined
_item.type [undefined] == undefined
_item.x [number] == 3901
_item.xsize [number] == 1
_item.y [number] == 5116
_item.ysize [number] == 1
[13:35:41] 
Current Area: 110
_item.act [undefined] == undefined
_item.areaid [number] == 110
_item.classid [number] == 523
_item.code [undefined] == undefined
_item.gid [number] == 2423664725
_item.hp [undefined] == undefined
_item.hpmax [undefined] == undefined
_item.itemclass [undefined] == undefined
_item.itemdesc [undefined] == undefined
_item.itemflag [number] == 10493968
_item.itemlevel [number] == 1
_item.itemloc [undefined] == undefined
_item.itemprefix [undefined] == undefined
_item.itemsuffix [undefined] == undefined
_item.itemtype [number] == 4
_item.mode [number] == 3
_item.mp [undefined] == undefined
_item.mpmax [undefined] == undefined
_item.name [undefined] == undefined
_item.quality [number] == 2
_item.shrinetype [undefined] == undefined
_item.spectype [undefined] == undefined
_item.subareaid [undefined] == undefined
_item.type [undefined] == undefined
_item.x [number] == 3901
_item.xsize [number] == 1
_item.y [number] == 5116
_item.ysize [number] == 1
Wie gesagt liegt im Scripts Ordner, wo auch die Eni-Resets mitgeloggt werden.

Hier n Auszug aus der NTSnagIt, der einzige Ort, wo ich was zu gefunden hab. Wir hatten nichts nachträglich editiert, letztes Update war der NipChecker.

Code:
				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)
						{
							if(_item.itemtype < 76 || _item.itemtype > 81) // All items except potions
							{
								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 && 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]);
						}
						[COLOR="Red"]else
						{
							var _propString = "\nCurrent Area: " + me.areaid;
							
							for(var z in _item)
								_propString += "\n_item." + z + " [" +  (typeof _item[z]) + "] == " + _item[z];
							
							MWC_WriteToTextfile(_propString, "ItemErrors.txt", 2, true);
						}[/COLOR]
					}
				}
				else
Muss irgend eine Debug Ausgabe sein. Einfach den markierten else-Zweig komplett entfernen.

Bei mir habe ich die wohl schon entfernt, vielleicht ist sie beim Nip Check noch aus irgend einem Grund drin.

Quote:
Originally Posted by tonk1 View Post
hab noch keine lösung gefunden. hammert immer noch wenig.


mir ist noch was aufgefallen. wenn man channel announcements einschaltet gibt er tatsächlich nur für jedes zweite game eine nachricht.
An der Config hast du auch nicht groß was geändert?

Bei den Channel Announcements ist es wichtig, dass dein Char nicht zu schnell wieder Spiele erstellt, ansonsten kann das nicht funktionieren.
Aber dann sollte es - Restarts ausgeschlossen - eigentlich immer funktionieren.

LG
Muddy
Muddy Waters is offline  
Thanks
2 Users
Old 04/29/2011, 17:44   #1594
 
elite*gold: 0
Join Date: Dec 2010
Posts: 152
Received Thanks: 23
falls du die ntattack meinst,
an der config hab ich genau genommen gar nix verändert.

char config is auch normal. so eingestellt, dass er pub dia runnen kann.
so gut wie gar nicht modifiziert, nur das, was eh muss. ^^
tonk1 is offline  
Old 04/29/2011, 18:17   #1595
 
elite*gold: 0
Join Date: Apr 2011
Posts: 3
Received Thanks: 0
Moin, hätte mal eine Frage bezüglich der NTNihlathak.ntj. ist es möglich den Bot gleich durch das Rote Portal zu schicken bzw. Nihlathak auszulassen ?

MfG Stephan
jentownhh is offline  
Old 04/29/2011, 19:36   #1596
 
elite*gold: 0
Join Date: Apr 2011
Posts: 15
Received Thanks: 0
Situation: Ich habe zwei Bots am Laufen
Problem: Beim D2NT Manager, in der Item Log werden die behaltenen Items nur unvollständig angezeigt; von beiden Charakteren jeweils nur einen Teil, aber eben nicht vollständig. Da wird mal eine Essence nicht geloggt, oder eine Um-Rune...
Lösung: ?
Gaterrrr is offline  
Old 04/29/2011, 20:11   #1597
 
elite*gold: 0
Join Date: Dec 2010
Posts: 152
Received Thanks: 23
@jentownhh willst du pindle laufen lassen?

wenn ja, für den gibts nen extra skript:
NTConfig_Script.push("NTPindleskin.ntj"); NTConfig_NihlathakExtension = false;

is bei muddy's gar nich dabei, aber das skript is im bot ordner.
einfach bei deinen runs reinkopieren. sollte laufen. ^^

@Gaterrrr
haste die items auch bei dir in der pickit?
oder haste die vlt zum cuben vorgesehen?
wenn er runen cubt zeigt er die zum cuben benötigten runen nicht im log an, das ist dann aber normal. ^^
tonk1 is offline  
Thanks
1 User
Old 04/29/2011, 22:38   #1598
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,654
Quote:
Originally Posted by tonk1 View Post
falls du die ntattack meinst,
an der config hab ich genau genommen gar nix verändert.

char config is auch normal. so eingestellt, dass er pub dia runnen kann.
so gut wie gar nicht modifiziert, nur das, was eh muss. ^^
In dem Fall ist aber für mich extrem schwer nachvollziehbar, warum das bei dir nicht funktioniert - denn bei mir tut es das schließlich.

Ich werde mir den Part trotzdem nochmal ansehen, grundsätzlich ist es aber normal, dass der Char verschiedene, zufällig ausgewählte Angriffspositionen ansteuert, aber es kann natürlich gut sein, dass in dem Teil noch Fehler enthalten sind.

Bitte benutz den Button oder sammel Quotes mit dem Button, das geht jedenfalls ohne Doppelpost.

Quote:
Originally Posted by jentownhh View Post
Moin, hätte mal eine Frage bezüglich der NTNihlathak.ntj. ist es möglich den Bot gleich durch das Rote Portal zu schicken bzw. Nihlathak auszulassen ?

MfG Stephan
Siehe unten, so ergibt die Frage aus meiner Sicht keinen Sinn, vielleicht hast du was verwechselt.

Quote:
Originally Posted by Gaterrrr View Post
Situation: Ich habe zwei Bots am Laufen
Problem: Beim D2NT Manager, in der Item Log werden die behaltenen Items nur unvollständig angezeigt; von beiden Charakteren jeweils nur einen Teil, aber eben nicht vollständig. Da wird mal eine Essence nicht geloggt, oder eine Um-Rune...
Lösung: ?
Ich denke ebenfalls, dass die Items einfach zum Cuben aufgehoben werden.
In diesem Fall, werden diese direkt beim Fund nicht im Log vermerkt.

LG
Muddy
Muddy Waters is offline  
Old 04/29/2011, 23:10   #1599
 
elite*gold: 0
Join Date: Mar 2010
Posts: 87
Received Thanks: 1
der Itemlog Error tritt leider immer noch nicht und ich weiß beim besten willen nicht warum, log is richtig erstellt, hat ja beim 1.13 auch geklappt. Komisch dass ich der einzige bin der dieses problem hat, hatte ja auch schon den bot neu geladen usw, sieht halt blöd aus und hätte auch sehr sehr gerne den log gesehen um zu gucken wo was droppt.
19Miami is offline  
Old 04/30/2011, 00:20   #1600
 
elite*gold: 0
Join Date: Jul 2006
Posts: 469
Received Thanks: 235
So ich hab mir was nettes zur Leecher Thematik überlegt. Wiess nicht mehr wieviel davon von mir ist und was von anderen ist, aber das geniale daran:

Man trägt die Leecher und den Leader einfach in der NTBot.ntj ein und braucht keinen extra EntryPoint, oder sonst was gross anzugeben (ok PW muss man auch angeben ) und die Leecher leechen dann und der Leader und alle anderen machen normal Runs. Könnte man auch leicht erweitern um jedem Leecher nen eignen Leader zu geben, aber das brauch ich halt eben nicht.

Lange Rede kurzer Sinn: Sollte recht einfach zu ergänzen sein da's nur ein "if .. else .." ist und ein paar Variablen in der NTBot.ntj

Variablen (zum selber definieren):
Code:
[COLOR="Green"]// Leech settings[/COLOR]
[B][I][COLOR="Navy"]var [/COLOR][/I][/B]LeaderAccountName = [COLOR="DimGray"]"DefaultAccount"[/COLOR];	[COLOR="Green"]// leader account name here[/COLOR]
[B][I][COLOR="Navy"]var [/COLOR][/I][/B]LeaderGamePW = [COLOR="DimGray"]"default"[/COLOR];			[COLOR="Green"]// The password used for the games you want to join[/COLOR]
[COLOR="Navy"][B][I]var [/I][/B][/COLOR]LeecherAccounts = [[COLOR="DimGray"]"DefaultAccount"[/COLOR]];	[COLOR="Green"]// List ALL accounts that use leechscript[/COLOR]
Der Teil gehört über das "// DONT EDIT ANYTHING BELOW THIS"

Variablen (vorgegeben)/Initialisierung:
Code:
[COLOR="Green"]// Set Leecher Settings[/COLOR]
[B][I][COLOR="Navy"]var [/COLOR][/I][/B]isLeecher = [I][B][COLOR="Navy"]false[/COLOR][/B][/I];
[B][I][COLOR="Navy"]for [/COLOR][/I][/B]([B][I][COLOR="Navy"]var [/COLOR][/I][/B]i = [COLOR="Red"]0[/COLOR]; i < LeecherAccounts.length; i++)
{
	[B][I][COLOR="Navy"]if [/COLOR][/I][/B](me.account == LeecherAccounts[i])
	{
		isLeecher = [B][I][COLOR="Navy"]true[/COLOR][/I][/B];
	}
}
[B][I][COLOR="Navy"]var [/COLOR][/I][/B]OldGame = [COLOR="DimGray"]''[/COLOR];
[I][COLOR="Navy"]var[/COLOR][/I] Check = [COLOR="Red"]1[/COLOR];
Der Teil gehört unter das "// DONT EDIT ANYTHING BELOW THIS" und vor die NTMain() Funktion

Und natürlich die If .. else .. - Schleife:
Code:
[B][I][COLOR="Navy"]case [/COLOR][/I][/B][COLOR="Red"]1[/COLOR]:  // Lobby
	[B][I][COLOR="Navy"]var [/COLOR][/I][/B]_Lines;
	[B][I][COLOR="Navy"]var [/COLOR][/I][/B]chat;
	[B][I][COLOR="Navy"]var [/COLOR][/I][/B]_Game = [COLOR="DimGray"]""[/COLOR];
	[B][I][COLOR="Navy"]var [/COLOR][/I][/B]_Errors = [COLOR="DimGray"]""[/COLOR];
	[B][I][COLOR="Navy"]var [/COLOR][/I][/B]_FoundLeader = [B][I][COLOR="Navy"]false[/COLOR][/I][/B];
	[B][I][COLOR="Navy"]var [/COLOR][/I][/B]_LineWithName = [COLOR="DimGray"]""[/COLOR];

	[B][I][COLOR="Navy"]if [/COLOR][/I][/B](location.id == [COLOR="Red"]1[/COLOR] && JoinChatAfterLogin)
	{
		Delay(Random(WaitBeforeEnterChatMin, WaitBeforeEnterChatMax));
		ControlData.click(ControlData.controls.lobby.button.enterChat);
		[B][I][COLOR="Navy"]break[/COLOR][/I][/B];
	}
	[B][I][COLOR="Navy"]if [/COLOR][/I][/B](isLeecher)
	{
		Delay([COLOR="Red"]1000[/COLOR]);
		[B][I][COLOR="Navy"]if [/COLOR][/I][/B](chat = ControlData.get(ControlData.controls.lobby.chat.textBox.channelText))
		{
			_Lines = chat.GetText();
			[B][I][COLOR="Navy"]if [/COLOR][/I][/B](_Lines.length > [COLOR="Red"]1[/COLOR])
			{
				[B][I][COLOR="Navy"]for [/COLOR][/I][/B]([B][I][COLOR="Navy"]var [/COLOR][/I][/B]_Friend = [COLOR="Red"]0[/COLOR]; _Friend < _Lines.length; _Friend++)
				{
					[B][I][COLOR="Navy"]if [/COLOR][/I][/B](_Lines[_Friend].indexOf(LeaderAccountName) > [COLOR="Red"]-1[/COLOR])
					{
						_Game = [COLOR="DimGray"]''[/COLOR];
						_FoundLeader = [B][I][COLOR="Navy"]true[/COLOR][/I][/B];
						[B][I][COLOR="Navy"]var [/COLOR][/I][/B]regOfflineEnglish=/^\d\s?:\s?(\w*)\s?,\s?offline\s*$/gi;

						[B][I][COLOR="Navy"]if [/COLOR][/I][/B](_Lines[_Friend].match(regOfflineEnglish))
						{
							_Errors += (_Errors == [COLOR="DimGray"]''[/COLOR] ? [COLOR="DimGray"]''[/COLOR] : [COLOR="DimGray"]' '[/COLOR]) + [COLOR="DimGray"]'leader is offline'[/COLOR];
							Delay([COLOR="Red"]5000[/COLOR]);
							[B][I][COLOR="Navy"]break[/COLOR][/I][/B];
						}

						_LineWithName = _Lines[_Friend + [COLOR="Red"]2[/COLOR]];
							
						[B][I][COLOR="Navy"]if[/COLOR][/I][/B] (_LineWithName !== undefined)
							_LineWithName = _LineWithName.substring([COLOR="Red"]4[/COLOR],_LineWithName.length);

						[B][I][COLOR="Navy"]if [/COLOR][/I][/B](_LineWithName === undefined)
							_LineWithName = _Lines[_Friend + [COLOR="Red"]1[/COLOR]];
						[B][I][COLOR="Navy"]else[/COLOR][/I][/B]
							_LineWithName = _Lines[_Friend + [COLOR="Red"]1[/COLOR]] + _LineWithName;

						[B][I][COLOR="Navy"]if [/COLOR][/I][/B](_LineWithName !== undefined)
							_LineWithName = _LineWithName.replace(/^\s+/,[COLOR="DimGray"]""[/COLOR]);
						[B][I][COLOR="Navy"]else[/COLOR][/I][/B]
							[B][I][COLOR="Navy"]break[/COLOR][/I][/B];

						[B][I][COLOR="Navy"]if [/COLOR][/I][/B](_LineWithName.indexOf([COLOR="DimGray"]'called'[/COLOR]) > [COLOR="Red"]-1[/COLOR])
							_Game = _LineWithName.substring(_LineWithName.indexOf([COLOR="DimGray"]'called'[/COLOR])+[COLOR="Red"]7[/COLOR],_LineWithName.indexOf([COLOR="DimGray"]'.'[/COLOR]));
						[B][I][COLOR="Navy"]else[/COLOR][/I][/B]
							_Game = _LineWithName.substring([COLOR="Red"]0[/COLOR],_LineWithName.indexOf([COLOR="DimGray"]'.'[/COLOR]));
							
						_LineWithName = [COLOR="DimGray"]''[/COLOR];

						[B][I][COLOR="Navy"]if [/COLOR][/I][/B](_Game != [COLOR="DimGray"]''[/COLOR] && _Game != OldGame)
						{
							ControlData.click(ControlData.controls.lobby.button.join);
							Delay([COLOR="Red"]200[/COLOR]);
							ControlData.setText(ControlData.controls.lobby.join.editBox.gameName, _Game);
							Delay ([COLOR="Red"]200[/COLOR]);
							ControlData.setText(ControlData.controls.lobby.join.editBox.password, LeaderGamePW);
							Delay ([COLOR="Red"]1234[/COLOR]);
							ControlData.click(ControlData.controls.lobby.join.button.joinGame);
							Check = [COLOR="Red"]1[/COLOR];
						}
						[B][I][COLOR="Navy"]else[/COLOR][/I][/B]
						{
							[B][I][COLOR="Navy"]if [/COLOR][/I][/B](!_Errors)
								_Errors = [COLOR="DimGray"]'leader is not in game.'[/COLOR];
						}
					}
				}
			}
			[B][I][COLOR="Navy"]if [/COLOR][/I][/B](!_FoundLeader && JoinChannelInChat)
			{
				[B][I][COLOR="Navy"]if [/COLOR][/I][/B](_Errors)
					Say([COLOR="DimGray"]'Errors : '[/COLOR] + _Errors);
				[B][I][COLOR="Navy"]else[/COLOR][/I][/B]
					Delay([COLOR="Red"]15000[/COLOR]);
			}
		}
		[B][I][COLOR="Navy"]else[/COLOR][/I][/B]
		{
			Delay([COLOR="Red"]1500[/COLOR]);
		}
		_Errors = [COLOR="DimGray"]''[/COLOR];
		[B][I][COLOR="Navy"]if [/COLOR][/I][/B](_Game != [COLOR="DimGray"]''[/COLOR])
			OldGame = _Game;
		[B][I][COLOR="Navy"]break[/COLOR][/I][/B];
	}
	[B][I][COLOR="Navy"]else[/COLOR][/I][/B]
	{
		[B][I][COLOR="Navy"]if [/COLOR][/I][/B](GetTickCount() > NextGameMake)
		{
			LastGameFailed = [B][I][COLOR="Navy"]false[/COLOR][/I][/B];

			switch(LastGameStatus)
			{
			[B][I][COLOR="Navy"]case [/COLOR][/I][/B][COLOR="Red"]0[/COLOR]:
				[B][I][COLOR="Navy"]if [/COLOR][/I][/B](JoinRandomGamesChars.indexOf(me.charname) > [COLOR="Red"]-1[/COLOR])
				{
					_control = ControlData.get(ControlData.controls.lobby.button.join);
					
					[B][I][COLOR="Navy"]if [/COLOR][/I][/B](_control && _control.pressed)
					{
						ControlData.click(ControlData.controls.lobby.button.create);
						Delay([COLOR="Red"]500[/COLOR]);
					}

					ControlData.click(ControlData.controls.lobby.button.join);
				}
				[B][I][COLOR="Navy"]else[/COLOR][/I][/B]
				{
					_control = ControlData.get(ControlData.controls.lobby.button.create);
					
					[B][I][COLOR="Navy"]if [/COLOR][/I][/B](_control && _control.pressed)
					{
						ControlData.click(ControlData.controls.lobby.button.join);
						Delay([COLOR="Red"]500[/COLOR]);
					}
					
					ControlData.click(ControlData.controls.lobby.button.create);
				}
				NextGameMake = GetTickCount() + CreateGameTimeout; // set our timeout
				NT_SendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, [COLOR="Red"]0[/COLOR]);
				[B][I][COLOR="Navy"]break[/COLOR][/I][/B];
			[B][I][COLOR="Navy"]case [/COLOR][/I][/B][COLOR="Red"]1[/COLOR]: // game failed, rollover to reset timer
				InGameAt = GetTickCount();
				LastGameFailed = [B][I][COLOR="Navy"]true[/COLOR][/I][/B];
				Delay([COLOR="Red"]5000[/COLOR]);
				
			[B][I][COLOR="Navy"]case [/COLOR][/I][/B][COLOR="Red"]2[/COLOR]:
				NT_OutputGameLength();
				LastGameStatus = [COLOR="Red"]0[/COLOR];
				NT_SetNextGameMake();
				[B][I][COLOR="Navy"]if [/COLOR][/I][/B](LastGameFailed)
				{
					SetStatusText([COLOR="DimGray"]"ÿc1Failed to join!"[/COLOR]);
					NT_SendEventToOOG(D2NT_MGR_PRINT_LOG, [COLOR="DimGray"]"ÿBE0000Game creation failed!"[/COLOR], [COLOR="Red"]0[/COLOR]);
					Delay([COLOR="Red"]1000[/COLOR]);
				}
				NT_SendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, [COLOR="Red"]0[/COLOR]);
				[B][I][COLOR="Navy"]break[/COLOR][/I][/B];
			}
		}
		[B][I][COLOR="Navy"]else[/COLOR][/I][/B]
		{
			[B][I][COLOR="Navy"]if [/COLOR][/I][/B](JoinChannelInChat && !MadeAnnouncement && MW_IsChannelUser())
			{
				[B][I][COLOR="Navy"]if [/COLOR][/I][/B](MW_AnnounceGame())
					MadeAnnouncement = [B][I][COLOR="Navy"]true[/COLOR][/I][/B];
			}
			
			MW_TimeoutDelay(NextGameMake - GetTickCount(), location, JoinRandomGamesChars.indexOf(me.charname) == [COLOR="Red"]-1[/COLOR]);
		}
	}
	[B][I][COLOR="Navy"]break[/COLOR][/I][/B];
Der "if" Teil ist komplett neu und der "else" Teil ist unverändert wie in Muddies 1.2, sollte also einfach hinzuzufügen sein. Für die die's nicht finden, es gehört in die Funktion 'NT_LocationAction(location)'.

Was ihr zusätzlich noch anpassen solltet:

Code:
[B][I][COLOR="Navy"]function [/COLOR][/I][/B]MW_CheckLocationLoops(location)
{		
	[B][I][COLOR="Navy"]if[/COLOR][/I][/B](isLeecher)
		MaximumLocationLoops = [COLOR="Red"]900[/COLOR];
Auch in NTBot.ntj, ziemlich am Schluss, dadurch verhindert ihr, dass euer Leecher ständig neu startet. Welchen Wert ihr nehmt ist euch überlassen, aber sollte wohl schon so ~180 sein was so >3min sind. (Falls ihr ein Game verpasst)
Einfach die 2 Zeilen einfügen, direkt am Anfang, Rest bleibt gleich.

Hoff es kann wer was damit anfangen

edit: Hab beim umbenennen der Variablen eine übersehen, nun sollte es gehen.
edit2: Sop nun ist auch hier alles wieder aktuell.
ldevil is offline  
Thanks
9 Users
Old 04/30/2011, 01:03   #1601
 
elite*gold: 0
Join Date: Apr 2011
Posts: 15
Received Thanks: 0
Alles klar, ich habe ein anderes Problem, und zwar mit dem Rush-Bot.

Ich joine mit dem zu rushenden Char ins Game, komme danach mit dem Rusher. Kurze Rede, kurzer Sinn: Andy wird gekillt und der zu rushende peilt das auch, geht zurück in die Town, quatscht mit Warriv, aber klickt nicht richtig auf das "Go to east" (aus der Erinnerung weiß ich den englischen Text nicht) und geht somit nicht nach A2. Er gibt dann irgendwann auf, läuft zum WP und merkt, dass er A2 Wp nicht hat, sagt Error und startet den Rush-Bot wieder neu (Wait for Andy Tp)...

Verstellt haben kann ich ja eigntl. nix, deshalb wundere ich mich, dass es nicht funktioniert
Gaterrrr is offline  
Old 04/30/2011, 02:10   #1602
 
elite*gold: 0
Join Date: Apr 2011
Posts: 3
Received Thanks: 0
Quote:
Originally Posted by Muddy_Waters View Post


Siehe unten, so ergibt die Frage aus meiner Sicht keinen Sinn, vielleicht hast du was verwechselt.
Er geht bei deiner Nihlathak.ntj durch die Halls of Pain sucht Nihlathak und danach Pindel auf. Normal könnte man doch gleich durch das rote Portal gehen um Pindel zu killen oder etwa nicht ? Diese ntj finde ich irgendwie nicht

Edit:

Quote:
Originally Posted by tonk1 View Post
@jentownhh willst du pindle laufen lassen?

wenn ja, für den gibts nen extra skript:
NTConfig_Script.push("NTPindleskin.ntj"); NTConfig_NihlathakExtension = false;

is bei muddy's gar nich dabei, aber das skript is im bot ordner.
einfach bei deinen runs reinkopieren. sollte laufen. ^^
Ja nur Pindel durch das Rote Portal bei Anya. Wenn ich deine NTConfig_Script.push("NTPindleskin.ntj"); NTConfig_NihlathakExtension = false; in mein Current schedule kopiere schreibt er mir Error in LOD. Hatte diese auch schon von der Bluebird config versucht da geht er auch durch das rote TP .

MfG
jentownhh is offline  
Old 04/30/2011, 02:35   #1603
 
elite*gold: 0
Join Date: Jul 2006
Posts: 469
Received Thanks: 235
Das muss auch so heissen:

Code:
MWConfig_Script.push([[COLOR="DimGray"]"NTPindleskin.ntj"[/COLOR], [COLOR="Red"]10[/COLOR]]); NTConfig_NihlathakExtension = [COLOR="Navy"][B][I]false[/I][/B][/COLOR]
ldevil is offline  
Thanks
1 User
Old 04/30/2011, 10:02   #1604
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,654
Quote:
Originally Posted by Gaterrrr View Post
Alles klar, ich habe ein anderes Problem, und zwar mit dem Rush-Bot.

Ich joine mit dem zu rushenden Char ins Game, komme danach mit dem Rusher. Kurze Rede, kurzer Sinn: Andy wird gekillt und der zu rushende peilt das auch, geht zurück in die Town, quatscht mit Warriv, aber klickt nicht richtig auf das "Go to east" (aus der Erinnerung weiß ich den englischen Text nicht) und geht somit nicht nach A2. Er gibt dann irgendwann auf, läuft zum WP und merkt, dass er A2 Wp nicht hat, sagt Error und startet den Rush-Bot wieder neu (Wait for Andy Tp)...

Verstellt haben kann ich ja eigntl. nix, deshalb wundere ich mich, dass es nicht funktioniert
Das ist ein Bug in der Release Version. Wie das ausbessern kannst, erfährst du in .
Ausserdem findest du nochmal ein paar erklärende Worte zum Rush Script.

LG
Muddy
Muddy Waters is offline  
Thanks
1 User
Old 04/30/2011, 11:54   #1605
 
elite*gold: 0
Join Date: Jul 2006
Posts: 469
Received Thanks: 235
Bin nicht sicher, ob du das Cuben schon gefixt hast (so von wegen 20 Ringe in der Truhe), aber hab's mal selber gemacht. Die Funktion müsste man noch etwas verallgemeinern, da sie momentan einfach die Ringe auf <= 3 Stück überprüft, aber man muss nur 3 Zeilen oder so anpassen damit man sagen kann
Code:
NTConfig_LimitItems.push([COLOR="Red"]10[/COLOR],[COLOR="Red"]3[/COLOR]);
um die Ringe (classid 10) auf 3 zu limitieren.

Dazu braucht's die Funktion hier:
Code:
[B][I][COLOR="Navy"]function[/COLOR][/I][/B] NTCU_CheckItemCount(_classid,_quality,_reqlevel)
{
	[B][I][COLOR="Navy"]var [/COLOR][/I][/B]_items = me.GetItems();
	[B][I][COLOR="Navy"]var [/COLOR][/I][/B]_itemclassid;
	[B][I][COLOR="Navy"]var [/COLOR][/I][/B]_itemcalclevel;
	[B][I][COLOR="Navy"]var [/COLOR][/I][/B]_itemquality;
	[B][I][COLOR="Navy"]var [/COLOR][/I][/B]_count = [COLOR="Red"]0[/COLOR];
	[B][I][COLOR="Navy"]var [/COLOR][/I][/B]NTConfig_MaxStock = [COLOR="Red"]3[/COLOR];
	
	[B][I][COLOR="Navy"]if[/COLOR][/I][/B](!_items)
		[B][I][COLOR="Navy"]return[/COLOR][/I][/B] [B][I][COLOR="Navy"]false[/COLOR][/I][/B];
	
	[B][I][COLOR="Navy"]if[/COLOR][/I][/B](_classid != [COLOR="Red"]10[/COLOR]) [COLOR="DarkGreen"]// Zukünftig Abfrage ob Item nen max count hat[/COLOR]
		[B][I][COLOR="Navy"]return[/COLOR][/I][/B] [B][I][COLOR="Navy"]true[/COLOR][/I][/B];
	
	[B][I][COLOR="Navy"]for[/COLOR][/I][/B]([B][I][COLOR="Navy"]var [/COLOR][/I][/B]i = [COLOR="Red"]0[/COLOR]; i < _items.length; i++)
	{
		_itemclassid = _items[i].classid;
		_itemcalclevel = parseInt(me.GetStat([COLOR="Red"]12[/COLOR])/[COLOR="Red"]2[/COLOR]) + parseInt(_items[i].itemlevel/[COLOR="Red"]2[/COLOR]);
		_itemquality = _items[i].quality;
		
		[B][I][COLOR="Navy"]if[/COLOR][/I][/B](_items[i].mode == [COLOR="Red"]0[/COLOR] && (_items[i].itemloc == [COLOR="Red"]0[/COLOR] || _items[i].itemloc == [COLOR="Red"]4[/COLOR]) && !NTIPCheckItem(_items[i]))
		{
			[B][I][COLOR="Navy"]if[/COLOR][/I][/B](_itemclassid == _classid && _itemclaclevel >= _reqlevel && _itemquality == _quality)
				_count++;
		}
	}	
	
	[B][I][COLOR="Navy"]if[/COLOR][/I][/B](_count <= NTConfig_MaxStock) [COLOR="DarkGreen"]// Zukünftig Max Count pro Item[/COLOR]
		[B][I][COLOR="Navy"]return[/COLOR][/I][/B] [B][I][COLOR="Navy"]true[/COLOR][/I][/B];
		
	[B][I][COLOR="Navy"]return[/COLOR][/I][/B] [B][I][COLOR="Navy"]false[/COLOR][/I][/B];
}
Und den roten Teil müsste man im Cube Algorythmus ergänzen:
Code:
[B][I][COLOR="Navy"]else if[/COLOR][/I][/B](NTConfig_CubingItem[i][[COLOR="Red"]2[/COLOR]] == _gid [COLOR="Red"][B]&& NTCU_CheckItemCount(_classid,4,_NTCU_CraftRecipe[_index][0]))[/B][/COLOR]
						_result = [B][I][COLOR="Navy"]true[/COLOR][/I][/B];
Bei mir funktioniert's. Und ich hatte das Problem nur mit Ringen daher lass ich das erstmal so und da ich nicht weiss wie gut du das findest hab ich's Mal noch nicht generalisiert
So wie ich dich kenne wirst du (wenn du's nicht schon selber gemacht hast) ja eh andere Variablen und so definieren, damit das ganze etwas intuitiver ist als bei mir.
ldevil is offline  
Thanks
1 User
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 02:19.


Powered by vBulletin®
Copyright ©2000 - 2026, 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 ©2026 elitepvpers All Rights Reserved.