[Release] Muddy's D2NT

04/29/2011 15:20 lafaro#1591
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
04/29/2011 15:42 tonk1#1592
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.
04/29/2011 17:32 Muddy Waters#1593
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 [Only registered and activated users can see links. Click Here To Register...] 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. :o

LG
Muddy
04/29/2011 17:44 tonk1#1594
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. ^^
04/29/2011 18:17 jentownhh#1595
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
04/29/2011 19:36 Gaterrrr#1596
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: ?
04/29/2011 20:11 tonk1#1597
@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. ^^
04/29/2011 22:38 Muddy Waters#1598
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 [Only registered and activated users can see links. Click Here To Register...] Button oder sammel Quotes mit dem [Only registered and activated users can see links. Click Here To Register...] 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
04/29/2011 23:10 19Miami#1599
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.
04/30/2011 00:20 ldevil#1600
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 :D

edit: Hab beim umbenennen der Variablen eine übersehen, nun sollte es gehen.
edit2: Sop nun ist auch hier alles wieder aktuell.
04/30/2011 01:03 Gaterrrr#1601
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
04/30/2011 02:10 jentownhh#1602
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 :confused:

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
04/30/2011 02:35 ldevil#1603
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]
04/30/2011 10:02 Muddy Waters#1604
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 [Only registered and activated users can see links. Click Here To Register...].
Ausserdem findest du [Only registered and activated users can see links. Click Here To Register...] nochmal ein paar erklärende Worte zum Rush Script.

LG
Muddy
04/30/2011 11:54 ldevil#1605
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.